TCP와 UDP의 특징 및 차이점

7계층 중 전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층으로, 데이터의 전달을 담당한다.
데이터를 보내기 위해 사용하는 프로토콜에는 TCP와 UDP가 있다.

출처:https://user-images.githubusercontent.com/54384004/73795474-0c28a400-47ee-11ea-81b5-0325aba220e3.png

 

TCP (Transmission Control Protocol)

  • 연결지향형 프로토콜: 데이터 전송 전 연결(논리적)을 설정하고, 데이터 전송 후 연결을 해제.
  • 높은 신뢰성: 흐름제어, 혼잡제어, 오류검출 기능을 제공.
  • 1:1 유니캐스트 통신: 단일 송신자와 단일 수신자 간의 통신을 지원.(멀티x)

UDP (User Datagram Protocol)

  • 비연결형 프로토콜: 데이터 전송 전 연결 설정 없이 바로 전송.
  • 빠른 속도: 데이터의 신속한 전송이 가능.
  • 1:1, 1:다, 다:다 통신 가능: 브로드캐스트 및 멀티캐스트 지원.

출처:https://user-images.githubusercontent.com/54384004/73796232-1481de80-47f0-11ea-855e-4bf8735faa30.png



TCP의 특징 및 구조

인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜(논리적 경로)

출처:https://user-images.githubusercontent.com/54384004/73796311-3aa77e80-47f0-11ea-82c8-079cc1989c4d.png

 
+위 표 정보 외 추가 정보
*송신자와 수신자가 모두 소켓이라고 하는 종단점을 생성
*데이터 손실 등이 있을 경우 재전송 요청을 하므로 연속성있는 서비스에는 부적합 하다.
*전이중(full-duplex), 점대점(point-to-point) 방식이다.

  • 전이중 : 전송이 양방향으로 동시에 일어날 수 있다.
  • 점대점 : 각 연결이 정확히 2개의 종단점(소켓)을 가지고 있음을 의미한다.


TCP 헤더 구조

 
TCP 헤더는 데이터 전송의 신뢰성과 흐름제어, 혼잡제어를 위해 다양한 필드를 포함한다.

출처:https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkJckh%2FbtsFygVZGHz%2FpCCBK9RZAeB4ZhZYOjkoe1%2Fimg.png https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcuSVe%2FbtrzQnOKHee%2F8ViefWfmEhBwMrzXjBDSv1%2Fimg.png

 
TCP 헤더의 크기

  • 기본적으로 20bytes
  • 옵션을 포함하면 최대 60bytes


발신지 포트와 목적지 포트 (16비트): 송수신 측의 포트 번호.

  • port 번호와 함께 IP 헤더에 있는 source/destination address를 이용하여 유일한 식별되는 통신연결을 만들 수 있게 됨
  • 크기는 각 16bit로, 0~65536 사이의 포트번호를 표시한다.


시퀀스 번호 (32비트): 데이터의 순서를 나타내며, 수신자가 데이터 조립 시 사용.

  • 32bit를 할당받음
  • 이 시퀀스 번호 덕분에, 수신자는 쪼개진 세그먼트의 순서를 파악해 순서 및 도착을 보장
  • 최초로 데이터를 전송할 때는 랜덤한 수로 초기화를 시키고 보낼 데이터의 1byte(8bit)당 시퀀스 번호를 1씩 증가시키며 데이터의 순서를 표현
  • 쵀대 4,294,967,296까지 수를 담을 수 있으며, 넘어갈 경우 다시 0부터 시작


승인 번호 (32비트): 다음에 수신할 데이터의 시퀀스 번호.

  • 32bit를 할당받음
  • 연결 설정과 해제 시 발생하는 핸드쉐이크 과정에는 상대방이 보낸 시퀀스 번호 + 1(다음 시퀸스 번호)
  • 실제로 데이터를 주고 받을 때는 상대방이 보낸 시퀀스 번호 + 자신이 받은 데이터의 bytes

출처:https://evan-moon.github.io/static/4c5dc85683ae837d23500d773f219316/d9199/ack.png


데이터 오프셋 (4비트): 데이터가 시작하는 위치.

  • 전체 세그먼트 중에서 헤더가 아닌 데이터가 시작되는 위치가 어디부터인지를 표시 (옵션 필드의 길이가 고정되어 있지 않기 때문에 필요한 필드)
  • 이 오프셋을 표기할 때는 32비트 워드 단위 사용. (1word = 4bytes) 이 필드 값에 4를 곱하면 세그먼트의 헤더를 제외한 실제 데이터의 시작 위치를 알 수 있음
  • 4bit를 할당 받음. 0000~1111 범위를 표현할 수 있으므로 0~15 word * 4bytes로 0~60bytes의 오프셋까지 표현할 수 있음. 단, 옵션 필드를 제외한 나머지 필드는 필수로 존재해야하기 때문에 최솟값은 20bytes(5 word)로 고정


예약 필드 (3비트): 미래를 위한 예약 필드.

  • 3bit를 할당받음. 000으로 찍힘


플래그 비트 (9비트): 세그먼트의 속성.
 
*Flag: 무엇인가를 기억해야 하거나 또는 다른 프로그램에게 약속된 신호를 남기기 위한 용도로 프로그램에서 사용되는 미리 정의된 비트를 의미합니다.
*패킷: 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 한다.
 
SYN: 연결 설정.

  • TCP에서 세션을 성립할 때(연결) 가장 먼저 보내는 패킷. 시퀀스 번호를 임의로 설정하여 세션을 연결하는데 사용되며 초기에 시퀀스 번호를 보내게 된다.

ACK: 승인 번호 유효.

  • 상대방으로부터 패킷을 받았다는 것을 알려주는 패킷으로, 다른 Flag와 같이 출력되는 경우도 있다. 송신 측에서 수신 측 시퀀스 번호에 TCP 계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK를 보낸다. (일반적으로 +1을 하여 보 냅니다) ACK 응답을 통해 보낸 패킷에 대한 성공, 실패를 판단하여 재전송 하거나 다음 패킷을 전송한한다.

FIN: 연결 종료.

  • 세션 연결을 종료시킬 때 사용되며, 더이상 전송할 데이터가 없음을 나타낸다.

RST: 연결 재설정.

  • 재설정(Reset)을 하는 과정이며 양방향에서 동시에 일어나는 중단 작업. 비정상적인 세션 연결 끊기에 해당한다. 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 즉시 연결을 끊고자 할 때 사용한다.

PSH: 즉시 전달.

  • 버퍼가 채워지기를 기다리지 않고 데이터를 받는 즉시 전달하는 Flag. 데이터는 버퍼링 없이 OSI 7 Layer Application Layer의 응용프로그램으로 바로 전달한다. 

URG: 긴급 데이터.

  • 긴급한 데이터의 우선순위를 다른 데이터의 우선순위보다 높여 긴급하게 데이터를 전달하는 Flag.

NS, CWR, ECE: 혼잡 제어.

  • 전문성이 높고 사용 빈도도 적어 간단하게 혼잡 제어에 사용된다고만 이해하자



윈도우 크기 (16비트): 한번에 수신할 수 있는 데이터의 양. 흐름제어의 기능을 담당.

체크섬 (16비트): 오류 검출.

  • 데이터를 송신하는 중에 발생할 수 있는 오류를 검출하기 위한 값
  • 송신 측에서 전송할 데이터를 16bit씩 나눠 Warp Around 방식으로 차례로 더한 값의 1의 보수 값을 체크섬 값으로 지정한다.
  • 수신 측은 데이터를 받아 동일한 방식으로 값을 더해 1의 보수를 취하지 않은 값과 체크섬을 더하여 모든 비트가 1인지 확인한다. (모든 비트가 1이면 데이터가 정상이라고 판단)


긴급 포인터 (16비트): 긴급 데이터의 시작 위치.

  • 일반 데이터 내에서 긴급 데이터가 시작되는 위치 정보
  • URG 플래그가 1이라면 수신 측은 이 포인터가 가리키고 있는 데이터를 우선 처리


옵션 (가변 길이): TCP 확장 기능.

  • TCP의 기능을 확장할 때 사용하는 필드들이며, 이 필드는 크기가 고정된 것이 아니라 가변적
  • 옵션을 모두 사용했을 때 옵션 필드의 최대 길이는 40byte다.(->총 20byte+40byte=60byte)
  • Data offset필드가 옵션 필드의 끝을 가리키는데, 실제 옵션 필드의 끝 < Data offset라면 부족한 부분만큼 0으로 채워야함
  • 대표적인 옵션으로는 윈도우 사이즈의 확장을 위한 WSCALE, Selective Repeat 방식을 사용하기 위한 SACK 등이 있음
  • 약 30개 정도의 옵션을 사용할 수 있음


TCP 연결 방식 (3-Way Handshaking)

TCP는 장치들 사이에 논리적인 접속성립(establish)하기 위하여 3-Way Handshaking를 사용한다.
 
3-Way Handshake의 역할은 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하는 것이다.
 

출처:https://user-images.githubusercontent.com/40616436/81503765-6e7ace80-9320-11ea-82d6-49e00e900c36.png

 
 
1. SYN 패킷 전송 (클라이언트 → 서버)

  • 클라이언트는 서버에 접속을 요청하기 위해 SYN(Synchronize Sequence Numbers) 패킷을 보낸다.
  • 이때 클라이언트는 SYN_SENT 상태가 되며, 서버의 응답을 기다린다.

2. SYN/ACK 패킷 전송 (서버 → 클라이언트)

  • 서버는 클라이언트의 SYN 요청을 받고, 이를 수락한다는 의미로 SYN과 ACK(Acknowledgment) 플래그가 설정된 패킷을 클라이언트에게 보낸다.
  • 이때 서버는 SYN_RECEIVED 상태가 된다.

3. ACK 패킷 전송 (클라이언트 → 서버)

  • 클라이언트는 서버의 SYN/ACK 패킷을 받고, 이를 확인했다는 의미로 ACK 패킷을 서버에 보낸다.
  • 이때 연결이 성립되며, 서버는 ESTABLISHED 상태가 된다.
  • 이제 클라이언트와 서버는 데이터를 주고받을 수 있다.



TCP 연결 해제 방식 (4-Way Handshaking)

반대로 TCP 연결을 종료하는 과정은 4-Way Handshake로 이루어진다.

출처:https://user-images.githubusercontent.com/40616436/81503940-7a1ac500-9321-11ea-9442-d1b86065188c.png

 

1. 클라이언트 → 서버: FIN 패킷 전송

  • 클라이언트는 연결을 종료하고자 할 때 FIN(Finish) 플래그가 설정된 패킷을 서버에 보낸다.
  • 이때 클라이언트는 연결 종료를 대기하는 상태가 된다.

2. 서버 → 클라이언트: ACK 패킷 전송

  • 서버는 클라이언트의 FIN 패킷을 받고, 이를 정상적으로 받았다는 의미로 ACK(Acknowledgment) 패킷을 클라이언트에 보낸다.
  • 서버는 CLOSE-WAIT 상태가 된다.

3. 서버 → 클라이언트: FIN 패킷 전송

  • 서버는 연결을 종료한 후, 클라이언트에게 FIN 플래그가 설정된 패킷을 보낸다.

4. 클라이언트 → 서버: ACK 패킷 전송

  • 클라이언트는 서버의 FIN 패킷을 받고, 이를 확인했다는 의미로 ACK 패킷을 서버에 보낸다.
  • 클라이언트는 일정 시간 동안 TIME-WAIT 상태가 되어 서버의 재전송 패킷을 기다린다.

5. 서버: 세션 종료

  • 서버는 클라이언트로부터 ACK 패킷을 받은 후 소켓을 닫고, 두 TCP 간의 세션이 종료된다.

6. 클라이언트: TIME-WAIT 상태

  • TIME-WAIT 상태에 있는 클라이언트는 일정 시간 동안 세션을 유지하며 도착하지 않은 패킷을 기다린다.
  • 서버에서 FIN을 전송하기 전에 전송한 패킷이 늦게 도착할 경우, 클라이언트는 서버로부터 FIN을 수신한 후에도 일정 시간 동안(기본 240초) 세션을 유지하며 잉여 패킷을 기다리는 TIME-WAIT 상태에 머물러 데이터 유실을 방지한다.
  • 일정 시간이 지나면 클라이언트도 소켓을 닫고 세션을 완전히 종료한다.



TCP 재전송과 타임아웃

클라이언트는 일정 시간 내에 서버의 확인 응답(ACK)을 받지 못하면 패킷을 재전송하여 데이터 유실을 방지한다.

사진출처:https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgJLtD%2FbtsFpQExe1R%2Fr9NSFCoPKvvSqgJ8GvMb30%2Fimg.png


재전송: 데이터 전송 후 응답 패킷 미수신 시 재전송.
타임아웃 (RTO): 응답 패킷 대기 시간. 너무 짧으면 재전송, 너무 길면 속도 저하.

  1. 패킷 전송 및 확인: 클라이언트가 서버로 데이터 패킷을 전송하고, 서버는 이를 확인(ACK)하는 응답 패킷을 보낸다.
  2. 타이머 시작: 클라이언트는 패킷을 전송한 후 타이머를 시작한다. 일정 시간 내에 서버로부터 확인 응답(ACK)을 받지 못하면 타이머가 만료된다.
  3. 패킷 유실 감지 및 재전송: 클라이언트가 타이머 만료를 감지하면 해당 패킷이 유실된 것으로 간주하고 동일한 패킷을 다시 전송한다.
  4. 서버의 응답: 서버는 재전송된 패킷을 수신하고, 이를 확인하는 응답(ACK)을 다시 클라이언트에게 보낸다.
  5. 타이머 초기화 및 재시작: 클라이언트는 서버로부터 응답을 받으면 타이머를 초기화하고 다시 시작한다. 이는 다음 패킷에 대해 동일한 과정을 반복한다.

 

UDP의 특징 및 구조

 
데이터를 데이터그램(독립적인 관계를 지니는 패킷) 단위로 처리하는 프로토콜(논리x)

출처:https://user-images.githubusercontent.com/54384004/73796004-6c6c1580-47ef-11ea-97e0-392e36728fcc.png

 

 

+위 표 정보 외 추가 정보
*흐름제어(flow control), 오류제어, 손상된 세크먼드의 수신에 대한 재전송 X
*포트들을 사용하여 IP 프로토콜에 인터페이스를 제공하는 역할을 수행한다.
*요청 또는 응답이 손실된다면 재전송 없이 단지 타임아웃 처리되고, 다시 시도하면 된다.
*코드가 간단하고 초기설정이 TCP와 비교하여 적은 메시지를 요구한다.
*연결 자체가 없어 소켓 구분이 없고, 소켓 대신 IP를 기반으로 데이터를 전송한다.
 

UDP 헤더 구조

UDP는 단순한 데이터 전송을 위해 설계되어 헤더가 간단하다.

출처:https://velog.velcdn.com/images/amercurl27/post/a9e380ac-cc47-45b2-a828-d9538cadaa8b/image.png

 

UDP 헤더의 크기

  • 8bytes

발신지 포트와 목적지 포트 (16비트): 송수신 측의 포트 번호.

길이 (16비트): 헤더와 데이터의 총 길이.

체크섬 (16비트, 선택적): 오류 검출. TCP와 달리 필수는 아님.

  • 체크섬은 데이터 전송 중 발생할 수 있는 오류를 검출하기 위해 사용되지만 TCP와 달리 UDP는 오류 복구 기능을 제공하지 않아 오류 검출 후의 처리는 응용 프로그램에서 담당해야 한다.


UDP 통신 방식

출처:https://media.geeksforgeeks.org/wp-content/uploads/20230406112559/TCP-3.png

 

  • 수신자의 수신 여부 확인 없이 데이터 전송.
  • 빠른 데이터 전송이 필요할 때 유용.
  • 브로드캐스트 및 멀티캐스트 지원.


결론(TCP와 UDP의 용도)

  • TCP는 신뢰성이 중요한 웹 페이지 로드, 이메일 전송, 파일 전송 등의 애플리케이션에 적합하다.
  • UDP는 실시간 스트리밍, 온라인 게임, VoIP 등 빠른 데이터 전송이 중요한 애플리케이션에 적합하다.

출처:https://photo.coolenjoy.co.kr/data/editor/1705/20170503123926_iqwmwzqy.jpg/https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcStJOZJ8I6GWv1kqOJVgJL7EsLYfLmiL-Vxbu7BpPrurPsUHXvE

 

 *PPT

[4주차]TCP와 UDP의 특징 및 차이점.pptx
3.09MB

*참고자료

https://bellog.tistory.com/235
https://ohcodingdiary.tistory.com/7
https://ohcodingdiary.tistory.com/12
https://evan-moon.github.io/2019/11/10/header-of-tcp/
https://github.com/yeoseon/tip-archive/issues/90

 

'Security > Network' 카테고리의 다른 글

Firewall, DDoS, IDS 와 IPS 의 특징 및 차이점  (0) 2024.08.24
계층별 주요 프로토콜(2)  (0) 2024.08.12
계층별 주요 프로토콜(1)  (0) 2024.08.10
OSI 계층 별 장비  (2) 2024.07.23
OSI 7 Layer  (1) 2024.07.16

네트워크 개요

네트워크 정의

컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고받기 위해 유선 혹은 무선으로 연결된 통신 체계

 

네트워크의 주요 기능

어플리케이션 목적에 맞는 통신 방법 제공

  *어플리케이션: 컴퓨터와 사용자 간의 상호 작용을 통해 특정 작업을 수행하는 소프트웨어 프로그램

신뢰할 수 있는 데이터 전송 방법 제공
네트워크 간의 최적의 통신 경로 결정
목적지로 데이터 전송
노드 사이의 데이터 전송

 

 

위와 같이 통신 기능이 제대로 동작하기 위해서는 참여자들 사이에서 약속된 통신 방법이 필요하다.

네트워크 프로토콜: 네트워크 통신을 하기 위해 통신에 참여하는 주체들이 따라야 하는 형식, 절차, 규약

단 하나의 프로토콜로 표현하기 힘들어 모듈화를 시켜 계층 구조를 만듦

OSI 7계층(7계층): 범용적인 네트워크 구조 (이론적)
TCP/IP 스택(4계층): 인터넷에 특화된 네트워크 구조 (실용적)

 

OSI 7 Layer & TCP/IP 4 Layer

 

OSI 7 Layer?

OSI 7 계층 모델은 1984년 국제표준화기구(ISO, International Organization for Standardization)에서 네트워크 통신의 표준화를 위해 제안한 모델
다양한 네트워크 장비와 프로토콜들이 상호 운용 가능하도록 하기 위한 표준 모델을 만듦
네트워크 아키텍처의 표준화를 통해 다양한 네트워크 기술 및 제품 간의 상호 운영성을 보장
 
OSI 7 Layer가 만들어진 궁극적인 목적
1. 표준화를 통한 서로 다른 회사와 통신하기가 편해져 비용 절감
2. 세분화를 통한 신속한 장애문제 해결 및 교육적인 효과 상승
 
특징
7개로 이루어진 계층은 각각 독립적인 모듈로 구성
각 계층은 상하 계급 구조를 가짐
상위 계층의 프로토콜이 동작하기 위해서는 하위의 모든 계층에 문제가 없어야 한다.

 

응용 계층(L7)

기능: 사용자와 직접 상호작용하는 응용 프로그램을 지원한다.
역할: 이메일, 웹 브라우저 등 사용자와 상호작용하는 응용 프로그램에서 데이터를 주고받는다.

 

전송 단위: 데이터, 메세지
예시: HTTP, FTP, SMTP, DNS(웹페이지가 보고 싶을 때 HTTP 통신,파일을 서버에 다운 및 업로드 FTP,도메인을 ip주소로 바꾸고 싶으면 DNS,이메일을 사용하고 싶으면 SMTP)

 

표현 계층(L6)

기능: 7계층에서 만들어진 데이터를 확장자를 부여하여 표현해주는 계층. 데이터를 다른 형식으로 변환하고, 암호화/복호화하여 데이터의 보안을 유지(메시지 포맷 관리)

 

역할: 데이터 형식 변환, 압축, 암호화 등을 통해 데이터를 상호 호환 가능한 형태로 만듦
전송 단위: 데이터, 메세지
예시: 텍스트 파일을 ASCII로 변환, 데이터 압축/암호화, ppt->pptx

 

세션 계층(L5)

기능: 응용 프로그램 간의 세션을 설정하고 관리한다.
역할: 세션을 시작, 유지, 종료하며, 데이터 교환을 위한 동기화를 제공한다.
전송 단위: 데이터, 메시지
예시: 로그인을 통해 로그인 상태로 세션을 설정하고, 데이터 통신을 관리한다.
 

*세션: 물리적 연결(케이블)IP(논리주소), MAC주소(물리주소)등 논리적인 연결을 통해 통신/프로세스들 사이에 통신을 수행하기 위해서 메세지 교환을 통해 서로를 인식 한 이후부터 통신을 마칠 때까지의 기간

*동기화: 동기점을 설정해서 송수신 중 오류가 발생하면 동기화 이후부터 다시 재전송한다.

 

넘어가기에 앞서...

7~5계층은 데이터를 송수신하는 양쪽 종점 컴퓨터 내의 프로세스들 간의 통신 프로토콜이라 할 수 있다.
전송단위가 데이터, 메세지인 이유는 이 계층들이 주로 애플리케이션과 사용자 간의 데이터 교환을 처리하기 때문에
 
