Yun

https://github.com/cheese10yun Java & Backend Developer

Spring 테스트 코드 작성에 대한 나름의 고찰

Spring 테스트 코드 작성에 대한 나름의 고찰

해당 코드는 Github에 공개되어 있습니다. 스프링 기반으로 많은 테스트 코드를 작성하면서 느꼈던 나름의 고찰과 어려움을 정리하는 포스팅입니다. 사실은 테스트 코드 작성 시 효율적인 방법을 소개하는 포스팅을 진행하려 했으나 이런저런 고민들 때문에 명확한 결론이 나지 않아서 이런 고민들을 정리한 포스팅입니다. POJO 테스트는 언제나 옳다 이전에 포스팅한 Test 전략 가이드, Spring Boot

By Yun
생산성 향상 - 비기는 없다

생산성 향상 - 비기는 없다

들어가기 앞서 생산성에 대해서 더 정확히는 생산성을 위해서 많은 것들을 도입하는데 왜 다 실패하는 것인지에 대해서 이야기해보고 싶다. 나는 2016.05 년부터 사회에 나와서 이제 3년 2개월 정도 프로그래밍 경험이 있다. 이런 짧은 경험으로 생산성과 프로세스에 대해서 논하는 게 조금은 부끄럽지만 내 생각을 한번 글로 정리해보고 싶어 이렇게 포스팅을 하려고

By Yun
Spring Actuator 기초 설정 & IntelliJ 활용하기

Spring Actuator 기초 설정 & IntelliJ 활용하기

해당 코드는 Github에 공개되어 있습니다. 스프링은 Actuator를 이용해서 애플리케이션 상태를 종합적으로 모니터링할 수 있습니다. 의존성 주입 dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' } actuator 호출 http://localhost:8890/actuator를 호출하면 위와 같은 Response를 받을 수 있습니다. 기본 설정으로는 모든 endpoint가 노출돼있지는 않습니다. 모든 endpoint를 노출하도록 설정해보겠습니다.

By Yun
Spring Boot JPA Step-15  Querydsl를 이용해서 Repository 확장하기 (2)

Spring Boot JPA Step-15 Querydsl를 이용해서 Repository 확장하기 (2)

해당 코드는 Github를 확인해주세요. JpaRepository의 쿼리 메서드를 통해서 간단한 쿼리들을 아래 예제 처럼 쉽게 만들수 있습니다. public interface AccountRepository extends JpaRepository<Account, Long> { boolean existsByEmail(Email email); boolean exsistByxxx(...) long countByEmail(Email email); long countByxxx(...) } 유사한 쿼리가 필요해지면 쿼리 메서드를 지속적으로 추가해야 하는 단점이 있습니다. 이런 경우에 QuerydslPredicateExecutor를

By Yun
Builder 기반으로 객체를 안전하게 생성하는 방법

Builder 기반으로 객체를 안전하게 생성하는 방법

해당 코드는 Github에 공개되어 있습니다. 실무에서 Lombok 사용법에서 기본적인 Lombk 사용법과 Builder 사용법을 간단하게 정리 한 내용을 먼저 참고하면 좋습니다. JPA를 이용하면 엔티티 객체들을 Builder 기반으로 생성하는 것이 흔한 패턴입니다. 이러한 경우 Builder의 문제점들과 이것을 더욱 안전하게 사용하는 방법에 대해서 이야기해보겠습니다. Builder로 안전하게 생성하자 JPA 엔티티 객체들에 Builder 어노테이션을 이용해서

By Yun
Spring Guide - Service 적절한 크기 가이드

Spring Guide - Service 적절한 크기 가이드

해당 코드는 Github를 확인해주세요. Spring Guide 1. Test 전략 가이드 2. Exception 전략 가이드 3. Domain 객체 가이드 4. 외부 API 가이드 5. Service 적절한 크기 가이드 도메인 레이어는 모든 레이어에서 사용됩니다. 이 때문에 자기 자신의 책임을 충분히 다하지 않으면 많은 영역에서 그 책임을 넘겨받게 됩니다. 이번에는 이 내용을 중심으로

By Yun
Spring Guide -  외부 API 가이드

Spring Guide - 외부 API 가이드

해당 코드는 Github를 확인해주세요. Spring Guide 1. Test 전략 가이드 2. Exception 전략 가이드 3. Domain 객체 가이드 4. 외부 API 가이드 5. Service 적절한 크기 가이드 이번 주제는 외부 API 호출 가이드를 진행하겠습니다. 본 포스팅에서는 RestTemplate 기반으로 설명하고 있지만 RestTemplate에 대한 사용법이 초점은 아닙니다. Request, Response에 대한 로킹, Interceptors를

By Yun
Spring Guide - Domain 객체 가이드

Spring Guide - Domain 객체 가이드

해당 코드는 Github를 확인해주세요. Spring Guide 1. Test 전략 가이드 2. Exception 전략 가이드 3. Domain 객체 가이드 4. 외부 API 가이드 5. Service 적절한 크기 가이드 도메인 객체는 우리가 해결하고자 하는 핵심 비즈니스 로직이 반영되는 곳입니다. 특히 도메인 객체에서 자기 자신의 책임을 충분히 다하지 않으면 그 로직들은 자연스럽게 Service

By Yun
Spring Guide - 에외 처리 전략

Spring Guide - 에외 처리 전략

해당 코드는 Github를 확인해주세요. Spring Guide 1. Test 전략 가이드 2. Exception 전략 가이드 3. Domain 객체 가이드 4. 외부 API 가이드 5. Service 적절한 크기 가이드 Exception Guide 스프링은 예외처리를 위해 다양하고 막강한 어노테이션을 제공하고 있습니다. 일관성 있는 코드 스타일을 유지하면서 Exception을 처리하는 방법에 대해서 소개하겠습니다. 통일된 Error Response

By Yun
Spring Boot JPA Step-15  Querydsl를 이용해서 Repository 확장하기 (1)

Spring Boot JPA Step-15 Querydsl를 이용해서 Repository 확장하기 (1)

해당 코드는 Github를 확인해주세요. Repository Code public interface AccountRepository extends JpaRepository<Account, Long>, AccountCustomRepository { Account findByEmail(Email email); boolean existsByEmail(Email email); List<Account> findDistinctFirstBy... @Query("select *from....") List<Account> findXXX(); } JpaRepository를 이용해서 복잡한 쿼리는 작성하기가 어려운점이 있습니다. findByEmail, existsByEmail 같은 유니크한

By Yun