Spring Boot (16) 썸네일형 리스트형 MVC 패턴 MVC 패턴이란? Model View Controller의 약자로, 디자인 패턴 중 하나입니다. MVC 패턴이 있기 전에는 하나의 서블릿이나 JSP에서 어떤 애플리케이션의 모든 기능들을 구현하고 처리하였습니다. 이렇게 분리할 수 있는 기능들도 다 같은 곳에서 처리하다 보니, 유지보수 하기에 어려움이 있었습니다. 이렇게 서블릿이나 JSP로 처리하던 것을 모델(Model), 뷰(View), 컨트롤러(Controller)라는 영역으로 서로 역할을 나눈 것이 MVC 패턴입니다. 웹 애플리케이션은 보통 이 MVC 패턴을 주로 사용합니다. Controller : HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행 혹은 호출합ㄴ다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담습니다. Model.. 서블릿(Servlet) 이란? - 2 (HttpServletRequest, HttpServletResponse) HttpServletRequest와 HttpServletResponse 모두 서블릿(Servlet)이 Http 요청 및 응답 메시지를 간편하게 파싱하고 구성할 수 있도록 사용하는 객체입니다. 서블릿 관련한 기본 내용은 아래 포스팅에 작성하였으니 참고해 주세요! 서블릿(Servlet) 이란? 서블릿은 웹 서버를 구현할 때 필요한 TCP/IP 연결, HTTP 메시지 파싱, HTML 생성 등의 역할을 대신해주어 개발자가 비즈니스 로직에만 집중할 수 있도록 해줍니다. 서블릿은 아래와 같이 생겼습니다 silver-programmer.tistory.com HttpServletRequest HttpServletRequest를 사용하면 아래와 같이 개발자가 HTTP 요청 메시지를 편리하게 조회할 수 있습니다. POST.. 서블릿(Servlet) 이란? 서블릿은 웹 서버를 구현할 때 필요한 TCP/IP 연결, HTTP 메시지 파싱, HTML 생성 등의 역할을 대신해주어 개발자가 비즈니스 로직에만 집중할 수 있도록 해줍니다. 서블릿은 아래와 같이 생겼습니다. urlPatterns(/hello)의 URL이 호출되면 서블릿 코드가 실행됩니다. HTTP 요청 정보를 편리하게 사용할 수 있는 HttpServetRequest 서블릿이 개발자를 위해 HTTP 요청 메시지를 직접 파싱하여 HttpServletRequest 객체에 담아서 제공 HTTP 응답 정보를 편리하게 사용할 수 있는 HttpServetResponse 개발자가 설정한 스펙에 맞게 서블릿이 HTTP 응답 메시지 직접 구성하여 HttpServletResponse 객체에 담아서 제공 서블릿은 HTTP 요.. 외부 파일(.properties, .yaml)로 설정하기 Spring Boot의 외부설정 하나의 애플리케이션을 다른 여러 환경에서 사용해야 할 때가 있습니다. (개발 환경, 운영 환경 등) 각각의 환경에 따라 서로 다른 설정값이 존재하는데, 설정값에 따른 애플리케이션을 따로 만 silver-programmer.tistory.com 위 포스팅에서 OS 환경 변수, 자바 시스템 속성, 커맨드 라인 옵션 인수를 사용해 설정을 불러오는 방법을 알아보았습니다. 하지만 사용해야 하는 값이 늘어날수록 사용하기가 불편해지는 단점이 있습니다. 따라서 이번 포스팅은 설정값을 파일에 넣어서 관리하는 방식, 즉,. properties라는 파일을 사용해 설정값을 관리하고 사용하는 방식에 대해 작성하였습니다. .properties 외부 파일 key=value 형식을 사용해 설정값을 관.. @Value와 @ConfigurationProperties Spring에서는 외부 설정을 읽기 위한 방법으로 아래와 같이 다양한 방법을 제공합니다. Environment @Value - 값 주입 @ConfigurationProperties - 타입 안전한 설정 속성 이번 포스팅은 각 방법을 어떻게 사용하는지에 대해서 작성해 보았습니다. application.properties my.data.url=local.db.com my.data.username=local_user my.data.password=local_pw my.data.etc.max-connection=1 my.data.etc.timeout=3500ms my.data.etc.options=CACHE,ADMIN 위의 properties는 dash(-)를 사용하는 캐밥 표기법을 주로 사용합니다. (max-.. Spring Boot의 외부설정 하나의 애플리케이션을 다른 여러 환경에서 사용해야 할 때가 있습니다. (개발 환경, 운영 환경 등) 각각의 환경에 따라 서로 다른 설정값이 존재하는데, 설정값에 따른 애플리케이션을 따로 만들어 빌드를 여러 번 하여 배포해도 되지만, 이렇게 할 경우 유연성이 떨어지고, 다른 환경이 추가되면 또 거기에 맞도록 코드를 수정한 뒤 빌드를 해야 하는 번거로움이 존재합니다. 그래서 보통 아래와 같이 빌드는 한 번만 하고, 각 환경에 맞추어 실행 시점에 외부 설정값을 주입합니다. 이렇게 변하는 것 (외부 설정값)과 변하지 않는 것 (코드와 빌드 결과물)을 분리하여 유지보수하기 좋은 애플리케이션을 개발할 수 있고, 빌드 과정을 줄이며 환경에 따른 유연성을 확보할 수 있습니다. 이번 포스팅은 이렇게 애플리케이션을 실행할.. 나만의 Spring Boot로 Spring Boot 원리 파악하기 이번 포스팅에서는 내장 톰캣 실행, 스프링 컨테이너 생성, 디스패처 서블릿 등록의 모든 과정을 편리하게 처리해 주는 Boot 클래스를 만들어보면서 어떻게 Spring Boot가 동작하는지 알아보겠습니다. 이 포스팅을 보기 전에 아래 포스팅을 먼저 참고하면 이해에 도움이 되실 겁니다!! Spring Boot와 내장 톰캣 내장 톰캣은 WAR 방식의 단점을 보완하기 위해서 등장하였습니다. (참고: 외장 서버와 내장 서버) 내장 톰캣은 쉽게 말해 톰캣을 라이브러리로 포함하고 자바 코드로 직접 실행하는 것을 의미합 silver-programmer.tistory.com 본 포스팅에서 사용할 코드의 프로젝트 구조는 아래와 같습니다. 또한 build.gradle 파일에는 아래와 같은 dependency들이 추가되어야 .. Spring Boot와 내장 톰캣 내장 톰캣은 WAR 방식의 단점을 보완하기 위해서 등장하였습니다. (참고: 외장 서버와 내장 서버) 내장 톰캣은 쉽게 말해 톰캣을 라이브러리로 포함하고 자바 코드로 직접 실행하는 것을 의미합니다. 이번 포스팅에서는 내장 톰캣을 이용하여 Spring과 연결하여 웹 애플리케이션을 만들어보는 과정을 작성하였습니다. 사용할 코드의 패키지 구조와 build.gradle 구조는 아래와 같습니다. plugins { id 'java' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { mavenCentral() } dependencies { //스프링 MVC 추가 implementation 'org.springfra.. 이전 1 2 다음