본문 바로가기
반응형

분류 전체보기337

[Eclipse] 프로젝트 유형 변경하기 Eclipse에 import한 프로젝트가 사용하는 것은 Gradle, Maven, Spring 등등 다양하다. 하지만 Eclipse가 자동적으로 Java Project로만 인식해서 프로젝트 전체에 빨간 X에 뜨는 경우가 있다. 잘 모를때는 원하는 유형의 프로젝트를 새로 만들어서 파일 내용을 복붙했으나... SVN이나 Git같은 도구를 써서 여러 사람과 함께 사용하는 경우엔 새로 만들수도 없다ㅠㅠ 알고보니 프로젝트 유형을 바꾸는건 정말 어렵지 않다. 단, 플러그인은 이미 설치되어 있다는 가정 하에 진행해야 한다. ex: Gradle Project일 경우, Gradle 관련 플러그인이 이미 설치되어있어야 함 프로젝트 우클릭 - Configure - 원하는 버전 선택 ex: Gradle Project로 변경하.. 2021. 5. 19.
[MVC] Controller 단순화 v3까지 설계한 것은 구조적으로 좋은 설계이다. 하지만 개발자들 입장에서는 항상 ModelView 객체 생성 반환해야해서 좀 번거롭다. 이를 좀 더 단순화하기 위해 코드를 변경해보겠다. 이전 코드: yeonyeon.tistory.com/105 [MVC] Model 분리 현재 코드의 문제점 컨트롤러는 매번 사용하지도 않는 HttpServletRequest, HttpServletResponse를 받는다. "/WEB-INF/views/new-form.jsp" 같은 경로에서 "/WEB-INF/views" 같이 경로가 반복된다. 현재 서블릿에.. yeonyeon.tistory.com 이번 글은 코드 전문을 공개하기보다 어느 부분이 어떻게 바뀌었는지 위주로 짚어보겠다. (코드 전문: https://github.co.. 2021. 5. 13.
[MVC] Model 분리 현재 코드의 문제점 컨트롤러는 매번 사용하지도 않는 HttpServletRequest, HttpServletResponse를 받는다. "/WEB-INF/views/new-form.jsp" 같은 경로에서 "/WEB-INF/views" 같이 경로가 반복된다. 현재 서블릿에서 종속성을 제거하기 위해 Model과 View 이름을 전달하는 객체 ModelView를 생성해보겠다. ModelView는 MyView와 마찬가지로 다른 버전에서도 계속 사용하기 위해 상위 폴더에 둔다. ModelView @Getter @Setter public class ModelView { private String viewName; private Map model = new HashMap(); public ModelView(String.. 2021. 5. 11.
[MVC] View 분리 지난 글 까지는 MVC 패턴을 분리하고, Front Controller를 분리했다. 이제 View를 분리하는 작업을 해보겠다. 프로젝트 구조는 다음과 같다. MyView는 이후 다른 버전에서도 사용할 것이므로 v2보다 상단인 frontcontroller에 위치 시켰다. MyView public class MyView { private String viewPath; public MyView(String viewPath) { this.viewPath = viewPath; } public void render(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { RequestDispatcher dispatc.. 2021. 5. 10.
[MVC] 프론트 컨트롤러 패턴 기존의 패턴을 설명하자면 아래 그림과 같다 각 클라이언트들은 Controller A, B, C에 대해 각각 호출한다. 공통 코드들은 별도로 처리되어 있지 않고 각 Controller에 포함되어 있다. 하지만 프론트 컨트롤러 패턴을 도입한다면? 각 클라이언트들은 Front Controller에 요청을 보내고, Front Controller은 각 요청에 맞는 컨트롤러를 찾아서 호출시킨다. 공통 코드에 대해서는 Front Controller에서 처리하고, 서로 다른 코드들만 각 Controller에서 처리할 수 있도록 한다. 장점을 정리해보자면, 공통 코드 처리가 가능 (★중요) Front Controller 외 다른 Controller에서 Servlet 사용하지 않아도 됨 스프링 웹 MVC의 핵심도 위 같은.. 2021. 5. 10.
[MVC패턴] 회원 관리 웹 애플리케이션 예제에 들어가기 앞서 MVC 패턴에 대해 간단히 설명하겠다. 프로젝트 구성 요소를 Model, View, Controller 3가지로 나눈 패턴 Model: View에 출력할 데이터 담아두기 View: Model에 담긴 데이터를 사용해 화면 그려내기 Controller: HTTP 요청을 받아 파라미터 검증 및 비즈니스 로직 실행. View에 전달할 결과 데이터를 Model에 담기 기본적으로 나는 일단 코딩하고 개념을 찾아보는 편이라... 자세한 설명은 생략한다. 이후에 MVC 패턴에 대해 따로 공부하는 것을 추천한다. 회원 관리 웹 애플리케이션의 요구사항 회원 저장 회원 목록 조회 회원 관리 웹 애플리케이션 코드 비교 Servlet: yeonyeon.tistory.com/100 JSP: yeonyeon... 2021. 5. 10.
[JSP] 회원 관리 웹 애플리케이션 회원 관리 웹 애플리케이션의 요구사항 회원 저장 회원 목록 조회 회원 관리 웹 애플리케이션 코드 비교 Servlet: yeonyeon.tistory.com/100 MVC 패턴: yeonyeon.tistory.com/102 먼저 JSP 라이브러리 추가가 필요하다. build.gradle에 다음을 추가하고 gradle project refresh를 한다. implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' webapp에 jsp/members 폴더를 만들어 jsp 파일들을 넣을 것이다. new-form.jsp username: age: 전송 name, age를 입력해 button을 누르면,.. 2021. 5. 7.
[Servlet] 회원 관리 웹 애플리케이션 회원 관리 웹 애플리케이션을 Servlet, JSP, MVC 패턴 차례대로 개발하며 비교해보겠다. 본 글에서는 Servlet으로 개발하고, JSP와 MVC 패턴은 추가적으로 글을 올리겠다. 회원 관리 웹 애플리케이션의 요구사항은 간단하게 준비해보았다. 회원 저장 회원 목록 조회 회원 관리 웹 애플리케이션 코드 비교 JSP: yeonyeon.tistory.com/101 MVC 패턴: yeonyeon.tistory.com/102 회원 모델 생성 main/.../domain/member/Member.java (나는 기본적으로 파일을 저장한 폴더 위치까지 기록하는 편인데 폴더명이나 위치까지 따라할 필요는 없다..) @Getter @Setter public class Member { private Long id;.. 2021. 5. 6.
[Servlet] HttpServletResponse HttpServletResponse 역할 HTTP 응답, 헤더, 바디 생성 Content-Type, Cookie, Redirect 등의 기능 제공 응답 Header 새로 response 폴더를 만들고 ResponseHeaderServlet.java를 생성했다. @WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet{ @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException.. 2021. 4. 30.
반응형