📝오늘 공부한 것
- 실전프로젝트 - '행동대장' 로그인 시 refresh token 추가 기능 구현
- 인프런 김영한의 스프링 강의 ~ 섹션1
- OSI 7계층, 세션 기반 인증/토큰 기반 인증
알게 된 점❗
✔ OSI 7계층
OSI(Open Systems Interconnection) 7계층은 네트워크 통신이 일어나는 과정을 7개의 계층으로 나눈 것을 말한다.
- 국제 표준화 기구(ISO)에서 개발한 통신에 관한 계층화 표준 모델
- 네트워크에서 트래픽의 흐름을 꿰뚫어 볼 수 있으며, 각 계층은 독립되어 있다. 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도 이상이 생긴 단계만 고칠 수 있다.
- 통신에 관련된 목적을 달성하기 계층별로 분할하여 분업이 가능하다.
1. 물리계층(Physical Layer)
- 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송
- 단지 데이터 전달의 역할을 할 뿐이라 알고리즘 오류제어 기능이 없음.
- 단위(PDU) : 비트(Bit)
- 주요 장비 : 허브, 리피터, 케이블
2. 데이터링크 계층(Data-Link Layer)
- 물리적인 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당(Point-To-Point 전송)
- 안전한 정보의 전달이라는 것은 오류나 재전송하는 기능이 존재
- MAC 주소를 통해서 통신
- 단위(PDU) : 프레임(Frame)
- 주요 장비 : 브리지, 스위치
3. 네트워크 계층(Network Layer)
- 중계 노드를 통하여 전송하는 경우 어떻게 중계할 것인가를 규정
- 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가지고 있음(최적의 경로를 설정가능)
- 컴퓨터에게 데이터를 전송할지 주소를 갖고 있어서 통신가능(=IP 주소를 사용)
- 단위(PDU) : 패킷(Packet)
- 주요 장비 : 라우터, L3 스위치
4. 전송 계층(Transport Layer)
- 종단 간 신뢰성 있고 정확한 데이터 전송을 담당
- 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행데이터 전송을 위해서 Port 번호를 사용함. (대표적인 프로토콜로 TCP와 UDP가 있음)
- 단위(PDU) : 세그먼트(Segment)
- 주요 장비 : L4 스위치
5. 세션 계층(Session Layer)
- 통신 장치 간 상호작용 및 동기화를 제공
- 연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리
- 단위(PDU) : 데이터(Data) 또는 메시지(Message)
- 주요 장비 : 해당사항 없음
6. 표현 계층(Presentation Layer)
- 응용계층으로부터 전달받은 데이터를 읽을 수 있는 형식으로 변환
- 표현 계층은 세가지의 기능을 갖고 있음.
- 송신자에서 온 데이터를 해석하기 위한 응용계층 데이터 부호화, 변화
- 수신자에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
- 데이터의 암호화와 복호화
- 단위(PDU) : 데이터(Data)
- 주요 장비 : 해당사항 없음
7. 응용 계층(Application Layer)
- 사용자가 네트워크에 접근할 수 있도록 응용프로그램을 제공
- ex) 이메일, 인터넷, 동영상 플레이어 등
- 단위(PDU) : 데이터(Data)
- 주요 장비 : 해당사항 없음
https://itwiki.kr/w/OSI_7%EA%B3%84%EC%B8%B5
https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95
http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5
✔ 세션 기반 인증과 토큰 기반 인증
세션 기반 인증 :
- 세션 기반 인증은 서버 측에서 사용자의 인증 상태를 유지하고 관리한다.
- 사용자가 로그인하면 서버는 사용자의 세션을 생성하고, 이 세션ID를 쿠키나 URL 매개변수 등을 통해 클라이언트에 저장한다.
- 서버는 세션ID를 사용하여 해당 세션에 연결된 사용자의 인증 정보를 추적하고, 클라이언트가 요청을 보낼때마다 세션ID를 확인하여 인증 여부를 판단한다.
- 주로 웹 애플리케이션에서 사용되며, 세션관리를 위한 서버 리소스가 필요하다.
- 서버 측에서 세션관리를 하기 때문에 로그인 상태의 유지와 로그아웃, 세션 타임아웃 등을 쉽게 다룰 수 있다.
- 토큰 기반 인증에 비해 상대적으로 더 안전하다.
- 서버에 부담이 된다.
토큰 기반 인증 :
- 토큰 기반 인증은 클라이언트 측에서 사용자의 인증 상태를 관리한다.
- 사용자가 로그인하면 서버는 클라이언트에게 인증을 나타내는 토큰을 발급한다.
- 클라이언트는 이 토큰을 저장하고, 필요할 때마다 서버에 전달하여 인증 상태를 증명한다.
- 주로 웹 및 모바일 애플리케이션에서 사용되며, 서버는 세션 상태를 관리하지 않아도 된다.
- 토큰은 보통 JWT와 같은 형식으로 사용되며, 페이로드에는 사용자 정보와 유효기간 등이 포함될 수 있다.
- 클라이언트 측에서 토큰을 관리하므로, 서버의 부하가 감소하고 분산 시스템에서도 유용하게 사용될 수 있다.
- 토큰은 서버의 상태를 저장하지 않기 때문에 로그아웃과 같은 동작이 조금 더 복잡할 수 있다.
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-230823(CI/CD) (0) | 2023.08.23 |
---|---|
TIL-230822 (0) | 2023.08.22 |
TIL-230819(항해99 실전 프로젝트-행동대장(14)) (0) | 2023.08.19 |
TIL-230818(항해99 실전 프로젝트-행동대장(13)) (0) | 2023.08.18 |
TIL-230817(항해99 실전 프로젝트-행동대장(12)) (0) | 2023.08.17 |