목록전체 글 (110)
Skipalong's tistory
이번 프로젝트에서 QueryDSl로 페이징과 정렬 작업을 하고 있는데 QueryDsl을 사용할 때 BooleanExpression을 아주 유용하게 쓰고 있어서 BooleanExpression 에 대해 한 번 정리해보겠다. 위 코드에서 BooleanExpression인 courseIdEq(courseId) 와 isFollowing(userEntity) 은 jpaQueryFactory에서 where 절에 사용되어 페이징을 해주고있는데 이처럼 BooleanExpression을 메서드화 시켜주면 첫번째 BooleanExpression이 null값을 반환한다면 where절에 두번째 파라미터로 들어간 BooleanExpression이 적용되어 페이징을 처리해주는 것이다. 그리고 메서드화 할때 보면 parameter..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
오늘은 이번 팀 프로젝트의 컨벤션 중 하나인 spotless 를 정리해보겠다. spotless란 코드 포맷을 원하는 방식으로 제한을 두어서 팀원들이 모두 같은 포맷으로 코드를 작성할 수 있도록 도와주는 spring의 기능이다. 우리 팀에서는 아래와같이 spotless규칙을 설정해 두었다. 우리 팀에서는 처음에는 commit시에 자동으로 spotless가 적용되어서 commit될 수 있게 프로젝트의 root디렉토리에서 .git/hooks/pre-commit 파일에 스크립트를 추가해서 사용하려고 했지만 커밋하려고 체크한 파일들만 spotless적용에 실패해서 Github CI의 기능을 사용해서 ./gradlew spotlessApply를 하지 않고 포맷이다르게 푸쉬된뒤 PullRequest를 하게되면 머지에..
오늘부터 팀원들과 함께 본격적으로 최종프로젝트 백엔드 작업에 들어갔다. 이번 프로젝트에서는 자바 17을 사용하면서도 사용해보지 않았던 자바 17에 새로 추가된 record 기능을 사용하기로 컨벤션을 만들었다. 그동안 이런식으로 dto를 만들어서 데이터를 요청받거나 반환을 해주었는데 이번에 record를 사용해보니 코드가 훨씬 간결해진 것 같다. 그리고 이전에는 데이터를 List형식으로 반환할 때 이전에는 stream().map() 을 사용할 때 마지막에 .collect(Collectors.toList()); 를 붙여주었어야 했는데 이제는 간단하게 .toList(); 만 붙여주어서 코드도 보기 쉽고 간결해진 것 같다. 또 이번에 QueryDSL 을 사용하기 때문에 build.gradle에 dependenc..
보호되어 있는 글입니다.