여니의 프로그래밍 study/Spring & Spring Boot 63

[Spring] Chapter 15 ~ 17 : 간단한 웹 어플리케이션의 구조, JSON 응답과 요청처리, 프로필과 프로퍼티 파일

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 간단한 웹 어플리케이션의 구성 요소 (1) 프론트 서블릿 -> 웹 브라우저의 모든 요청을 받는 창구 역할, 요청 분석 후 알맞은 컨트롤러에 전달함 스프링 MVC에서는 DispatcherServle이 역할을 수행함 (2) 컨트롤러 + 뷰 -> 실제 웹 브라우저의 요청을 처리함 클라이언트의 요청을 처리하기 위해 알맞은 기능을 실행하고 그 결봐를 뷰에 전달함 컨트롤러의 주요역할 1) 클라이언트가 요구한 기능 실행 2) 응답 결과를 생성하는데 필요한 모델 생성 3) 응답 결과를 생성할 뷰 선택 컨트롤러는 어플리케이션이 제공하는 기능과 사용자 요청을 연결하는 매개체로서 기능 제공을 위한 로직을 직접 수행하진 않음. 대신 해당 로직을 제공하는 서비스에..

[Spring] MVC 4 : 날짜 값 변환, @Path Variable, 익셉션 처리

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 날짜를 이용한 회원 검색 기능 > selectBtRegdate() 메서드는 REGDATE 값이 두 파라미터로 전달받은 from과 to 사이에 있는 Member 목록을 구한다. package spring; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.List; import javax.sql.DataSource; import org.spring..

[Spring] MVC 3 : 세션, 인터셉터, 쿠키

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 로그인 처리를 위한 코드 준비 로그인 성공 후 인증상태 정보를 세션에 보관할 때 사용할 AutoInfo.java 클래스 package spring; public class AuthInfo { private Long id; private String email; private String name; public AuthInfo(Long id, String email, String name) { this.id = id; this.email = email; this.name = name; } public Long getId() { return id; } public String getEmail() { return email; } public St..

[Spring] MVC 2 : 메시지, 커맨드 객체 검증

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. spring:message 태그로 메시지 출력하기 > 뷰 코드에 문자열이 하드코딩 되어 있으면 언어별로 뷰 코드를 따로 만들어야하는 문제점이 발생한다. 해결방법 > 문자열을 별도 파일에 작성하고 JSP 코드에서 이를 사용하면 된다. 1.문자열을 담은 메시지 파일을 작성 : 자바의 프로퍼티 파일 형식으로 작성 2.메시지 파일에서 값을 읽어오는 MessageSource 빈을 설정 : MvcConfig 설정 클래스에 추가 @Bean public MessageSource messageSource() { ResourceBundleMessageSource ms = new ResourceBundleMessageSource(); ms.setBasenam..

[Spring] MVC 1 : 요청 매핑, 커맨드 객체, 리다이렉트, 폼 태그, 모델 (Chapter 11)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 프로젝트 준비 1) pom.xml 4.0.0 sp5 sp5-chap11 0.0.1-SNAPSHOT war javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp javax.servlet.jsp-api 2.3.2-b02 provided javax.servlet jstl 1.2 org.springframework spring-webmvc 5.0.2.RELEASE org.springframework spring-jdbc 5.0.2.RELEASE org.apache.tomcat tomcat-jdbc 8.5.27 mysql mysql-connector-java 5.1.45 org.slf4j..

[Spring] 스프링 mvc 프레임워크 동작 방식 (Chapter 10)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 스프링 MVC 핵심 구성 요소 DispatcherServlet은 모든 연결을 담당함 1) 웹 브라우저로부터 요청이 들어옴 2) DispatcherServlet은 해당 요청을 처리하기 위한 컨트롤러 객체를 검색함 (직접 조회하는 것이 아니라 HandlerMapping이라는 빈 객체에게 컨트롤러 검색을 요청함) 3) HandlerMapping은 클라이언트의 요청 경로를 이용하여 이를 처리할 컨트롤러 빈 객체를 DispatcherServlet에 전달 4) HandlerAdapter 빈에게 요청 처리를 위임한다. 5) HandlerAdapter는 컨트롤러의 알맞은 메서드를 호출해 요청을 처리하고 결과를 DispatcherServlet에 리턴한다. ..

[Spring] 스프링 mvc 시작하기 (Chapter 9)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 프로젝트 생성 > 스프링을 사용하는 이유는? : 스프링이 지원하는 웹 MVC 프레임워크 때문이다. > 스프링은 자바 기반의 프레임워크로 자바로 작성된 애플리케이션을 효과적으로 개발할 수 있도록 도와주는 도구나 프레임워크이다. 즉 자바로 집을 지을 때 그 집을 좀 더 효율적으로 지을 수 있도록 하는 도구가 바로 스프링! > 이클립스 내에 스프링 프레임워크를 사용하는 과정 1. 프로젝트 생성 2. 스프링 라이브러리 추가 3. 사용자의 요청을 처리하는 컨트롤러 작성 4. 의존성 주입 5. XML 또는 어노테이션 설정 6. 서버에 배포 스프링 프레임워크의 핵심인 의존성 주입, 설정관리, 컨트롤러 등의 기능을 활용하여 웹 애플리케이션을 개발하고 실행..

[Spring] DB 연동 - 2 (Chapter 8)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. 트랜잭션 처리란? : 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것이 바로 트랜잭션이다. 트랜잭션은 여러 쿼리를 논리적으로 하나의 작업으로 묶는 작업이다. 한 트랜잭션으로 묶인 쿼리 중 하나라도 실패할 경우 전체 쿼리를 실패한 것으로 간주하고 DB 상태를 기존 상태로 되돌린다 (롤백) 트랜잭션으로 묶여있는 쿼리가 모두 성공할 경우 commint을 하여 반영한다. Connection conn=null; try { conn= DriverManager.getConnection(jdbcUrl. user, pw); conn.setAutoCommit(false); // 트랜잭션 범위 시작 --- 쿼리 실행 conn.commit(); /..

[Spring] DB 연동 - 1(Chapter 8)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 1. JDBC란? : Java Database Connectivity, 자바 프로그램이 데이터베이스와 연결되어 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스 - 응용프로그램 JDBC DBMS 중간에서 번역해주는 통역자 역할을 진행한다. - JDBC 드라이버는 각 DBMS 회사에서 제공하는 라이브러리 압축파일이다. - JDBC를 사용하면 여러 종류의 데이터베이스에 접속할 수 있으며 데이터베이스에 SQL 쿼리를 실행하고 결과를 처리할 수 있다. JDBC를 사용하여 자바 코드에서 데이터베이스 연결 및 쿼리를 수행할 수 있다. (JDBC를 사용하여 SELECT , DELETE, UPDATE 등의 SQL문을 실행한다) - 스프링의 장점은 트랜잭션..

[Spring] AOP 프로그래밍 (Chapter 7)

참고 자료 : 초보 개발자를 위한 스프링5 프로그래밍 입문 AOP (Aspect Oriented Programming) > 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법이다. 해당 기법은 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있게 만들어준다. (1) 계승을 구하기 위한 클래스 구현 package chap07; public class ImpeCalculator implements Calculator { @Override public long factorial(long num) { long result = 1; for (long i = 1; i