쿠키 세션 토큰 비교하기
·
Backend/Spring
쿠키(Cookie), 세션(Session), 토큰(Token)의 등장배경다음 3가지는 모두 웹 환경에서 상태 관리와 인증을 위해 등장한 기술이다. 우선 HTTP는 본질적으로 Stateless(상태가 없는) 프로토콜이다. 이는 서버가 각 요청을 독립적으로 취급하기 때문에 클라이언트 상태를 기억할 수 없다는 의미다. 따라서 상태 유지를 위해 클라이언트 측에 상태 정보를 저장할 수단이 필요했기 때문에 차례로 쿠키, 세션, 토큰이 등장했다.쿠키 (Cookie)브라우저(클라이언트)에 데이터를 저장하여 상태를 유지하는 방식 쿠키는 Key-Value 형식의 문자열 덩어리다. 클라이언트가 어떠한 웹 사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다...
MVC 패턴의 발전과정
·
Backend/Web
MVC 패턴의 등장배경Servlet이나 JSP만으로 비지니스 로직과 View Rendering 까지 모두 처리하면 너무 많은 역할을 하게 되고 유지보수가 굉장히 어려워져서(책임이 너무 많음) MVC 패턴이 등장했다. Servlet, JSP 구조Servlet, JSP 방식의 문제점Servlet만을 사용한 경우 View를 위한 코드와 비지니스 로직을 처리하는 코드가 Servlet에 모두 존재하여 유지보수가 어려워진다.JSP를 사용하여 View를 분리하였지만 비지니스 로직의 일부가 JSP 파일안에 존재한다. 여전히 책임이 많아 유지보수가 어렵다.템플릿 엔진(Template Engine)MVC 패턴에서 템플릿 엔진(Template Engine)이 등장한 이유는 View와 비즈니스 로직의 역할을 명확히 구분하여 ..
Web Application 및 Servlet
·
Backend/Web
웹 서버(Web Server)웹 서버는 주로 정적인 콘텐츠(Static Content) 제공과 간단한 HTTP 요청 처리를 담당한다. 주로 Apache HTTP Server, Nginx, IIS (Microsoft)와 같은 서버들이 웹 서버 역할을 수행한다.웹 서버 (Web Server) 의 주요 역할✅ 정적 콘텐츠(Static Content) 제공정적 콘텐츠라는 리소스가 이미 완성된 채로 서버에 존재하여 원본 그대로 응답하는 데이터를 의미한다.HTML, CSS, JavaScript, 이미지, 비디오 등의 리소스를 그대로 제공HTML 페이지 요청 (ex. index.html, about.html)정적인 이미지 파일 제공(.jpg, .png)스타일시트(.css), 자바스크립트(.js) 파일 제공✅ HTTP..
HTTP의 모든 것
·
CS
HTTP(HyperText Transfer Protocol)TEXT, IMAGE, FILE, HTML, JSON 등 다양한 형태의 데이터가 HTTP를 통해 전송된다.HTTP에도 버전이 존재하며 그중 대부분 HTTP/1.1 (TCP)을 사용한다. 현대에는 HTTP/2, HTTP/3 (UDP)의 사용량이 급속도로 증가하는 추세이다. HTTP 동작 순서HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다.HTTP 특징1️⃣ 클라이언트와 서버 구조클라이언트는 UI(User Inte..
[Java] 스트림
·
Language/Java
스트림(stream)이란 ?스트림이란 이름에서도 알 수 있듯, 데이터를 효율적으로 처리할 수 있는 흐름을 말한다.스트림은 선언형 스타일로 가독성이 굉장히 뛰어나며 데이터 준비 → 중간 연산 → 최종 연산 순으로 처리된다. 스트림은 컬렉션(List, Set 등) 과 함께 자주 이용되기도 한다.스트림의 특징데이터 흐름(데이터 스트림)스트림은 데이터를 한 방향으로 전달하며, 여러 연산을 적용할 수 있음.컬렉션과 다르게 데이터를 직접 저장하지 않음리스트(List), 셋(Set), 맵(Map)과 달리 데이터를 저장하는 구조가 아님.즉, 스트림은 데이터를 "흐르게" 하면서 변형하는 도구.한 번 사용하면 다시 사용할 수 없음스트림은 한 번 실행되면 재사용할 수 없음.중간 연산(Intermediate Operation..
[Java] if-else와 try-catch에 대해서
·
Language/Java
너무나 당연하게 예외처리를 하고 있었던 와중에, 예외처리가 꼭 필요할까 ? 에 대한 생각이 들었다. 그냥 습관적으로 예외 핸들링을 하고 있었던 것 같달까 ….따지고 보면 if-else 와 같은 조건문으로 입력 값을 처리하는거나 try-catch 등을 활용하여 예외를 처리하는 것이 콘솔의 결과창으로 봤을 때는 동일하게 느껴졌기 때문이다.따라서 원초적인 질문에 대해 정리하는 시간을 가졌다. 요즘 개발을 하면서 사소한 것 하나부터 끈질기게 의심하고 “왜” 해야하는지에 대해 치열하게 고민하려고 노력중이다.그래서, 왜 ! 예외처리가 필요할까 ?if-else로 예상되는 잘못된 값을 처리하는 것과 예외를 처리하는 것은 개념적으로 차이가 있다.1. if-else로 예상되는 잘못된 값 처리if-else는 예측 가능한 잘..