일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 보조스트림
- Java
- list
- Kotlin
- jvm
- 자바
- 토비의 스프링
- thread
- Real MySQL
- Stream
- 쿠버네티스
- 토비의 스프링 정리
- 백준
- mysql
- IntellJ
- 스프링
- OS
- MSA
- gradle
- JPA
- spring
- GC
- K8s
- SpringBoot
- 자바 ORM 표준 JPA 프로그래밍
- 이스티오
- Stack
- Collection
- 스트림
- redis
- Today
- Total
목록spring (15)
인생을 코딩하다.
Spring 프레임워크는 자바 엔터프라이즈 애플리케이션을 개발하기 위한 프레임워크다 즉, 기업들에게 애플리케이션을 보다 쉽게 개발할 수 있도록 서비스를 제공한다 어떻게? 데이터베이스 연동이나 다른 시스템과의 연동같은 복잡한 로직을 분리시켜개발자가 비즈니스 로직 에만 신경쓰도록 만들어주는 핵심 기능이 IOC와 DI다. IOC (Inversion of Control) 제어의 역전 개발자가 아닌 프로그램이 코드의 흐름을 제어하는 것 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)이라 한다. public class HyungIl{ private Child child; public HyungIl(){ this.child = new Hosick(); } public v..
통합테스트 장점 모든 빈을 올리고 테스트를 진행하기 때문에 운영환경과 가장 유사하게 테스트 가능 API를 테스트 할 경우 요청부터 응답까지 전체적인 테스트 진행 가능 단점 모든 빈을 올리고 테스트를 진행하기 때문에 테스트 시간이 오래걸리고 무거움 테스트의 단위가 크기 때문에 테스트 실패시 디버깅이 어려움 외부 API 콜 같은 Rollback 처리가 안되는 테스트를 진행하기 어려움 단위테스트 장점 TDD 의 첫 단계의 기능 단위의 테스트 코드 작성 단위테스트를 진행하면 여러 문제점들을 사전에 차단하여 더 빠른 오류 검증 및 수정을 빠르게 해결 가능 단점 아래 참고 테스트 격리 : 테스트를 서로 격리하여 한 테스트를 실행해도 다른 테스트에 영향을 주지 않도록 해야한다. 즉, 테스트는 순서에 상관없이 독립적으..
open API 활용을 위해 서비스 인증 키를 이용하여 raw 데이터를 받아오면서 공부하게된 RestTemplate 우선 서비스 인증키를 이용하기 위해 String decodeServiceKey = URLDecoder.decode(serviceKey, "UTF-8"); 디코딩하고 UriComponents 클래스를 이용하였다. UriComponents uri = UriComponentsBuilder.fromHttpUrl(url).queryParam("serviceKey", decodeServiceKey) .queryParam("pageNo", pageNo) .queryParam("numOfRows", numOfRows) .queryParam("startCreateDt", startCreateDt) .que..
============ 기준으로 위 4, 아래 5 content().string(containsString()) // Junit4 ==================================================================== content().string(org.hamcrest.Matchers.containsString()))) // Junit5 assertThat(skhu.getId(), is()); // import org.hamcrest.core.Is.is; ================================================================================================== assertThat(skhu.getId..
요즘 공부하면서 이론이 많이 부족하다고 느꼈고, 이론 공부가 정말 중요하다는 생각을 많이 했다. 그러다가 SpringBoot와 Spring 차이를 대강 알고만 있었지, 누가 물어보면 정확히 말을 하지 못할 것 같아서 유튜브, 구글링 등을 통해 이론 학습을 좀 해보았다. 궁금해서 스프링 공식 문서를 살펴보다가, docs.spring.io/spring-framework/docs/current/reference/html/overview.html#overview-spring Spring Framework Overview The term "Spring" means different things in different contexts. It can be used to refer to the Spring Framew..
흔히 알려진 스프링의 장점들 중 하나인 AOP란 것이 있다.'관점 지향 프로그래밍' 이라고 한다. AOP에 관해 공부하던 중, 갑자기 내가 만든 메소드들에 성능을 측정해보고 비교해 보고 싶었다.그래서 AOP를 이용하여 메소드들의 성능을 측정해 볼 수 있다는 것을 알게되어서 구글링을 통한 학습을 하였고 AOP를 적용해서 2개의 메소드에 시간을 시간을 측정해보았다. LogExecutionTime.java와 LogAspect.java는 Controller.java와 같은 패키지에 생성했다. bulid.gradle에 dependancy를 추가해줘야 한다 implementation 'org.springframework.boot:spring-boot-starter-aop' @Target로 어노테이션을 메서드에 사용..
의존성 주입의 종류로는 Constructor, setter, field 타입이 있다. 생성자 주입 (Constructor) Setter 주입 Field 주입 클린코드를 위해서는 필드 주입보다 생성자 주입을 권한다. 간단히 정리하자면 - NullPointExcepton을 방지할 수 있다. - 객체에 final 키워드를 사용 할 수 있다. - 순환 참조를 앱 구동시 검출 할 수 있다. - 생성자의 인자가 많아지면 코드가 더러워져 리팩토링을 하게 된다. Spring Document에 나와있는 내용에도 필드주입은 언급도 안하고, 생성자 기반 주입(Construcor Base Injection)과 수정자 주입(Setter Base InJection)의 차이점에 대해서 설명하고 있다. 또한 생성자 기반 주입을 옹호..