Spring Boot, Gradle 환경에 Querydsl 설정 방법 Spring Boot, Querydsl 최신 버전을 사용하면서 QueryDSL 적용 방법에 변동이 생긴 듯하다. 참고로, 현재 프로젝트는 spring-boot-2.6.3, gradle-7.3.2 버전을 사용 중이다. . 기존 방식대로 적용을 했을 때, 아래와 같은 에러가 발생하게 되었다. Unable to load class 'com.mysema.codegen.model.Type'. . 그럼.. 이제 어떤 방법으로 QueryDSL 설정을 해주어야 할지 확인해 보자! Gradle 먼저 Gradle 설정 방법이다. // 1. queryDsl version 정보 추가 buildscript { ext { queryDslVersi..
[JPA] JSON 직렬화 순환 참조 해결하기 순환 참조. JPA에서 양방향으로 연결된 엔티티를 JSON 형태로 직렬화하는 과정에서, 서로의 정보를 계속 순환하며 참조하여 StackOverflowError 를 발생시키는 현상 . 직렬화. 객체/데이터를 바이트 형태로 변환하여 네트워크를 통해 송수할 수 있도록 만드는 것 Situation Product 에서 ProductCategory를 조회할 수도 있고, ProductCategory 에서 Product 도 조회할 수 있어야 한다. Controller 에서 Product 목록을 JSON 형태 직렬화하여 반환해야 한다. @Getter @NoArgsConstructor @Entity public class Product extends BaseTimeEntity..
[우아한 Tech] 우아한 ATDD 2021년 3월에 진행된 우아한 테크 세미나에서 류성현님의 '우아한 ATDD' 스트리밍 영상을 보고 정리한 내용입니다. ATDD(인수 테스트 주도 개발)는 요구사항에 대한 인수 테스트를 이용하여 요구사항을 명확히 하고 모든 팀원이 요구사항에 대한 공통의 이해를 바탕으로 개발을 진행하는 방법. TEST vs TDD TEST : 구현 -> 테스트(검증) like 일기 TDD : 테스트(요구사항) -> 구현 + @ like TODO List BDD : 행위(요구사항) -> 구현 ATDD : 인수 테스트(요구사항) -> 인수 테스트 -> 구현 ...(요구사항) - User Story 1. 논의 - Discuss - 기획/개발/QA 함께 인수 조건 회의 참여 - ..
[IntelliJ] Spring, Maven, Tomcat Setting in Intranet (인트라넷 환경에서 설정) 인터넷이 연결되지 않은 or 인트라넷 PC에서 Spring + Maven + Tomcat Server Project 설정을 해보잣! 😎😆😁 필요 파일 크게 네 가지 정도의 파일이 필요하다. java Maven (Maven home) Maven Repository (Local Repository & Maven setting) tomcat server 프로젝트 준비 기존 프로젝트 사용 기존 Eclipse에서 사용하던 프로젝트를 그대로 사용할 경우, IntelliJ 빌드 과정에서 Eclipse에서 이미 생성된 클래스 파일과 충돌이 발생할 수 있다. /target 디렉터리를 삭제한 후 진행해..
Spring Boot 2.4 profile 구동 방식 Spring Boot 2.4 버전이 릴리즈 되면서 application.properties, application.yml 파일 로드 방식에 변화가 있었다. 설정 파일을 단일 파일로 사용할 경우 해당되지 않겠지만, 각 프로필별 속성이 필요할 경우 변화에 대한 인식이 필요하다. 우리는 시간이 없기에.. 관련 Spring blog 내용을 요약해보았다. . . 우선 크게 관심 갖어야 할 부분은 아래 항목인 것 같다. \1. spring.profiles -> spring.config.activate.on-profile \2. spring.profiles.include -> spring.profiles.group \3. spring.config.activate...
SpringBoot & Mybatis & MS-SQL 오랜만에 Spring Mybatis 설정을 할 일이 생겼는데, 기억이 가물가물해서.. 정리를 해보았다. 하지만, 가급적 메서드 기반으로 쿼리를 생성해주는 Querydsl 을 사용하는 것으로.. Dependency 먼저 Mybatis 와 mssql-jdbc 관련 종속성을 추가해 주자. mssql-jdbc 버전은 java 버전과 mybatis-spring-boot 버전은 spring-boot 버전과 맞춰주자. 아무 버전을 선택했다가.. 종속성 문제로 복잡해 지니 잘 확인해 보자! 😢 pom.xml com.microsoft.sqlserver mssql-jdbc 9.4.1.jre8 org.mybatis.spring.boot mybatis-spring-boot..
Kotlin 토이 프로젝트에 Kotlin 언어를 적용해볼 예정이다. 하지만.. Kotlin에 대해 아는게 0.1도 없기에.. 작년 Jason 님이 우아한 테크 세미나에서 발표하신 내용을 기반으로 간략하게 정리 후 시작해보려고 한다. 어디 가서 코프링 매우 알은체하기! : 9월 우아한 테크 세미나 이 발표를 보고 코프링 매우 알은체하며 프로젝트를 진행해야지 🤠 Basic class Person(val name: String, val age: Int = 1) { var name: String? = null } val : 파라미터 읽기 전용 val age: Int = 1 : 파라미터 기본 인자 var : 변경 가능 프로퍼티 String? : null 이 될 수 있는 타입 Item 1. 표준 라이브러리 코틀린 ..
Spring Boot API TDD Start 현재 회사에서는 테스트 코드 문화가 없다 보니 간접적인 경험을 많이 해보고자 관련 영상들을 많이 찾아보고 있다. 최근 YOUTHCON'21 을 보고 손주원님이 발표하신 Spring Boot TDD 발표가 너무 인상 깊었고 많은 도움이 되어 정말 간략하게 내용을 정리해 보았다. 미래의 나 혹은 또 다른 누군가가 이 글을 보고 도움이 되길.. 인수 테스트 인수 테스트 (Acceptance Test) 사용자의 시나리오(요구사항)를 기반으로 수행하는 테스트 소프트웨어가 사용자 요구사항을 충족하는지에 대한 테스트가 진행 인수 조건 (Acceptance Creteria) 사용자의 요구사항 @SpringBootTest 통합 테스트를 위한 @annotation 여러 모듈들..