[Spring Boot] 로그 잃고 외양간 고치기
·
Backend/Spring Boot & JPA
💡 Spring Boot에서 로그 파일을 관리하는 방법이 주된 내용이고, 이와 관련한 다양한 정책들은 이론적으로 구상만 해봤습니다.왜냐면, 프리티어 서버에게 로그 관리란 사치일 뿐이니까..😏1. Introduction 📌 Problem로그 관리의 중요성은 알고 있었다.다만, 혼자서 API 개발부터, 프로젝트 관리에 온갖 회의는 물론이고, 개인적으로도 영어, OS, JVM 공부까지 하다가, 또 틈만 나면 Spring 프레임워크 소스 코드 분석하는데 로그 관리에 투자할 시간이 없었을 뿐. 애초에 런칭도 못 하고 있는데다, 어떤 로그가 중요한 지도 모르는 주제에로그 시스템에 시간을 투자하는 것 자체가 의미가 없다고 생각했다. 그런데 엊그제 iOS 팀에서 서버에서 에러가 났다고 확인을 요청했었다.하필 그 ..
[Spring Boot] Spring은 어떻게 Proxy의 Advice 실행 순서를 결정하는가?
·
Backend/Spring Boot & JPA
⚠️ Spring의 Proxy 기반 동작을 모르면 이해하기 어렵습니다.1. Introduction 📌 How Does Spring Determine Proxy Order?바로 이전 포스팅에서 kotlin의 trailing lambda를 사용해 Spring AOP를 벗어나는 방법에 대해 알아보았다. 그런데 포스팅을 쓰면서, '여러 AOP가 동작하는 경우엔 어떻게 해야 하지?'라는 의문이 자연스레 뒤따라 왔다.물론 kotlin이 익숙칠 않아서 넘긴 것도 있지만, 그보다 Proxy 실행 순서를 알 수가 없었다. @Serviceclass UserService { @Transactional @Cacheable public User createUser(UserSaveCommand command) ..
[Spring Boot] Kotlin으로 Spring AOP 탈출하기
·
Backend/Spring Boot & JPA
⚠️ AOP와 Spring Aspect를 어느정도 이해하고 다뤄보신 분이 아니라면 이해하기 어렵습니다.1. Introduction 📌 Reason GitHub - CollaBu/pennyway-was: 🪙 Pennyway Spring Boot Web Application Server🪙 Pennyway Spring Boot Web Application Server. Contribute to CollaBu/pennyway-was development by creating an account on GitHub.github.com위 프로젝트에서 채팅 서버를 점진적으로 Java에서 Kotlin으로 마이그레이션을 하고 있다. 이유를 묻는다면 정석적이고 모범적인 답안을 제시할 수는 있지만, 실상은 그냥 코틀린을..
[Spring Boot] Mockist 안티 패턴에서 벗어난 TDD 도입해보기
·
Backend/Spring Boot & JPA
💡 읽기전에 주의 사항1. 기본적인 TDD와 JUnit, Mockito 라이브러리에 대한 이해를 요구합니다. (초급자용이 아닙니다.)2. 아래 포스트는 정답이 아닙니다.단위 테스트에는 목킹을 최대한 자제하는 고전파와 목킹을 적극 권장하는 런던파가 존재합니다.하지만 최근 들어서 목킹이 안티 패턴이라는 말이 기정사실화 되어감에 따라, 제 경험을 바탕으로 고전파 쪽으로 치우친 이야기를 하고 있습니다.여전히 좋은 TDD에 대해서는 알아가는 과정에 있으니, 참고하실 때 유의하시길 바라는 마음에 서두에 남겨둡니다.시작하기 앞서, 해결책은 카카오페이 기술 블로그에서 가장 많이 영감을 받았습니다.진심으로 감사드립니다.1. Introduction 📌 Am I truly parcticing TDD?나는 요 근래 제대로..