본문 바로가기

Backend/Spring | SpringBoot28

[Servlet] 회원관리 웹 애플리케이션 만들기1 (+JSP, MVC 패턴) 목차 서론 서블릿, JSP, MVC 패턴으로 회원 관리 웹 애플리케이션을 만들어 봅시다. 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 @Getter @Setter public class Member { private Long id;// Member를 회원 저장소에 저장하면 회원 저장소가 할당 private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age; } } 회원 저장소 /** * 동시성 문제가 고려되어 있지 .. 2023. 8. 17.
[Servlet] HttpServletRequest, HttpServletResponse 목차 서론 Servlet이 제공하는 HttpServletRequest와 HttpServletResonse에 대해 알아봅시다. HttpServletRequest HttpServletRequest의 역할 HTTP 요청 메시지는 텍스트 형태로 되어 있습니다. 이를 개발자가 직접 파싱해서 원하는 데이터를 뽑아낼 수도 있지만, 매우 번거롭습니다. 서블릿은 개발자를 대신하여 HTTP 요청 메시지를 파싱합니다. 그리고 그 결과를 HttpServletRequest 객체에 담아 제공합니다. HttpServletRequest를 이용하여 다음과 같은 HTTP 요청 메시지를 편리하게 사용할 수 있습니다. HTTP 요청 메시지 POST /save HTTP/1.1 //Start-line Host: localhost:8080 //.. 2023. 8. 17.
[Servlet] Hello 서블릿 목차 서론 첫 서블릿을 만들어봅시다. 서블릿을 실행하기 위해서는 톰캣과 같은 WAS를 직접 설치 WAS에 서블릿 코드를 클래스 파일로 빌드한 후 업로드 톰캣 서버 실행 과정을 거쳐야 합니다. 이 과정은 너무 번거롭고 불필요합니다. 스프링 부트는 톰캣 서버를 내장하고 있으므로 톰캣 서버의 설치없이 서블릿 코드를 실행할 수 있습니다. 따라서 현재 예제에서는 스프링 부트를 사용하여 구현합니다. 스프링 부트 서블릿 환경 구성 @ServletComponentScan 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 어노테이션을 지원합니다. @ServletComponentScan @SpringBootApplication public class ServletApplicat.. 2023. 8. 17.
[Servlet] 서블릿과 WAS의 역할, 멀티 스레드 목차 서론 간략하게 서블릿과 WAS의 역할과 멀티 스레드에 대해 작성하는 글입니다. 서블릿과 WAS의 역할 HTML Form 으로 데이터를 전송 HTML Form을 사용하여 데이터를 서버로 전송하면 어떻게 동작할까요? POST로 사용자의 정보를 저장하는 요청을 보내면, 브라우저는 그에 맞는 HTTP 요청 메시지를 생성해 서버에게 전송합니다. 서버에서 처리 : 웹 애플리케이션 서버를 직접 구현한다면? TCP/IP 연결을 대기하는 코드를 작성하고, 소켓을 연결한다. 받은 HTTP 요청 메시지는 모두 텍스트다. 파싱해서 해석한다. POST 방식인지, 어떤 URL로 요청이 왔는지(/save) 확인한다. Content-Type에 따라 Body를 파싱한다. (usernamge, age 데이터를 사용할 수 있도록 파.. 2023. 8. 3.
[Spring] 웹 서버, 웹 애플리케이션 서버, 웹 시스템 구성 목차 웹 서버(Web Server) HTTP 기반으로 동작합니다. 정적인 리소스를 제공합니다. (정적 리소스: 정적(파일) HTML, CSS, JS, 이미지, 영상) 기타 부가 기능을 제공합니다. 예) NGINX, APACHE 가 있습니다. 웹 애플리케이션 서버 (WAS - Web Application Server) HTTP 기반으로 동작합니다. 웹 서버 기능을 포함합니다. (정적 리소스 제공 가능) 웹 서버와의 차이점은 프로그램 코드를 실행해서 애플리케이션 로직을 수행합니다. (프로그래밍을 할 수 있기 때문) 동적 HTML, HTTP API (JSON) 제공 동적 HTML: 사용자에 따라 다르게 이름이나 프로필 이미지 등을 바꿔 보여줄 수 있습니다. 서블릿, JSP, 스프링 MVC는 WAS에서 동작합니.. 2023. 8. 3.
[Spring] 스프링 예제 - 주문과 할인2 (SRP, OCP, DIP 적용) https://wngml56.tistory.com/217 [Spring] 스프링 예제 - 주문과 할인1 (OCP와 DIP 미 적용) 비지니스 요구사항 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수도 있고, 외부 시스템과 연동할 수도 있다. (미 확정) 주문과 wngml56.tistory.com 와 이어지는 글입니다. 목차 할인 정책의 변경 서비스 오픈 직전, 갑자기 기획자가 기존의 고정 할인 정책에서 정률 % 할인으로 변경을 하고 싶다고 요청을 해왔습니다. 기획자 : 할인 정책을 지금처럼 고정 금액 할인 정책이 아니라, 더 합리적이게 주문 금액당 할인하는 정률 % 할인으로 변경하고 싶어요. 예를 들어서 기존 정책은 VIP가 만원을.. 2023. 7. 28.