스프링&스프링부트
-
[스프링MVC - 1편] MVC 패턴 적용, 한계스프링&스프링부트 2025. 1. 12. 12:11
MVC 패턴 - 적용서블릿을 컨트롤러로 사용하고, JSP를 뷰로 사용해서 MVC 패턴을 적용한다Model은 HttpServletRequest 객체를 사용한다request는 내부에 데이터 저장소를 가지고 있는데, request.setAttribute(), request.getAttribute()를 사용하면 데이터를 보관하고 조회할 수 있다 회원 등록 폼 - 컨트롤러@WebServlet(name="mvcMemberFormServlet", urlPatterns="/servlet-mvc/members/new-form")public class MvcMemberFormServlet extends HttpServlet { @Override protected void service(HttpServletRe..
-
[스프링MVC - 1편] MVC 패턴 개요스프링&스프링부트 2025. 1. 11. 18:56
MVC 패턴 개요너무 많은 역할하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을하게 되고 결과적으로 유지보수가 어려워진다변경의 라이프 사이클변경의 라이프 사이클이 다른 부분을 하나의 코드로 관리하는 것은 유지보수하기 좋지 않다기능 특화JSP 같은 뷰 템플릿은 화면을 렌더링 하는데 최적화되어 있기 때문에 이 부분의 업무만 담당하는 것이 좋다 Model View Controller- 컨트롤러 : HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다- 모델 : 뷰에 출력할 데이터를 담아둔다 뷰가 필요한 데이터를 모두 모델에 담아서전달해 주는덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰..
-
[스프링MVC - 1편] JSP 회원관리 웹 애플리케이션 만들기스프링&스프링부트 2025. 1. 11. 15:12
1. JSP 라이브러리 추가dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // JSP 추가 시작 i..
-
[스프링MVC - 1편] 회원관리 웹 애플리케이션 구현스프링&스프링부트 2025. 1. 5. 12:46
[ 서블릿 > JSP > MVC 패턴으로 구현 ] 회원 도메인 모델@Getter @Setterpublic 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; }}// 동시성 문제가 고려되어 있지 않음, 실무에선 ConcurrentHashMap, AtomicLong 사용 고려public class MemberRepository { private static Map store =..
-
[스프링MVC - 1편] HTTPServletResponse스프링&스프링부트 2025. 1. 5. 12:20
HTTPServletResponse 역할HTTP 응답 메세지 생성HTTP 응답 코드 지정헤더 생성바디 생성편의기능 제공Content-Type, 쿠키, Redirect HTTPServletResponse - 기본 사용법@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header")public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ..
-
[스프링MVC - 1편] HTTP 요청 데이터스프링&스프링부트 2025. 1. 2. 20:08
HTTP 요청 데이터 개요HTTP 요청 메세지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 3가지GET - 쿼리 파라미터/url**?username=hello&age=20**메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달예) 검색, 필터, 페이징등에서 많이 사용하는 방식POST - HTML Formcontent-type: application/x-www-form-urlencoded메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20예) 회원 가입, 상품 주문, HTML Form 사용HTTP message body에 데이터를 직접 담아서 요청HTTP API에서 주로 사용, JSON, XML, TEXT데이터 형식은 주로 JSON 사용POST, PUT, ..
-
[스프링MVC - 1편] HttpServletRequest스프링&스프링부트 2025. 1. 2. 19:33
HttpServletRequest 역할HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편하다서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다 ...POST /save HTTP/1.1 (START LINE)Host: localhost:8080 (헤더)Content-Type: application/x-www-form-urlencoded (헤더)username=kim&age=20 (바디)...
-
[스프링MVC - 1편] Hello 서블릿스프링&스프링부트 2024. 12. 25. 14:02
스프링부트 서블릿 환경 구성@ServletComponentScan // 서블릿 자동 등록@SpringBootApplicationpublic class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); }}@WebServlet(name="helloServlet", urlPatterns = "/hello")public class HelloServelt extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse res..