4~1계층의 주된 기능은 데이터를 전달하는 것(+양쪽 외에 있는 노드들도)
네트워크 경로 설정+물리적 연결

 

전송 계층(L4)

기능: 데이터를 신뢰성 있게 전송하며, 전송 속도 조절과 오류 제어를 담당한다.
역할: 데이터의 송수신을 관리하고, 신뢰성 있는 연결(TCP)과 빠른 전송(UDP)을 제공한다.
전송 단위: TCP-세그먼트, UDP-데이터그램

 

장비: L4 스위치
예시: TCP(신뢰성, 연결지향적), UDP(비신뢰성, 비연결성, 실시간)

 

네트워크 계층(L3)

기능: 데이터를 여러 경로를 거쳐 목적지까지 전달한다.
역할: 데이터를 목적지까지 최적의 경로로 전달하며, 라우팅을(데이터가 표적에 도달하기 위한 최상의 물리적 경로를 찾는 과정) 통해 경로를 설정한다.

 

전송 단위: 패킷
장비: 라우터
예시: IP 주소

 

데이터 링크 계층(L2)

기능: 데이터가 만들어지는 단계. 이웃한 기기 간의 데이터 전송을 담당하며, 물리 계층에서 발생할 수 있는 오류를 수정한다.
역할: 프레임 단위로 데이터를 주고받으며, 프레임에 물리적 주소(mac주소)를 부여하고  흐름 제어, 오류 제어, 접근 제어, 동기화 등을 수행한다.
전송 단위 : 프레임
장비: 스위치, 브리지
예시: Ethernet

*MAC주소: 컴퓨터 간 데이터를 전송하기 위한 컴퓨터의 물리적 주소

*MAC 주소는 장치의 각 네트워크 인터페이스에 할당된 고유 식별자. IP 주소는 컴퓨터 네트워크에 연결된 장치에 할당된 숫자 식별자

*MAC 주소 기반 통신(ARP:ip->mac주소로 변환)

 

물리 계층(L1)

기능: 데이터를 전기적 신호로 변환하여 전송한다.
역할: 컴퓨터가 01의 신호를 아날로그 신호로 변환하여 물리적 장비로 전송하고, 이를 다시 01의 디지털 신호로 해석하는 역할을 한다.
전송 단위:Bits 단위
미디어 타입: 구리, 광섬유, 공기(무선)
장비: 허브, 리피터, 통신 케이블

 

데이터 캡슐화와 역캡슐화

캡슐화: 데이터를 보내기 전에 각 계층을 거치면서 필요한 정보를 덧붙이는 과정. 예를 들어, 소포를 포장하는 것처럼 각 계층에서 헤더와 푸터를 추가하여 데이터를 전송한다.
역캡슐화: 데이터를 받을 때 각 계층에서 헤더와 푸터를 제거하고 원래의 데이터를 복원하는 과정.

 

네트워크 통신의 전체 흐름

EX.이메일을 보내는 과정

1. 응용 계층 (Application Layer): 작성된 이메일이 응용 계층에서 표현 계층으로 전달
2. 표현 계층 (Presentation Layer): 데이터 형식 변환, 압축, 암호화가 이루어지며, 세션 계층으로 전달
3. 세션 계층 (Session Layer): 동기화를 위해 주기적으로 동기점을 삽입하여 전송 계층으로 전달
4. 전송 계층 (Transport Layer): 발신지와 목적지를 정하고, 오류 제어 및 흐름 제어를 수행
5. 네트워크 계층 (Network Layer): 라우팅 정보를 삽입하고, 패킷으로 나누어 데이터 링크 계층으로 전달
6. 데이터 링크 계층 (Data Link Layer): 프레임 단위로 나누고, MAC 주소를 지정하여 물리 계층으로 전달
7. 물리 계층 (Physical Layer): 데이터를 전기적 신호로 변환하여 전송

이와 같은 과정을 통해 데이터가 목적지에 도달하고, 역캡슐화를 거쳐 원래의 데이터를 복원하게 된다.

 

사진출처:

네트워크 https://hasonss.com/blogs/wp-content/uploads/2023/11/network-infrastructure-2.webp

7layer :https://user-images.githubusercontent.com/58318041/91638346-eee94a80-ea49-11ea-9bd0-3d0b83b4bf39.png

프로토콜:https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNrGiv%2FbtrdBrRV3qd%2FToDNFMLQzXtGTf71KoNL3K%2Fimg.png

응용:https://velog.velcdn.com/images/hoon0123/post/d771eac1-91e2-4551-99bf-809418de73f9/image.png

표현:https://velog.velcdn.com/images/hoon0123/post/1ecb056d-808e-4c03-ac84-42177ad55b15/image.png

셋션:https://velog.velcdn.com/images/hoon0123/post/2c1ae433-0a2b-48f8-895e-ced6efa90d0a/image.png

전송:https://velog.velcdn.com/images/hoon0123/post/d6a4a130-9c30-4abf-85e5-090ae9257c93/image.png

네트워크:https://velog.velcdn.com/images/hoon0123/post/e2fb2722-80d8-44ce-9f90-843075c45606/image.png

데이터링그:https://velog.velcdn.com/images/hoon0123/post/d0db8a1a-a4e2-4fee-9fc3-27d745bea47e/image.png

물리:https://velog.velcdn.com/images/hoon0123/post/b88909ef-0418-47cd-9fcf-a2ee7b0b4b56/image.png

캡슐화.:https://huimang2.github.io/assets/images/osi7/osi_img_01.png//// https://t2.daumcdn.net/thumb/R720x0.fpng/?fname=http://t1.daumcdn.net/brunch/service/user/7zsI/image/lUkm-Pl6f63OC9Dgt14QumjxnrQ.png

 

*PPT

[3주차]OSI 7 Layer.pptx
2.78MB

 

'Security > Network' 카테고리의 다른 글

Firewall, DDoS, IDS 와 IPS 의 특징 및 차이점  (0) 2024.08.24
계층별 주요 프로토콜(2)  (0) 2024.08.12
계층별 주요 프로토콜(1)  (0) 2024.08.10
OSI 계층 별 장비  (2) 2024.07.23
TCP와 UDP의 특징 및 차이점  (0) 2024.07.16

현대 IT 환경에서 중요한 '클라우드 컴퓨팅'과 이를 안전하게 운영하기 위한 핵심 역할인 '데브섹옵스 엔지니어'에 대해 알아보자
 

1. 클라우드 컴퓨팅이란?

 클라우드 컴퓨팅은 필요한 컴퓨터 자원을 필요할 때마다 필요한 만큼 빌려서 사용하는 개념이다. 예를 들어, 우리가 필요할 때마다 자동차를 렌트하는 것처럼, 클라우드 컴퓨팅은 인터넷을 통해 필요한 서버, 저장 공간 등의 컴퓨팅 자원을 빌려 사용하는 것이다. 이런 방식을 통해 자원을 직접 구매하거나 유지보수할 필요 없이 필요한 만큼의 자원을 유연하게 활용할 수 있다.

이미지 출처:https://cdn-icons-png.freepik.com/512/9857/9857919.pnghttps://cdn-icons-png.freepik.com/512/9857/9857919.png

 

 

2. 클라우드 컴퓨팅의 유래: 아마존 웹 서비스 (AWS)

블랙 프라이데이와 AWS
 
 아마존이 클라우드 컴퓨팅을 개발하게 된 배경 중 하나는 블랙 프라이데이와 같은 대규모 쇼핑 이벤트에서 발생하는 엄청난 트래픽을 효과적으로 처리하기 위한 필요성 때문이었다. 전통적인 방식으로는 이러한 급증하는 트래픽을 감당하기 어려웠고, 이를 해결하기 위해 방대한 서버 인프라를 구축하다. 그러나 이런 서버 인프라는 일 년 중 대부분의 시간은 활용되지 않고 방치되어 자원의 낭비가 발생하는 문제가 있었다.

 이에 아마존은 탄력적이고 유연한 클라우드 기반의 서버 인프라를 개발하게 되었다. 클라우드 컴퓨팅을 통해 기업들은 필요할 때에만 필요한 자원을 사용할 수 있게 되었고, 이는 비용 절감과 자원의 효율적인 활용을 가능하게 했다. 따라서, 아마존은 클라우드 컴퓨팅을 시작으로 급격히 발전하게 되었고, 이후 AWS의 S3와 EC2 서비스를 통해 클라우드 컴퓨팅의 시대를 열게 된 것 이다.

이미지 출처:https://lh6.googleusercontent.com/proxy/xxMIcT--JeSH4_ZcWvyvyi7Ld8-dkBHqbpvjT1Mqho4Jywzvu5jdg1NO4Ayt9ffRjoT4hNgMLyBHzUz_DMqDtpzGRrW6uM-vOg5IMirGYZTy_HEN1mBM347JasePNumvbgNG8KE9-O3W91Fl7tO8bxF8jA

 
 

3. 온프레미스와 클라우드의 차이점

  온프레미스(on-premises): 기업이 자체적으로 서버, 스토리지, 네트워킹 등의 IT 인프라를 구축하고 운영하는 방식. 모든 하드웨어 및 소프트웨어는 기업의 물리적인 공간 내에서 관리된다.
 
   클라우드(cloud): 클라우드 서비스 제공업체가 원격 데이터 센터에서 가상화된 서버, 스토리지, 네트워크 등의 IT 리소스를 제공. 사용자는 인터넷을 통해 필요한 만큼의 리소스를 빌려 사용할 수 있으며, 유연성과 확장성이 높다.

이미지 출처:https://mblogthumb-phinf.pstatic.net/MjAyMjA0MjlfNjAg/MDAxNjUxMjI0Mzg2MDA1.W-mb5vZCl_0r0REovzeH1u3qJuVlbNiTKB5OlX9GYE8g.CcdwAG0A0PxhIfdEI6k-8lF_LnzLNzCE1enrZKgb5Zog.PNG.gmldls2004/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C_%EC%98%A8%ED%94%84%EB%A0%88%EB%AF%B8%EC%8A%A4.png?type=w800

 


4. 클라우드 서비스 모델

 
 클라우드 서비스 모델은 다음과 같이 세 가지로 나뉜다:
   - IaaS (Infrastructure as a Service): 가상의 서버를 빌려 사용하는 것.(ex:EC2)
   - PaaS (Platform as a Service): 애플리케이션 개발 환경을 제공받는 것(ex:google app engine)
   - SaaS (Software as a Service): 이메일이나 구글 드라이브와 같은 서비스를 사용하는 것(ex:google workspace, naver my box)
 
날 것 그 자체에서 점점 사용자에게 제공하는 서비스 기능이 추가된다고 보면 된다.(IaaS->PaaS->SaaS)

