Remote JVM Debug (feat. IntelliJ, k8s)
·
JAVA
애플 로그인 만드는 작업을 했는데, 애플 로그인은 다른 로그인과는 다른 특징이 있었습니다.http나 로컬호스트에서 사용 불가결국 Dev나 Stag 서버에 배포해 테스트해보는 수밖에 없었는데 디버거 없이 개발하는 과정이 굉장히 불편하게 느껴졌습니다. 하나하나 로그 찍고 배포하고, 또 확인할 거 생겼을 때 다시 로그 찍고 배포해서 확인할 수도 없고...어떻게 하면 원격에서도 디버거를 사용할 수 있을까요?본격적으로 시작하기 전에 디버거에 대해 알아봅시다.  Debugger백엔드 애플리케이션을 만들어 보신 분이라면 대부분 IDE에 내장된 디버거를 사용해보신 경험이 있으실 겁니다.Eclipse, IntelliJ IDEA와 같은 IDE는 디버거를 가지고 있는데요. 개발자들은 이 디버거를 사용해 코드의 플로우나 변수..
[Spring] RestClient URI Encoding 문제 (feat. 퍼센트 인코딩)
·
Spring/Spring
RestClient의 URI 인코딩DefaultUriBuilderFactoryRestClient를 생성할 때 보통 Builder를 사용해 만들게 됩니다.public interface RestClient { ... static RestClient.Builder builder() { return new DefaultRestClientBuilder(); } .... }RestClient.Bulider가 build() 하는 시점에 아래와 같이 DefaultUriBuilderFactory를 기본으로 생성해 가지고 있습니다.public class DefaultRestClientBuilder { ... @Override public RestClient b..
[글또] 글또 9기 회고
·
활동/글또
글또를 시작했던 이유집-회사만 반복하던 일상. 우물 안 개구리가 되어 간다는 생각을 떨칠 수 없었다.회사 일이 바쁘다는 핑계로 어느샌가 블로그를 작성하지 않게 됐다. 글또 지원은 그 때 상황을 타개할 수 있는 가장 좋은 방법이었다.글또에서의 활동은 죽어있던 블로그에 새 활력을 불어 넣었고, 회사 일밖에 모르던 내게 새로운 자극을 주었다.  글쓰기글또 9기를 시작하기 앞서 목표로 설정했던 "미제출하지 않기"는 달성했다.제출한 글총 12회차 중 2번 패스했지만 나머지 10회차의 글은 제출했다. 회사에서 새로운 프로젝트를 시작하면서 굉장히 바빴기 때문에 글을 잘 작성할 수 있을지.. 걱정이 많았다. 그래도 없는 시간을 잘 쪼개서 글을 작성하니 못할 건 아니었다. ✅ 1회차 제출 | 글또 9기 발돋움✅ 2회차 ..
[Test] Testcontainers를 사용한 DB 테스트
·
Test
1. TestContainers란?예전에 프로젝트를 할 때 멱등성 있는 테스트를 구성하기 위해 테스트 DB를 따로 띄워 테스트를 실행했던 적이 있습니다. 그 때는 Testcontainers의 존재를 몰랐기에 Docker Compose로 테스트 DB를 띄워 테스트를 실행해줬습니다. 테스트 DB 컨테이너를 계속 띄워 놓기엔 때문에 컴퓨터 리소스 낭비도 심했기 때문에 통합 테스트를 실행해야할 때마다 테스트 DB 컨테이너를 띄워주고 테스트가 종료되면 컨테이너를 내리는 식으로 진행되었는데 정말 귀찮은 작업이었습니다. 이런 작업을 자동화해주는 Testcontainers입니다. 똑같이 Docker 환경을 사용하며 테스트가 실행될 때 실제 DB와 같이 돌아가는 DB 컨테이너를 띄워주고, 테스트가 종료되면 자동으로 컨테..
[Test] 비즈니스 로직 테스트: 읽기 쉽고 효율적인 단위테스트
·
Test
1. 비즈니스 로직을 테스트하기 전에 알면 좋은 지식1-1. Layered Architecture와 테스트이 글을 보기 전에 아래 글을 먼저 보고 오는 것을 추천한다. 1-1.Layered Architecture와 1-2.테스트의 분류만 읽고 와도 충분하다.https://myvelop.tistory.com/223 [Spring] Persistence Layer Test와 테스트에 대한 고찰단순히 Persistence Layer를 테스트하는 방법만을 서술하는 것이 아닌, 영속 계층을 테스트해야 하는 이유에 대해 정리하고 어떤 방식으로 테스트하는 것이 더 좋은 방법인지 고민한 내용을 정리해myvelop.tistory.com 간단히 요약하자면, Business Layer는 비즈니스 로직을 수행하는 계층으로 B..
[Test] Persistence Layer Test와 테스트에 대한 고찰
·
Test
단순히 Persistence Layer를 테스트하는 방법만을 서술하는 것이 아닌, 영속 계층을 테스트해야 하는 이유에 대해 정리하고 어떤 방식으로 테스트하는 것이 더 좋은 방법인지 고민한 내용을 정리해보려 합니다.  1. Persistence Layer (혹은 Repository Layer)Persistence Layer의 테스트를 하기 전에 Layered Architecture와 테스트의 분류에 대해 먼저 숙지해두면 각 레이어 별 테스트가 어떤 것을 목적으로 하는지 파악할 수 있고, 그 목적에 맞는 테스트를 만들 수 있다.1-1. Layered ArchitectureLayered Architecture에서 각 계층의 역할은 아래와 같다.Presentation Layer: 사용자의 요청과 응답을 처리하는..