내일배움캠프 14일차 TIL - 웹(Stateless, Stateful)

2024. 5. 2. 15:14·⛺스파르타코딩클럽

240502

# 오늘 꼭 기억 해야 할 것!

1. final 키워드와 static키워드

2. 웹 관련 IP / TCP / Stateless & Stateful 이론

오늘의 학습 

    ●  1. 프로젝트 시작 : 기본적인 자바 프로젝트 클래스 구조 짜기! 

    ●  2. 웹 강의 수강

    ●  3. final 키워드와 static키워드

 

Stateless & Stateful ( 무상태 & 상태유지 )

HTTP의 중요한 특징 중 하나로는 Stateless(무상태) 프로토콜을 지향한다는 점이다.


1. Stateful : 상태유지 프로토콜 방식

Stateful은 서버가 클라이언트의 상태를 보존해주는 프로토콜 방식이다.
Stateful(상태유지) 같은 경우에는 연결이 유지가 된다. 예시로 들면 웹사이트의 로그인 기능같은 다른 페이지로

이동했을 경우에도 로그인이 유지가된다. 이건 계속 연결이 되어있는 경우이다. 즉, 상태유지라고 생각하면 된다.

상태유지가 되야지 물건을 구매했을 때 해당 로그인된 정보를 토대로 결제를 하기 때문이다.
즉, 서버에서 회원의 정보를 가지고 상태를 유지하기 때문에 지속적인 연결이 되어있는 상태이다.


2. Stateless : 무상태 프로토콜 방식

Stateless는 서버가 클라이언트의 상태를 보존하지 않는 프로토콜 방식이다.
즉, 연결을 지속적으로 하지 않고 필요한 데이터만 주고 연결을 끊어버린다는 의미이다.
반면에 Stateless(무상태)의 경우에는 데이터를 회원이 가지고 있다가 보내는 방식이다. 즉, 로그인 같은
정보를 클라이언트의 브라우저의 쿠키를 통해 저장을 해놓는다던지 방식을 이용해 클라이언트가 즉각적으로
필요할때 자기 정보를 같이 넘김으로써 서버는 받고 요청에 필요한 데이터만 응답하고 연결을 끊으면 
해당 서버는 다른 요청에도 빠르게 받을 수 있으며 상태를 가지고 있지 않기때문에 유연하게 다른 서버에 요청을
보내도 받을 수 있게 된다. 정리하면 서버가 클라이언트의 상태를 보존하지 않는다는 말이 이런말이다.
이렇게 Stateless(무상태)의 장점은 갑자기 클라이언트의 요청이 증가해도 서버를 대거
투입이 가능하며 응답서버에 대한 요청을 다른 서버에서도 똑같이 받을 수 있어서 서버의
증설이 쉽고 스케일 아웃이라고 수평 확장에 매우 유리한 조건이 된다.
 
하지만 Stateless에도 한계가 존재한다.
모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다.
단순한 소개페이지일경우에는 상태를 유지할 필요가 없기에 무상태로 설계하기가 쉬움
상태를 유지해야하는경우 => 로그인 서버에서 유지를 해줘야한다.
일반적으로는 브라우저의 쿠키와 서버의 세션을 잘 조합해서 상태를 유지하는 기능을 사용하는게 가능하다.
이런식으로 어쩔수없이 상태유지가 필요해지는 경우가있다. 하지만 상태유지는 최소한으로 사용을 해줘야한다.
(꼭 필요한 경우에만 어쩔수없이 사용해야한다.)
Stateless에는 단점이 하나 더 존재한다.
데이터를 너무 많이 보낸다는 점이다.
클라이언트가 데이터를 보낼때 앞에서 봤듯이 Stateless는 보내고 연결을 끊는 방식이라 앞에서 내가 선택한
정보들을 서버에서 저장을 해주지않음으로 지속적으로 클라이언트가 가지고 있다가 보내기때문에 중복되는
데이터또한 많이 존재하게 된다.

 

# 오늘의 회고

웹의 강의를 듣고 네트워크와 TCP, 패킷, IP 등등 이론 위주로 학습을 진행하였다. 아직은 웹 지식이 부족하여 보충이 필요하다는 것을 깨달았다. 하지만 지금 내가 하는 자바를 위주로 학습하면서 천천히 공부를 하는게 맞을 것 같다고 생각을 함.

그리고 오늘은 공부의 방향성을 다시 잡은 날이다. 의욕에 앞선 나머지 이것 저것 다 하려고 하다가 애매한 상황이 되었는데  캠프의 성원튜터님 덕분에 방향성을 다시 잡을 수 있었다. 내일부터의 목표는 알고리즘 문제와 최대한 코드를 많이 보고 익숙해지는 시간을 가지려고 한다.

 

# 자신을 의심하지 말고 묵묵하게 계속 공부에 정진하도록...  #

'⛺스파르타코딩클럽' 카테고리의 다른 글

내일배움캠프 16일차 TIL - 개인 공부  (2) 2024.05.07
내일배움캠프 15일차 TIL - 과제 피드백(Calculator)  (1) 2024.05.03
내일배움캠프 13일차 TIL - 확장&상속(Extends)  (1) 2024.05.01
내일배움캠프 12일차 TIL - 객체 배열(ObjectArray)  (0) 2024.04.30
내일배움캠프 11일차 TIL - 과제(Calculator)  (0) 2024.04.30
'⛺스파르타코딩클럽' 카테고리의 다른 글
  • 내일배움캠프 16일차 TIL - 개인 공부
  • 내일배움캠프 15일차 TIL - 과제 피드백(Calculator)
  • 내일배움캠프 13일차 TIL - 확장&상속(Extends)
  • 내일배움캠프 12일차 TIL - 객체 배열(ObjectArray)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (149)
      • 🎓방송통신대학교 (25)
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (10)
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (19)
        • 📝Java Programming (18)
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    입출력
    다형성
    Python
    유비쿼터스
    유비쿼터스 컴퓨팅개론
    자바
    클라우드
    Java
    스프링
    파이썬
    Spring Framework
    방송통신대학교
    클래스
    방통대
    세계화
    spring
    컴퓨터의 이해
    유비쿼터스 컴퓨팅
    방송대
    컴파일러
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
내일배움캠프 14일차 TIL - 웹(Stateless, Stateful)
상단으로

티스토리툴바