블록체인실 제 1회 BE 세미나 - @Transactional 동작 방식
Presentation 2024. 2. 2. 21:45

지식 공유의 장이 필요하다고 열심히 얘기했더니, 이런 날이 왔다. 팀 내 코드 리뷰 문화 정착에 이어 2주에 한번 진행하는 세미나, 개발 위클리까지 잘 정착시켰다. 세미나를 정착시킨 장본인이니, 1회 발표를 담당했다. 주제는 Spring @Transactional 의 동작 방식인데, R2DBC 의 Transactional Manager 를 제외한 나머지가 그 범위다. 추후 이 자료를 글로 풀어 사내 위키 및 이 블로그 포스트로도 업로드할 생각이다. 그전에 자료를 먼저 공유한다. 누구라도 Spring 내부 코드를 보거나 구글링한다면 접할 수 있는 내용이지만, 직접 코드를 따라 들어가며 정리하고 또 매일같이 사용하는 어노테이션에 대해 설명할 수 있다는 게 큰 기쁨이었다. 코드가 많은 발표 자료지만, 개발자들..

주야장천 쓰면서도 이름을 몰랐네, 템플릿 메서드 패턴
Design Pattern 2023. 6. 1. 01:11

들어가며 코드를 작성하고 한 번 쭉 읽어보면 뿌듯할 때가 있다. 보통은 할 수 있는 한 가장 멋지게 설계했을 때 그런 느낌이 드는데, 지금 생각해보면 템플릿 메서드 패턴을 사용했을 때였던 것 같다. 템플릿 메서드 패턴 상위 클래스에서 처리의 뼈대를 결정하고 하위 클래스에서 그 구체적인 내용을 결정하는 패턴이다. 상위 클래스 쪽에 템플릿이 될 추상 메서드가 정의되어 있고, 하위 클래스에서 추상 메서드를 구현해 처리한다. 예시 AbstractDisplay, CharDisplay, StringDisplay, Main 4개의 클래스를 이용한다. 이 카테고리에 쓰는 글들은 모두 JAVA 언어로 배우는 디자인패턴 입문을 참고했다. 1. AbstractDisplay.java public abstract class A..

재미있는 ArrayList(와 TroubleShooting)
Java 2023. 5. 31. 01:06

들어가며 지난번에는 ArrayList가 add를 수행하는 방법에 대해 정리했다. 이번에는 업무 수행 중 발생했던 이슈를 통해 ArrayList 의 addAll 에 대해 알아보자. 문제 발생 배경 Affiliate System 구축은 아키텍처 설계, 데이터 모델링부터 개발/배포/운영까지 내가 총괄하는 첫 프로젝트였다. N레벨까지 무한 확장 가능한 다단계 트레이더 영입 및 커미션 지급 시스템인데, 거래소에서 인플루언서 등 영업력이 있는 사람들을 Affiliate 으로 영입하고, Affiliate 은 하위에 또다른 Affiliate 을 데려오거나 직속 고객을 모아 자신의 하부로부터 발생한 거래 수수료의 일정 퍼센티지를 커미션으로 지급받는, 한마디로 다단계 구조라고 할 수 있다. Affiliate 하위에 또 A..