Spring 98

[Spring err] com.amazonaws.SdkClientException: Failed to connect to service endpoint 에러 -(aws 의존성 주입시 에러)

전에 만든 팀프로젝트를 보다가, 실행하자마자 나는 에러를 발견하였다. 개발당시에는 시간이 촉박해, 어플리케이션 자체 실행에는 문제가 없어 넘어갔던 부분이다. error code com.amazonaws.SdkClientException: Failed to connect to service endpoint Caused by: java.net.SocketException: Network is unreachable: connect aws sdk 에러가 나는 이유는, build.gradle에, spring-cloud-starter-aws 의존성 주입시 로컬환경은, aws환경이 아니기때문에 나는 에러라고 한다. aws환경에서 실행시 아무문제가 없지만, 에러를 하나씩 잡아가면서 테스트를 해보기로 마음먹었기때문에 이..

Spring/Spring err 2022.03.18

[Spring] 백엔드 부하 테스트 해보기 - nGrinder(with aws, jmeter)

부하테스트 툴을 알아보면 nGrinder 와 jmeter 이 2가지가 주를 이루어 나온다. jMeter JMeter 는 아파치에서 만든 java 기반의 오픈소스로 오래된 테스트 툴중 하나입니다. 꽤 오래되었고, 그만큼 안정적이라고 합니다. 많은 기능이 존재하고 확장성이 용이하지만 GUI가 이뻐보이진 않았습니다. 장점 아파치에서 만든 오래된 툴 유명하고 자료가 많다 다양한 프로토콜 지원 GUI, 이메일, DB, SSL 지원하는 기능과 플러그인이 많다 단점 모든 기능이 다 필요한가? 결과는 리스너로 만들어 보는데 모니터링이 불편함 스레드 기반이라 성능제약이 있다고 함 nGrinder nGrinder 는 네이버에서 만든 오픈 소스입니다. GUI도 보기 편해보였고, 비교적 사용하기 편하다고 합니다.. 고로! n..

getter setter를 사용하는 이유

👏🏻 놉! 왠만하면 사용하지 않는게 좋습니다. 게터는 편의성을 위해 어쩔수 없이 사용하는 부분이 있지만 Setter는 되도록 지양해야한다. (2022.07 수정..ㅎ) 면접 스터디를 하면서 getter setter를 하는 이유에 대해 공부를 하는데 새로 알게된 피드백을 받아서 이게 좀 헷갈려서 포스팅을 남기면서 공부를 해보고자 한다. [공부 목적] 1. getter/ setter를 사용하는 이유는 데이터 무결성을 위해서 이다. (알고있던 것) -> setter는 데이터 무결성을 해칠수도 있다(?) (새롭게 알게된 것) -> 따라서 builder 패턴이나 solid 개방패쇄 원칙에 대해 공부해보고자 한다. 1. 처음 공부한 것 Getter Setter를 사용하는 이유 핵심답변 객체의 무결성을 보장하기 위해..

Spring/Spring Boot 2022.02.24

[Spring boot] 테스트 코드 작성 (2) - Mock, Mockito, MockMVC

Spring 테스트 코드 작성해보기! 목차 Junit 이란 Junit 사용설정 Junit 어노테이션 Junit 사용법 Assert 메소드 @Nest사용 엣지 케이스 확인 1, Mock vs Mockito vs MockMVC 1) Mock 이란, 테스트를 위한 가짜 객체 실제 객체를 만들기에는 비용과 시간, 의존성이 크게 걸쳐져 있어 테스트 시 제대로 구현하기 어려울 경우 만드는 가짜 객체 2) Mockito 란, Mockito란 Mock Object를 간편하게 만들게 해주는 라이브러리 Mock 객체를 만들기위해서 사용되는 시간을 줄이기위해, 자동으로 생성해주는 라이브러리이다. Mock객체 직접 구현하지 않아도 되게함 3) MockMVC 스프링에서 MVC 테스트를 하기위한 방법을 논의하여 Spring-te..

[Spring boot] 테스트 코드 작성 (1) - Junit을 이용한 Unit Test(단위 테스트) / Assert 메소드

Spring 테스트 코드 작성해보기! 목차 Junit 이란 Junit 사용설정 Junit 어노테이션 Junit 사용법 Assert 메소드 @Nest사용 엣지 케이스 확인 Junit을 이용한 단위테스트 1) 단위 테스트란 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하는 테스트 Development: 개발 Unit Tests (단위 테스트): 개발자 테스트 QA Testing: 블랙박스 테스팅 주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅 Production: 실 서비스 운영 환경 2) Junit 이란 Junit이란 자바 프로그래밍 언어용 단위 테스트 프레임워크 이다. 어노테이션을 기반을 테스트를 지원한다. 단정문(Assert)를 통해서 테스트 케이스의 ..

[Spring] AOP란 - (AOP, Spring AOP, AOP 어노테이션)

목차 AOP란 AOP의 주요 개념 Spring AOP AOP 적용 시퀸스 다이어그램 Spring AOP 어노테이션 Spring AOP 코드 예시 AOP란 Aspect Oriented Programming - 관점 지향 프로그래밍이라고 불리는 AOP 관점 지향이란, 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 각각 모듈화하는 프로그래밍 기법을 의미합니다. 따라서 AOP는 핵심기능과 부가기능을 나누어서 설계, 구현하는 것을 말합니다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미입니다. 이떄, 소스코드상에서 다른 부분에 계속 반복해서 사용되는 코드들이 존재할 수 있는데, 이것을 흩어진 관심사(Crossing Concerns)라..

Spring/Spring Boot 2022.01.18

[Spring] JSON 파일 DTO로 받아오기 - ObjectMapper

이번 포스팅은, JSON 파일을, JAVA DTO 클래스로 받아오는 방법을 기록하기로했다. [목차] 1. JSON to DTO Array 2. Object Mapper 1. JSON to DTO Array 저번 게시물(https://thalals.tistory.com/266)에서 외부 API에서 JSON 파일을 ResponseEntity 파일로 받아왔는데, 이 Object 데이터를 DTO 클래스로 변환해서 저장한다음, 내 입맛데로 변경하여 사용할 수 있다. 외부 API 데이터 받아오기 public ResponseEntity getData(String url ) { //Spring restTemplate RestTemplate restTemplate = new RestTemplate(); HttpHeade..

Spring/Spring Boot 2022.01.18

ResponseEntity란 - 개념, 구조, 사용법, 사용하는 이유

이거 옜날에 적은건데,, 꾸준히 블로그로 유입되시는 분들이 계셔서 부끄러운 마음에 내용을 조금 더 추가해 보았습니다..ㅎㅎ 앞으로도 계속 변경되거나, 알게된 내용 추가할 예정이고, 틀린부분이나 부족한 부분이 있다면 알려주시면 감사하겠습니다~ ResponseEntity란 ResponseEntity란, httpentity를 상속받는, 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스이다. ResponseEntity에는 사용자의 HttpRequest에 대한 응답 데이터가 포함된다. ✨ 또한, HTTP 아케텍쳐 형태에 맞게 Response를 보내주는 것에도 의미가 있습니다. 에러 코드와 같은 HTTP상태 코드를 전송하고 싶은 데이터와 함께 전송할 수 있기 때문에 좀 더 세밀한 제어가 필요한 경우 ..

Spring/Spring Boot 2022.01.16

[Spring] spring boot - 외부 Rest API json으로 받아오기(JAVA)

JAVA로 외부 api 값을 받아오는 방법은 3가지가 있다. httpurlconnection httpclient spring resttemplate 오늘은 이 3가지 방법에 대해서 알아보고 뭐를 사용할지 알아보고자 한다. + 결론은 3가지방법을 대략적으로 파악하고, 최신 트렌드?에 맞는 RestTemplate를 쓰기로했다! 자바 Http 통신 위의 3가지 방식이 나오게된 순서를 보면 먼저, 순수 자바로만 HTTP통신을 할 수 있는 1) HttpURLConnection 클래스가 있었고, 이걸 사용하기 쉽게 추상화해서 만들어진게 2) Apache HttpClient이며 요것이 최근에 버전업을 해서 -> HttpComponents로 사용이 되고있다. 3) Spring RestTemplate는 이런 기술들을 기..

Spring/Spring Boot 2022.01.15

인텔리제이 spring boot 실행 에러

tomcat-embed-core-9.0.56.jar; zip file is empty .gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed [ionshutdownhook] j.localcontainerentitymanagerfactorybean closing jpa entitymanagerfactory for persistence unit 'default' application context not configured for this file intellij exited with code 0 인텔리제이로 스프링을 실해하면 이런 에러코드와 함께 바로 꺼지는 현상이 발생... 왜이런게 일어나고 해결법이 뭔지 모르겟어서 이거저고 하던중, 그냥 로컬 피씨에있는..

Spring/Spring err 2022.01.15