본문 바로가기

Spring37

MVC 프레임워크 만들기 2 - 모델 추가, 실용적인 컨트롤러 모델 객체를 따로 만들어볼까요? 안녕하세요! 오늘은 지난 게시글에 이어서 MVC 프레임워크를 발전 시켜 보겠습니다. 지난 게시글에는 프론트 컨트롤러 패턴을 도입해서 코드 중복을 제거하였습니다. 관심 있는 분들은 아래 게시글을 참고해주세요! https://passionate.tistory.com/40 MVC 프레임워크 만들기 1 - 프론트 컨트롤러 안녕하세요! 오늘은 MVC 패턴을 따르는 프레임워크를 만들어보겠습니다. 지난 시간에 MVC 패턴을 적용해서 회원 관리 웹을 만들어보았습니다. 관심 있으신 분은 참고해주세요! https://passionate.tistor passionate.tistory.com 지난 게시글에서 만든 MVC 프레임워크는 2가지 단점이 있습니다. 1. 컨트롤러가 서블릿에 종속합니다:.. 2022. 1. 23.
MVC 프레임워크 만들기 1 - 프론트 컨트롤러 직접 MVC 프레임워크를 만들어 봅시다! 안녕하세요! 오늘은 MVC 패턴을 따르는 프레임워크를 만들어보겠습니다. 지난 시간에 MVC 패턴을 적용해서 회원 관리 웹을 만들어보았습니다. 관심 있으신 분은 참고해주세요! https://passionate.tistory.com/39 MVC 패턴을 적용해서 회원 관리 웹 만들기 안녕하세요. 이번 게시글에서는 MVC 패턴을 적용해서 회원 관리 웹을 만들어보겠습니다. 서블릿과 JSP의 한계 앞서 서블릿(https://passionate.tistory.com/37)과 JSP(https://passionate.tistory.com/38)로 회원.. passionate.tistory.com 컨트롤러와 뷰를 분리하니 코드가 깔끔해졌습니다. 그런데 여전히 문제가 있었습니다. .. 2022. 1. 22.
MVC 패턴을 적용해서 회원 관리 웹 만들기 비즈니스 로직과 뷰 로직을 분리하면 어떨까요? 안녕하세요. 이번 게시글에서는 MVC 패턴을 적용해서 회원 관리 웹을 만들어보겠습니다. 서블릿과 JSP의 한계 앞서 서블릿(https://passionate.tistory.com/37)과 JSP(https://passionate.tistory.com/38)로 회원 관리 웹을 만들어보았습니다. 궁금하신 분은 게시글을 참고해주세요! 두 방법으로 웹을 만들었을 때, 한 파일에 많은 역할이 들어간다는 문제가 있었습니다. 웹을 만들 때는 비즈니스 로직과 뷰 로직이 필요합니다. 비즈니스 로직은 유저의 요청에 따른 결과물을 만들어내기 위한 일련의 작업을 의미합니다[1]. 로그인을 예로 들면, 유저가 아이디와 비밀번호를 입력하면 유저에게는 단순하게 로그인이 되었는지 아닌지.. 2022. 1. 21.
JSP로 회원 관리 웹 만들기 JSP로 웹을 만들면 불편하게 자바로 HTML을 작성하지 않을 수 있습니다. 안녕하세요. 오늘은 JSP로 회원 관리 웹을 만들어 보겠습니다. 회원을 저장하고, 전체 회원을 조회하는 기능을 만들 것입니다. 지난 게시글(https://passionate.tistory.com/37)에서는 서블릿으로 회원 관리 웹을 만들어보았습니다. 서블릿으로 웹을 만드니, 동적으로 HTML 페이지를 만들 수 있었지만, 자바로 HTML 페이지를 작성해서 응답 데이터를 만드는 것이 복잡하고 비효율적이라는 단점이 있었습니다. 따라서 오늘은 JSP를 사용해보겠습니다. JSP를 사용하면 HTML 문서에서 필요한 부분만 자바 코드를 적용해서 동적으로 HTML 페이지를 만들 수 있습니다. JSP(Java Server Pages) 먼저 J.. 2022. 1. 21.
서블릿으로 회원 관리 웹 만들기 스프링 없이 서블릿만으로 웹을 만들어 봅시다 안녕하세요. 오늘은 서블릿으로 회원 관리 웹을 만들어보겠습니다. 회원을 저장하고 회원 목록을 조회하는 기능을 구현할 것입니다. 회원 도메인, 회원 저장소 만들기 웹을 만들기 전에, 필요한 회원 도메인과 회원 저장소를 만들어야 합니다. 회원 도메인을 만들고, 회원을 저장/조회할 수 있는 회원 저장소를 만들어봅시다. 회원 도메인 모델 @Getter @Setter public class Member { private Long id; private String username; private int age; public Member(){} public Member(String username,int age){ this.username = username; this.a.. 2022. 1. 20.
HttpServletResponse 사용하기 HTTP 응답 메시지는 어떻게 만들까요? 안녕하세요. 앞서 HttpServletRequest 객체를 사용해서 요청 메시지를 조회하고(https://passionate.tistory.com/34), 요청 데이터를 조회하는(https://passionate.tistory.com/35) 방법을 알아보았습니다. 오늘은 HttpServletResponse 객체를 사용해서 HTTP 응답 메시지를 생성하고 데이터를 전송하는 방법을 알아보겠습니다. Response는 Request보다 간단해서, 한 게시글에 모아서 작성하겠습니다. HTTP 응답 메시지 생성 HttpServletRespose 객체로 상태 코드를 지정하고 헤더 값을 설정할 수 있습니다. @WebServlet(name = "responseHeaderServl.. 2022. 1. 19.
HttpServletRequest로 HTTP 요청 데이터 조회하기 HTTP 요청 데이터는 어떻게 받아올까요? 안녕하세요. 오늘은 HttpServletRequest로 HTTP 요청 데이터를 어떻게 조회하는지 알아보겠습니다. HTTP 요청 데이터 먼저 HTTP 요청 데이터에는 무엇이 있는지 알아봅시다. 클라이언트에서 서버로 요청을 보낼 때, 데이터를 전달하기 위해서 주로 3가지 방법을 사용합니다. 1. GET - 쿼리 파라미터 /url?username=hello&age=20처럼 메시지 바디 없이 URL에서 물음표 이하의 쿼리 파라미터에 데이터를 포함해서 전달하는 방식입니다. 검색, 필터, 페이징 등에서 많이 사용하는 방식입니다. 2. POST - HTML Form 메시지 바디에 쿼리 파라미터 형식으로 데이터를 전달합니다. content-type이 application/x-.. 2022. 1. 18.
HttpServletRequest로 HTTP 요청 메시지 조회하기 HTTP 요청 메시지는 어떻게 조회할까요? 안녕하세요. 오늘은 HttpServletReqest로 HTTP 요청 메시지를 조회해보겠습니다. HTTP 요청 메시지 먼저 HTTP 요청 메시지의 구조를 알아봅시다[1]. HTTP 메시지의 전체적인 구조는 시작 라인, 헤더, 공백 라인, 메시지 바디로 구성되어 있습니다. 참고로 HTTP 메시지는 HTTP 요청 메시지, HTTP 응답 메시지로 구분할 수 있습니다. 이번 시간에는 HTTP 요청 메시지에 초점을 두고 알아보겠습니다. 시작 라인, 헤더, 공백 라인, 메시지 바디가 무엇인지 하나씩 알아봅시다. 1. 시작 라인 시작 라인은 HTTP 메서드(GET, PUT, POST)와 요청 대상(절대경로), HTTP 버전이 들어갑니다[2]. 아래 사진은 HTTP 요청 메시지.. 2022. 1. 18.