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 등등 이론 위주로 학습을 진행하였다. 아직은 웹 지식이 부족하여 보충이 필요하다는 것을 깨달았다. 하지만 지금 내가 하는 자바를 위주로 학습하면서 천천히 공부를 하는게 맞을 것 같다고 생각을 함.
그리고 오늘은 공부의 방향성을 다시 잡은 날이다. 의욕에 앞선 나머지 이것 저것 다 하려고 하다가 애매한 상황이 되었는데 캠프의 성원튜터님 덕분에 방향성을 다시 잡을 수 있었다. 내일부터의 목표는 알고리즘 문제와 최대한 코드를 많이 보고 익숙해지는 시간을 가지려고 한다.
# 자신을 의심하지 말고 묵묵하게 계속 공부에 정진하도록... #
'내일배움캠프 Spring 5기' 카테고리의 다른 글
내일배움캠프 16일차 TIL - 개인 공부 (1) | 2024.05.07 |
---|---|
내일배움캠프 15일차 TIL - 과제 피드백(Calculator) (0) | 2024.05.03 |
내일배움캠프 13일차 TIL - 확장&상속(Extends) (1) | 2024.05.01 |
내일배움캠프 12일차 TIL - 객체 배열(ObjectArray) (0) | 2024.04.30 |
내일배움캠프 11일차 TIL - 과제(Calculator) (0) | 2024.04.30 |