목록전체 글 (51)

TCP 3-way Handshake 란? TCP 는 장치들 사이에 논리적인 접속을 성립하기 위하여 3-way handshake 를 사용한다. 3-way handshake 는 TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. [STEP 01] 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다. 이 떄 A클라이언트는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다 [STEP 02] 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN Flag 가 설정된 패킷을 발송한다. 이후 클라이언트가 다시 ACK로 응답하기를 기다린다. 이떄 ..
Hyper Text Transfer Protocol 브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜 가운데 한 종류로 웹 브라우저와 웹 서버 사이에 데이터를 주고 받는데 사용되는 통신 초기에는 HTML 문서를 전송하기 위한 목적으로 만들어졌으나 지금에서는 Json 및 Image 파일 등 여러 형태의 데이터를 주고받을 수 있게 됐다. 특징 HTTP 는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 동작한다. 브라우저에서 URL을 입력하고 조회하면 DNS 서버가 URL의 IP를 찾아 해당 IP의 서버와 TCP 연결을 맺고, 이후 HTTP 요청/응답이 발생한다. ❓TCP/IP 란? 일반적으로 전송 계층 프로토콜로 TCP 를 사용하고, 네트워크 계층 프로토콜로 IP 를 사용하는데 이 두 계층을 ..

사용자가 Github에 변경사항을 저장하기 위해 Push 를 하면 Jenkins가 변경을 감지한다. 변경사항을 감지한 Jenkins는 Github의 프로젝트 내용을 clone하여 Jenkins 가 위치한 EC2 내부로 복사한 뒤 ./gradlew clean bootJar 을 실행하여 app.jar 파일을 생성한다. 이후 Jenkins의 Publish Over SSH 를 통해 생성된 jar 파일을 app을 배포하고자 하는 EC2로 이동시키고, 쉘 스크립트 혹은 java -jar app.jar 명령어로 실행시키면 된다. 진행 과정 Github의 Webhook 설정 및 Token, Credential 설정은 이미 완료한 상태로 가정하고 과정을 진행한다. Publish Over SSH는 Jenkins를 실..