우아한 프로그래밍
반응형
article thumbnail
MVC 아키텍처에 모델이 하나만 존재한다고?
프로그래밍/Spring 2024. 11. 1. 12:29

모델이 하나?구글에 MVC라고치고 이미지탭으로 가면 죄다 그림에 모델이 하나만 있는게 수두룩하다.이러다 보니까 신입개발자 관점에서는 아 DB에서 가져오는걸 모델이라고 하고 그 모델이 바로 화면쪽으로 넘어가는구나 라고 생각하기 쉽다.물론 모델 하나로도 구현은 충분히 가능하다.그러나 모델 하나로 요청, 응답, DB모델을 표현한다면 차라리 Map을 쓰는게 낫지 않을까?모델을 만드는 이유는 그 모델을 보고도 데이터의 In/Out을 정확하게 판단하기 위함이다.실제 관리하는 데이터와 화면의 데이터는 많이 다르다.가령 DB에는 원재료 즉 밀가루가 저장되어야 하고 화면에는 가공된 빵이 뿌려져야 한다.그런데 처음에 말했다 시피 구글에 치는 이미지에는 절대 그렇게 표현이 되어 있지 않다.모델은 3개가 존재 해야해모델은 아..

빠른 개발을 위한 개발자를 위한 오토핫키 단축키 feat. Window 사용자용
Etc. 2024. 10. 29. 10:02

왜 오토핫키 단축키가 필요한가?무엇을 하던지 간에 동선을 최소화 해야만 최소의 힘을 들여서 최고의 결과를 도출 할 수 있다.가령 요리를 할 때 각 재료와 도구들의 동선이 길다면 굉장히 비효율적이고 요리가 오래 걸리지 않겠는가?그래서 동선을 최소화 하기 위한 단축키를 공유한다.오토핫키 소스;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━; [ 간단 autoHokey 문법 정리 ];━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ; 키 지정 방법: h..

도커 데스크톱으로 오라클 11G 실행하는 docker-compose.yml

version: "3.8"services: oracle: image: oracleinanutshell/oracle-xe-11g container_name: oracle-db hostname: oracle-db restart: always ports: - "1521:1521" - "8080:8080" # Oracle Enterprise Manager HTTP port environment: ORACLE_SID: XE ORACLE_PWD: oracle ORACLE_USERNAME: system ORACLE_ALLOW_REMOTE: true volumes: - oradata:/oradata/orclvolume..

article thumbnail
InteliJ + Gradle 빌드가 너무 느려 개발하기 힘든 경우
프로그래밍/InteliJ 2024. 5. 26. 09:33

왜 느릴까요?일단 기본적으로 프로젝트의 컴파일할 클래스가 많이지면 빌드 속도가 느려진다는 것은 어떠한 개발자든 반박하지 못 할 것이다그러함에도 불구하고 우리는 개발에 퍼포먼스를 내야 하는데 빌드가 너무 느려서 힘들다.개발 할 때 핫스왑 도구를 사용하지 않는 사람은 없을 것이다.핫스왑 도구를 사용해도 느리다.핫스왑을 할려면 클래스의 컴파일이 발생하고 왓칭하고있는 폴더의 클래스들이 변경되면 감지를 통해서 다시 메모리로 로드하는데이미 빌드자체가 느린 것이다.그럼 거두절미 하고 왜 느린지 알아보자.정답은 빌드의 방법언제 부터였는지는 모르겠지만 인텔리J의 그래들의 설정을 보면 빌드 및 실행이 Gradle로 바뀌었다.이 부분이 IinteliJ IDEA로 바뀌면 빌드 속도가 엄청나게 빨라질 것이다.왜냐? Inteli..

article thumbnail
파이썬에서 pyinstaller를 간단하게 실행하는 방법.
프로그래밍/파이썬 2024. 5. 22. 21:03

간단하게 사용하지 않으면 어떻게 사용해야 하는데?아래 명령어를 CMD창에 입력해야한다.물론 CLI가 더 편한 사람은 그대로 사용해도 무방하다.pyinstaller main.spec -y 하지만 GUI가 더 편한 사람이라면 아래 설정에 들어가서 배포를 등록해주고..배포를 더블클릭에서 나오는 입력창에 아래 처럼 입력이후에 *.spec 파일 우클릭 후 External Tool에 등록했던 배포를 클릭해주면 된다.

article thumbnail
pyInstaller로 배포 후에 리소스(*.ui, *.txt 등) 파일이 읽히지 않는 오류
프로그래밍/파이썬 2024. 5. 18. 21:04

왜 그럴까?이유는 간단하다파이참에서 읽을 때와 pyinstaller로 배포한 상태에서 읽는 것이 다르기 때문이다.코드에서는 그럼 어떻게 해결해?아래 코드를 보자.코드를 살펴보면 배포되었을 때와 파이참에서 실행 중일때의 코드가 분기문으로 처리되고 있다.해당 코드를 유틸로 만들어서 사용하면 좋을 듯하다.if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'): # 배포되었을 때 # When running in a PyInstaller bundle base_path = sys._MEIPASS print('Running in a PyInstaller bundle')else: # 파이참에서 실행 할 때 # When runnin..

article thumbnail
Spring Test @TestPropertySource Yml이 읽히지 않는다(?)
프로그래밍/Spring 2024. 4. 9. 22:20

구조 TestServiceTest.java package com.company.slot.oasis.api.slot.service; import com.company.slot.oasis.api.config.TestConfig; import com.company.slot.oasis.api.config.YamlPropertySourceFactory; import com.company.slot.oasis.api.test.domain.TestService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.spring..

article thumbnail
쿠버네티스 대시보드를 구축해보자
인프라/쿠버네티스 2024. 2. 9. 12:54

쿠버네티스 대시보드 설치 # 설치 파일 다운로드 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml # 외부에서 접속하기 위한 NodePort 설정 vi recommended.yaml # 해당 부분 찾아서 추가 kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort # < 이부분 추가하세요 ports: - port: 443 targetPort: 8443 nodePor..

실무에서 꼭 필요한 리눅스 명령어
프로그래밍/리눅스 2024. 2. 8. 05:34

파일 생성 # 파일 생성 # cat > 하면 붙여넣기가 가능한데 그만 입력하고 싶으면 Ctrl + D cat > nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx ports: - containerPort: 80 파일 수정 특정 단어 찾아서 바꾸기 # sed -i &#39;s/찾을문자열/바꿀문자열/g&#39; sed -i &#39;s/old/new/g&#39; example.txt sed -i &#39;s/old/new/g&#39; *.txt 파일 검색 # 로그에서 에러를 찾음. grep -n ERROR pod-nginx-label.yaml ..

리눅스에서 쿠버네티스 kubectl bash 자동 완성 사용하기
인프라/쿠버네티스 2024. 2. 6. 21:50

kubectl 자동 완성 활성화 echo &#39;source >~/.bashrc echo &#39;alias k=kubectl&#39; >>~/.bashrc echo &#39;complete -o default -F __start_kubectl k&#39; >>~/.bashrc exec bash

반응형