본문 바로가기

전체 글28

TCP 와 UDP TCP, UDP란? - OSI 7계층 중 전송 계층에서 사용하는 프로토콜이다. - OSI 7계층과 TCP/IP 4계층은 다음 사진과 같다. TCP(Transmission Control Protocol) - 인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 - 연결형 서비스로 가상 회선 방식을 제공한다. - TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용한다. - 종단간에 신뢰성있는 바이트 스트림을 전송하도록 설계되었다. - 송신자와 수신자 모두 소켓이라고 부르는 종단점을 생성해 연결이 이루어진다. (가상 회선 방식) - 연결 설정은 3 way handshake / 연결 해제는 4 way handshake 과정을 통해 이루어진다. - 전이중(ful.. 2021. 11. 24.
[프로그래머스] 행렬 테두리 회전하기 - Python 문제 설명 rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다. x1 행 y1 열부터 x2 행 y2 열까지의 영역에 해당하는 직사각형에서 테두리에 있는 숫자들을 한 칸씩 시계방향으로 회전합니다. 행렬의 세로 길이(행 개수) rows, 가로 길이(열 개수) columns, 그리고 회전들의 목록 queries가 주어질 때, 각 회전들을 배열에 적용한 뒤, 그 회전에 의해 위치가 바뀐 숫자들 중 가장 작은 숫자들을 순서.. 2021. 10. 24.
스프링 RestTemplate - Connection pool 설정 방법 1. RestTemplate? spring 3.0 부터 지원 org.springframework.http.client 복잡한 HttpClient 사용을 한번 추상화한 객체 HttpClient는 HTTP를 사용하여 통신하는 범용 라이브러리이고, RestTemplate은 HttpClient 를 추상화해서 제공 RESTful 원칙을 지키며 단순 메소드 호출만으로 쉽게 HTTP 요청을 주고 받을 수 있도록 도와주는 HTTP 통신 템플릿 RestTemplate 은 기본적으로 connection pool 을 사용하지 않는다. RestTemplate은 호출할 때마다, 로컬에서 임시 TCP 소켓을 개방하여 사용한다. 이렇게 사용된 TCP 소켓은 TIME_WAIT 상태가 되는데, 요청량이 많아지면 TIME_WAIT 상태.. 2021. 10. 22.
Javascript 객체 생성하는 방법 Javascript에서 객체를 생성하는 몇 가지 방법들은 다음과 같습니다. Object() 생성자 객체 리터럴 생성자 함수 Object.create() 생성 함수 ES6 클래스 1. Obect() 생성자를 이용하는 방법 // Call the Object constructor with new var user = new Object(); user.name = 'Sunny'; user.interests = ['Traveling', 'Swimming']; user.greeting = function () { console.log('Hi, I\'m ' + this.name + '.'); }; user.greeting(); // Hi, I'm Sunny. Object 생성자는 객체 Wrapper를 생성합니다. 이 .. 2021. 10. 14.
Spring Data JPA - Native SQL Query 작성하기 SNS 클론코딩 중 사용자들간의 구독 관계를 설정하기 위해 Subscribe 엔티티를 구현했습니다. 그러나 구독하는 아이디와 구독받는 아이디를 갖고 일일이 Subscribe 객체를 만들어 레퍼지토리에 저장하는 것보단 JPA Native SQL Query를 사용해 쿼리문으로 바로 디비에 저장하는 방법이 간편할 것입니다. Native SQL Query ? JPA는 Native SQL을 통해 SQL을 직접 사용할 수 있는 기능을 제공합니다. - SQL을 개발자가 직접 정의할 수 있습니다. - Native SQL 사용 시 엔티티를 조회하고, JPA가 지원하는 영속성 컨텍스트의 기능을 그대로 사용 가능합니다. 우선 Subscribe 테이블의 구조입니다. 그리고 JpaRepository를 상속한 SubscribeR.. 2021. 8. 20.
Ajax 사용해 put 요청 / Validation Check / 영속화, 영속성 컨텍스트 Ajax를 사용한 put 요청 Ajax란? Ajax란 Asynchronous JavaScript and XML의 약자입니다. Ajax는 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나입니다. Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있습니다. 즉 Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있습니다. 이때 서버와는 다음과 같은 다양한 형태의 데이터를 주고받을 수 있습니다. - JSON - XML - HTML - 텍스트 파일 등 html form 태그는 put 요청을 할 수 없습니다. 그래서 현재 회원 정보를 수정하기 위한 form태그에 제출 버튼 클릭 시 Javascript 함수를 실행.. 2021. 8. 19.