CODE_GARAGE

[Retro] 사람은 무엇으로 움직이는가 - 행복에 대하여

사람은 무엇으로 움직이는가 사람은 항상 행복할 수 없다. 내 인생의 목표는 행복한 사람이 되는 것이다. 살면서 행복한 순간이 오면 내 목표를 이룬 사람이 된 걸까? 불행한 순간이 온다면 나는 실패한 시기를 겪고 있는걸까? 행복한 순간이 있으면 불행한 순간도 있고, 그 사이 형용하기 어려운 어떤 상태도 있기 마련이다. 행복한 상태를 어떻게 정의할 ...

Preview Image

[Interview] 토스 페이먼츠 서버 개발자 공채 면접 후기 (불합)

0. 서론 운이 좋게도 이번에 토스 페이먼츠의 서버 개발자 공채에서 직무 면접을 볼 기회를 얻었다. 그 전에 있던 사전 과제를 거하게 망친 터라, 합격 소식은 굉장히 의외였고, 또 감사햇다. 첫 기술면접을 토스같은 큰 회사에서 경험할 수 있다는 사실에 설레기도 했고 부담이 밀려오기도 했다. 1. 면접 준비 서류와 과제를 중심으로 나만의 방어 논리...

Preview Image

[Lock] 낙관적 락과 비관적 락은 언제 사용해야 할까? 유이한 해결책일까?

0. 서론 최근 프로젝트를 진행하면서 공유하는 리소스에 대해 동시성을 어떻게 제어할지 고민했다. 게시글의 좋아요 숫자를 늘리는 기능이었는데, 여러 사람이 공유하면서 충돌이 잦으니 당연히 비관적 락을 떠올렸다. 하지만, 좋아요의 숫자를 세는 기능이 비관적 락으로 정합성을 빠르고 정확하게 유지해야 할 만큼 중요한 비지니스 로직은 아니었다. 값은 결과적...

Preview Image

[Test] 테스트에서 @Transactional을 써도 될까

0. 서론 최근 우리 Moment의 기능을 추가하던중 기묘한 현상을 마주했다. 임시 질문을 사용하면 상태가 true로 업데이트되어야 하는데 프로덕션 환경에서는 이 처리가 되지 않았다. 애플리케이션 로그에서는 함수가 정상적으로 실행됐지만, DB로 쿼리가 날아가지 않은 것이다. 더 황당한 점은, 작성해둔 테스트 코드에서는 이 변경 사항을 정상적으로 ...

Preview Image

[Infra] SPOF 극복하기

초보 개발자에겐 서버 인프라를 만들어서 배포하는 것도 매우 힘든 일이다. 하지만 EC2에 서버를 올리고, DB에 연결하기만 하면 서비스를 위한 준비는 끝일까? 우리의 서버는 가끔, 위험한 상황을 마주한다. 그것이 악의적인 트래픽 공격일 수도 있고, 단순히 프로그래밍 실수로 인한 서버 자원 과부하일 수도 있다. 상황은 여러가지다. 하지만 유저가 겪는...