요근래 kotlin+spring boot2 로 개발을 하고있다. 이중에 코드를 리팩토링하고싶은 부분이 있었고, 이를 리팩토링하는 과정에서 꽤나 삽질을 하게만든 경험을 포스팅하려한다. 뭔가 특정한 내용에 대해 포스팅한다기보다 실제 상황에서 이슈를 만나고, 그 이슈를 해결해가는 과정을 남겨보려한다. 실제 이슈는 회사에서 프로덕션 코드를 리팩토링하는 과정에서 발생한부분이고, 포스팅에서 나오는 코드는 해당 코드를 예제화한 코드이다. 참고로 아래 예제코드를 위한 개발환경은 다음과같다. - kotlin - spring boot 2.1.5 - spring boot stater web - spring boot starter jdbc (필수) 1. 코드작성 abstract class BaseApiRepository(pr..
빠르게 알아보자. 포스팅은 gradle 기준으로 설명한다. build.gradle에 아래 설정을 추가해준다. test { useJUnitPlatform() } spring starter test 에서 기존 junit을 제외해준다. dependencies에서 아래처럼 설정해준다. testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude module: 'junit' } 이제 junit5 의존성을 추가해줄차례다. testImplementation('org.junit.jupiter:junit-jupiter-api') testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine') 위 ..
Spring 에서 제공하는 http client로는 대표적으로 RestTemplate이 있다. 이 RestTemplate으로 http 요청을 날리게되면 기본적으로 그때마다 connection을 맺고 응답을 받으면 끊게된다. 이를 db connection pool 처럼 connection pool을 만들어서 관리할 수 있다. 이를 설정하기위해서는 일단 RestTemplate에 대해서 먼저 이해를 해야하는데 Spring 에서 제공하는 RestTemplate은 직접 http 요청을 하는 역할을 수행하지않는다. 직접 수행하는 클래스를 한번 래핑한 어댑터 역할을 하는 클래스이다. 기본적으로는 jdk에서 제공하는 HttpUrlConnection 클래스를 이용한다. 우리는 apache 에서 제공하는 HttpClien..
두번째 포스팅을 할지말지 확신이 안섰는데 어느정도 삽질을 통해 알게된점들이 있어서 두번째 포스팅을 한다. spring boot에 적용하기라는 제목치고는 앞선 포스팅에서 spring boot 관련 얘기가 하나도 없어서 이에 관한 내용도 적으려한다. 일단 기본적인 구성은 앞 포스팅에서 다 진행됐다. 간략한 테스트를 진행해보자. jooq API를 사용할때는 DSLContext 객체를 이용하게되는데 이 객체는 spring boot 자동구성에 의해 spring bean으로 등록된다. 편하게 주입받아서 사용하면된다. 우리가 설정해줘야할것은 datasource 관련 설정만 해주면된다. spring: datasource: driver-class-name: org.sqlite.JDBC url: jdbc:sqlite::r..
신규 프로젝트에 DB access를 어떤 프레임워크를 사용할까 고민을 해봤다. 일단 난 MyBatis만 사용해와서 이번에 다른 프레임워크를 사용해보고싶은 마음이 있었다. 후보군은 이렇다. JPA JdbcTemplate MyBatis jooq 아직 실무에서 JPA 경험이 없는터라 JPA를 사용할까도 생각해봤지만 팀 구성원에 JPA에 경험이 있는 사람이 없고, 다른 기술셋들도 생소한걸 사용하기로해서 패러다임 자체를 바꿔야하는 JPA는 좀 무리라고 생각했다. 서비스 구성이 readonly라서 select만 필요한것도 JPA를 욕심내지않는것에 한몫하기도했다. 그러던중 jooq 라는 프레임워크가 있는걸 알게되어 도입을 고민해보게됐다. 각 기술에 대한 결정을 하게된 배경은 이렇다. JPA JPA에 대한 내용은 위에..
현재 개발하고있는 환경에선 이미 CI가 구축되어있어 특별히 내가 작업할일은 없었는데 이번에 신규 프로젝트를 들어가면서 직접 구성을 해야할 일이 생겼다. 이런저런 자료들이 많긴한데 딱 내가 원하던 한글 블로그는 없어서 작성을 해본다. 시작하기전에 말하면 jenkins가 너무 잘해줘서 딱히 내가 할일이 많지 않아 놀랐다. Jenkins plugins jenkins에서 blue ocean 플러그인을 설치한다. 음.. 개인적으로 나는 jenkins 쓰면서 플러그인이 없어서 몇번 삽질을 한경험이 있어서 jenkins 신규로 띄우고 바로 github, blue ocean, pipeline 플러그인을 왠만한건 다 설치했다. ㅡ.ㅡ; 혹시 이 포스팅을 보면서 자신의 Jenkins와 메뉴가 다르다던가 하면 저 3개 관련..
- Total
- Today
- Yesterday
- java8
- toby
- Design Pattern
- OOP
- Spring
- javascript
- DesignPattern
- db
- Kotlin
- programming
- frontcode
- go-core
- java
- code
- spring cloud
- Git
- mariadb
- 정규표현식
- generics
- servlet
- frontend개발환경
- JPA
- TEST
- MySQL
- backend개발환경
- clean code
- Jackson
- JavaScript Core
- EffectiveJava
- http
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |