일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트
- 도커 컨테이너에 mysql
- object다형성
- Spring
- Object
- maven jar 배포
- object 다형성
- maven 외부 라이브러리 배포
- object 배열
- java object 클래스
- javascript
- map vs multivaluemap
- niceid_v1.1.jar maven
- maven repository jar
- map multivaluemap
- java object 다형성
- 맥북 port kill
- 자바
- 외부 라이브러리 jar 배포
- 졸프
- JS
- object tostring
- 배포시 systempath
- 자바object다형성
- object배열
- nice_v1.1.jar
- java
- maver 외부 jar 배포
- 스프링
- maven systempath
- Today
- Total
목록Framework/Spring (7)
모래블로그
NICE 본인인증을 구현하기 위해 거기서 제공해주는 jar 모듈을 추가하여 배포해야하는 일이 생겼다. 그래서 이용하는 방법이 가장 간단해보여서 선택했다. 1. 이용 nice niceID 1.1 system ${project.basedir}/libs/NiceID_v1.1.jar 위와 같은 방식으로 pom.xml에 dependency를 추가했다. 로컬 환경에서는 본인인증이 문제없이 잘 작동했다. 그런데 배포를 하니까 개발서버에서는 작동하지 않는 문제가 발생했다. 개발서버에서 오류가 나서 로그를 보니 NoClassDefFoundError가 발생했고, 찾아보니 위의 방법대로 하면 maven 빌드 시 해당 jar파일이 누락된다고 한다. 그래서 다른 방식으로 해보기로 했다.2...
@Autowired와 private final 의 차이점에 대해 알아보다가 의존성 주입 방법과 생성자 주입 방법의 장점에 대해 정리하였다. 의존성 주입 방법 1. 생성자 주입(Constructor Injection) 생성자를 통해 의존 관계를 주입하는 방법 생성자 주입은 생성자의 호출 시점에 1회 호출되는 것이 보장된다. 그렇기 때문에 주입받은 객체가 변하지 않거나, 반드시 객체의 주입이 필요한 경우에 강제하기 위해 사용할 수 있다. 클래스의 생성자가 1개일 경우, 그 생성자로 주입받을 객체가 빈으로 등록되어 있다면 @Autowired를 생략할 수 있다. @Service pulbic class UserService { // final 붙일 수 있음 private final UserRepository us..
WebClient를 쓰게 된 이유 교통약자지도를 만들면서 RestTemplate를 썼었는데, 이는 동기 방식이다. 승강기 유무를 알려주는 것이 우리 교통약자지도의 핵심 중 하나인데, 하나를 검색하면 8-10개의 검색 결과를 반환하고 거기에 승강기 유무까지 같이 반환하다보니 시간이 너무 오래 걸리는 문제가 발생했다. 각각 승강기 유무를 가져와야해서 호출하여 결과를 가져오는데 오래 걸렸다. 게다가 동기 방식이다 보니 결과를 가져올 때까지 계속 기다리게 되는 것이다. 그래서 처음에 무려 5분이 걸렸다.. 거기에 충격을 받은 나는 팀원에게 이건 도저히 못쓸 것 같다. 다른 방법을 알아보자고 해서 그렇게 지인에게 물어봄 + 구글링을 통해 WebClient를 알게 되었다. WebClient WebClient란 스프..
티맵 api를 이용해서 데이터를 받아오는거도 성공했는데 예시만 봐도 Response Parameter가 정말 많다. 우리가 저 많은 데이터를 전부 다 쓸건 아닌데 말이다! 특히 통합검색은 결과를 하나만 받아오는 것도 아니고.. 결과 받아와본 것만 봐도 어지럽다..😂 확실히 저기서 필요한 데이터만 뽑아서 써야겠다는 생각이 들었다. json 데이터로 받아오는데 저걸 필요한 것만 어떻게 가져오지? 그래서 찾아보다가 발견한게 JSON 파싱하는 것이었다. 1. JSON 파싱하기 먼저 JSON 파싱을 하기 위해 json-simple이라는 라이브러리를 사용하는데, build.gradle에 implementation group: 'com.googlecode.json-simple', name: 'json-simple',..
1. UriComponents란? UriComponents는 URI를 동적으로 생성해주는 클래스다. UriComponents를 사용하면 파라미터 값을 지정하거나 변경하는 일이 쉬워진다. 원하는 URI로 각각의 링크를 생성할 수 있어서 Rest 스타일로 개발하는데 편리하다. 2. UriComponentsBuilder란? UriComponentsBuilder는 클래스 명에서 유추할 수 있듯이, UriComponents를 build 할 수 있도록 도와주는 클래스이다. UriComponents 클래스의 생성자는 모두 package-private 또는 private 이기 때문에, 개발자가 이를 직접 구현하지 않는 이상 생성자를 통해 직접 생성할 수는 없다. 우리는 생성자를 이용하는 대신, UriComponents..
1. RestTemplate란 REST API 호출이후 응답을 받을 때까지 기다리는 동기 방식 으로, 스프링 3.0에서부터 지원하며 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿이고, REST 서비스를 호출하도록 설계되어 HTTP 프로토콜의 메서드 (GET, POST, DELETE, PUT)에 맞게 여러 메서드를 제공한다고 한다. 1) RestTemplate의 특징 HTTP 서버와의 통신을 단순화하고 RESTful 원칙을 지킨다.(json, xml을 쉽게 응답 받음) 멀티쓰레드 방식을 사용한다. blocking 방식 사용한다.1 요청 당 1 스레드가 할당 되며 각 스레드에서는 Blocking 방식으로 처리되기 때문에 응답이 올 때 까지 해당 스레드는 다른 요청에 할당 될 수 없다. 물론..
1. REST(REpresentationl State Transfer)란? REST는 자원의 이름으로 구분해 해당 자원의 상태를 주고 받는 모든 것 자원의 표현에 의한 상태 전달 1. 자원 : 해당 소프트웨어가 관리하는 모든 것 (문서, 그림, 데이터, 해당 소프트웨어 자체 등) 2. 표현 : 그 자원을 표현하기 위한 이름 (DB의 학생 정보가 자원이면, ‘students’를 자원의 표현으로 정함) 3. 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달 (보통 JSON 이나 XML 통해 데이터를 주고 받는 것이 일반적임) REST는 기본적으로 웹의 기존 기술과 http 프로토콜을 그대로 활용하므로 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. REST는 네트워크 상에서 Client와 ..