이미지 출처:https://media.licdn.com/dms/image/D4D12AQF7FXaQpqc3Og/article-cover_image-shrink_720_1280/0/1680389110616?e=2147483647&amp;v=beta&amp;t=MsaBRSLLf2FFH7lKbdIqziuQZEGMWT96qEC_3SXy2dI

 

IaaS, PaaS, SaaS 들어는 본 것 같은데...이게 뭐람? | 클라우드의 서비스 모델 - 클라우드 입문과정 #4 ☁️ (youtube.com)

+윗 영상을 참고하면 좀 더 이해하기 쉽다.

5. 클라우드 보안의 중요성

 4차 산업 혁명의 발전으로 인해 클라우드 컴퓨팅의 중요성이 한층 부각되고 있다. 기술의 발전과 데이터의 폭증으로 인해 기업들은 더 많은 데이터를 처리하고 저장해야 한다. 이에 따라 클라우드는 비용 효율성과 확장성을 제공하여 이러한 대용량 데이터를 효율적으로 관리할 수 있는 최적의 해결책으로 자리 잡고 있다.

 따라서, 4차 산업 혁명 시대에는 클라우드 컴퓨팅이 기업의 혁신과 성장을 위한 중추적인 역할을 하고 있으며, 이를 효과적으로 운용하기 위한 클라우드 보안의 중요성도 더욱 강조되고 있다.
 
->즉, 데브섹옵스 엔지니어 (DevSecOps Enginer) 의 중요성 또한 강조되고 있다.
 
 

6. 데브섹옵스란 무엇인가?

   데브섹옵스의 정의: 데브섹옵스(DevSecOps)는 개발(Development), 운영(Operations), 보안(Security)을 통합한 접근 방식으로, 애플리케이션 개발과 운영 과정에서 보안을 최우선으로 고려하는 방법론이다.

   데브섹옵스의 필요성: 빠른 개발 주기와 빈번한 릴리즈가 요구되는 현대 IT 환경에서 보안을 강화하고, 보안 위협을 사전에 예방하기 위해 필요하다.

이미지 출처:https://slownews.kr/wp-content/uploads/2021/04/07fa7e99-7d03-4e25-9322-73bb5102c601.png

 


7. 데브섹옵스 엔지니어의 역할

 
 역할과 책임
   - 보안 자동화: 코드 작성부터 배포까지의 모든 과정에서 보안이 자동으로 적용되도록 한다.
   - CI/CD 파이프라인 보안: 지속적 통합/지속적 배포(CI/CD) 파이프라인에서 보안 검사를 자동화한다.
   - 취약점 관리: 애플리케이션과 인프라의 취약점을 식별하고 수정한다.
   - 보안 모니터링: 운영 중인 시스템을 실시간으로 모니터링하여 이상 징후를 감지한다.
   - 보안 정책 수립: 기업의 보안 정책을 수립하고 준수 여부를 점검한다.
 
 

8. 데브섹옵스 엔지니어가 사용하는 도구

   - CI/CD 도구: Jenkins, GitLab CI, CircleCI
   - 보안 스캐닝 도구: Snyk, Black Duck, Checkmarx
   - 모니터링 도구: Prometheus, Grafana, ELK 스택
   - 인프라 관리 도구: Terraform, Ansible, Chef
 
 

9. 클라우드와 데브섹옵스의 결합

- 클라우드 인프라의 유연성: 클라우드 환경에서는 자원을 필요할 때만 사용하고, 필요 없을 때는 반환할 수 있어 효율적이다.
- 데브섹옵스의 민첩성: 데브섹옵스는 개발, 운영, 보안을 통합하여 빠른 개발과 안전한 배포를 가능하게 한다.
->보안 강화
     클라우드와 데브섹옵스를 결합하면 보안 위협을 사전에 차단하고, 문제가 발생했을 때 신속하게 대응할 수 있다.

 
 

10. 결론

클라우드 컴퓨팅은 현대 IT 환경에서 필수적인 기술이며, 이를 안전하게 운영하기 위해 데브섹옵스 엔지니어가 중요한 역할을 한다. 

 
 
*영상 및 이미지 자료 제외한 나머지 정보 자료 출처:chat gpt

 

클라우드와 데브섹옵스.pptx
2.07MB

배포를 완료했는데 계속해서 중간에 코드가 실행이 안되는 문제가 생겼다.

.

이를 해결하기 위해 nginx 데몬을 내 파이썬 코드에 연동하여 실행하였다.

 

데몬(Daemon)

데몬은 사용자가 직접 실행하거나 조작하지 않아도 백그라운드에서 계속 실행되어 필요한 작업을 수행하는 프로그램

 

데몬의 예

  • 웹 서버 데몬:
    • nginx 또는 Apache와 같은 웹 서버는 데몬으로 실행되어 웹 요청을 처리.
  • 데이터베이스 데몬:
    • MySQL 또는 PostgreSQL과 같은 데이터베이스 서버는 데몬으로 실행되어 데이터베이스 요청을 처리.
  • cron 데몬:
    • cron은 일정한 시간 간격으로 특정 작업을 수행하는 데몬. 예를 들어, 매일 백업을 수행하거나 정기적으로 시스템 업데이트를 확인.

 

Python 스크립트를 데몬으로 실행 과정

nginx에 관한 블로그 글에서 이어 데몬을 활용해서 ec2 창을 닫아도 파이썬 코드가 실행되게 해보자!

 

systemd 서비스 파일 작성

Python 스크립트를 데몬으로 실행하기 위해 systemd 서비스 파일을 작성한다.

sudo nano /etc/systemd/system/openport.service

[Unit]
Description=Open Port Python Script
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu
ExecStart=/usr/bin/python3 /home/ubuntu/open_port.py

[Install]
WantedBy=multi-user.target

 

 

서비스 파일을 저장한 후, systemd를 다시 로드한다

sudo systemctl daemon-reload
sudo systemctl enable openport.service
sudo systemctl start openport.service


##코드 실행 예시##

#서비스 시작:
sudo systemctl start 서비스이름

#서비스 중지:
sudo systemctl stop 서비스이름

#서비스 상태 확인:
sudo systemctl status 서비스이름

 

nginx 다시 시작

nginx 설정을 다시 로드합니다:

sudo systemctl restart nginx

 

systemctl 명령어를 사용하여 서비스 상태 확인

#nginx 상태 확인
sudo systemctl status nginx

#내 파이썬 코드가 실행 중인지 확인
sudo systemctl status openport.service

 

(출처:chat gpt)

코딩 입문 과정으로 3달간(3/10~6/17) 진행한 포트폴리오 웹사이트 만들기 프로젝트 수업 정리
 

[1주차]

IT 기초 중요 키워드 :: West_Cold (tistory.com)

 

IT 기초 중요 키워드

1주차 과제기술과제웹브라우저가 무엇인지?서버가 무엇인지?클라이언트가 무엇인지?IP, DNS, Domain, PORT가 무엇인지?네트워크가 무엇인지?공유기가 무엇인지?HTTPS가 무엇인지?DOM이란 무엇인가?브

eatitstory.tistory.com

 
 
 

[2주차]

파이썬-자료형 :: West_Cold (tistory.com)

 

파이썬-자료형

