개요 최근 도커 배포 가이드 문서를 작업할 일이 있었다(기회가 된다면 개인 환경에서 해보고 블로그에 올려도 좋을 듯 하다). 작업을 마친 후 같은 팀 동료 한 분께 리뷰를 부탁드렸는데 스스로 작성했으면서도 깜짝 놀란 요소가 몇 가지 있었다. 문제 1. 용어를 혼용한다 생각보다 표현 과정에서 여러 단어를 쓰고 있었다. 가령 도커 허브 같은 단어를 저장소 혹은 레포지토리라고 쓰는 등이다. 아마도 헬름이나 깃허브 때문에 저장소나 레포지토리라는 단어가 익숙해서 무의식적으로 함께 쓴 듯 했다. 읽는 입장에서는 확실히 혼란스러울 법한 표현이었다. 만일 해당 환경에 어느 정도 익숙하다면 큰 문제가 없겠으나, 문서화는 당장 인수인계서로 써도 손색이 없을 정도로 작성해야 한다고 생각하는 편이었는데도 스스로 단어들을 섞어..
테스트 개요 테스트는 크게 3개로 나뉩니다. 개별적인 로직을 검증하는 유닛 테스트와, 실 사용자가 수행하는 시나리오대로 흘러가는 것을 검증하는 E2E 테스트, 모듈 간의 호환성과 통합 과정을 검증하는 통합 테스트 등입니다. 개중에서도 유닛 테스트를, 특히 TestContainer를 기반으로 작성한 이야기를 해보려고 합니다. 유닛 테스트는 각 기능 단위에서 수행하는 로직이 무결함을 보여주는 것이 주된 목표입니다. 때문에 의존성이나 다른 코드에 의한 변동이 발생해서는 안됩니다. 가령, 가입한 사용자를 검증하는 로직을 테스트할 때, 다른 로직에서 회원가입을 진행하여 DB에 동일한 ID의 사용자가 있으면 테스트가 실패할 수 있습니다. 만일 중복 가입에 대한 테스트를 하고자 했던 것이 아니라면, 이는 올바른 테스..
시작 오늘은…백엔드 api 서버에서 exception 핸들링 방법을 어떻게 해야할 지에 대한 고민의 흔적입니다… 기능 개발에 급급하다보니 종종 소홀하게 넘어간 부분들이 보일 때가 있는데, 최근 exception을 처리하는 부분이 전반적으로 좀 취약하다라는 생각이 들었습니다. 이번엔 이런 부분이 어떤 문제가 있고 어떻게 더 개선할 수 있을지에 대해 적어봤습니다. 이야기 하기 전에 전역적이고 자주 발생하는 exception 처리를 어떻게 하는지 간단하게 거치면 좋을 것 같습니다. 최소한의 에러 처리 1. Auth-Guard 많은 경우의 API들이 권한을 필요로 합니다. AuthGuard는 말 그대로 인증에 대한 방어 처리를 담당합니다. 요청이 들어오면 헤더에서 인증과 관련한 값(JWT, 쿠키, 세션 등)을 ..