https://dcloud.tistory.com/178 지난 포스팅에서 동적 웹 페이지를 위해 서블릿이 도입된 배경과 서블릿의 장점을 살펴보았다. 그리고 서블릿을 재정의해서 서블릿의 요청을 처리하는 것도 알아보았다. 이번에는 이어서, 서블릿의 핵심 개념인 서블릿 컨테이너를 다루어보고 스프링에서 어떤 점을 개선했고 현재의 스프링 형태가 되었는지 살펴보자. 서블릿은 어떻게 관리되고, 서블릿은 어떻게 호출될까? 1. 서블릿 컨테이너서블릿을 관리하기 위한 서블릿 컨테이너라는 것이 있다. 서블릿 컨테이너란 단어 그대로 서블릿을 담는 컨테이너이다. 우리가 자주 들어본 톰캣(Tomcat)이 대표적인 서블릿 컨테이너이자 WAS이다. 예를 들어, 사용자가 브라우저에서 HTTP 요청을 보내면 톰캣이 해당 요청을..
Backend
https://www.youtube.com/watch?v=PH8-V6ah0XQ&list=LL&index=1IT 늦공 김부장 - [Servlet - Jsp - MVC - Spring 진화과정에 대한 리뷰] 위 영상을 보고 서블릿부터 JSP, 스프링으로 이어지는 웹 변천사를 한눈에 이해할 수 있었다. 그리고 눈에 띄는 부분은 마지막 25분 32초 였다. 해당 부분에서는 Was의 구조와 개발 방법의 관계를 주제로, 서블릿과 JSP, 스프링의 WAR 파일 형식을 비교하는데 세 가지 방법의 WAR 파일이 모두 똑같은 형식을 유지하는 것을 알 수 있다. 이것은 사실 당연한 이유일 수도 있는데, 서블릿에서 스프링까지의 변천사가 기존의 기술을 조금씩 확장한 것이기 때문이다. 둘다 자바 기반의 서블릿 컨테이너..
맥북 OS를 sonoma 14.2.1 로 업데이트 이후 MySQL Workbench를 실행하면 계속해서 튕기는 현상이 발생했습니다. 결론부터 말하자면, MySQL의 이전 버전이 Sonoma(14)를 지원하지 않기 때문에 생기는 문제였습니다. 우선 mysql 서버가 잘 실행되고 있는지를 확인했습니다.잘 실행이 되고 있습니다. 구글링을 통해 알아보니, Sonoma 버전은 2023년 09월 27일에 출시되는 버전 이후부터 지원이 된다고 합니다. 제가 여태껏 사용한 버전은 8.0.31 버전이었습니다. 아래 사이트에서 새로운 버전을 다운 받을 수 있습니다.https://dev.mysql.com/downloads/workbench/ MySQL :: Download MySQL WorkbenchSe..
기존에 MySQL workbench를 사용했지만, 튕기는 오류도 계속해서 생기고 DB 이전을 계획하고 있던터라 DBeaver라는 DB 관리 툴을 설치했습니다. 설치 방법에 대해 간단히 공유하고자 포스팅을 작성합니다. 1. DBeaver 란 무엇인가 우선, DBeaver에 대해 간단히 설명드리겠습니다. DBeaver란 JDBC를 기반으로 DB 연결을 하기에 매우 다양한 데이터베이스를 지원하는 DB 관리 도구입니다.(MySQL, PostgreSQL, Oracle, SQLite, SQL Server등 관계형 데이터베이스는 물론 MongoDB, Cassandra, Redis 등의 NoSQL 데이터베이스도 지원) Commuity Edition을 이용하면 라이선스가 무료인데다가, Window, Linux, Ma..
프로젝트 진행 중 회원 기능을 구현하기 위해 JWT 인증 방식을 도입하기로 했습니다. 그런데 세션 방식에 비해 어떤 이점이 있기에 JWT를 많이 쓰는 것인지, 개발하는 입장에서는 사용자의 정보를 가져올 때, 세션이든 JWT든 어디서든 가져오기만 하면 되는 것 아닌가? JWT 토큰 보안이 잘 이루어지는게 맞는지? 같은 여러 의문이 생겼습니다. 이번 포스팅에서 그 의문점에 대해 정리해보겠습니다. 1. 세션 방식과 JWT 방식 비교 우선 서버에서 사용자를 어떻게 인증하는지에 대해 살펴보겠습니다. 만약 한 웹 사이트를 만들었다고 가정하겠습니다. 이 웹사이트에서 로그인한 사람만 웹 사이트를 구경할 수 있게 하고 싶다면 어떻게 해야할까요? 보통 세션 방식(좌)과 JWT 방식(우) 두 가지를 제시합니다. ..
1. HTTP 헤더 HTTP 헤더는 HTTP 메시지에 추가적인 정보를 제공하여 통신을 원활하게 합니다. 이러한 헤더들은 요청과 응답 모두에 사용됩니다. 이를 통해 메시지 바디의 내용, 길이, 압축 여부, 인증, 캐시 관리 등의 부가 정보를 전달할 수 있습니다. (1) HTTP 헤더의 구조HTTP 헤더는 다음과 같은 구조를 가집니다(field-name은 대소문자를 구분하지 않음. OWS는 띄어쓰기를 허용) (2) HTTP 헤더 표현 현재 HTTP/1.1 표준에서는 메시지 본문(Message Body)을 통해 표현 데이터(Representation Data)를 전달합니다. 이에 따라 표현 데이터를 해석하기 위한 정보를 제공하는 표현 헤더(Representation Header)가 사용됩니다. 표현 헤더는..