개요 프로젝트를 하다보면 count를 자주 사용하게 된다. 게시글의 수, 댓글의 수, 친구 수, 알림 수, 통계 처리 등 아주 다양한 count 요구사항이 존재한다. Spring JPA를 사용하면 count 키워드 (쿼리 메소드)를 이용해 아주 쉽게 해당 기능을 구현할 수 있다. 하지만 우리가 무심코 사용하는 count 쿼리, 과연 데이터 수가 많을 때에도, 그리고 request 수가 (또는 TPS) 많을 때에도 잘 작동할까? count 를 구현하는 5가지 방법들과, 각각의 장단점을 알아보자. 개발 환경 1. Framework : Spring Boot 2.6 2. Programming Language : Java 11 3. DataBase : MySQL 8 4. OS : macOS Ventura 13.2..
개요 개발을 하면 할 수록, 테스트의 중요함에 대해 깨닫게 된다. 규모가 큰 프로젝트에서 코드 변경으로 인한 예기치 못한 사이드 이펙트를 방지해주고, 의도한 대로 기능이 동작하는지 빠르게 확인할 수 있게 만들어주는 테스트 코드. 작성한 후 돌려보는 것 까지 필수로 해야겠지? 🤔 테스트 컨테이너를 이용해 테스트 멱등성을 유지하며 손쉽게 프로젝트 테스트를 수행해보자! 테스트 환경을 만드는 세 가지 방법 📚 Test용 DB를 세팅하는 여러가지 방법 대부분의 경우 우리는 운영 환경별로 Property (Properties)를 분리해서 사용한다. 각 property 내부엔 active 환경에 맞는 DB, Log level 등 다양한 환경 설정이 존재한다. 개인적인 경험으로는, prod(운영 서버), dev(개발 ..
💁♀️ 앗! 세상은 위험하니 이 API 문서화 자동화 툴을 챙겨 가렴! 📌 시작하기 전, 내가 API나 REST API에 대해 잘 모른다면? 더보기 ✏️ API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말이다. 이렇게 말하면 한국어인데도 뭔 소린지 모르겠다. (영어가 섞여있긴 해?) 좀 더 간단하게 풀어보자면, 일종의 식당 종업원이라고 보면 된다. 식당에 방문한 손님이 메뉴도 보지 않고, 주방장에게 먹고 싶은 음식을 바로 요청한다고 생각해 보자. 우리 집은 보리밥 정식 파는 집인데 바삭한 황금올리브 한 마리 냉큼 튀겨오라고 난동을 부리는 거다. 정말 곤란하다. 따라서 API를 앞단에 세워 정해진 규격에 맞춰진 요청만 받을 수 있게 하는 거다...