profile
예전 블로그: https://shinilhyun.github.io/

Querydsl Gradle 설정

Spring Boot, Querydsl 사용 시 Gralde 설정 방법Querydsl이 생성하는 QClass들의 경로를 설정한다. (생성된 QClass들은 git에서 ignore해주자)설정이 제대로 되면 Gradle task에 아래처럼 compileQuerydsl 이

2020년 3월 18일
·
3개의 댓글
post-thumbnail

객체지향의 사실과 오해 리뷰

최근 실무에서 고민되는 부분이 있었다. 패키지는 어떻게 구성하는 것이 좋을까..? Service는 어떻게 나누는 것이 좋을까?답을 얻기 위해 이리저리 찾아보던 중 우아한형제들에서 진행한 \[우아한테크세미나] 190620 우아한객체지향 by 우아한형제들 개발실장 조영호님

2020년 3월 18일
·
0개의 댓글

Querydsl 동적 쿼리

DB에서 값을 조회할 때 조회 조건이 동적으로 바뀌어야 하는 경우가 종종 있다.SQL 쿼리를 이용해 조회할 때 주로 when/case 등의 문법을 사용하여 해결하는 경우가 있는데.. 개인적으로 when/case 문은 안티패턴이라고 생각한다.. (SQL을 너무 복잡하게

2020년 3월 16일
·
0개의 댓글

[Spring]컨트롤러 예외처리를 자동으로

Controller 를 작성하다 보면 예외처리를 반복적으로 작성해야할 때가 있다.예를 들어 IllegalArgumentException일 경우 400(BadRequest)를 응답한다거나 알 수 없는 Exception 의 경우 500(INTERNAL_SERVER_ERRO

2020년 3월 15일
·
0개의 댓글

Spring Data JPA 사용자 정의 리포지토리

Spring Data JPA 에서는 리포지토리의 인터페이스만 정의하고 구현은 스프링이 자동으로 생성해준다.하지만 다양한 이유로 인터페이스의 메서드를 직접 구현해야할 때가 있다.JPA 직접 사용 EntityManager스프링 JDBC Template 사용 MyBatis

2020년 3월 14일
·
0개의 댓글

JPA 엔티티 작성 - JPA Auddit 적용

실무에서 엔티티를 생성하다보면 auddit(감사) 목적으로 거의 모든 엔티티에 들어가는 필드(컬럼)들이 있다. 일일이 작성하기 매우 귀찮은데.. Spring Data Auddit 기능을 활용하여 귀찮을 일을 줄일 수 있습니다.. 1. @EnableJpaAuditing

2020년 3월 13일
·
0개의 댓글

JPA 엔티티 작성 - Setter 금지

엔티티를 작성함에 제가 생각하는 몇가지 원칙(?)이 있습니다.그중 엔티티(객체)의 Setter 사용 금지 원칙(?) 에 대해 알아보겠습니다.엔티티를 작성할 때 습관적으로 모든 필드에 Setter를 생성하는 경우가 있습니다.하지만 Setter를 무분별하게 남용하다 보면

2020년 3월 10일
·
0개의 댓글

[Java] Optional 관련..

Spring Data JPA 사용 시 Repository에서 리턴 타입을 Optional로 바로 받을 수 있도록 지원하고 있습니다.Optional을 사용하면 반복적인 null 체크를 줄일 수 있기 때문에 잘 사용하면 매우 편리한 것 같습니다.Optional 관련하여 사

2020년 2월 25일
·
0개의 댓글

[Java] try-with-resource

파일 입출력 등 자원 반납이 필요할 때 try-catch-final 구문을 주로 사용하였었는데 이런 경우 try-with-resource 구문을사용하면 코드 가독성이 더 증가하는 것 같습니다.기존의 자원 반납을 위한 try-catch 문예외시 자원을 자동으로 닫아주는

2020년 2월 25일
·
0개의 댓글

[Spring] 필드주입 -> 생성자 주입방식으로 변경

일단, 의존성 주입의 종류로는 Constructor, Setter, Field 타입이 있다.Constructor(생성자)SetterField필드 인젝션 방식을 보통 많이 사용하는데 필드 인젝션은 아래와 같은 단점들이 있다.1\. 단일 책임의 원칙 위반의존성을 주입하기가

2020년 2월 25일
·
0개의 댓글

DTO에 관한 생각

과거 회사에서 DTO를 사용하지 않고 Entity로 통신을 주고 받는 경우가 있었다.. 결국 대참사가 벌어졌고 DTO를 도입하게 되었던적이 있다.대부분의 Entity 클래스들은 대부분 DB 테이블 스키마와 1:1로 매칭된 형태의 구조를 가지고 있기 마련이다. 특히 JP

2020년 2월 24일
·
3개의 댓글

스프링 데이터 JPA - 프로젝트 세팅

postgreSQL을 이용하였으며 어떤 DB를 사용하더라도 무방Docker PostgreSQL 사용법도커설치는 따로 설명하지 않음실행중인 도커 프로세스 확인 : $ docker ps모든 도커 프로세스 확인 : $docker ps -a컨테이너 실행 : docker sta

2020년 2월 24일
·
0개의 댓글
post-thumbnail

스프링데이터 JPA 개념 및 학습 이유

JPA(Java Persistence API)를 보다 쉽게 사용할 수 잇도록 여러 기능을 제공하는 스프링 데이터 JPA에 대해 배워나가기 위한 시리즈를 블로깅하려 한다.도메인 주도 개발 가능애플리케이션 코드가 SQL 데이터베이스 관련 코드에 잠식 당하는 것을 방지하고

2020년 2월 24일
·
0개의 댓글

Spring Boot Devtools

스프링 부트가 제공하는 optional 한 tool주로 캐쉬 기능을 꺼놓거나 자동 재구동 등의 기능을 제공한다캐시 설정을 개발 환경에 맞게 변경.(가장 기본적인 기능)클래스패스에 있는 파일이 변경 될 때마다 자동으로 재시작직접 껐다 켜는거 (cold starts)보다

2020년 2월 24일
·
0개의 댓글

스프링 부트 테스트

시작은 일단 spring-boot-starter-test를 추가하는 것 부터@SpringBootTest@RunWith(SpringRunner.class)랑 같이 써야 함. 빈 설정 파일은 설정을 안해주나? 알아서 찾음. (@SpringBootApplication) we

2020년 2월 24일
·
0개의 댓글

[Java] 자바 코딩 규칙 (Java Code Conventions)

코딩 규칙은 여러 가지 이유에서 프로그래머에게 중요하다 소프트웨어를 개발하는 일련의 모든 과정에 들어가는 비용 중 80%가 유지보수에 쓰여진다.소프트웨어의 직접 개발한 개발자가 그 소프트웨어의 유지보수를 담당하는 경우는 거의 보기 힘들다.코딩 규칙을 지키면 다른 개발자

2020년 2월 24일
·
0개의 댓글