HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📯
부스트캠프 7기 BE 멤버쉽 설계
/
2주차

2주차

스프린트
[W1] 스티커 메모
강의날짜
Sep 13, 2022
키워드
HTTP

학습

  • Network
  • HTTP
  • REST API
  • Cookie, Session
  • Authentication, Authorization
  • JWT
  • OAuth
 

네트워크

notion image
notion image
 
 
 
 
 
 
 
 

부스트캠프

우리는 어떻게 학습하는가?
네트워크를 직접 만들 수 있을까?
 
 
 

나에게 학습이라는 것은?

스토리를 만들어가는 것
단편적인 학습 → 목적이 없음 → 이걸 왜 하지?
 
Why.

네트워크 공부는 어떻게 해야 좋을까?

주관적인 생각
  • Top → Down
  • 소프트웨어 → 하드웨어
  • HTTP(브라우저, 서버) → 전기
 

생각

일단 머릿속에서 지우자
그리고 나라면 어떻게 할 것인지 생각해보자.
어떻게 나와 다른 사람을 연결할 것인가? 어떤 것들이 필요할까?
 
  • 가정
    • 대한민국 서울에 사는 A
    • 지구 반대편에 사는 B
  • 필요한 것
    • 전기
    • 전기적 신호 ←→ 네트워크 신호 변환 장치 (랜카드)
    • 컴퓨터 → 네트워크 신호 → 전기 신호 → 네트워크 신호 → 컴퓨터
    • 중간 전송 장치 (라우터)
    • 네트워크 신호 필터링
    • 통신 방식
    • 통신 프로토콜
    • 포트
    • 기타 등등…
  • 무선통신?
    • 아날로그(전자기파) ←→ 디지털(0, 1)
    • 전자기파, 코일, 자기장, 안테나,
    • 3G, 4G, 5G
      • 특정 영역의 파장만 사용하겠다.
    • 대역폭
    • 라디오, TV, 무전기, 핸드폰, …
  • 약속(프로토콜)
    • 컴퓨터로 어떤 형태의 데이터를 가공해서 보낼 수 있고,
    • 컴퓨터로 어떤 형태의 데이터를 가공해서 받을 수 있고,
 

우리는 네트워크를 어떻게 만들 수 있을까?

  • 하드웨어 지식 → X
  • 소프트웨어 지식 → O
  • 추상화 → O
  • 개발자답게
 
  • 코드로 만들어보자.
    • 함수형 → input/output
    • 객체지향 → state, message(method)
  • 추상화 조각을 모아보자.
    • OSI 7계층
    • 소프트웨어(브라우저, 서버, …)
    • 프로토콜 (HTTP, FTP, SSH, …)
      • Source ←→ Destination
        • IP 주소, 포트,
      • Header
      • Body
    • 통신 방식 (TCP/UDP)
      • 패킷
    • 컴퓨터
    • 랜카드(네트워크 어댑터)
    • 랜선
    • 공유기(네트워크 허브, 라우터)
    • 리피터
    • 모뎀
    • 기타 등등
    •  
  • 코드로 만들어보자.
    • 함수형
    • 객체지향
 

HTTP

  • MDN
 

REST API

  • https://www.youtube.com/watch?v=xWA1eTPSzDE
 

COOKIE, SESSION

 

Authentication, Authorization

 
마이페이지 → 로그인한 사람만 접근 가능 → 로그인 X → 401
관리자페이지 → 관리자만 접근 가능 → 로그인 X → 401, 권한X → 403

JWT (JSON Web Token)

token, 정보
 
JWT ←→ Session과의 차이? 언제 사용해야 할지?
 
base64 encoding → 회원정보(이메일/프로필사진/아이디/전화번호)
비밀키로 decoding → 서비스를 제공하는 서버, 토큰 발행자
 
서버에서 토큰 발급 → 클라이언트가 토큰을 가지고 있음 → 회원정보가 필요하네? → 서버에 요청 → 해독 → 클라이언트에 반환
 
브라우저가 비밀키를 가지고 있으면? → 다 털림
 
jwt는 토큰 자체에 정보가 있고
→ Server가 없어도 된다.
 
session은 특정 저장소에 정보가 저장되어있음
→ Server가 있어야 한다.
 
Daum에 로그인 했는데, Naver에서 Daum 회원 정보를 알고 싶어
→ Token
 
내가 동영상 플랫폼 서비스를 만들었는데,
Google로 로그인 할 수 있습니다.
Facebook으로 로그인 할 수 있습니다.
→ token, session 같이 사용 가능
어떤 서비스의 유저 시스템을 도메인 종속 받지 않고 사용하게 하기 위해선 → JWT
도메인에 종속 받는다면 → Session
 
혹은 같은 DB를 쓰거나

OAuth

 
 
 
 
 
 
class 물리계층 { } const 구리선 = new 물리계층(); const 광케이블 = new 물리계층(); class 데이터링크계층 { MAC } const 랜카드 = new 데이터링크계층();