![[네트워크 이론] 응용 계층 - HTTP](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNO3Pl%2FbtsNwbenIqZ%2FYN9gWiZGpQwkeBnvIC8oNK%2Fimg.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.HTTP의 특성HTTP 프로토콜은 중요한 4가지 특성이 있다.요청과 응답 기반미디어 독립적무상태성(Stateless)지속 연결 요청-응답 기반 프로토콜HTTP는 ‘클라이언트–서버 구조 기반의 요청–응답 프로토콜’이다.클라이언트와 서버가 있고, 클라이언트는 서버에게 요청 메시지를 전송하며, 서버는 클라이언트에게 요청에 대한 응답 메시지를 전송한다.HTTP는 이와 같이 클라이언트와 서버가 서로 HTTP 요청 메시지와 HTTP 응답 메시지를 주고받는 구조로 동작한다.그렇기에 같은 HTTP 메시지일지라도 HTTP 요청 메시지와 HTTP 응답 메시지는 메시지 형태가 다르다. 미디어 독립적 프로토콜HTTP를 정의..
![[네트워크 이론] 응용 계층 - DNS와 자원](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmqTJT%2FbtsNvI4rLc6%2FdVgTEZg5iT3nla1GAiEXU0%2Fimg.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.도메인 네임과 네임 서버네트워크상의 어떤 호스트를 특정하기 위해 IP 주소를 사용한다.하지만 오로지 IP 주소만 사용하기에는 번거롭다. 통신하고자 하는 모든 호스트의 IP 주소를 기억하고 있기도 어렵기 때문이다.호스트의 IP 주소는 언제든지 바뀔 수 있기 때문이다. 여러분이 모든 친구의 전화번호를 전부 기억하기 어려운 것과도 비슷하다.그래서 일반적으로 사용자는 상대 호스트를 특정하기 위해 IP 주소보다는 도메인 네임을 많이 사용한다.도메인 네임은 호스트의 IP 주소와 대응되는 문자열 형태의 호스트 특정 정보이다.예를 들어 http://www.example.com, developers.naver.com,..
![[java] 백준 2644번 문제(촌수계산)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwC2Yy%2FbtsNuXU31vs%2FurE2nSHVsGdjAQ4AtaZib1%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/2644문제설명 소스코드import java.io.*;import java.util.*;public class Boj_2644{ static ArrayList[] list; // 인접 리스트 static boolean[] visited; // 방문 배열 static int[] depth; // 깊이(촌수) 배열 public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parse..
![[네트워크 이론] 전송 계층 - TCP와 UDP](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwKZkc%2FbtsNt1xdnzv%2F4DWgCA9Kw7NtpfhI7rCcXK%2Fimg.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.TCP 통신 단계와 세그먼트 구조TCP는 통신(데이터 송수신)하기 전에 연결을 수립하고 통신이 끝나면 연결을 종료한다.그리고 데이터 송수신 과정에서 재전송을 통한 오류 제어, 흐름 제어, 혼잡 제어 등의 기능을 제공한다. MSSTCP의 연결 수립과 종료를 이해하려면 가장 먼저 MSS라는 단위와 TCP의 세그먼트 구조를 이해해야 한다.MSS는 Maximum Segment Size의 약자로, TCP로 전송할 수 있는 최대 페이로드 크기를 의미한다.MSS의 크기를 고려할 때 헤더 크기는 제외한다. 헤더의 크기까지 포함했던 단위인 MTU와는 대조적이다. TCP 세그먼트 헤더 송신지 포트(source port)..
![[네트워크 이론] 전송 계층 - IP의 한계와 포트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGPXME%2FbtsNruzEz2D%2FePMtz6yg9tJQRxr9BS3wo1%2Fimg.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.네트워크 계층의 IP는 신뢰할 수 없는 통신과 비연결형 통신을 수행한다는 한계가 있다.네트워크 계층과 응용 계층 사이에 위치한 전송 계층은 신뢰할 수 있는 통신과 연결형 통신을 가능하게 하여 이러한 IP의 한계를 극복하고, 포트 번호를 통해 응용 계층의 애플리케이션 프로세스들을 식별하는 역할을 수행한다. IP의 한계신뢰할 수 없는 통신과 비연결형 통신IP의 한계라고 볼 수 있는 두 가지 중요한 특징이 있다.IP는 신뢰할 수 없는(비신뢰성) 프로토콜이자 비연결형 프로토콜이라는 점이다.달리 표현하면, IP를 통한 패킷의 전달은 신뢰성이 없는 통신이자 연결을 수립하는 과정이 없는 통신이다.이는 전송 계층이 ..
![[Spring 핵심원리 - 고급] 스프링 AOP 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWfdW5%2FbtsNt6kwUqa%2Fi369yZtNfMFWIG6BZmLLv0%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.리포지토리 & 서비스import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Repository;@Slf4j@Repositorypublic class OrderRepository { public String save(String itemId) { log.info("[orderRepository] 실행"); //저장 로직 if (itemId.equals("ex")) { throw new IllegalStateException("예외 발생!"); } return..
![[java] 백준 1012번 문제(유기농 배추)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb35gmo%2FbtsNsGlHhII%2FTlKqgF8y40dpB9ufrcZ5FK%2Fimg.png)
원본 링크 : https://www.acmicpc.net/problem/1012문제설명 소스코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Boj_1012{ static int[][] farm; static boolean[][] visited; static int[] dy = { 1, -1, 0, 0 }; // y축(상, 하) static int[] dx = { 0, 0, -1, 1 }; // x축(좌, 우) public static vo..
![[네트워크 이론] 네트워크 계층 - 라우팅(Routing)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfYVrW%2FbtsNo84Z9RC%2Fa14vhvgYiWK52ChYChtNYk%2Fimg.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.라우터의 핵심 기능은 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것이다.이를 라우팅이라고 한다.라우팅 테이블이 만들어지는 방법과 프로토콜에 따라 라우팅을 분류하면 아래 그림과 같이 표현할 수 있다. 라우터와 라우팅 테이블라우터네트워크 계층의 장비로 라우터만 알아도 큰 무리가 없을 정도로, 라우터는 네트워크 계층의 핵심 기능을 담당한다.사실 L3 스위치라고 부르는 장치도 네트워크 계층의 대표 장치이기는 하지만, 오늘날 라우터와 L3 스위치는 기능상 상당 부분 유사하므로 엄밀히 구분하지 않는 경우가 많다.라우터는 허브나 스위치보다 높은 계층에 속하는 장치이므로 기능적으로는 사실상..