본문 바로가기

프로그래밍18

[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.
AWS 코어 서비스로 간단한 웹 애플리케이션 직접 만들기(feat. VPC, EC2, ELB) 개요 VPC로 네트워크 생성 → EC2로 서버 생성 후 네트워크에 넣기 → 0. aws 계정 1) root 계정 2) IAM 계정 : AWS에서 생성하는 엔터티로서 AWS와 상호 작용하기 위해 해당 엔터티를 사용하는 사람 또는 애플리케이션 1. VPC(virtual private cloud) : 자체 데이터 센터에서 운영하는 기존 네트워크와 유사한 폐쇄형 가상 네트워크 1) 서브넷 - 퍼블릭 서브넷 - 프라이빗 서브넷 : DB 등 - NAT 게이트웨이 : 집에서 사용하는 공유기같은 개념, 인터넷을 사용하기 위한 게이트웨이 - VPC 엔드포인트 : 프라이빗 서브넷 등에서도 접근할 필요가 있는 곳 - CIDR : 네트워크의 주소와 크기를 표현하는 방식 중 하나 ex) 10.0.0.0/16 : ip 주소 중 .. 2022. 8. 10.
[SQL] Oracle IN vs EXISTS 비즈니스 로직상 DELETET1 WHEREEXISTS -- OR IN ( SELECT1 FROMT2 WHERET1.CO1 = T2.COL2 ) SQL을 사용해야 했다. 이 때 EXISTS와 IN을 선택하는 과정에서 간단히 찾아봄. The main difference between IN and EXISTS in Oracle is that the SQL engine compares all values in the IN condition while the SQL engine stops the process as soon as finding a single positive condition in EXISTS 즉 IN은 모든 value를 IN 내 컨디션과 비교하지만, EXISTS는 EXISTS 컨디션을 하나라도 .. 2022. 8. 2.
[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.
AWS Partner Course : Container 0. 사전준비 https://cloud.google.com/learn/what-are-containers?hl=ko 컨테이너란? | Google Cloud 컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 경량 소프트웨어 패키지입니다. cloud.google.com - Container : 컨테이너는 소프트웨어 서비스를 실행하는 데 필요한 특정 버전의 프로그래밍 언어 런타임 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지. 컨테이너는 이러한 방식으로 운영체제를 가상화한다. - Container vs VM 컨테이너는 VM보다 훨씬 더 경량 컨테이너는 OS 수준에서 가상화되고 VM은 하드웨어 수준에서 가상화 컨테이너는 OS 커널을 공유하며 VM에 필요한 것.. 2022. 7. 26.
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.