본문 바로가기

전체 글

(2)
내가 꿈꾸는 프로그래머로서의 삶 정이 많은 개발자 프로그래밍에 대한 애정 저는 부족함이 많은 개발자입니다. 자랑거리도 아닌 문장을 첫 문장으로 자랑스럽게 작성할 수 있었던 것은, 부족함을 채우기 위해 노력하는 중이기 때문입니다. 부족함을 인지하는 과정과 이상과 현실의 괴리에서 오는 고통을 마주하는 건 항상 힘들지만, 부족함을 인정하고 발전하고자 하는 욕심 많은 제 모습을 좋아합니다. 저뿐만이 아닙니다. 우테코에서 뛰어난 실력을 갖춘 크루들은 알고 있는 것을 내세우기보다 자신의 부족한 점에 대해 이야기하기 바쁘고, 부족한 점을 채우기 위해 밤, 낮 가리지 않고 부단히 노력합니다. 더 나은 개발자가 되기 위한 걱정과 고민은 어쩐지 개발 문화와도 많이 닮아있습니다. 불과 한 달 전 작성한 코드는 레거시가 되어 리팩토링의 대상이 되고, 조금 ..
스프링 이벤트 사용 시 트랜잭션 분리를 위해 어떤 어노테이션을 사용해야 할까? 프로젝트에서 트랜잭션 분리의 필요성을 느낀 배경 기존 중고 거래에 '경매'를 도입한 '중고 경매 거래 플랫폼' 프로젝트를 진행하게 되었습니다. 판매자가 등록한 경매 상품이 낙찰되면 낙찰자와 판매자는 1:1 채팅을 주고받을 수 있게 되고, 채팅을 통해 거래를 진행하게 됩니다. 채팅을 전송할 때 알림이 전송되지 않아 불편함을 겪는 사용자가 발생했고, 알림 기능을 추가하면서 문제가 발생했습니다. 메시지 전송 기능에 알림 기능을 도입하면서 알림 전송 실패로 인해 메시지 전송 트랜잭션이 롤백 되는 문제였습니다. 비즈니스 중요도를 고려하면 사용자 편의를 위한 부가적인 알림 기능이 메시지 전송이라는 메인 기능에 영향을 미치는 것이 부자연스럽다고 판단해 트랜잭션 분리를 고려하게 되었습니다. 먼저 서비스 코드는 다음과 ..