Principes

테스트의 기준과 Test Fixture

GET-P 서버 테스트를 하기 위해서 메서드마다 테스트하는 단위테스트로 JUnit을 사용하고 있었습니다. 저에게 서버라 함은 “견고함”이 중요했습니다. 하지만 어느정도로 테스트를 해야할까?라는 의문은 지속 되었습니다. 주변에 쿠팡 백엔드 개발자인 분에게 질문을 해보았습니다. 예전 우아한형제들 포비님께 “테스트는 마음의 안정감이 드는데 까지”라는 말씀을...

객체는 어떻게 생성해야 하나요? With Builder Pattern

Spring Boot를 사용하여 객체를 생성한다면 여러분들은 어떻게 생성하실 건가요? 요즘 시대에 적용되고 있는 방법들을 소개해 보겠습니다. 먼저 객체를 생성하기 전 필드의 불변과 가변의 유무를 판단해야 합니다. 💡 불변은 “변할 수 없는” 가변은 “변할 수 있는”으로 해석해 주시면 됩니다. 클래스 필드 분류 필드 중 불변 필드만 ...

[Java] final 변수는 언제 쓰는 게 좋을까요?

final을 사용하기 전 우리는 불변 객체에 대해서 알아야 합니다. 불변 객체 (Immutable Object)는 상태가 변할 수 없는 객체, 즉 수정 불가능한 객체를 말합니다. 자바에 final 키워드를 사용해서 객체를 한 번만 할당할 수 있습니다. 즉, 불변 객체를 만들어냅니다. 프로그래밍에서 불변성은 왜 중요할까요? 1. 멀티 스레드 환경에...

Github Action을 이용해 외부 서버에 SSH로 접속하기

여태까지 GET-P 프로젝트는 개발 서버에서 작업을 진행한 후 배포를 할때 직접 배포 서버에 접속해서 git pull을 한 후 도커 컨테이너를 빌드하는 방식이었다. 처음에는 배포를 할 일이 별로 없었기 때문에 문제가 없었지만, 개발이 점차 진행되면서 배포를 하려고 할 때마다 귀찮은 짓을 반복해야 했기 때문에 이번 기회에 Github Action을 사용...

QueryDSL에서 where 다중 파라미터를 이용해 null을 처리하는 방법

GET-P 프로젝트를 진행하던 중, 프론트엔드에서 요청된 쿼리스트링에 따라 필터링을 하는 기능을 구현해야 됐었다. 해당 기능을 구현하는데 있어서 겪은 경험에 대해 정리해보았다. 다음 코드는 GET-P 플랫폼에 등록된 프로젝트 중 인자로 넘어온 프로젝트 상태, 지원 마감일에 따라 데이터베이스로 쿼리를 보내는 findFiltteredProjects 메소...