프로그래밍/기타 6

[IntelliJ] docker compose로 실행한 애플리케이션 인텔리제이로 디버깅 하기

MSA 프로젝트를 개발하면서 discovery, gateway, config를 포함하여 7개의 마이크로서비스를 docker compose로 하나의 컨테이너로 실행을 하고있다. IntelliJ와 Docker Compose를 활용하여 실행 중인 애플리케이션의 디버깅 환경을 설정하는 방법을 단계별로 정리했다. 1. 디버그 포트 노출각 마이크로서비스에 대해 JVM 디버깅 포트를 노출한다. ( docker-compose.yml 수정) 2. environment 에 JVM의 디버그 모드를 활성화 하는 옵션 설정JAVA_TOOL_OPTIONS : JVM의 디버그 모드를 활성화 하는 옵션모든 서비스는 고유한 디버깅 포트를 사용해야 한다.transport=dt_socket : 디버거와의 통신에 소켓을 사용 3. Inte..

유비쿼터스 언어(보편 언어)의 중요성을 느끼며

유비쿼터스 언어(Ubiquitous Language, 보편 언어)는 도메인 주도 설계에서 중요한 개념으로,  프로젝트의 모든 이해관계자들이 공통으로 사용하는 언어를 의미한다. 도메인에서 사용하는 용어를 코드에 반영하지 않으면 코드의 의미를 해석해야하는 부담을 준다. 개발 도메인이 명확한 직장에서 근무하며 여러 프로젝트를 진행하다 보니, 유비쿼터스 언어의 중요성을 점점 더 깊이 체감하게 되었다. 디자이너, 분석가, PM 등 다양한 분야의 동료들과 소통하고 협업하는 과정에서, 이 보편 언어의 필요성이 더욱 두드러졌다. 프로젝트를 진행하면서 유비쿼터스 원어의 중요성을 깨닫게 된 주요 이유들은 다음과 같다. 1. 의사소통의 오해와 실수'혼잡도' 와 '밀집도' 처럼 비슷하지만 다른 의미를 가진 용어들로 인해 오해..

[IntelliJ] import 자동 정리 설정

단축기로 사용하지 않는 import를 정리하는 방법도 있지만, 파일마다 정리를 해주어야 하고 (프로젝트 전체 정리가 안됨) 깜빡하고 정리를 안하고 넘어가는 경우가 많아서 import 자동 정리 설정을 해놓는 편이다. 설정 방법은 : Settings -> Editor -> General -> Auto Import -> Optimize imports on the fly (import 문 즉시 최적화) 적용 버튼을 눌러서 적용을 하게 되면 import 문들이 바로 삭제가 안되어서 잘 적용 안되었다고 생각할 수 있는데 문서를 편집하는 순간 자동으로 사용하지 않는 import 들을 정리 해준다.

[IntelliJ] 유용한 단축기 모음(Windows, macOS) - 상시 추가예정

Mac 키보드 기호(참고) ⌘ : command ⌃ : control ⇧ : shift ⌥ : option ⏎ : return ⌃ : control ⌫ : delete Windows macOS 한줄 주석 Ctrl + / ⌘ + / 블록 주석 Ctrl + Shift + / ⌘ + ⌥ + / 라인 복사 Ctrl + D ⌘ + D 라인 삭제 Ctrl + Y ⌘ + ⌫ 라인 이동 Alt + Shift + ↑ / ↓ ⌥ + ⇧ ↑ / ↓ 구문 이동 Ctrl + Shift + ↑ / ↓ ⌘ + ⇧ + ↑ / ↓ 현재 구문 완성 Ctrl + Shift + Enter ⌘ + ⇧ + ⏎ 변수 추출 Ctrl + Alt + V ⌘ + ⌥+ V 생성 목록 보기 Alt + Insert ⌘ + N 테스트 클래스 생성 클래스 명/..

Naming Convention 프로그래밍 명명 규칙

Naming Convention (명명 규칙) 컴퓨터 프로그래밍에서 명명 규칙은 소스 코드 및 문서에서 변수, 유형, 기능 및 기타 엔터티를 나타내는 식별자에 사용할 문자 시퀀스를 선택하기 위한 일련의 규칙입니다. 대표적인 Naming Convention 종류 1. lowerCamelCase 맨 앞글자를 소문자, 단어의 첫문자를 대문자로 표기합니다. ex) userName 2. snake_case 각 단어를 언더바로 구분합니다. ex) user_name 3. PascalCase (UpperCamelCase) 단어의 첫문자를 대문자료 표기합니다. ex) UserName 4. kebab-case 각 단어를 하이픈으로 구분합니다. ex) user-name 5. typeHungarianCase, type_Hun..