@Hudi
꾸준히, 의미있는 학습을 기록하기 위한 공간입니다.

SpringBootTest와 WebTestClient를 사용한 E2E 테스트 중 발생한 JPA 지연로딩 이슈

July 13, 2023

테스트 전략에 대한 고민 스프링 부트를 사용하여 사이드 프로젝트를 하고 있다. 나는 테스트 작성을 중요하게 생각하고, 테스트 작성을 그다지 싫어하지는 않는 편이다. 그래도 테스트 작성은 다소 지루한 작업이라는 점은 사실이기 때문에 좋은 (혹은 작성하기 즐거운) 테스트에 대한 고민이 많았다. 달록 프로젝트를 할 때에는 테스트를 레이어 하나 하나 정말 꼼꼼히…


Git Hooks를 사용한 커밋 메시지 Prefix 자동화

July 01, 2023

사이드 프로젝트를 진행하며, 간단한 이슈 트래킹을 위해 Github Issue를 사용하고 있다. 개발을 하다 보면, 이전의 커밋이 어떤 이슈를 해결하기 위한 작업이었는지 배경을 파악할 필요가 있다. 따라서 나는 커밋과 연관된 이슈를 파악하기 쉽도록 이슈 티켓 번호를 커밋 메시지 Prefix로 두는 것을 선호한다. 하지만 일일히 이슈 티켓 번호를 사람이 커…


스프링 애플리케이션 배포 직후 발생하는 Latency의 원인과 이를 해결하기 위한 JVM Warm-up

May 02, 2023

최근 같은 팀원 중 한분께서 JVM Warm-up 이슈로 인해 발생한 성능 저하 이슈와 그 해결방법에 대해 공유해주셨다. JVM Warm-up 키워드에 대해서는 언젠가 한번 공부해 보아야겠다고 생각했지만, 계속 미뤄두고 있었다. 이 기회에 JVM Warm-up에 대해 공부해보려한다. 배포 직후의 서버의 Latency 이슈 위 사진은 카카오 모빌리티 이형…


MSA 환경에서 장애 전파를 막기 위한 서킷 브레이커 패턴

April 17, 2023

MSA 환경의 서비스간 장애의 전파 소프트웨어는 모두 실패한다. 아마존 부사장인 버너 보겔스(Werner Vogels)의 이야기다. 이전에는 무결함이나 실패 무결성 즉, 절대 다운되지 않는 완벽한 시스템을 추구했다. 하지만, 버너 보겔스의 말처럼 실패하지 않는 시스템을 만드는 것은 불가능하다. 우리는 완벽한 시스템을 만들기 보다, 실패에 빠르고 유연하게 …


ELK Stack 훑어보기

February 19, 2023

회사에서 ELK 스택을 사용한다. 최근 로그를 확인하기 위해 Kibana를 많이 사용했는데, ELK 스택의 각각이 어떤 역할을 수행하고, 데이터가 어떻게 흘러 저장되고, 검색되고, 시각화 되는지 간단히 이해하면 더 좋겠다는 생각이 들었다. 이 글에서는 ELK 스택의 각각의 기술을 하나하나 자세히 알아보기 보다는, 데이터 흐름 관점에서 각각의 기술이 어떤 …


멀티 모듈, 그거 왜 쓰는건데? 🤷

February 12, 2023

멀티 모듈이란 Java에서 모듈이란 패키지의 한 단계 위의 집합체이며, 독립적으로 배포될 수 있는 코드의 단위를 이야기한다. 멀티 모듈 프로젝트는 상호 연결된 여러개의 모듈로 구성된 프로젝트를 의미한다. 멀티 모듈 프로젝트의 각 모듈은 전체 서비스의 구성요소로서 동작한다. 각 모듈은 독립적으로 빌드할 수 있는 것이 특징이다. 즉 한 프로젝트에서 특정 모듈…


카프카가 무엇이고, 왜 사용하는 것 일까?

February 05, 2023

메시지 큐와 MOM 카프카를 이해하기 위해서는 메시지 큐와 MOM을 먼저 알아야한다. 메시지 큐는 분산화된 환경에서 발신자와 수신자 사이에서 메시지를 전송하고, 수신하는 기술을 의미한다. MOM(message oriented middleware)를 통해서 구현된다. 메시지큐를 왜 사용할까? 메시지 큐를 사용하면 발신자와 수신자가 서로를 직접 알 필요 없…


코틀린 기초 (4) - 클래스, 인터페이스

January 04, 2023

이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 클래스 클래스의 정의 코틀린에서 클래스는 위와 같이 정의한다. 주 생성자 클래스 이름 우측의 키워드를 통해 클래스의 생성자를 정의할 수 있다. 이를 주 생성자(Primary Constructor) 라고 한…


코틀린 기초 (3) - 함수

January 04, 2023

이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 함수 함수의 정의 위와 같이 이라는 키워드를 사용하여 함수를 정의한다. 반환 타입은 메소드 시그니쳐 맨 뒤에 변수와 동일하게 을 사용하여 명시한다. 나머지는 자바와 비슷하다. 참고로 코틀린의 함수는 자…


2022년, 25살을 마치며 적어보는 회고

December 31, 2022

나는 걸리지 않고 무사히 지나갈 줄 알았던 코로나를 하필이면 연말에 걸리고 말았다 🤒. 연말 약속도 있고, 가족끼리 새해 해돋이도 보러 가기로 했었는데, 아쉽지만 모두 취소했다. 격리 중 할것도 없으니 제주도 여행 중 쓰기 시작한 2022년 회고를 마무리 지어보려고 한다. 우아한테크코스 4기 백엔드 수료 올해 2월부터 11월까지 진행된 우아한테크코스 4…