2024.07.24.수.TIL 내일배움캠프 69일차 <최종프로젝트Day5>

김기남·2024년 7월 24일
post-thumbnail

안녕하세요, 오늘도 최종프로젝트 진행상황과 기술면접 준비 내용을 정리해보았습니다.

TCP/UDP에 대해서 설명해주세요.

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트의 핵심 구성 요소로, 데이터 전송을 관리하는 두 가지 주요 통신 프로토콜입니다. 이들은 각각 다른 방식으로 데이터를 전송하며, 각기 다른 용도와 특성을 가지고 있습니다.

TCP(Transmission Control Protocol)

  1. 연결 지향적(Connection-oriented): TCP는 데이터 전송 전에 송신자와 수신자 간에 연결을 확립합니다. 이를 통해 데이터가 순서대로 안전하게 전달될 수 있습니다.
  2. 신뢰성(Reliability): TCP는 데이터 전송의 신뢰성을 보장합니다. 전송된 데이터 패킷이 손실되거나 손상되면 재전송 요청을 통해 보완합니다.
  3. 흐름 제어(Flow control): 송신자가 수신자의 데이터 처리 능력을 초과하지 않도록 조절합니다.
  4. 혼잡 제어(Congestion control): 네트워크 혼잡을 방지하기 위해 데이터 전송 속도를 조절합니다.
  5. 데이터 순서 보장: TCP는 전송된 데이터가 순서대로 도착하도록 보장합니다. 순서가 맞지 않는 패킷은 재정렬됩니다.
  6. 헤더 크기: TCP 헤더는 20-60 바이트로 구성됩니다.

사용 사례

  • 웹 브라우징(HTTP/HTTPS)
  • 이메일 전송(SMTP, IMAP, POP3)
  • 파일 전송(FTP)
  • 원격 터미널 접속(SSH, Telnet)

UDP(User Datagram Protocol)

  1. 비연결 지향적(Connectionless): UDP는 데이터 전송 전에 연결을 설정하지 않습니다. 데이터그램(datagram)이라고 불리는 패킷을 독립적으로 전송합니다.
  2. 신뢰성 낮음: UDP는 전송된 데이터가 손실되거나 손상되더라도 이를 감지하거나 수정하지 않습니다.
  3. 흐름 제어 및 혼잡 제어 없음: UDP는 흐름 제어나 혼잡 제어를 제공하지 않습니다. 이는 더 빠른 전송 속도를 가능하게 하지만, 네트워크 혼잡이나 데이터 손실의 위험을 증가시킵니다.
  4. 데이터 순서 보장 없음: UDP는 데이터그램의 순서를 보장하지 않습니다. 데이터가 순서대로 도착하지 않을 수 있습니다.
  5. 헤더 크기: UDP 헤더는 8 바이트로, TCP보다 작습니다.

사용 사례

  • 실시간 애플리케이션(VoIP, 온라인 게임)
  • 동영상 스트리밍
  • DNS 조회
  • 단순 메시지 전송 프로토콜(SNMP)

TCP는 신뢰성과 데이터 순서 보장이 중요한 애플리케이션에 적합하며, UDP는 속도가 중요하고 약간의 데이터 손실이 큰 문제가 되지 않는 실시간 애플리케이션에 적합합니다.

http, https 차이점에 대해 설명해주세요

HTTP(HyperText Transfer Protocol)와 HTTPS(HyperText Transfer Protocol Secure)는 웹에서 데이터를 전송하기 위해 사용되는 두 가지 주요 프로토콜입니다. HTTPS는 HTTP의 보안 버전으로, 데이터를 암호화하여 전송합니다. 이 두 프로토콜의 차이점을 아래에 자세히 설명하겠습니다.

HTTP(HyperText Transfer Protocol)

  1. 보안: HTTP는 데이터를 평문(Plain text)으로 전송합니다. 따라서 중간에 누군가가 데이터를 가로채면 쉽게 내용을 볼 수 있습니다.
  2. 포트 번호: HTTP는 기본적으로 포트 80을 사용합니다.
  3. 속도: 암호화 작업이 없기 때문에 상대적으로 속도가 빠릅니다. 그러나, 이는 데이터 전송 과정에서 보안이 취약하다는 것을 의미합니다.
  4. URL 형식: URL이 http://로 시작합니다.
  5. SSL/TLS 사용: HTTP는 SSL(Secure Sockets Layer)이나 TLS(Transport Layer Security)를 사용하지 않습니다.

사용 사례

  • 보안이 크게 중요하지 않은 웹사이트
  • 테스트 환경

HTTPS(HyperText Transfer Protocol Secure)

  1. 보안: HTTPS는 데이터를 암호화하여 전송합니다. 이를 통해 데이터가 중간에 가로채지더라도 내용이 노출되지 않습니다. 주로 SSL이나 TLS 프로토콜을 사용하여 보안을 강화합니다.
  2. 포트 번호: HTTPS는 기본적으로 포트 443을 사용합니다.
  3. 속도: 암호화 및 복호화 작업으로 인해 HTTP보다 속도가 약간 느릴 수 있지만, 현대의 컴퓨팅 파워로 인해 이 차이는 대부분의 경우 사용자가 체감하기 어려울 정도로 미미합니다.
  4. URL 형식: URL이 https://로 시작합니다.
  5. SSL/TLS 사용: HTTPS는 SSL이나 TLS를 사용하여 데이터를 암호화합니다. 이는 서버와 클라이언트 간에 안전한 통신 채널을 제공합니다.

사용 사례

  • 금융 거래 웹사이트
  • 로그인 페이지
  • 전자상거래 사이트
  • 개인정보를 다루는 웹사이트

HTTP는 보안이 필요 없는 상황에서 사용될 수 있는 반면, HTTPS는 데이터를 암호화하여 전송하므로 보안이 필요한 웹사이트나 애플리케이션에서 사용됩니다. HTTPS는 특히 사용자 개인 정보나 금융 정보와 같은 민감한 데이터를 다루는 경우에 필수적입니다. SSL/TLS를 통해 데이터의 기밀성과 무결성을 보장하며, 사용자는 웹사이트의 신원을 확인할 수 있습니다.

최종프로젝트

진행상황 점검

개별 코딩
스코프 확장 논의
AWS 배포 관련 학습 계획
1. 프론트 뷰 - > 어떻게 파트를 나눌지(내일 결정)
2. 시나리오 얘기하면서 필요한 부분과 기능 추가에 관해서 이유를 얘기하며 말할 것 ex) 커뮤니티 게시판 만들고싶다 등등, 동시성 제어(내일 결정)
3. AWS 배포 관련 S3/RDS/EC2 - 오늘 공부하면서 알아볼 것 해정:RDS, 승범:S3, 기남,형석:EC2
4. 쿼리최적화 관련해서 -중간발표이후 논의

  • 백엔드+ 프론트까지 다음주 수요일까지 마무리하기
  • PPT + 기능보고서(명세서) 다음주 목요일부터 시작
profile
새로운 시작~!

0개의 댓글