P6Spy를 이용하여 로그 출력하기

프로젝트를 하다보면 성능 개선을 위해 어느 쿼리가 얼마나 걸리고, 어떻게 쿼리를 호출하는지 확인해야 할 경우가 있습니다. JPA QueryDSL을 이용할 때 여러 조인과 entity의 관계를 정의하다 보면 생각하지 못한 부분에서 속도가 매우 느린 경우도 있고, 대용량으로 데이터가 들어오면 잘 되던 쿼리가 느려질 때도 있습니다. 이럴때 p6spy를 이용하여 쿼리를 보기 좋고, 얼마나 걸리는지 확인할 수 있는 방법에 대해 정리했습니다. 위의 저장소 에서 쿼리를 로그에 출력할 수 있는 간단한 h2 CRUD 예제 코드를 작성했습니다....

8월 31, 2023 · 2 분

Inflearn 토비의 스프링 부트 강의 후기

토비의 스프링 저자로 유명한 토비님이 인프런에 강의를 만드셔서 수강해봤습니다. 인프런 강의 중 김영한 님의 강의가 실제 실무에 큰 도움이 된 것 같다면, 토비님의 강의는 스프링 부트에 대해 조금 더 깊이 있게 알아보는게 목적이었던 것 같습니다. 기존 강의에서는 Spring Boot 2.7과 jdk 11로 했지만 학습 코드는 Spring Boot 3.1.1과 jdk 17로 적용해서 클론 코딩 을 진행하며 버전이 달라지면서 발생한 문제와 팁을 정리했습니다. 강의에서 나온 프로그램 추천 sdkman : jdk 및 여러 sdk들의 버전을 쉽게 변경할 수 있도록 해준다....

8월 8, 2023 · 2 분

Vue Prettier로 코드 정렬하기

이전에 진행 중인 프로젝트에서는 Code Convention이 지켜지지 않아 코드 정렬이 좋지 않은 경우가 있었습니다. 이는 여러 담당자를 거치면서 코드의 가독성이 떨어지고 코드 수정 이후 git history를 확인하기 어렵게 만들었습니다. 이 문제를 해결하기 위해서는 모든 코드를 동일한 Format으로 변경하는 설정을 해야 합니다. 일반적으로 Prettier와 EsLint는 함께 사용됩니다. ESLint는 코드의 퀄리티를 보장하도록 도와주는 도구입니다. 일관성 있는 방식으로 코드를 구현할 수 있게 됩니다. 예를 들어 함수를 표현할 때 function을 이용할지 arrow를 이용할지 등을 정할 수 있습니다....

7월 18, 2023 · 2 분

[Udemy] Udemy K8s Docker 강의 후기

Udemy 강의중 Docker & Kubernetes 강의 를 수강 후 내용 정리 및 리뷰를 작성합니다. 우선 Udemy는 외국 강의가 많고, 한달에 여러번 할인을 하기에 괜찮은 강의가 있으면 미리 결재해 놓는게 좋습니다. 강의 후기 Udemy 강의는 할인 가격이 저렴해서 그런지 외국 강의라 그런지 수강률이 높지 않은데 해당 강의는 제가 Udemy에서 수강했었던 강의 중 만족도는 상위권이라 생각합니다. 주로 Backend 개발자 입장에서 해당 강의로 얻을 수 있는 점은 Docker와 Docker-compose를 이용해 개발 생산성을 높일 수 있다 생각합니다....

7월 9, 2023 · 4 분

Nodejs 프로젝트 적응기

6개월 프로젝트로 Node.js를 처음 하면서 만났던 여러 문제들을 처리한 내용을 공유합니다. 약 4개월 정도는 backend 개발을 했던 것 같고, 이후 다른 시스템과 함께 맞춰서 프로젝트를 마무리 했던 것 같습니다. backend에서는 기본적인 CRUD 기능과 유효성 처리, jwt 인증, 파일 업로드(이어올리기, siging작업 등), FOTA 캠페인 진행 등이 주요 내용입니다. 프로젝트 기술 선택 Framework: express DB: MySQL 먼저 Node.js에서 유명한 프레임워크로 express와 nest.js가 있습니다. 먼저 Spring Backend에 대한 경험으로 nest.js에 대해 고민했지만, npm trends 비교 및 express가 개발 속도 및 현재까지 사용한 사용자도 많기에 express로 선택했습니다....

6월 28, 2023 · 5 분

윈도우 WSL Ubuntu D Drive로 변경

WSL에서 대용량 파일 처리(한사이클에 50GB..)를 하면서 안그래도 부족한 C드라이브 용량이 바닥이 났습니다.. ㅠㅠ.. C드라이브를 늘릴 수는 없으니 급한대로 D드라이브 1TB로 변경 후 WSL Ubuntu를 D드라이브로 옮기기로 정했습니다. WLS에 대한 명령어는 wsl -h로 확인할 수 있습니다. 아래의 사진처럼 wsl name을 확인 후 해당 name으로 우선 ubuntu를 정지합니다. 1 2 wsl -l -v wsl -t [Name] # 특정 WSL 정지 제 경우는 Ubuntu-20.04 라는 Name이므로 해당 이름을 기준으로 커맨드를 작성했습니다. WSL 내보내기...

5월 21, 2023 · 1 분

리눅스에서 활성화된 process 종료 방법

netstat을 사용하기 위해서 우선 net-tools를 설치해야합니다. 1 sudo apt install net-tools 설치 후 netstat -tulpn 를 입력하면 현재 열린 네트워크 포트와 해당 포트를 열어놓은 프로세스를 보여주는 도구입니다. 여기서 각 옵션의 의미는 다음과 같습니다. -t: TCP 프로토콜 사용 포트 -u: UDP 프로토콜 사용 포트 -l: 포트를 열어놓은 프로세스 출력 -p: 프로세스 ID 출력 -n: 포트와 프로세스를 숫자로 출력 따라서 netstat -tulpn 명령어를 실행하면, 현재 열린 TCP/UDP 포트와 해당 포트를 열어놓은 프로세스의 정보를 확인할 수 있습니다....

5월 11, 2023 · 1 분