개인 공부
-
spring[15] 직접 만든 MVC Framework와 Spring MVC Framework 비교개인 공부/spring 2021. 6. 13. 09:06
Spring MVC와 내가 만든 미니 MVC 지금까지 만든 MVC 프레임워크와 실제 Spring 프레임워크를 비교해보자. 지금까지의 구조를 잘 정리하고 이해했다면 우리가 만든 구조와 다른점이 거의 없다는 것을 알 수 있다. 위 그림과 아래 그림의 차이는 FrontController라는 이름 대신 DispatcherServlet이란 이름 차이일뿐 둘다 Servlet을 상속받아서 사용되는것도 똑같다. 그럼 실제 코드로 어떻게 동작하는 구조인지도 살펴보자 Spring MVC 실제 동작 구조 Dispatcher Servlet 동작 구조 Spring MVC도 프론트 컨트롤러 패턴으로 구현되어 있다. Spring의 프론트 컨트롤러가 바로 DispatcherServlet이다. 그리고 이 DispatcherServle..
-
spring[14] Servlet의 MVC Framework 만들기개인 공부/spring 2021. 6. 12. 13:26
지금까지 공부한 MVC spring하면 mvc 패턴의 framework로 잘 알고 있다. 하지만 이번에는 spring은 사용하지 않고 지금까지 공부한 servlet을 활용하여 mvc 패턴을 구현해보려고 한다. 위 그림과 같이 기존의 MVC 패턴으로 구현한 Servlet은 client의 하나의 url 호출이 있을때 하나의 매칭되는 하나의 servlet에서 controller와 같이 정보를 넘겨주는 방식이였다. 하지만 작동하는 servlet을 url마다 생성해야하고 하는 동작은 url의 값을 읽어와 view와 연결시켜주는 코드는 사용자가 요청한 서비스 로직을 제외하면 계속해서 반복되어지는 코드가 발생했다. 그래서 이 상황을 더 개발자스럽게 해결하기 위해 FrontController 패턴이 등장했다. Fron..
-
Method개인 공부/java 2021. 6. 11. 07:52
Method란 메서드는 클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있다. 지금까지 공부했던 필드 변수들이 물체라면 그 물체들의 행동을 만들어주는 것이 메서드이다. 메서드는 입력값(매개변수=parameter)가 있고 그 입력값을 받아서 무언가의 결과를 반환해낸다. 그 유명한 input이 있으면 output이 있다. 메서드란 클래스의 기능으로써 무조건 클래스 안에 선언해야한다. 매개변수(=parameter)의 전달과 반환의 방식 Call by value 메서드에서 매개변수를 받아서 값만 사용하고 전달 받은 매개변수의 값에는 영향을 미치지 않는 방식이다. 또한 대부분 매개변수로 기본 자료형을 받는다. class Test{ public int increase(int n){ n++; return ..
-
spring[13] Servlet의 MVC 패턴 적용개인 공부/spring 2021. 6. 9. 22:08
MVC 패턴이 등장한 이유 하나의 서블릿이나 JSP만으로 비지니스 로직과 뷰 렌더링까지 모두 처리하게 되면 유지보수가 어려워진다. 또한 뷰와 서비스 로직은 변경 사이클이 다르다. 예를 들어 화면이 변경됨에 따라 기능이 변경되지 않을 수 있고 기능이 변경됨에 따라 화면이 변경되지 않을 경우가 있기 때문이다. MVC란 Model : view에 출력할 데이터를 담아둔다. model 덕분에 view는 비지니스 로직이나 데이터 접근에 대해 몰라도 되고 화면 렌더링에 집중할 수 있다. View : 모델에 담겨있는 데이터를 사용하여 화면을 렌더링하는 일에 집중한다. Controller : HTTP 요청을 받아 파라미터를 검증하고 비지니스 로직을 실행한다. 그리고 View에 전달할 결과 데이터를 model에 담는다. ..
-
캡슐화와 변수의 개념개인 공부/java 2021. 6. 9. 10:01
캡슐화란 객체지향 언어의 가장 큰 특징으로 캡슐화(Encapsulation)을 빼놓을 수 없다. 여러 자료및 처리과정을 하나의 모듈(부품)처럼 사용하므로 객체간의 이식성이 높아지기 때문이다. 캡슐화란 관련 있는 자료, 동작들을 하나로 묶어 요약하고 사용자에게는 배우적인 접근을 허용하지 않는 대신에 사용의 편의성을 제공해주는 것이다. public class Car { private int speed = 50; public void speedUp(){ this.speed = 50; System.out.println(speed+"km 로 운행중입니다."); } public void speedBreak(){ this.speed = 0; System.out.println(speed+"km 로 정지합니다."); }..
-
Class와 객체(Object)개인 공부/java 2021. 6. 8. 07:47
Class와 객체의 개념 Class는 건물을 지을 때 필요한 설계도와 같다. 그리고 객체(Object)는 설계도를 이용하여 완성된 건물을 의미한다. 즉 Class는 객체를 만들기 전 생성해놓은 java 소스로된 class로 정의한 파일을 의미하며 객체는 class로 정의된 파일을 통해 생성해낸 것이다. Class의 구조 클래스 헤더 [접근 제한자] [클래스 종류] class 클래스명 { } 다음과 같이 class를 정의할 수 있다. 접근 제한자에는 public, protected, default, private가 있고 클래스 종류로는 final, abstract과 생략시 일반 class가 존재한다. 멤버 필드 class 클래스명 { [변수] [상수] } 멤버 필드에는 변수와 상수가 존재하고 변수란 프로그..
-
spring[12] Servlet, jsp를 사용하여 웹 페이지 구현개인 공부/spring 2021. 6. 7. 22:00
기본 프로젝트 생성 간단한 회원가입 어플리케이션을 만들기 위해 Member class를 만든다. @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.age = age; } } Member 객체를 저장할 Repository를 생성하는데 실제 DB와 연결은 하지 않고 Map으로 휘발성 메모리로 사용한다. 하지만 일반 Map은 동시에 접속하여 사용했을때 문제가 되기 때문에 실무에서는 ConcurrentHashMap, Atomi..
-
spring[11] Servlet - response(응답)개인 공부/spring 2021. 6. 6. 09:40
HTTP 응답 메세지 생성 HTTP Response에서 우리가 해야할 작업은 HTTP 응답코드 지정 헤더 생성 바디 생성 편의 기능 제공 Content-Type 쿠키 Redirect 다음과 같다. 그럼 코드로 위의 작업들을 어떻게 수행하는지 확인해보자. import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ..