본문 바로가기

프로그래밍/SPRING12

[SPRING] RestTemplate, SSL, TLS, Proxy(+UrlConnection, HttpClient, WebClient) 0. RestTemplate로 API 통신 구현하면서 통신 CS와 함께 공부해서, 반영 전 마지막 코드 개선해보기 위해 정리한 글 1. RestTemplate란 - REST API을 쉽게 호출할 수 있도록 Spring에서 지원하는 내장 클래스 2. 생성자 1) RestTemplate() 2) RestTemplate(ClientHttpRequestFactory requestFactory) - 기본생성자로 생성할 경우 SimpleClientHttpRequestFactory로 생성된다. - ClientHttpRequestFactory는 proxy, timeOut 값 등 기본 HTTP 클라이언트 라이브러리에 대한 구성 옵션을 제공한다. - SimpleClientHttpRequestFactory의 메서드 crea.. 2022. 9. 19.
[SPRING] 대량 Insert : mybatis foreach vs sqlSession batch 0. insert 조건 - 최대 10만건 - 결과 : mybatis foreach보다 sqlSession batch 빠름(본인환경에서는 4배 이상) 1. mybatis foreach - INSERT ALL - INSERT INTO ~ UNION ALL (INSERT INTO ~ UNION ALL이 더 빠름) - foreach문으로 가져올 parameter는 서버의 파일에서 line으로 읽어 line만큼 Map instance를 생성해야하는 구조였기 때문에 heap memory 부하가 생겨 선택X SqlSession sqlSession; ... HashMap pMap = new HashMap(); pMap.put("p1", p1); pMap.put("p2", p2); ... List arr = new Ar.. 2022. 8. 2.
JPA 관련 정리 1. Repository 1) @JpaRepository : CRUD 기능 제공 2) @Repository : 구현 기능 없음, 다음과 같은 경우에 활용함 → select만 구현하고 싶은 경우 @JpaRepository를 쓰지않고 사용하여 직접 select만 구현 → @NoRepositoryBean 처리해서 bean으로 등록되지 않도록 3) @Query : 임의로 쿼리 만들고 싶을 때 2. Entity, DataSource 1) Entity - DB에 저장(Persist)할 자바 객체를 정의 - 테이블 스키마와 완벽히 일치할 필요X - 하나의 도메인으로 간주 - sequence, data 등 jpa에서 자동으로 설정해주는 어노테이션 제공 2) DataSource - 물리적인 데이터소스(DB) 정보를 담는.. 2022. 6. 1.
한끝완3 0. 산출물 https://github.com/dmzld/D-maker/commit/fab4542fc187b47f6b9cee31ccf58371de097e0e transaction, data validation, exception, http create with dto · dmzld/D-maker@fab4542 Browse files transaction, data validation, exception, http create with dto Loading branch information github.com 1. Transaction : 작업수행의 논리적 단위 - ACID 1) Atomic : 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장 2) Consistency : 트랜잭션이 성공적.. 2022. 5. 27.
한끝완2 0. 산출물 https://github.com/dmzld/D-maker/commit/5162d924ddd19abc6b79ae722b4e180ad395e535 1 layer, create data · dmzld/D-maker@5162d92 github.com 1. lombok - 어노테이션을 통해 불필요 코드작성 생략해주는 라이브러리 2. http 스펙 기본 - hyper 텍스트를 전송하는데 활용하는 프로토콜 - 첫째줄 1) request : 요청라인(http) 메서드 2) response : 상태(200, 500 등) - 헤더라인 : header : user-agent, accept 등 - 헤더라인 이후 : request body 3. 앱 초기설정 https://start.spring.io/ - 이슈1).. 2022. 5. 23.
한끝완1 0. 단축키 https://gmlwjd9405.github.io/2019/05/21/intellij-shortkey.html [IntelliJ] intellij 유용한 단축키 정리 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io https://computer-science-student.tistory.com/298 [IntelliJ] 인텔리제이 단축키 - 윈도우 IntelliJ 단축키 - 윈도우 ▶ 프로젝트 창 포커스 : Alt+1 Alt+1키를 통해 프로젝트 창을 키고 끌 수 있다. ▶ 에디터 창으로 돌아가기 : ESC 다시 코드를 쓰는 영역인 에디터 창으로 돌아가려면 ESC키를 computer-science-st.. 2022. 2. 20.
[SPRING] IOC, DI, COMPONENT, BEAN, AOP 1. IOC : Inversion Of Control - 스프링에서는 일반적인 JAVA 객체를 생성하여 개발자가 관리하는 것이 아닌 Spring Container에게 모두 맡긴다 - 객체 관리의 제어 권한이 개발자 -> Spring Framework(의 Spring Container)에게 넘어감 : 제어의 역전 2. DI : Dependency Injection - 외부로부터 사용할 객체를 주입 받는다. 즉, Spring Container가 주입한다. - 의존 코드를 따로 두어, 의존성으로부터 격시킴으로써 코드 테스트에 용이 - 이에따라 안정적으로 테스트 가능(기대값 활용) - 추상화, 순환참조방지 가능 - IOC, DI 예제 : Base64, URL Encoder 1) 적용전 public class B.. 2021. 10. 25.
[SPRING] Response, ObjectMapper 1. Response @Controller public class PageController { @RequestMapping("/main") public String main(){ return "main.html"; } @ResponseBody // ResponseBody를 내려서 resource를 찾지 않고 response를 만들겠다는 어노테이션 // HttpMessageConverter를 통해서 응답 값을 자동으로 json으로 직렬화 한 뒤 응답해주는 역할 // REST API CONTROLLER를 따로 만든다면 거기에는 responseBody 어노테이션 안붙여도 되지만 // 그 외 Controller에서는 명시하는게 맞다 // cf) ResponseEntity : HTTP 상태 코드를 전송하고 싶은.. 2021. 9. 9.
[SPRING] SPRING BOOT 특징, REST API, JSON 1. SPRING BOOT 특징 - SPRING BOOT APP에는 SPRING 구성이 거의 필요하지 않다 - java -jar로 실행하는 java APP을 만들 수 있다 - XML 구성 요구사항이 전혀 없음 - TOMCAT이 내장되어있어 따로 설치 필요X - 지원 Build Tool : Gradle 4.x & 5.x, maven - 지원 Survlet Tool : Tomcat 9.x, Jetty, Undertow, Netty 2. REST API - 어노테이션을 통해 Controller에서 Path와 PathVariable, Query parameter를 Mapping 할 수 있다. - Mapping 방식 3가지 @RestController @RequestMapping("/api") public cla.. 2021. 9. 8.