윈도우 Port 강제 종료 방법

종종 테스트 중 이전에 실행한 Port가 남아서 충돌나는 경우가 있습니다. 기존에 존재하는 Port의 PID를 제거하면 삭제할 수 있습니다. Port 강제 종료 방법 먼저 windows + R 을 눌러 실행 스크립트를 열어주고 cmd를 입력하여 커맨드 창을 열어줍니다. 명령어로 netstat -a -o를 입력하면 현재 연결된 네트워크 상태를 볼 수 있습니다. 위와 같이 8080포트가 존재하면 우측에 있는 PID의 번호를 기억합니다. 여기서는 49480의 값입니다. taskkill /f /pid 49480을 입력하면 해당 8080포트를 제거할 수 있습니다.

5월 23, 2022 · 1 분

비쥬얼 스튜디오 코드에서 자동완성 해제하기

Visual Studio Code의 자동완성 기능 해제 방법 프로그램 실행 후 설정(Ctrl + , 또는 Command + ,)으로 들어간 후 검색항목에 intelliSense를 검색하면 여러 체크박스 리스트를 볼 수 있습니다. 위(Show Classes)에서부터 아래(Show Words)까지 전부 체크 해제를 하면 자동완성 기능이 비활성화 됩니다. 그렇지만 너무 많은 옵션이 있기 때문에 전부 클릭 해제하기가 귀찮은 경우 아래의 JSON으로 추가할 수 있습니다. 오른쪽 위의 설정으로 들어가서 아래의 값들을 복사 후 붙여 넣어주면 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 "explorer....

4월 3, 2022 · 1 분

Git Commit 메시지 규칙

Git Commit git commit message convetion은 회사 또는 프로젝트 마다 다를 수 있습니다. message의 형태는 다를 수 있지만 기본적인 목적은 같습니다. 잘 만들어진 git 커밋 메시지는 해당 프로젝트에서 작업하는 팀원과 미래의 자신에게 변경 사항에 대한 의미를 전달하기 위한 좋은 방법입니다. 일반적으로 커밋 메시지는 다음과 같은 구조를 권장합니다. 1 2 3 4 5 type: Subject body footer 보통 위와 같은 형태입니다. 제목은 새로운 기능 추가인 경우 feat: Subject, Feat: Subject, Feat Subject, Feature Subject 등 조금씩 type의 형태가 다르지만 그건 프로젝트에 따라 일관되게 맞추면 됩니다....

3월 1, 2022 · 2 분

git CRLF 개행 문자 차이 해결 방법

Windows는 line ending으로 CR(Carriage-Return, \r)과 LF(Line Feed \n)을 사용합니다. CRLF는 커서를 다음 라인의 맨앞으로 옮기는 표시이며, ↲ 이러한 표현입니다. Mac, Linux(Unix 계열)의 경우 LF(Line Feed \n)를 사용합니다. LF는 현재 위치에서 바로 아래로 이동하는 것을 의미하며, ↓ 와 같은 표현입니다. 문제는 같은 작업 영역에서 같은 코드를 수정할 경우 windows와 mac의 코드가 일치하더라도 커서의 표현값이 다르기 때문에 충돌이 일어나는 경우가 발생합니다. 해결 방법으로는 각 운영체제별로 git을 기준으로 LF로 맞춰주는 것입니다. Windows는 CRLF를 LF로 변경되도록 git config 설정 중 core....

2월 21, 2022 · 1 분

Java Priority Queue(우선순위 큐) 원리 및 사용 방법

우선순위 큐(Priority Queue) 란? 우선순위 큐(Priority Queue)는 일반적인 큐의 구조와 달리 들어가는 순서와 상관없이 정의한대로 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터가 먼저 나가는 자료구조 입니다. 그렇기 때문에 dequeue를 하면 이미 정의한 순서에 맞게 가장 위의 값이 나타납니다. 우선순위 큐는 힙을 기반으로 하는 완전이진트리로 우선순위를 정하게 됩니다. 사용 방법 우선순위 큐는 우선순위가 꼭 필요한 경우에 사용합니다. 람다식으로 정의해도 되고 Comparable을 이용해서 정의해도 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 // 낮은 숫자가 우선순위가 높은 방식 PriorityQueue<Integer> pq = new PriorityQueue<>(); // 높은 숫자가 우선순위가 높은 방식 PriorityQueue<Integer> pq = new PriorityQueue<>(Collections....

2월 14, 2022 · 4 분

H2 2.1.210 Upgrade시 JPA 테스트 에러 해결 방법

H2를 최신 버전(2.1.210)으로 업데이트하니 아래와 같은 에러가 발생했습니다. 1 2 3 4 5 6 7 8 Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set ... java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) ... 일단 임시방편으로 H2 url을 연결하는 곳에 추가적으로 옵션(;MODE=LEGACY)을 넣으면 해결됩니다. 1 url: jdbc:h2:tcp://localhost/~/test;MODE=LEGACY MODE=LEGACY를 모드를 사용하면 H2 1.X용으로 작성된 응용 프로그램에 대한 일부 호환성 기능이 활성화됩니다. Hibernate ORM에서 H2에 대해서 유효하지 않은 SQL을 생성하기 때문이라고 합니다....

1월 29, 2022 · 1 분

Spring Data JPA와 JPQL 함께 사용하기

JPQL 이란? 예전에는 JPQL은 Java Persistence Query Language로 불렸지만 현재의 JPQL은(Jakarta Persistence Query Language) 라고 합니다.(나무위키 링크 ) 2019년부터 JPA(Java Persistence API)또한 Jakarta Persistence로 변경됐습니다. 이름은 달라졌지만 역할은 달라지지 않았습니다. JPQL을 이용하여 관계형 데이터베이스의 엔티티를 정의하고 이를 활용한 쿼리 언어를 자바를 이용하여 구현합니다. 더 나아가 Querydsl을 이용하면 좀 더 직관적이고 오류 없이 자바를 이용하여 작성할 수 있습니다. 간단한 예시로 회원 조회를 하는 경우 JPQL과 Querydsl의 차이는 아래와 같습니다. JPQL 1 2 3 4 5 6 public List<Member> findAll() { EntityManager entityManager; return entityManager....

1월 17, 2022 · 2 분