분류 전체보기 7

[Spring] H2로 @SpringBootTest 적용 시 Table not found 에러

가끔 그런 날이 있다. 맨날 되다가 갑자기 안될 때 ^^; 평소처럼 Spring Boot 환경에서 H2 DB로 테스트 케이스를 작성하고 있었는데 갑자기 "Table xxx not found" 에러를 만나게 되었다. spring.datasource 설정들을 h2로 완료하고, schema.sql, data.sql을 test/resources폴더에 등록해두었는데.. 왜 안 되는 거지?! 그때부터 구글링을 시작했다. 스프링을 사용하고, 항상 최신 버전으로 업데이트하면서도, 릴리즈 노트를 잘 안 읽었던 나를 반성한다. 오늘은 Spring Boot 2.5 버전에서 DataSource 초기화와 관련된 변경사항을 살펴보려고 한다. Spring Boot 2.5 Release Note Spring Boot 공식문서 더보기..

#INTERMEDIATE 2022.04.12
[ETC] 성능 테스트를 위한 nGrinder 설치 및 사용해보기 (Docker)

[Goal] API 성능 측정을 위해 nGrinder를 설치 및 사용해본다. [Reference] Architecture Docker Installation Test Configuration Guide nGrinder는 Naver에서 만든 성능 측정 도구입니다. 기본적인 아키텍쳐는 아래와 같습니다. nGrinder를 사용하기 위해서는 Contoller와 Agent를 실행시켜야 합니다. 저는 Docker로 실행해보았습니다. Controller $ docker pull ngrinder/controller $ docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 1200..

#BASIC 2022.02.13
[Kotlin] Functional (SAM) Interface

[목표] SAM Interface 이해 [참고] 공식문서 Functional (SAM) interfaces | Kotlin kotlinlang.org What is SAM? SAM은 Single Abstraction Method의 약자로 하나의 추상 메소드를 가지는 것을 의미합니다. Kotlin에서는 이런 SAM interface를 functional interface라고 부릅니다. Functional Interface는 여러 non-abstract member(0..N개)를 가질 수 있지만, 오직 하나의 abstract member만 가질 수 있습니다. 일반적으로 인터페이스를 선언하고, 인터페이스를 구현하는 클래스를 상속하여 사용하는 것과 달리 Functional Interface는 람다 표현식을 통해..

#BASIC 2022.02.07
[Gradle] Custom Plugin 만들어보기

[목표] Gradle Task를 만드는 간단한 플러그인 작성 > maven local에 배포 > 해당 플러그인 활용해보기 [Usage] / 공식문서 참고 / kotlin 사용 (개발언어, DSL) / java-gradle-plugin, maven-publish 플러그인 활용 [라이브러리 프로젝트] 먼저 간단하게 아래와 같이 GreetingPlugin 클래스를 만들고, 플러그인을 생성하도록 설정합니다. build.gradle.kts group = "org.example" version = "1.0-SNAPSHOT" repositories { mavenCentral() } plugins { kotlin("jvm") version "1.6.10" `java-gradle-plugin` `maven-publish..

#BASIC 2022.02.06