*자료형 자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등과 같이 자료 형태로 사용하는 모든 것을 뜻한다. 프로그램의 기본이자 핵심 단위가 바로 자료형이다. 1.숫자형 *정수 *실수(4.27e10

eatitstory.tistory.com

파이썬-제어문 :: West_Cold (tistory.com)

 

파이썬-제어문

*제어문 프로그램을 만드는 것도 집 짓기와 매우 비슷한 면이 있다. 나무, 돌, 시멘트와 같은 재료는 자료형이 되고 집의 뼈대를 이루는 철근은 제어문에 해당한다. 조건문 다음에 콜론(:)을 잊지

eatitstory.tistory.com

파이썬-함수 :: West_Cold (tistory.com)

 

파이썬-함수

*함수 반복되는 코드를 사용할 때가 있는데. 이를 좀 더 효율적으로 만들기 위해 사용된다. def 함수_이름(매개변수): 수행할_문장 ... return 리턴값 *키워드 매개변수,kwargs >>> print_kwargs(a=1) {'a': 1} >>

eatitstory.tistory.com

http 메소드 및 requests 모듈 사용 :: West_Cold (tistory.com)

 

http 메소드 및 requests 모듈 사용

2주차 과제 - 파이썬 데이터형태 전부 파악하고 함수까지 끝내기-->다른 글에서 작성 https://eatitstory.tistory.com/3 https://eatitstory.tistory.com/4 https://eatitstory.tistory.com/5 파이썬-함수 *함수 반복되는 코드

eatitstory.tistory.com

 
 
 

[3주차]

호스팅, ssh란? :: West_Cold (tistory.com)

 

호스팅, ssh란?

3주차 과제기술과제 호스팅이 무엇인지 ? AWS 회원가입, EC2서비스 프리티어(1년공짜) 인스턴스 생성해보기 (OS아무거나, Ubuntu 추천) SSH가 무엇인지 ? SSH가지고 생성한 EC2서비스 연결까지 해보기 코

eatitstory.tistory.com

BeautifulSoup를 이용하여 크롤링하기(epl 순위) :: West_Cold (tistory.com)

 

BeautifulSoup를 이용하여 크롤링하기(epl 순위)

3주차 과제-기술과제 호스팅이 무엇인지 ? AWS 회원가입, EC2서비스 프리티어(1년공짜) 인스턴스 생성해보기 (OS아무거나, Ubuntu 추천) SSH가 무엇인지 ? SSH가지고 생성한 EC2서비스 연결까지 해보기 --

eatitstory.tistory.com

 
 
 

[4주차]

MYSQL (tistory.com)

 

MYSQL

*mysql 이 무엇인지? DB, 테이블, 컬럼 mysql을 알아보기 전 미리 알아야 하는 게 있다. *데이터베이스(DB):특정 기업이나 조직 또는 개인이 필요에 의해 논리적으로 연관된 데이터를 모아 일정한 형태

eatitstory.tistory.com

웹사이트 구성하는 방법(Node.js) (tistory.com)

 

웹사이트 구성하는 방법(Node.js)

웹사이트 구성하는 방법 *mpa-페이지가 여러개 -스마트폰 나오기 전에 많이 사용 -화면이 깜빡인 후에 로딩이 된다 /list /detail /write /edit 위와 관련된 html을 서버가 준비 해뒀다가 클라이언트가 요

eatitstory.tistory.com

 
 
 

[5주차]

openai(chat gpt) api 활용 (tistory.com)

 

openai(chat gpt) api 활용

4주차 기술과제 -API 토큰이 필요한 이유 코딩과제 -openai API 계정 생성 -파이썬에서 Openai 모듈 설치 -질문하고 답변 받아온거 print해서 테스트 해보기 -크롤링 한 데이터값을 GPT한테 주고 받은 답

eatitstory.tistory.com

 
 
 

[6주차]

Typing Game 만들어보기(비동기 실습) (tistory.com)

 

Typing Game 만들어보기(비동기 실습)

동기:순차적으로 작업을 수행 하여 소스를 1줄 보고 이해하고 또 다시 1줄 보고 이해하는 직렬적으로 일 처리를한다.단점:소스 하나 보고 실행하고를  반복하니 두개의 소스를 동시에 실행이 안

eatitstory.tistory.com

React 실습 (tistory.com)

 

React 실습

기술과제방화벽이 무엇인지 ?인바운드 / 아웃바운드MYSQL EC2에서 설치한거 연결 성공 하는걸 목표가지고 셋업 해보기SPA 프레임워크가 무엇이고 어떤것이 있는지 간단하게코딩과제SPA란 무엇인가

eatitstory.tistory.com

 
 
 

[7주차]

Next.js 실습 :: West_Cold (tistory.com)

 

Next.js 실습

# 기술과제 - SSR, CSR이란 무엇인가? - Next.js란 무엇인가? - Next.js 설치 후 사용해보기 - Next 가 버전이 두개가 있다 - /pages - /app - git이 무엇인지? - commit - add - push - pull - github에 Next.js 내코드 올릴 저

eatitstory.tistory.com

GIT이란? :: West_Cold (tistory.com)

 

GIT이란?

이번주 과제 https://eatitstory.tistory.com/m/20 next.js 실습# 기술과제 - SSR, CSR이란 무엇인가? - Next.js란 무엇인가? - Next.js 설치 후 사용해보기 - Next 가 버전이 두개가 있다 - /pages - /app - git이 무엇인지? -

eatitstory.tistory.com

 
 
 

[8주차]

백엔드 서버 구현해보기(flask 실습) :: West_Cold (tistory.com)

 

백엔드 서버 구현해보기(flask 실습)

기술과제• Python Falsk 가 무엇인지• Axios가 무엇인지 (Fetch함수는 무엇인지)코딩과제• 본인 포트폴리오 코드 Github에 올리기• Varcel에 본인 코드 배포하기 • 본인이 만든 파이썬코드 내용을 Fla

eatitstory.tistory.com

Front & Back 서버 연결(axios 실습) :: West_Cold (tistory.com)

 

Front & Back 서버 연결(axios 실습)

기술과제 • Python Falsk 가 무엇인지 • Axios가 무엇인지 (Fetch함수는 무엇인지) 코딩과제 • 본인 포트폴리오 코드 Github에 올리기 • Varcel에 본인 코드 배포하기 • 본인이 만든 파이썬코드 내용

eatitstory.tistory.com

 
 
 

[9주차]

나만의 챗봇 만들어 보기(Open AI 어시스턴스 실습) :: West_Cold (tistory.com)

 

나만의 챗봇 만들어 보기(Open AI 어시스턴스 실습)

과제Open AI 어시스턴스 만들기 어시스턴트와 관련 된 기본용어 찾아서 정리해보기, 어시스턴트id,스레드id 어시스턴트에 간단하게 이력서샘플 만들어서 업로드 어시스턴트 api로 바꾸

eatitstory.tistory.com

 
 
 

[10주차]

챗봇의 다양한 기능 추가(채팅갯수 제한/DB연결) :: West_Cold (tistory.com)

 

챗봇의 다양한 기능 추가(채팅갯수 제한/DB연결)

openai api를 활용하면 토큰이 소모가 되는데 이게 사용량이 많으면 돈이 많이 깨진다잘못하면 누가 마음 먹고 쓸모없는 채팅으로 내 토큰을 소모되게 할 수 있다이를 해결하기 위해 여러 방법을

eatitstory.tistory.com

로딩창 만들기 :: West_Cold (tistory.com)

 

로딩창 만들기

opeanai api에게 내 정보를 물어보면 답이 돌아오는데 시간이 조금 걸려 사용자가 지루할 수 있다.이를 해결하기 위해 로딩창을 만들어보기로 했다.  React Spinners (davidhu.io) React Spinners www.davidhu.io 

eatitstory.tistory.com

 
 
 

[11주차]

Nginx란 무엇인가? :: West_Cold (tistory.com)

 

Nginx란 무엇인가?

-프론트엔드 코드 Vercel에 배포하기WEST_COLD (portpolio-practice-7s55-bzv8v07tu-chan-seos-projects.vercel.app) -도메인 구매하기아래 영상 참고 카페24 쇼핑몰 도메인 구매부터 적용까지 (도메인 가격비교, 네임서

eatitstory.tistory.com

 
 
 

[12주차]

서브 도메인 설정 및 HTTPS 적용: AWS EC2와 Let's Encrypt 활용 :: West_Cold (tistory.com)

 

서브 도메인 설정 및 HTTPS 적용: AWS EC2와 Let's Encrypt 활용

1. 서브도메인 api. 도메인은 웹사이트를 식별해 주는 URL섹션 서브 도메인이란? 하위 도메인으로 웹사이트의 섹션을 구분하기 위해 도메인 이름에 추가되는 프리픽스  2. api.도메인

eatitstory.tistory.com

Python 코드를 Nginx 데몬으로 연동하여 실행하는 방법 :: West_Cold (tistory.com)

 

Python 코드를 Nginx 데몬으로 연동하여 실행하는 방법

배포를 완료했는데 계속해서 중간에 코드가 실행이 안되는 문제가 생겼다..이를 해결하기 위해 nginx 데몬을 내 파이썬 코드에 연동하여 실행하였다. 데몬(Daemon)데몬은 사용자가 직접 실행하거

eatitstory.tistory.com

 

'Notice' 카테고리의 다른 글

[리팩토링] 보안 프로젝트(1) / 악성코드 분석 보고서  (0) 2024.12.05

 

이번 학기 교양 수업 때문에 읽었던 인구 미래 공존의 요약

세계적인 저출산 속 한국의 초저출산

2.1 아래로 내려감녀 저출산(2.1인 이유는 태어난 모든이가 생존해 다시 자녀를 낳는 건 아니기에)
1.3이하 3년 지속이면 초저출산

저출산과 초저출산을 분류하는 이유는  초저출산으로 빠진면 다시 올라오기가 어렵기 때문에
->초저출산의 덫

한 세대 1991년 71만명->2020 27만면 61%감소는 우리나라가 유일하다

초저출산의 덫+아이를 원하지 않는 사회=대한민국
우리나라는 초저출산 기간이 길어지고 속도가 빠르다

30년 전에 정해진 미래, 30년 후의 정해진 미래
생의학적 요소-여성 15~49가임기 여성
사회적 요소-역사적 과정,사회구조,인간의 삶
->인구학은 사회를 이야기하는 학문

30년 세대간 터울 동안 출생 이동 사망에 희해 달라지는 인구보다 사망하지 않고 같은 지역에 살아가는 인구가 많아정확한 예측이 가능

83년도에 이미 합계출산율이 2명으로 덜어졌는데 멈추지 않고 96년 1.6까지 떨어진 후에야 그만두었다+IMF로 한명만 낳는 국가가 되었다

출생아 30만명대가 3년만에 무너진이유(17~20년)
생의학적 측면=성비->남아선호사상+산아제한 정책이 맞물린결과(85~90)
2.1이여도 성비가 안맞으면 안정적으로 유지되기 힘들다

83년에 멈첬다면 40만명대는 유지 했을 듯
->인구학적 관점이 부족했던 과거 인구정책의 결과
그래도 우리나라는 남아선호사상은 없어진 편이라 다행

30년후는 어떤모습?
->2년마다 100만명씩 인구가 줄어들것
지금 태어난 아이들의 숫자만 봐도 30년뒤 인구 역시 정해진 미래다

만인은 평등하지만 , 인구감소의 영향은 평등하지 않다
생산과 소비의 기본단위 인구
-부정적(국민연구 지속가능성이 떨어진다...)
-긍정적(인구 줄면 좋지 않나?)
여론은 부정적인게 좀 더 많은듯

{일본의 세대차이
-노인교수-인구고령화가 일본의 저성장의 주된 원인
-젋은 교수-관계 입증이 어렵고 일본의 저성장은 선진국이 공통적으로 경험하는현상

노인교수
-일본의 고도성장을 맛 본 세대+고도성장시에 교수 됨
-일본의 미래는 암울하다

젊은 교수
-교수가 된 시점 이미 저성장 단계에 진입한 뒤
-저성장이라고 삶의 질이 나빠진것도 아님}->우리나라 찬반과 비슷함
-경기가 침체될 것이다(역삼각형화)
-일본의 인구크기와 연령구조가 경제를  좌우할 만큰 크게 변화하지 않았지만 변화의 속도가 더 빨라져 사회보장제도가 정상적 작동이 불가해 국가부채를 감당못하고 경기침체 가능성이 크다
->지금까지는 인구 이외의 요소가 경제에 더 중요했다면 인구고령화와 저출산이 가속화 되는 지금부터는 인구 요소의 중요성이 커질 것

부정-연령대 있는 사람
긍정-젊은 층

글쓴이 입장에선 부정적
->((1)변화의 속도가 너무 빨라 적을할 시간이 없다+(2)인구감소의 영향이 모두에게 공평하지 않다)<-수도권 인구집중이 기저

(1)
-고령인구 비중
-물론 기대수명이 높아진것도 있음
-10%->20%이 우리나란 급격함->적응 할 시간이 없다(ex 임용대란)
-삶에 심대한 타격

(2)
-평등하지 않다
-초저출산으로 인구감소는 특정연령,특정지역,특정산업, 특정재화에 차별적 영향
-신생아 사업은 그리 큰 시장이 아니라 이 산업에 종사하지 않으면 공감하기 어렵다
-신생아 사업이 살아남기 위해 부가가치를 높일텐데 이러면 신생아와 부모에게 피해가 가게
된다
-지방대학의 차별적

사회저출산을 걱정하는 사람<안하는 사람인 경우 대책내기가 어려워 사회적 양극화가 심화될수있다

인구가 경제나 사회 전반에 미치는 영향력이 크지 않다고 느낄 수도 있지만, 임계점을 넘어서면 어렵고 사회 구성원의 삶으 ㅣ질에 악영향을 준다
임계점을 찾아야하는데 우리나라는 다다른 것이 분명하다

학생 수가 줄어도 대학 가기 어려운 이유

심리적요인=인서울
서울 4년제 대학의 입혁경쟁률은 8->5이지만 여전히 경쟁률이 치열하다
지방은 3:1정도니

사교육 걱정이 없어지는 날은 인서울의 로망이 사라지지 않는 한 아무리 학령인구가 줄어도 가능 할 것 같지 않다

200조가 들어간 저출산 대책, 왜 효과가 없을까?

잉태~고등학생=양육비인데
양육비 부담으로 양육부담을 덜어주는 주거,고용 등 인구정책예산을 했지만 정작 돌봄시설이나 보육료 등 아이를 키우는데 직접 투입되는 예산은 늘지않았다.


근접요인
-만혼->아이를 출산하는 기간이 줄어들어 출산율이 낮아진다
우리나라는 가임기 여성이 나이가 적을 수록 출산율이 높아진다(혼후임신)
혼인과 출산시기를 앞당기는 방법은 있연 좋고
그것보단 생물학적 연령이 높더라도 건강하게 아이를 낳을 수 있는 환경을 조성하고 관련된 정책을 강화

-비혼
생애미혼율-만49세까지 결혼을 안한 사람의 비율
여성들의 자발적 비혼 선택 경향이 남성들보다 강해져->여성의 비혼율이 남성보다 빠르게 증가
왜 남성보다 강해졌는가?->여성의 삶의 질 및 처우 개선, 성평등 이슈
사회적 지위와 가정에서의 지위
떨어지는 출산율을 막알 줄 수 있는 것은 가정내 성평등
원거리요인
여성의 교육수준 향상/여성 수입 향상/ 청년 일자리 부족/ 사교육비/ 주책가격 등

코호트 가설: 지금의 삶과 과거 청소년기 삶을 비교해, 직슴의 삶이 더 나으면 결혼하고 아니면 미루는 경향이 있다.
부모세대:무에서 시작한 우상향의 삶

자녀세대: 유에서 시작으로 인한 눈높이(양육비, 사교육비(부모의 교육수준이 영향을 미친다))+주거비용+취업난
완벽한 부모 신드롬
결혼을 하지 않고 자유롭게 아이를 가지는건?->그게 주 문제(결혼여부)가 아닌 준비여부가 더 중요하다

가정과 사회의 기존 관행 및 경제적 문제가 중첩돼 결혼과 출산을 막고 있다

그럼 보육환경+양성평등+수도권이외의 출산을 꺼리는 이유?->충분조건
근본적인 원인 필요조건은 무엇일까?->수도권 밀집현상

인간 본성에서 찾아본 초저출산의 원인

지방대학의 몰락은 '지방'이라 더 심각하다
-지방의 대학은 경제의 한 축이다
-청년 인구의 수도권 집중이 계속되면 수도권의 실질적인 주택수요는 늘어나고지역수요는 줄어들게 된다->투자는 수도권 집중

군대 입대하기도 빡세다?
-서울이나 수도권을 원하기에

저출산이랑 수도권 집중현상의 연관성

밀도가 높으면 생존 욕구가 자극된다
-맬서스: 인구는 기하급수로 증가하고 식량은 산술급수로 증가해 인구증가는 곧 거대한 재앙을 불러올 것이다
-인간의 기본적인 욕구: 생존 재생산
-다윈과 멜서스의 공통점:자원한정/공간의 밀도가 개채당 쓸 수 있는 자원의 양을 결정한다/공간이 한정돼 있는데 개체 수가 급증하면 조절이 일어난다/종들은 살아남기 위해 서로 경쟁한다/이때 본인의 생존 본능이 후손 재생산 본능에 우선=경쟁이 심하면 재생산을 줄인다

청년세대를 옥죄는 물리적 밀도, 심리적 밀도
현재 한국을 보고 다윈과 멜서스의 반응
-멜서스:한국은 전쟁중인가?
-다윈:경쟁완화하는 적응과정
->두 사람 모두 경쟁이 완화되거나 나와 내  자녀가 누릴 자원이 충분하다 생각하면 인간의 본성인 재생산을 할것이다(두 사람의 의견)
=동종->같은 사람들이 빠져 나갈  수 없는 같은 공간(서울)에서 지낸다면 당연히 경쟁이 치열해지고 생존이 우선 될 수 밖에 없다
=인구밀도가 높을수록 미래지향적ㅇ니 성향이 짙으며, 출산을 하지 않을 경향이 강하다

인구밀도를 너무 부정적이게 보는 게 아닌가?->인구편중도:각 나라에서 가장 큰 도시라고 할 수 있는 곳에 전체 인구의 몇퍼센트가 있는지 산출
인구밀도가 높아도 편중도가 9.27%미만이면 합계출산율이 감소하지않았다
편중도가 27%이상이면 영향이 매우 커진다/16.2%이상임녀 영향이 증폭된다
이 현상은 청년들이 선택할 도시가 얼마나 있는지 설명한다

초저출산의 기저 원인에는 인구밀도/인구편중이 있다.
생태진화론-한국청년들의 적응=사회적 유전자의진화

그외 지역은 밀도 낮은데 왜 저출산?->인구편중이 만들어낸 심리적 지향점
인구편중은 수도권과 차이나는 지역의 인프라를 보여준다->청년들에게 심리적 불안감
청년들에게 양질의 일자리와 아이를 키욺수 있는 보육 인프라와 문화의 장 필요
주변 친구들이 서울로 떠나면 심리적 불안감

어떤 분산을 추진할 것인가?

과거 노무현 정권-세종시/혁신도시
->인구분산에는 효과 없었다=공기업  근무하는 사람들은 이주했으나 서울에 살던 청년들은 이주하지 않았다.
이유
-혁신도시 지역간 안배를 생각해 10개로 조갰다
-쪼개다 보니 사람들을 끌어당길 도시의 기능이나 규모를 갖취지 못했다
(+건축학관점: 지역 특성없이 서울을 모방했다)

그럼 어떻게 하는게 올바를까?예
-쪼갤것이냐
-몰아줄것이냐

분산과 조금 다른 메가시티-부울경-분산정책보단 효과가 클수도
적당한 경쟁도 필요하니 너무 분산으로 갈필요는 없다
->서울에 비견할 지역의 도시를 세우자




10년 완충지대
차별적 영향력-어린이 관련된사업들
-아이를 낳으라는 정책 뿐만이 아니라 관련 사업들도 지원이 필요하다/시장을 버티기 위해선

합계출산율이 1.0이라 하더라도 여성인구에 따라 태어나는 수가 다르다
현재  2019년에 비해 2026년 자녀를 낳는 주요 연령층 29~35 여성의 수가 223만 명에 이르고 그 후는 줄어들것이라 것이라 예측된다->10년 정도는 출생아 수20만명대가 유지는 될 수 있다
그래도 2030년이 2020년보단 많을 예정/문제는 그 이후
상황이 좀 괜찮아진다고  가정하고 예측해봐도 출생아 수는 줄어들 예정이다.
그래도  20년은 유지 가능성이 있다.->10년의 완충지대

다양한 해법을 찾자

출산율리 0을 향해 달려간다-사회의 경향성
1990년대 한국- 25~26/미국 다양함
특정시기에 몰린 이유-사회의 결혼적령기

출산을 장려하는 것보단 예측하고 준비 뭘?
15년 동안 태어날 아이들이 물리적,심리적압박속에 살지 않게 해주기



변수가 되어 버린 우리나라 인구
소멸을 걱정하는게 아닌 상수가되지 못한 변수라는 점을 염려하자
변수인 인구를 고려하여 미래를 대비하자

1번 표-4차산업혁명 발전에 기대 거는 이유
2번-자원의 총량이 높은수준에 올라있고, 인구는s자다
3번-총량은 정해져 있는데 인구가 급격히 증가하여 총량을 ㄴ머어선다->경쟁 심화 되고 ->인구가 감소한다->자원이 증가->균형을 찾아간다
4번-인구가 폭발적으로 증가하는 바람에 가용자원이 갑자기 줄어들고 그결과 삶의 질이 나빠져 인구도 급감하는게 가장 안좋다

현재 우린 3번의 경우->요동치는 변수가 되어 사회적 혼란을 불러오고 변화를 요구하게 된다=인구가 안정적인 상수가 될 수 없다

이상적 방법은 제도가 준비되고 인구변동이 일어나야하는데 우린 그 반대
인구가 변수가 되면 정부 정책은 물론이고 기업의 전략도 인구를 반드시 고려해야 한다.
인구는 현재의 사회제도와 전략의 지속가능성을 알려주는등대가 될 수 있다.

미지의 미래를 기지의 세계로 바꾸는 인구학적 관점
인구의 특징으로 미래를 알려줄수있다-대비할 수 있다(ex 수능응시생->대학교대비)

인구로 미래를 대비하는 전략: 완화,적응,기획
통계청을 활용하자

완화
-현재 및 가깝ㄱ고 먼 미래의 모습이 너무 부정적이어서 감당하기 어렵다고 판단될 때 그 현상이 발생하지 않게 하거나 악영향을 최소화하는 것
-개인보단 국가나 지방정부 등 공공의 역활이 중요
-기업이 의무는 없는데 직원들의 삶의 질을 향상시키기 위해 하는추세, 정부의 정책보다 더 큰 완화효과를 가져온다
-esg경영전략을 하는 기업이 많아지는추세에 양육비 및 보육환경에 대한 세심한 배려는 훌륭한 사회적 책임이다

적응
-인구가 바꿔놓을 미래의 모습을 가능한 정확하게 예측하고, 현재 상황이 변화될 미래에도 잘 작동할지 아닐지 판단해 필요한 경우 현재의 조건들을 변화시키는 것
-개인 공공 모두 필요
-구체적인 변화를 알아야한다

기획
-완화와 적응처럼 수동적이지 않고 적극적
-미래 인구현상을 적극적 활용해 새로운것을 제시
-완화와 적응 전략을 세우면 새로운 기획을 도출이 가능하다 그러나 전략의 대상이 되는 문제 해결에만 집중하는 일이 종종발생(영유가 줄고 노인 많아지니 유야시설 줄이고 노인시설로 바꾸자)
-출산장려금->완화 적응 전략
-기회는 적응과 완화와 달리 변화를 이끈다
-모두가 준비

교사-다운사이징(완화)가 아닌 분업(기획)은 어떠한가?

인구문제:저출산, 고령화->개별인구 문제
개별인구 감소중=/=주택수요 감소->독립가구 증가= 가구 수 증가
시장이나 국가정책의 관점에서는 인구보다  가구가 중요한 경우가 많다

가구 수의 변동
2000~2019개별로 분화하는 가구가 많았다
2020년 부터 인구는 감소하기 시작했으나, 가구는 당분간 증가할 예쩡
시장에 주는 시사점->가구가 소비의 단위가 되는 재화시장은 성장 가능성이 있다

인구다양성-인구를 이루는 축이 다양해질수록 높은 다양성
성/연령/인종 등
-다양한 연령대가 한 사회에 골고루 분포할수록, 인종이 다양할수록 사회의 다양성이 높다.
-살아가는 조합의 형태가 다양해질수록 다양성이 높다

가구의 다양성
가족vs가구
1인가구의 증가
젊은 층은 만족도가 높을지 몰라도 노인은 어쩔수없는 빈곤으로 좋지 못하다->즉 이질적 특성이 있다

라이프 세그먼트

세대에 대한 높은 관심
기대수명의 증가
-세대들의 공존 기간 증가
-커뮤 증가
-의견충동
부모와 자녀세대가 함꼐 산 기간이 늘어난 첫 세대가 베이비부머와 밀레니얼 세대
세대 이해는 다른 세대와의 관계 속에서 파악

세대 구분의 기준
합계출산율
출생아 수
대학 진학률 및 입시제도
취업시기의 경제 이슈
여성의 대한 진학률 및 취업률
연령별 혼인률
청소년기에 누렸던 대중문화
기술환경의 변화

세대구분
세대명/역사적 사건/인구사회학적 특징
산업화세대
베이비붐1-경제
베이비분2-정의
x세대-대중문화시대/여성 교육수준 급상승
밀레니얼세대-1인가구 증가/여성이 대학 진학률이 높은
z세대-초저출산, 가국분화 증가

베이비붐세대55~74
1세대
-높은 합계출산률, 높은 영아사망률
-경제 성장의 주역
2세대
-정치변동 주역
-정년 연장 혜택 가능성
동아시아의 성장(유교 개발독재 덕) 후 정치 자유 관심을 가지게 되었다

x세대75~85
-대중문화 선도
-사랑노래를 넘어
-여성의 진학 보편화->그러나 취업은 힘듬
-남성위주 노동시장
-1코노미

밀레니얼 세대
-1986년생
-초등학교
-남아선호 정점
-아이폰 보급
-게임규칙 중시
-공정성=규칙이 모두에게 적용하여 내가 피해를 보느냐가 중점

z세대 97~
-부모의 연령대 다양
-전세계 문화적 동질감
-글로벌 동질성
-국내 인구비중은 작으나 25년부터 세계 노동시장의 가장 큰 인구집단이 됨
-z세대가 만들어 놓은 새로운 노동과 부가가치의 영향을 받게 될 ㅓㅅ임

렉시스 다디어그램
가로-연도
세로-연령
대각선-코호트
장점:세대별 코호트의 대각선을 따라가다 보면 소비의 관성이 어디가지 지속될지 예측할 수 있으며 규모도 알 수 있다

세그먼트 변화
1인가구-밀레니얼과 젊은 x세대가 로랜기간 소비시장에서 큰손 작용
다인가구-여전히 가장 빈도가 높은 가구 형태,1인보단 소비지출이 크다/트렌드에 민감하지 않고 꾸준함
부부가구-베이비붐 세대:자녀 분가 이후 소비 형태 주거지 변화 가능성'

인구변화를 수로만 본다면 미래ㅐ에 필요한 전략을 마련 할 수 없음
인구집단마다 정성적 특성과 가구변동에 대한 이해가 필요

초저출산에 대한 불안
인구소멸-비현실적
인구감소로 경제 악화 두려움-타당함

인구배당
인구 오너스:자원의 양<소비하는 사람으로 경제에 부담
인구 보너스:자원을 만들어내는 사람이 많아 경제에 도움
인구배당:인구으 ㅣ질이 좋아서 부가가치의 양이 크게 늘어나서 경제성장-교육과 건강등 인적자원 개발에 투자 결과

인구보너스vs인구배당
-보너스는 인구의 양적인 측면 강조
-배당은 인구가 건강하고 교육을 잘 받았다는 인적자원으로서의 측면 강조
-때 되면 받는 보너스보다는 성공투자로 얻게되는 배당의 액수가 크다

두번의 인구배당
모든 통계분석에서1인당 gdp를 높인 변수:주요 생산이구의 비율과 그들의 평균 교육시간
1995년까지 고등 교육을 받은 고급인력이 경제발전을 견인하고 부양인구는 줄어든는 인구 배당-1차인구배당+보너스도 강함
외환위기의 역설-베이비붐 세대가 생산인구로 들어와 단기간 외환위기를 극복했다
외환위기 이후 경제는 재성장 동시에 부양 대상인 고령인구 비중 급증 그럼에도 삶이 좋아진 건 2차 인구배당 덕분


2차 인구배당
교육열과 교육에 대한 사적인 투자는 양질의 인적자원을 양성하게 됨
인구의 크기 보다는 질이 자본축적을 이끔
일하고 질적인 특성이 양적 축소가 경제에 가져올 부정적인 효과를 상쇄할 것

인구배당 지속 근거?
2020년대까지 노동시장에서 활동할 50대들의 높은 교육수준
퇴직 인구 수는 변화가 없는데 교육수준은 높아지고 있는 건 사실

인구오너스의 위험과 공존의 전략
2030년 이후 경제활동 인구가 대거 축소하고 고령인구 증가-인구오너스
인구감소는 정해진 미래이지만, 어떤 인구가 있느냐가 더욱 중요
공존의 전략-서로 다른 인구집단이 자원을 활용해야 하는 시기를 달리 해서 서로의 생존 가능성을 극대화 하는 것. 서로 양보하며 자원을 동시간에 함께 그러나 나눠서 적게 쓰는 상생과 다름


인구압박
1.자원보다 인구가 많을때
2.어떤 연령이 다른 연령 혹은 연령 집단에 비해 얼마나 크거나 작은지를 나타내는 개념


과거에 비해 인구압박의 강도가 높아짐

대학진학률을 고려해 인구압박을 산출하면,대졸 30세가 받는 압박 강도는 20년에 비해 훨씬높다

인구압박이 있는 한 취업은 어렵다
노동시장에 먼저 진입해 버티고 있는 앞 세대의 규모를 무시할 수 없기에
모든 연령이 비슷하면 -.인구가 주는 압박이 사라짐

그럼 베이비붐 세대가 은퇴하기 시작하면 일자리 개선?no
1.대졸자를 위한 일자리는 한정
2.대기 인원


일본의 사례
구인난으로 전환
1.인구학적 원인-대졸자 감소
2.중소기업에 대한 낮은 거부감
3.경쟁력 있는 제조업/한국은 서비스업 위주-대체가 가능하다

우리도 경제규모가 수축되지 않는다는 전제하에 30년정도면 구인난이 오긴 할거다

연령계층화:사회적 자원이 특정 연령층에 더 많이 분배되는 현상
한국-정년 다 못채워 연금x/부동산 부채/노인빈곤율 최상
연금 지속가능성
부과식vs적립식
스웨덴 부과식 가능한 이유 인구각 일정
->나 스스로에 달려있는 나의 노후

생산인구 부족
과학기술이 해법?
-과학기술의 발전이 일자리르 줄여왔으므로 인구의 필요성도 감소
-그러나 과도기를 사는 우리-언제 적용될지 모르고 어떤 분야에 적용될지도 모름

이민
기술적으로 가능한일
-외국인을 받으면 단기간 인구피라미드에 균형ㅇ르 가져올 수 있음
인구변동단계설
1단계:개인과 사회적 웰빙 수준의 급상승
2단계:반드시 결혼하지 않고도 자녀 출산할 수 있게 되는 단계/프랑스-civi union
3단계다른나라의 젊은 인구 유입
고령화 초저출산 겪은 선진국 중 타격을 입은 국가는 일본뿐
서유럽-동유럽,북아프리카 중동 젊은이 유입
미국-히스패닉 동양인 이주민 유입

한국의 이민은?
현실성있는 대안
현재도 다양한 분야에 외국인 의존도 높음
지금 당장은 생산인구가 줄어들지 않기 때문에 30년부터 생산인구 절벽때 시작하자
대비하자

정년연장
정년이 연장되면 인구절벽 시점도 연기될 것
고령자들이 먼저 쓸 수 밖에 없는 기금에 부담을 덜 주기 위해서
청년들이 가파른 세금 인상 없이 유지하기 위해서
일자리를 뺐는 현상이 있을 수 도있다-대처준비 필요

한국은 이주민에게 매력?
외국인공포증
언어
임금수준도 경쟁력 없음
차별
->이런 문제를 고쳐 매력을 높이자

결론은 내국인을 대상으로 노동시장의 구조를 바꾸어 인구절벽 시작 시점을 뒤로 미루고, 그사이에 외국인의 이주 혹은 다른 대안을 준비하는 것이 현실적인 공존전략
국내에 출생한느 외국인 아이들에게 더많이 신경
z세대
-세계화노출인 높고
-국격으미가 없으며
-위세대보다 열려있지만 아직 민족주의적이긴 하다

정년연장->기업이 싫어할수도있다







인구학적 상상력의 요소
1.인구통계
-인구에는 방향성 존재
-메가트랜드:거시적인 사회와 시장 변동의 방향성
-언제 어떤 인구가 얼마나 될지를 안다면 대비 가능

2.판단의 기준을 미래로
-미래 세대의 관점에서 현재 제도와 정책들을 평가
-기성세대보다 청년들의 시각과 견해 더 주용이 필요

3.관념의 자유
-한국의 인구변동은 전례없는 것(너무 심각해서)
-초저출산 적응 과정은 세계의 참고사례가 될 것

무엇을 해야 할까?
복지가 아닌 투자 관점 전환
양적 팽창이 아닌 질적 성장 준비
-아동에 대한 질적투자로 사횢거 부를 이전
작아지는 사회에 맞는 체질 만들기
-기업의 노하우와 민첩함 필요
-다운사이징 준비
-재도약 준비

https://msearch.shopping.naver.com/book/catalog/32455980979

인구 미래 공존 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

Distance ?
• 거리(距離:Distance)는 어떤 사물이나 장소가 공간적으로 얼마나 멀리 떨어져
있는가를 수치로 나타낸 것
• 비슷한 개념으로 유사도/비유사도 존재 (가까우면 비슷하다 멀면 다르다)
• 머신러닝에서 거리 개념은 매우 다양/유용하게 활용 (ex. SVM에서 마진의 넓
이?/knn에서 가장 근처에 있는 데이터들?)

대표적인 거리들
• 유클리디안 거리(Euclidean Distance : L2 Norm) : 두 점간 차이 제곱하여 모두 더한 값
• 맨하탄 거리 (L1 Norm) : 두 점간 차이의 절대값을 합한 값 (격자 모양의 거리)
• P차 Norm(민코스키 거리) : P = 1이면 맨하탄, 2이면 유클리디안, 무한대일 경우
Chebyshev’s Distance , 일반화된 개념의 수학적 거리 정의임
• 내적 : 벡터끼리 서로 설명하는 수준 (유사도) (밑에 코사인 거리와 유사)
• 코사인 거리(유사도) : 1- 두 벡터의 내적을 각 벡터 크기로 나눈값 (각이 작을수록 값이 작
아짐, 유사함)
• 마할라노비스 거리 : 다변량 통계분포의 특성(관계)를 반영한 거리, 유클리디안 거리를 공
분산행렬로 나눠주는 연산
• 상관관계 거리 : 피어슨 상관계수 응용, 관계가 1 혹은 -1에 가까워질 수록 거리가 작아짐
• 등등등 (데이터간의 유사성/비유사성을 나타내는 모든 것이 거리로 표현 가능)


Euclidean Distance (유클리디안 거리)
• 유클리디안 거리 (L2 Norm)
• 일반적인 다차원 공간에서 두 점 사이의 직선 거리
• 중학교 시절 배운 피타고라스 정리를 기억해보자
• 가장 많이 활용되는 거리 개념, 하지만 변수간의 관계를 고려하지는 못함




Mahalanobis Distance (마할라노비스 거리)
• 유클리디안 거리를 Covariance Matrix로 나눠준 형태
• 각 변수의 분산으로 나누어 주기에 scale-free(변수별 표준화 됨)
• 변수간의 상관관계 형태를 반영한 거리의 개념으로 다양한 문제에 활용 됨


• 다변량 통계학과 머신러닝을 2~3단계 level up 시켜줄 수 있는 Key Algorithm!!



유클리디안 VS 마할라노비스
Center
• 유클리디안 거리는 4개의 점 모두 중심과 거리가 같다
• 어떤 점이 상대적으로 이상해(멀어) 보이는지?

차원의 증가와 거리의 의미
• 거리의 개념은 (특히 유클리디안 거리)는 고차원으로 갈수록 그 효용성이 감소
• 변수의 특징들이 너무 다양하고 많아지는데 반면 단순 크기의 차이(difference)
로는 부족
• 100개의 변수 중 유의(중요)한 변수는 몇 개? 그 중요도를 어떻게 분석에 반영
할 것인가가 중요한 이슈임
• PCA를 통한 거리 계산, 주요 변수 추출, Weight를 부여한 거리의 계산 등 필요
* 각 공간내의 데이터의 개수가 차원 증가로 인해 어떻게 변화하는가 ? (차원의 저주)


Clustering : K-means Clustering Algorithm

Clustering Analysis
Clustering : 관측치(observations)들을 특정 그룹으로 할당(assign)하는 방법론

Clustering Algorithm의 핵심
• 같은 그룹의 데이터는 최대한 유사하게, 다른 그룹간의 데이터와는 최대한 이질적으로 할당하는 것이 good

Clustering을 왜 할까 ?
• 데이터의 패턴을 이해하기 위해 수 많은 데이터들을 특정 그룹으로 요약함
• 데이터를 줄이는 측면에서 feature selection은 열(column)관점의 요약/ clustering은 행(row)관점의 요약
• 데이터의 분포를 다루는 좋은 기반 기술로써 활용 됨 (다른 모델링과 융합가능)


Concept of Clustering Algorithm
• Clustering은 대표적인 비교사학습 (unsupervised learning) 기법 (Y가 없음)
• Distance metrics (ex. Euclidean, Manhattan, correlation, or Mahalanobis
distance) 를 통해 관측치간의 유사성을 연산하여 그룹화
• Hierarchical clustering, k-means algorithm, Self Organizing Map …


계층적 군집화 (Hierarchical Clustering)
• Hierarchical Clustering: 거리 기반의 군집화 알고리즘으로써 비슷한 개체
끼리 계층적으로 그룹화하기 시작하여 최종적으로 한 개의 군집으로 만
드는 알고리즘
• 시각적으로 이해하기 편리함
• 군집수를 사전에 정할 필요가 없음
• 모든 개체들 간(혹은 개체-군집, 군집-군집) 거리가 계산되어야 함 (복잡
도 증가)
• 군집 간 거리계산의 다양한 방법
• Single Linkage: minimum distance
• Complete Linkage: maximum distance
• Average Linkag


K-means Clustering
• 좋은 클러스터링은 ? 같은 그룹끼리는 거리의 합이 최소화!!
• 이것도 결국 ? 또 최적화 문제 !!
• K개의 평균점을 처음 랜덤으로 구하고 각 평균점과 데이터들간의 거리
j 번째 그룹의 평균값)의 합을 최소화 하는 것
• 저번에 배운 미분, 수리최적화, gradient descent 등의 방식으로 풀긴 어
렵다! > 반복적으로 기대값이 최대가 되도록 하는 탐색(search)방법이 적
용되어야 함

Self-Organizing Map (자기조직화 지도)
• 클러스터링을 위한 인공신경망 (인공신경망중 가장 단순한 형태 중 하나)
• 입력 데이터 > 입력 레이어 > 경쟁 레이어 > 출력으로 구성
• 데이터의 개별 패턴에 상응하는 격자(grid point)에 관측치들을 재배열
• 고차원 데이터에 차원축소 기능과 군집화 동시 수행 (row와 column관점
둘 다 줄임 > 이미지 처리에 높은 빈도로 활용)
• 우선 가중치 행렬(W)를 초기화 함
• Competitive learning : 각 관측치별로 grip point(뉴런이라고 부른다)와의
거리를 산출한 후, 거리값이 가장 작은 뉴런 선택
• 선택된 뉴런과 이웃 뉴런 (격자로 치면 옆에 있는 애들)과의 가중치 (연결
강도) 수정 (수정하는 방법은 gradient descent와 유사, 과거의 w와 실제
데이터와의 차이가 크면 많이 움직이고 작으면 적게!)
• 이러한 연산을 반복하다보면 특정 그리드에 데이터가 몰리게 된다 (군집
효과)
• 그리드 크기는 사용자가 정의해줘야 함

군집화의 성능 평가
• 클러스터링의 이슈 :
- 어떤 거리를 써야 최적일까 ?
- 데이터에 내재된 군집의 개수는 몇 개일까 ?
- 클러스터링이 잘 되었는지 어떻게 평가할까 ?
• 반복실험과 시뮬레이션을 통한 검증을 주로 활용
• Ex. 실루엣 통계량을 통한 성능 평가 (-1 <= silhouette <= 1)


요약 및 의의
• Distance : 데이터간의 비유사도 (거리가 멀수록 이질적, 가까울수록 동질적)
- 마찬가지로 비유사도, 특이한 정도, 통계적 유의도 역시 거리로 표현 가능
• 여러가지 유형의 거리 척도 존재
- Euclidean, Manhattan, Mahalanobis, Minkowski…
- 변수가 많을 경우, 주요 변수의 weight를 어떻게 줄까?
• Clustering : 거리가 유사한 관측치끼리 모아주는 방법
- 같은 그룹내는 최대한 유사하게 다른 그룹과는 최대한 이질적으로…
• K-means Clustering Algorithm
• Self Organizing Map
• 데이터의 row-wise 요약, 다양한 분석의 전처리 기법으로 활용되기도…

'Major > Data Analysis' 카테고리의 다른 글

Modeling (Artificial Neural Network) & Deep Learning-2  (0) 2024.06.17
Modeling (Artificial Neural Network) & Deep Learning-1  (0) 2024.06.17
SVM(support vector machine)  (0) 2024.06.17
Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17

최적화의 관점에서 Neural Net 보기


예측/분류모델로서의 신경망
• 예측모델의 Loss Function : 잔차(residual)
예측값과 실제값의 차이(잔차)가 얼마나 작은가
• 분류모델의 Loss Function : Cross-entropy
실제 레이블과 얼마나 일치하는가 작으면 작을수록 분류 good

위의 두 식은 대표적인 개념식이고 얼마든지 응용 가능 !!

ANN (Artificial Neural Network) 2

기존 인공신경망의 한계
• 기존 뉴럴넷의 한계 > 이미지, 텍스트, 복잡한 음성 신호 등을 처리하는
데에 있어 1개의 hidden layer로는 표현이 어려움
• 비선형 빅데이터의 복잡한 결합관계(ex. 이미지 데이터)를 표현하는 데
에 한계점 존재
• 더 날것(raw)의 데이터를 바로 분석하고자 하는 욕망

만약, layer를 (더 깊게) 늘린다면 ?
• 고차원 추상화 (High Level Abstraction) 작업 가능
• 앞부분 Layer > 변수간 결합 및 추상화 작업
• 뒷부분 Layer > 데이터의 분류(classification)


ANN에서 히든 레이어가 여러개 된게 딥러닝이다

이미지 데이터
Features of Image Data
• 각각의 픽셀 = 하나의 변수
• 학습할 파라미터의 수 多
• 모델의 complexity 증가, overfitting 가능성 증가

Spatially-Local Correalatio
-인접 픽셀 간 높은 상관관계
Invariant Feature
-부분적 특성은 고정도니 위치에 등장하지 않음
Convolution Calculation
-데이터가 너무 크니까 필터로 필요한 부분만 focusing
-x(=input data)*w(=filter=kernel)=feature map

pooling layer
• Feature map의 크기를 줄임 (down sampling, subsampling)
• MAX, MIN, AVERAGE, SUM….
• 노이즈 감소, 속도 증가, 영상의 분별력 좋아짐
• Pooling size: pooling 연산을 할 영역의 크기 (가로×세로)
• Stride: 한번에 얼마 만큼 이동할지 결정 (주로 pooling size와 같게 설정)



Fully Connected Layer




머신러닝 vs 딥러닝
-feature extration을 사람이 하냐 딥러닝이 하냐에 따라 나뉨


메인 딥러닝(뉴럴넷) 알고리즘들
• CNN (Convolution Neural Network) 계통
- 이미지 데이터의 분석
- 이미지 분류, labeling, object detection 등의 베이스로 활용
• RNN(Recurrent Neural Network) 계통
- 시계열 데이터(시간에 따른 값의 변화)의 처리 및 분석
- LSTM 알고리즘을 주로 활용
• Unsupervised NN 계통
- 데이터의 전처리(주요 성분 추출, 군집화, denoising 등)를 위해 활용
- Autoencoder (Feature Extraction)
- Self Oraganizing Map (클러스터링)
• 새로운 데이터를 추론 및 생성 (Generative Adversarial Network : GAN)
• 강화학습 기술과 병행 활용 (DQN : Deep Q-Network)
• 공통점 : 분석에 활용되는 X들의 조합을 자체적으로 수행하여, 자연의
패턴을 학습한다는 것!
• 서로 결합하여 활용되는 경우도 많음 (ex. 시간에 따른 이미지 변화)

'Major > Data Analysis' 카테고리의 다른 글

Distance & Unsupervised Learning Algorithm  (0) 2024.06.17
Modeling (Artificial Neural Network) & Deep Learning-1  (0) 2024.06.17
SVM(support vector machine)  (0) 2024.06.17
Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17

+ Recent posts