코프링으로 개발 시 마주친 에러 관련 포스팅입니다. 개발 환경은 다음과 같습니다. Spring Boot Version : 3.0.1 Java Version : 17 Kotlin Version : 1.8.21 https://github.com/laboratory-kkoon9/kotlin-spring GitHub - laboratory-kkoon9/kotlin-spring Contribute to laboratory-kkoon9/kotlin-spring development by creating an account on GitHub. github.com 배경 커피 주문 어플리케이션 내 entity 개발하면서 발생한 에러입니다. 코드 먼저 살펴봅시다. @Entity @Table(name = "cafe") cl..
코프링으로 개발 시 마주친 에러 관련 포스팅입니다. 개발 환경은 다음과 같습니다. Spring Boot Version : 3.0.1 Java Version : 17 https://github.com/laboratory-kkoon9/kotlin-spring 배경 커피 주문 어플리케이션 내 스웨거를 도입하면서 발생한 에러입니다. import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { val kotlinVersion = "1.8.21" id("org.springframework.boot") version "3.0.1" id("io.spring.dependency-management") version "1.1.0" kotlin("jvm") versio..
연초에 쿼리 스트링 공통 객체를 만든 적이 있습니다. 쿼리 스트링 만들기 외부 API를 받아오는 WebClient 개발 관련 포스팅입니다. 해당 github 주소입니다. GitHub - laboratory-kkoon9/spring-batch-gradle Contribute to laboratory-kkoon9/spring-batch-gradle development by creating an account on GitHub. github.co kkoon9.tistory.com 팀원들과의 지식 공유 자리에서 쿼리스트링 개발 내용을 발표했었습니다. 저는 발표에서 다음과 같은 고민을 공유했습니다. 디미터 법칙 위반 String queryString = QueryStringConverter.convert(Jso..
코프링으로 개발 시 마주친 테스트 실행 시 에러 포스팅입니다. 개발 환경은 다음과 같습니다. Spring Boot Version : 2.7.3 Java Version : 11 배경 커피 주문 어플리케이션 내 카페 닫기라는 테스트 코드를 작성하고 있었습니다. internal class CafeTest { private lateinit var cafe: Cafe @BeforeEach internal fun setUp() { cafe = createCafe() } @Test fun `카페 닫기`() { // given val closedAt: LocalDateTime = LocalDateTime.now() // when cafe.closedAt = closedAt // then assertThat(cafe.c..
Jpa 개발 관련 포스팅입니다. 해당 예시 코드 pr 주소입니다. feat: JpaRepository 파라미터 Mocking 시 NullPointerException 예시 pr by kkoon9 · Pull Request #1 · laboratory-kkoon9/sp github.com Mocking Mocking이란? Mock 이라는 단어의 사전적 의미는 다음과 같습니다. (흉내를 내며) 놀리다 무시하다 거짓된, 가짜의 위 뜻을 미루어 봤을 때, Mocking 이라는 것은 실제 값으로 테스트를 하기 어려우니 가짜 값을 사용할 수 있게 해주는 것입니다. 그래서 보통 테스트 코드를 작성할 때, mocking을 많이 사용합니다. Mocking이 필요한 상황 보통 다음과 같은 상황에서 Mocking을 사용합니..
외부 API를 받아오는 WebClient 개발 관련 포스팅입니다. 해당 github 주소입니다. GitHub - laboratory-kkoon9/spring-batch-gradle Contribute to laboratory-kkoon9/spring-batch-gradle development by creating an account on GitHub. github.com 사용 목적 외부 API의 GET 호출에 필요한 쿼리 스트링, DTO로 만들기 [1]. DTO 내부 parse 메서드 첫 번째 떠올린 방법은 DTO 내에서 쿼리 스트링을 만들어주는 메서드를 만들기입니다. package com.laboratorykkoon9.springbatchgradle.infra.boxoffice.dto; import ..
프로젝트에 DDD를 적용하는 도중 겪었던 고민에 대해서 다룬 포스팅입니다. 개발할 때 도메인 영역에 넣을지 애플리케이션 영역에 넣을지 애매한 경우가 많았습니다. 먼저, 도메인 서비스에 대해서 간단히 알아보겠습니다. 🤨 도메인 서비스란? 책 “도메인 주도 설계로 시작하는 마이크로서비스 개발”에 의하면 도메인 서비스를 다음과 같이 설명합니다. 🧑🏻💻 도메인의 비즈니스 로직 처리가 특정 엔티티나 VO에 속하지 않을 때 단독 객체를 만들어서 처리하는 경우를 뜻한다. 도메인 서비스에서는 상태를 관리하지 않고 행위만 존재한다. 따라서 도메인 로직을 처리할 때 엔티티나 VO와 함께 특정 작업을 처리하고 상태를 본인이 가지고 있지 않고 엔티티나 VO에 전달한다. 책 “도메인 주도 설계 첫걸음”에서도 도메인 서비스를 ..
🤔 DTO와 엔티티 중 validation을 어디에 걸어야 할까? DDD를 도입하는 초기 단계여서 그런지 위같은 질문이 계속해서 들었다. 책에서 배운 걸 떠올렸을 때에는 다음과 같다. 타입에 대한 검증은 컨트롤러 이전인 DTO에서 처리되어야 한다. 비즈니스적인 유효성 검증은 domain 엔티티에서 처리되어야 한다. 하지만 아래 나와있다시피 비즈니스 규칙을 검증하기가 여의치 않다면 도메인 엔티티 사용전에 사용해도 된다. 그래서 결론을 내린 게 입력명 길이나 필수값을 DTO에서 처리하기로 했다. 다음은 상점을 만드는 DTO 예시 코드와 같다. import lombok.Builder; import lombok.Getter; import net.logstash.logback.util.StringUtils; im..
- Total
- Today
- Yesterday
- Effective Java
- 정규표현식
- MSA
- 알고리즘
- Spring Boot
- kotest
- programmers
- AWS
- Olympiad
- JPA
- 백준
- 객체지향
- 이펙티브 자바
- Algorithm
- 테라폼
- node.js
- 클린 아키텍처
- Java
- BAEKJOON
- 디자인패턴
- BOJ
- 프로그래머스
- Kotlin
- kkoon9
- C++
- Spring
- 코테
- 이팩티브 자바
- 클린 코드
- 디자인 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |