flutter kakao login 1

원장·2025년 7월 13일

플러터 기초

목록 보기
32/36

Oauth란 무엇인가?

Oauth 2.0 은 사용자의 데이터에 접근학 위해, 접근 권한을 위임 받을 수 있는 프로토콜.

프로토콜이라는게 처음엔 http만 있는 줄 알았고,
그 다음엔 webSocket을 배우면서 얘도 프로토콜이구나 생각했다.
그 이후엔 MCP가 나오면서 얘도 프로토콜이구나 생각했고,
지금 Oauth를 배우면서 얘도 프로토콜로 배우는 중이다.

결국에 프로토콜이라는 것은 무엇을 할 것 이라는 약속으로 이해된다.

어떠한 것을 사용하려면 그 프로토콜 규격에 맞게 사용해야한다.

다른 프로토콜엔 어떤 것이 있을까?

TCP/IP (Transmission Control Protocol/Internet Protocol)

인터넷의 기본 토대가 되는 프로토콜.

TCP의 역할:

  • 데이터를 작은 조각(패킷)으로 나누어 전송
  • 패킷이 순서대로 도착했는지 확인
  • 누락된 패킷이 있으면 다시 요청
  • 마치 편지를 여러 봉투에 나누어 보내고, 받는 사람이 순서대로 다시 조립하는 것

IP의 역할:

  • 각 컴퓨터에 고유한 주소(IP 주소) 부여
  • 패킷이 목적지까지 가는 경로 찾기
  • 마치 우편 주소 시스템과 비슷

SMTP (Simple Mail Transfer Protocol)

이메일을 보내는 방식을 정한 프로토콜

동작 방식:

이메일 클라이언트가 SMTP 서버에 연결
"HELO" - 인사
"MAIL FROM:" - 보내는 사람 알림
"RCPT TO:" - 받는 사람 알림
"DATA" - 이메일 내용 전송
"QUIT" - 연결 종료

FTP (File Transfer Protocol)

파일을 주고받는 방식을 정한 프로토콜

특징:

두 개의 연결을 사용 (명령용 + 데이터 전송용)
로그인 필요 (사용자명/비밀번호)
파일 업로드/다운로드, 폴더 생성/삭제 등 가능
웹사이트 파일을 서버에 올릴 때 많이 사용

DNS (Domain Name System)

사람이 기억하기 쉬운 도메인 이름을 컴퓨터가 이해하는 IP 주소로 바꿔주는 프로토콜

동작 과정:

브라우저에 "google.com" 입력
DNS 서버에게 "google.com의 IP 주소가 뭐야?" 질문
DNS 서버가 "142.250.196.14입니다" 응답
브라우저가 해당 IP 주소로 접속

위의 내용을 보니 TCP/IP가 중요한 듯.

HTTP/HTTPS, WebSocket, SMTP, FTP 은 TCP/IP 위에서 동작.

DNS만 UDP/IP 위에서 동작한다고함.

UDP는 뭘까?

UDP (User Datagram Protocol)는 TCP와 함께 전송 계층에서 사용되는 프로토콜인데, TCP와는 정반대 성격을 가지고 있음.

TCP vs UDP 비교

  • TCP (신중한 택배)
    패킷이 제대로 도착했는지 확인
    순서대로 도착했는지 체크
    누락되면 다시 전송 요청
    연결을 유지하면서 통신
    느리지만 안전하고 정확

  • UDP (빠른 우편)
    그냥 던져버림 (Fire and Forget)
    도착했는지 확인 안 함
    순서 상관없음
    연결 유지 안 함
    빠르지만 불안정

  • UDP가 사용되는 경우
    실시간 게임
    캐릭터 위치 정보
    0.1초 전 위치 정보보다 지금 위치가 중요
    일부 패킷이 손실되어도 괜찮음
    실시간 영상/음성 통화
    Zoom, Discord 등
    화질이 잠깐 깨져도 계속 진행하는 게 중요
    DNS 조회
    "google.com의 IP 주소가 뭐야?" 질문
    답 안 오면 다시 물어보면 됨
    빠른 응답이 중요
    실시간 스트리밍
    유튜브 라이브, 트위치
    몇 프레임 놓쳐도 계속 보는 게 중요

profile
나 원장이 아니다

0개의 댓글