테스트의 기준과 Test Fixture
GET-P 서버 테스트를 하기 위해서 메서드마다 테스트하는 단위테스트로 JUnit을 사용하고 있었습니다. 저에게 서버라 함은 “견고함”이 중요했습니다. 하지만 어느정도로 테스트를 해야할까?라는 의문은 지속 되었습니다. 주변에 쿠팡 백엔드 개발자인 분에게 질문을 해보았습니다. 예전 우아한형제들 포비님께 “테스트는 마음의 안정감이 드는데 까지”라는 말씀을...
GET-P 서버 테스트를 하기 위해서 메서드마다 테스트하는 단위테스트로 JUnit을 사용하고 있었습니다. 저에게 서버라 함은 “견고함”이 중요했습니다. 하지만 어느정도로 테스트를 해야할까?라는 의문은 지속 되었습니다. 주변에 쿠팡 백엔드 개발자인 분에게 질문을 해보았습니다. 예전 우아한형제들 포비님께 “테스트는 마음의 안정감이 드는데 까지”라는 말씀을...
GET-P 24년도 서비스 개편을 위해 기존의 코드를 레거시하고 새 Spring Project를 만들다 발생한 일입니다. 여느때와 다름없이 수소 서버 code-server를 사용해 작업하던중, Spring Project Initialize가 안되었습니다. 원인을 찾기 위해서 트러블 슈팅을 하던 중, 메모리 용량이 초과 되었다는 사실을 알게 되었습니다...
Spring Boot를 사용하여 객체를 생성한다면 여러분들은 어떻게 생성하실 건가요? 요즘 시대에 적용되고 있는 방법들을 소개해 보겠습니다. 먼저 객체를 생성하기 전 필드의 불변과 가변의 유무를 판단해야 합니다. 💡 불변은 “변할 수 없는” 가변은 “변할 수 있는”으로 해석해 주시면 됩니다. 클래스 필드 분류 필드 중 불변 필드만 ...
final을 사용하기 전 우리는 불변 객체에 대해서 알아야 합니다. 불변 객체 (Immutable Object)는 상태가 변할 수 없는 객체, 즉 수정 불가능한 객체를 말합니다. 자바에 final 키워드를 사용해서 객체를 한 번만 할당할 수 있습니다. 즉, 불변 객체를 만들어냅니다. 프로그래밍에서 불변성은 왜 중요할까요? 1. 멀티 스레드 환경에...
여태까지 GET-P 프로젝트는 개발 서버에서 작업을 진행한 후 배포를 할때 직접 배포 서버에 접속해서 git pull을 한 후 도커 컨테이너를 빌드하는 방식이었다. 처음에는 배포를 할 일이 별로 없었기 때문에 문제가 없었지만, 개발이 점차 진행되면서 배포를 하려고 할 때마다 귀찮은 짓을 반복해야 했기 때문에 이번 기회에 Github Action을 사용...
GET-P 백엔드를 개발하던 중, Spring Boot에 Pagination이 필요했습니다. 해당 기능을 구현하다 겪은 경험에 대해 정리해 보겠습니다. 먼저 Pagination(Paging)은 Client가 Server로 API 요청을 할 때, 데이터를 나누어 받아오는 것입니다. 크게 Size와 Offset으로 나눌 수 있습니다. /?page={P...
GET-P 프로젝트를 진행하던 중, 프론트엔드에서 요청된 쿼리스트링에 따라 필터링을 하는 기능을 구현해야 됐었다. 해당 기능을 구현하는데 있어서 겪은 경험에 대해 정리해보았다. 다음 코드는 GET-P 플랫폼에 등록된 프로젝트 중 인자로 넘어온 프로젝트 상태, 지원 마감일에 따라 데이터베이스로 쿼리를 보내는 findFiltteredProjects 메소...