자바 툴로 인텔리제이를 사용한다면 개인 프로젝트라도 코드 스타일을 맞추는 걸 추천한다 국내에서는 보통 구글 혹은 네이버의 스타일을 따르는 것 같다 나는 구글 스타일을 선택했고 웬만하면 커스텀 옵션을 주지 않고 사용하고 있다 GitHub - google/styleguide: Style guides for Google-originated open-source projects Style guides for Google-originated open-source projects - GitHub - google/styleguide: Style guides for Google-originated open-source projects github.com 위 깃허브에 접속해 xml 파일을 긁어다 저장하면 된다 Copy ..
Spring + JPA 사용 시 JPA 구현체 중 하나인 Hibernate가 제공하는 꿀 기능이 있다 show_sql, format_sql 두 속성인데 sql을 정렬된 상태로 볼 수 있게 해 준다 여기에 logging 하위 속성이 제공하는 BasicBinder까지 사용하면 sql parameter에 무슨 값이 들어가는지 알 수 있다 단 이전 글에서도 언급했듯 기본 제공하는 것을 그대로 쓴다면 큰 단점이 있다 sql 쿼리가 점점 복잡해질수록 가독성이 좋지 못하고 조건이 늘어날수록 어떤 값이 어떤 변수에 붙는지 알기 힘들다 또한 ordinal로 보여주기 때문에 column=value 형식이 아닌 [0]=value 형식으로 보게 된다 [P6Spy] Log4j2, p6spy 적용해보기 진행하고 있는 프로젝트에서..
진행하고 있는 프로젝트에서 logging library로 log4j2를 사용하고 있다 후보로는 log4j, logback, log4j2 등이 있었는데 performance 결과를 비교한 것을 보고 바로 정할 수 있었다 log4j2는 비동기 방식으로 처리되기 때문에 다른 slf4j 구현체들을 압살 하는 성능을 가지고 있다 성능이 미친듯이 뛰어나기 때문에 오류 또한 logback에 비해 훨씬 덜 나는 건 보너스다 스프링 부트를 사용하는 경우, 설정 또한 크게 어렵지 않기 때문에 학습 & 성능 향상 목적으로 도입했다 JPA를 사용할 때 application.yml 설정에 아래와 같은 설정을 추가해주면 log4j2를 이용해 이쁘장한 형태로 쿼리가 나온다 spring: jpa: open-in-view: false..
멀티 모듈로 구성한 개인 프로젝트에서 빌드 시간이 지나치게 긴 것 같았다 test 시간에서 지연되고 있었고 우선 생각해 본 것은 @SpringBootTest를 Mockito를 이용한 단위 테스트들로 바꿔보려 했다 그러나 멀티 모듈로 나눴고 모듈 수만큼의 @SpringBootApplication을 가진 클래스가 존재한다 -> 21.09.24 현재는 api, batch 담당 모듈을 제외하고 나머지 @SpringBootApplication을 가진 클래스를 없애주었음 Test에서 @SpringBootTest를 제거하면 여러 개의 SpringBootApplication이 찾아진다고 하며 에러가 터졌다 @SpringBootTest(classes = "{Controller.class}, {Service.class}"..
지난 글 중에 Gradle Multi Module에 관한 글을 올린 적이 있다 이 글은 지난 글에서 이어지는 내용으로 QueryDSL을 사용하는 멀티 모듈 세팅을 계획하고 있다면 참고할만하다 멀티 모듈 세팅에 정답은 없는 것 같다 나는 아래와 같은 형태로 나누어 봤다 module-api -> Controller module-common -> Entity, Repository module-service -> Service, DTO 프로젝트 작성자가 편한 방식으로 구성하면 되는데 한 가지 주의할 점이 있다 바로 모듈 간의 관계성을 조심해야 하는데 기껏 멀티 모듈을 구성했는데 모듈 간의 관계가 깔끔하게 정립되지 않고 실타래처럼 엉켜있다면 그건 멀티 모듈로 구성한 의미가 없다 따라서 핵심은 모듈 간의 관계에 주..
Gradle 멀티 프로젝트 관리 안녕하세요! 이번 시간에는 아시는 분들은 거의다 아시는(!?) Gradle을 이용한 멀티 프로젝트(모듈) 관리에 대해 소개하려고 합니다. 모든 코드는 Github에 있으니 참고하셔서 보시면 더 좋으실 것 jojoldu.tistory.com 이동욱 님의 블로그에서 정말 친절한 설명과 함께 Gradle 세팅을 진행해보았다 진행 중인 개인 프로젝트는 멀티 모듈로 나눌 필요가 없는 규모다 요즘 관심사가 스프링이 가진 다양한 기능들을 접해보는 데 있기 때문에 경험 삼아 시도했다 혼자 진행하고 있는 프로젝트이기 때문에 front까지 루트에서 모듈로 관리하기로 했고 현재는 api, common, service, vue로 나눠둔 상태다, 이 구조는 딱히 좋다고 말할 수 없다 편의상 fr..