[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으로 마이그레이션을 하고 있다. 이유를 묻는다면 정석적이고 모범적인 답안을 제시할 수는 있지만, 실상은 그냥 코틀린을..
[JVM 밑바닥까지 파헤치기] Part 2 - Chapter - Section 2.3 : 핫스팟 가상 머신에서 메모리 모델
·
Reference/JVM 밑바닥까지 파헤치기
저우즈밍(周志明) 저, "JVM 밑바닥까지 파헤치기"를 기반으로 작성한 글입니다.실행 환경은 Windows + Ubuntu 22.04.05 LTS 기반으로 진행합니다.2.2가 런타임 모델, 2.3에서는 메모리 모델을 다룬다.그 중 가장 보편적인 가상 머신인 핫스팟과 가장 보편적인 메모리 영역인 자바 힙을 예시로,객체 생성(할당), 레이아웃, 접근 방법 등의 과정을 다룬다.1. 객체 생성 📌 Overview시작하기 앞서, 일련의 과정을 간략하게 다이어그램으로 표현해봤는데 정확하진 않다.책에서 제공한 다이어그램이 아니기 때문에 대충 의미를 자체로 해석해서 이런 느낌이 아닐까 싶은데, 몇 가지 의문점들이 있다. 클래스 로더 시스템에서 로딩(loading), 해석(resolve), 초기화(initalize)은..