본문 바로가기
728x90

전체 글125

2024년 회고와 내년 목표 설정 참 많은 일이 있었던 2024년인 것 같다.개인적으로나 회사에서나 참 많은 변화가 있었다. 글을 잘 쓰지는 못하지만 내년에 이 글을 읽을 나에게 또 이 글을 읽어주시는 고마운 분들에게 조금이나마 귀감이 될 수 있도록 열심히 정리해봐야지.2024년도 리비짓개인 공부우선 올해 읽은 책은 다음과 같다.클린코드클린 아키텍쳐디자인 패턴의 아름다움 (2회독)자바 웹 넥스트 스텝 (2회독)개발자 온보딩 가이드친절한 SQL 튜닝개발자를 위한 레디스가상 면접 사례로 배우는 대규모 시스템 설계 2DDD start!오브젝트Effective testing스프링 공식 문서이 외에도 의도치 않은 광고가 될까봐 다 말할 순 없지만, 조영호님께서 하시는 도메인 주도 개발의 사실과 오해나 김영한님 자바 강의 등의 인프런 강의, 유튜브.. 2024. 12. 31.
@SpringBootTest의 webEnvironment를 통한 통합테스트 환경 구축 및 비교하기 최근 사내에서 라이브러리 버전을 올리고 나서 배포를 하려고 생각해보니, 어디서 오류가 날지 알 수 없어 매우 불안해하며 배포했던 기억이 있다. 자연스레 머릿속에 통합테스트와 인수테스트가 떠올랐고, 통합 테스트 환경 구축에 대한 이야기를 해보고자 한다. 스프링에서는 @SpringBootTest를 통해 보다 쉽게 통합 테스트 환경을 구축할 수 있다. 이러한 환경을 구성하는 다양한 방법이 있는데 이에 대해 알아보자. webEnvironment = WebEnvironment.MOCK 와 mockMvc를 이용한 통합 테스트@SpringBootTest의 기본 설정인 WebEnvironment.Mock은 WebApplicationContext를 실제로 로드하긴 하지만 SpringBoot의 Servletcontaine.. 2024. 11. 3.
ThreadLocal과 MDC를 통해 알아보는 스프링에서의 로깅 원리 오늘은 ThreadLocal과 MDC 관련해 포스팅해보고자 한다.  우선 ThreadLocalThreadLocal은 무엇인가?정의를 ChatGpt에게 물어봤다. ThreadLocal은 프로그래밍에서 스레드 간에 데이터를 공유하지 않고, 각 스레드에게 독립적으로 데이터를 제공하기 위한 메커니즘입니다. 자바에서 ThreadLocal은 스레드 수준의 데이터 저장소를 제공하는 클래스입니다.ThreadLocal을 사용하면 한 스레드에서 저장한 데이터를 다른 스레드에서 직접 접근할 수 없고, 각 스레드에게 독립적인 데이터를 제공할 수 있습니다. 이는 스레드 간의 데이터 공유를 방지하고 스레드 간에 충돌이나 경합 상태를 피할 수 있도록 도와줍니다.by ChatGpt 즉, 스레드 별로 관리할 수 있는 저장소라고 할 수.. 2024. 11. 3.
[스프링 AOP] 3. 스프링 AOP 스프링에서 빈이 프록시로 변환되는 과정 이전 글에서는 스프링에서 빈을 만드는 방법과 그 원리에 대해서 알아보았다. 이번 글에서는 언제 스프링이 일반 빈을 스프링으로 바꾸어 주는지 알아보자. 스프링에서 빈이 프록시로 변환되는 과정도대체 언제 스프링은 순수하게 만들어진 Bean을 프록시로 바꿔쳐서 부가기능을 추가해주고 Advisor들을 넣어주는 걸까? 참고로 스프링에서는 프록시를 적용할 필요가 없다면 프록시가 아닌 일반 자바 객체를 빈으로 등록한다.@Serviceclass ExampleService() { fun saveInternal() { }}@SpringBootTestclass ProxyTest { @Autowired lateinit var exampleService: ExampleService @Test .. 2024. 11. 3.
728x90