일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ios
- panorama view
- requirenativecomponent
- Skeleton UI
- 360도 이미지 뷰어
- React-Native
- 라이브러리 없이
- privacyinfo.plist
- react-native-fast-image
- 스켈레톤 UI
- 리액트 네이티브
- 리엑트 네이티브
- Native Module
- 앱 성능 개선
- 리액트
- 3b52.1
- 스플래시스크린
- boilerplate 제거
- 네이티브
- 360도 이미지
- launch screen
- react
- 스켈레톤 통합
- 360도 뷰어
- native
- Android
- 파노라마 뷰
- React Native
- launchscreen
- Privacy manifest
- Today
- Total
Neoself의 기술 블로그
CS 정리 (10월 30일) 본문
OSI 7계층 모델: 컴퓨터들이 서로 통신하는 방법을 7개의 층으로 나눈 표준 모델(기능 중심)
- 응용 계층(7계층): 사용자가 직접 접하는 층, 이메일과 같은 앱 HTTP/HTTPS(웹 브라우저로 웹사이트 접속 시) FTP(서버-클라이언트 간 파일 전송시) DNS(도메인 주소를 IP주소로 변환 시) SSH(원격 서버에 안전하게 접속하고자 할 시)
- 표현 계층(6계층): 파일 압축, 텍스트 인코딩과 같이 데이터의 형식을 변환하는 계층 SSL/TLS: 데이터 암호화 및 보안 통신 JPEG,MPEG: 이미지/영상 압축 ASCII: 문자 인코딩
- 세션 계층(5계층): 통신하는 장치들의 대화를 관리하는 계층 SQL:데이터베이스 접근 및 조작 NetBIOS: 네트워크 상의 컴퓨터 간 기본적 통신
- 전송 계층(4계층): TCP, UDP와 같이 데이터의 전송을 관리하는 계층 TCP:신뢰성 있는 데이터 전송 (웹 브라우징, 이메일) UDP: 빠른 속도 중심의 데이터 전송(스트리밍, 게임)
- 네트워크 계층(3계층): IP주소를 사용하여 데이터가 목적지까지 가는 최적의 경로를 찾는 계층 IP: 인터넷 통신의 기본 (IPv4,IPv6) OSPF,BGP: 라우팅 경로 설정
- 데이터링크 계층(2계층): 와이파이, 이더넷과 같이 직접 연결된 기기 간의 통신을 담당하는 계층 Ethernet: 유선 네트워크 연결 Wi-Fi: 무선 네트워크 연결
- 물리 계층(1계층): 네트워크 케이블과 같이 실제 전기 신호나 빛으로 데이터를 전송하는 계층 USB: 주변기기 연결 Bluetooth: 근거리 무선 통신
예시: 웹 사이트 접속 단계의 경우,
브라우저가 HTTP 요청 생성 → SSL로 암호화 → TCP로 데이터 전송 관리 → IP로 목적지까지 라우팅 → 와이파이로 실제 전송
TCP/IP 모델: 인터넷의 실제 표준(프로토콜 중심)
OSI모델을 4개층으로 단순화한 실용적인 버전
- 응용계층: 5,6,7계층 통합 = 사용자 레벨의 응용프로그램과 통신 HTTP, FTP, SMTP, DNS, SSH
- 전송 계층: TCP, UDP
- 인터넷 계층: 데이터 패킷의 라우팅과 전달 담당, ICMP로 네트워크 오류 감지하고, IP주소로 전송 IP, ICMP, ARP
- 네트워크 접근 계층: 물리계층과 데이터 링크 (1&2계층) 결합 = 물리적 네트워크 하드웨어와의 통신 담당 Wi-Fi, Ethernet
HTTP 프로토콜:웹에서 데이터를 주고받는 규칙
HTTP
각 요청이 독립적으로 처리되어 이전 요청을 기억하지 않는 무상태(Stateless) 성질을 띤다. 따라서 쿠키와 세션으로 상태를 유지해야함.
HTTP/2
여러 요청을 동시에 처리하는 멀티플렉싱을 지원
서버가 클라이언트에게 필요한 리소스를 미리 보내줄 수 있음.
헤더 압축으로 전송 효율 향상
HTTP/3
네트워크 전환 시에도 연결 유지
QUIC 프로토콜 사용으로 더 빠른 연결 설정
TCP
연결 지향형 프로토콜(TCP):
데이터 전송 전에 연결 먼저 수립
데이터 전송 보장, 손실 시 재전송
순서 보장
3-way handshake로 연결 수립:
UDP
비연결 지향형 프로토콜(UDP):
빠른 전송 속도를 갖고 있으나, 데이터 손실 가능성이 있음
어떤 상황에서 UDP를 사용하는 것이 적합한가요?
빠른 전송속도가 필요하고, 실시간성이 중요한 실시간 스트리밍 서비스나 온라인 게임에 적합
TCP의 3-way handshake
1. 클라이언트: "연결하고 싶어요" (SYN) 클라이언트가 서버에 연결 요청
2. 서버: "알겠어요" (SYN-ACK) 서버가 요청을 받았음을 알리고, 자신도 연결 요청
3. 클라이언트: "연결 시작해요" (ACK) 클라이언트가 서버의 요청을 수락
소켓 통신
네트워크로 연결된 프로그램 간의 양방향 통신 방식.
전화 통화처럼 실시간으로 데이터를 주고받을 수 있음.
채팅 앱이나 실시간 게임에서 주로 사용됨.
구성 요소:
- IP 주소: 통신 대상 위치
- 포트 번호: 특정 애플리케이션 식별
통신 과정:
- 서버: 소켓 생성 및 특정 포트에서 대기
- 클라이언트: 서버의 IP와 포트로 연결 요청
- 연결 수립 후 양방향 데이터 통신
'개발지식 정리 > CS정리' 카테고리의 다른 글
CS 정리 (10월 22일) (0) | 2024.10.22 |
---|