일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GC
- 이스티오
- SpringBoot
- JPA
- jvm
- 자바
- Collection
- OS
- 쿠버네티스
- 보조스트림
- MSA
- gradle
- 백준
- 스프링
- Stack
- K8s
- 스트림
- Stream
- spring
- 자바 ORM 표준 JPA 프로그래밍
- IntellJ
- list
- 토비의 스프링
- mysql
- 토비의 스프링 정리
- redis
- thread
- Kotlin
- Real MySQL
- Java
- Today
- Total
목록분류 전체보기 (152)
인생을 코딩하다.

통합테스트 장점 모든 빈을 올리고 테스트를 진행하기 때문에 운영환경과 가장 유사하게 테스트 가능 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..

CORS : Cross - Origin Resource Sharing 프론트 관련 서버를 별도로 띄었는데 백엔드 API 서버와 완전히 다른 주소로 인식하게 되었다. 이런 경우에 보안성 때문에 서로 접근할 수 없게 처리가 되어있었다. 프론트 서버는 http://localhost:3000/ 이였고, 백엔드 API 서버는 http://localhost:8080/restaurants 였다. 개발자도구(F12)에서 API 서버를 호출하기 위해 fetch('http://localhost/restaurants') 를 해주었는데 아래와 같은 CORS 에러가 발생하였다. 그래서 이 부분을 스프링에서 제공하는 @CrossOrigin을 이용해서 해결하고자 하였다. 그래서 controller 클래스 맨 위에 @CrossOri..

그동안 TestCode를 작성 할 때, JSON 문자열을 일일이 입력하면서 불편하다는 생각을 했었습니다. 그래서 이를 해결하기 위해 구글링 해보다가 알게된 사실입니다. 윈도우 기준으로 1. 큰 따옴표 사이에 커서를 두고 alt + enter를 눌러 "Inject language or reference"를 누릅니다. 2. 그 후, JSON(JSON)을 클릭합니다. 3. 큰 따옴표 사이에 커서를 두고 다시 alt + enter를 누르면 "Edit JSON Fragment" 라는 팝업이 추가되는데 눌러줍니다. 4. 아래 JSON 편집 화면이 생성됩니다. Fragment 편집 화면에서 JSON을 직접 편집하면 편집한 내용이 자동으로 변수에 값 변환이 되어서 적용 됩니다. 5. 작성 후 들여쓰기를 해줍니다. 큰 ..
============ 기준으로 위 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..

직렬화(Serialization) 인스턴스의 상태를 그대로 저장하거나 네트워크로 전송하고 이를 다시 복원하는 (Deserialization)하는 방식 ObjectInputStream과 ObjectOutputStream 시용 보조스트림 객체의 상태를 영속화 하는 메커니즘 객체를 다른 환경(File, db)에 저장했다가 나중에 재구성 할 수 있게 만드는 과정 언제쓸까? 객체의 상태를 영속해야 할 필요가 있을때 , 즉 어딘가에 저장해야 할 필요가 있을때 (여기서 저장이라는 것은 파일이나 데이터베이스가 될 수도 있고, 캐시와 같은 메모리가 될 수도 있다.) 정보를 전달할 필요가 있을 때 (다른 VM (버츄얼머신) 에게 객체의 정보를 전송해야 할 시에 바이트 스트림으로 변환해서 전송해야 할 때) Serializa..

보조스트림 - 실제 읽고 쓰는 스트림이 아닌 보조적인 기능을 추가하는 스트림 - FilterInputStream과 FilterOutputStream이 보조스트림의 상위 클래스 생성자의 매개 변수로 또 다른 스트림을 가짐 생성자 설명 protected FilterInputStream(InputStream in) 생성자의 매개변수로 InputStream을 받는다. public FilterOutputStream(OutputStream out) 생성자의 매개변수로 OutputStream을 받는다. 데코레이터 패턴 형식이다. 여러가지 보조 스트림 사용하기 Buffered 스트림 : 내부에 8192 바이트 배열을 가지고 있음, 읽거나 쓸 때 속도가 빠름 DataInputStream/DataOutPutStream :..

문자 단위 스트림 Reader : 문자 단위로 읽는 최상위 스트림 Writer : 문자 단위로 쓰는 최상위 스트림 추상 메서드를 포함한 추상 클래스로 하위 클래스가 상속받아 구현 하위클래스 스트림 클래스 설명 FileReader 파일에사 문자 단위로 읽는 스트림 클래스 InputStreamReader 바이트 단위로 읽은 자료를 문자로 변환해 주는 보조 스트림 클래스 BufferedReader 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공해 주는 보조 스트림 스트림 클래스 설명 FileWriter 파일에 문자 단위로 출력하는 스트림 클래스 OutputStreamWriter 파일에 바이트 단위로 출력한 자료를 변환해 주는 보조 스트림 BufferedWriter 문자로 쓸 때 배열을 제공..