Spring/스프링5 프로그래밍 입문

Spring/스프링5 프로그래밍 입문

초보 웹 개발자를 위한 스프링5 프로그래밍 입문 REVIEW

* 주관적인 생각으로 작성한 리뷰입니다. 계기 스프링 부트와 AWS로 혼자 구현하는 웹서비스를 읽으면서 스프링이 어떤 건지 대강 알겠다만, 작동원리나 깊은 개념은 설명해주지 않아 이론적인 부분이 부족했다. 그랬던 탓일까. 스프링 시큐리티부터 막혀서 토비의 스프링을 구매했다. 토비의 스프링은 입문자가 읽기에 이해하기 어려운 부분이 있었다. 때문에 스프링을 이미 알고 있는 사람이 읽어야 학습효과가 있을거라 생각했다. 그래서 김영한님 강의를 다시 보고 MVC파트까지 결제할까 고민했지만, 결제 금액도 상당한데다 강의를 전부 보기에는 시간이 많이 걸릴 것 같아 책을 찾아봤다.(요즘 강의보다 책을 선호 중임) 그렇게 알게 된 책이 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문이었다. 당근해와서 야무지게 읽었다...

Spring/스프링5 프로그래밍 입문

Chapter 17. 프로필과 프로퍼티 파일

프로필 개발을 진행하는 동안에는 실제 서비스 목적으로 운영중인 DB를 이용할 수는 없다. 개발하는 동안에는 개발용 DB를 따로 사용하거나 개발 PC에 직접 DB를 설치해서 시용한다. 처음부터 개발 목적 설정과 실 서비스 목적의 설정을 구분해서 작성하기 위한 스프링 기능이 프로필(profile) 이다. @Configuration 설정에서 프로필 사용하기 @Configuration @Profile("dev") public class DsDevConfig { @Bean(destroyMethod = "close") public DataSource dataSource() { DataSource ds = new DataSource(); ds .setDriverClassName("com.mysql.jdbc.Drive..

Spring/스프링5 프로그래밍 입문

Chapter 16. JSON 응답과 요청 처리

JSON 개요 JSON(JavaScript Object otation)은 간단한 형식을 갖는 문자열로 데이터 교환에 주로 시용한다. 다음은 JSON 형식으로 표현한 데이터의 예이다. { "name": “유관순", "birthday": "1902-12-16", "age": 17, "related": "남동순" , ” 류예도"] "edu": [ { "title:": ”이화학당보통과", "year": 1916 }, { "title": ”이화학당고등과", "year": 1919 } ] } Jackson 의존 설정 Jackson은 자바 객체와 JSON 형식 문자열 간 변환을 처리하는 라이브러리이다. 스프링 MVC에서 Jackson 라이브러리를 이용해서 자바 객체를 JSON으로 변환하려면 클래스 패스에 Jackso..

Spring/스프링5 프로그래밍 입문

Chapter 15. 간단한 웹 어플리케이션 구조

간단한 웹 어플리케이션 구성요소 프론트 서블릿 컨트롤러 + 뷰 서비스 DAO 프론트 서블릿: 웹 브라우저의 모든 요청을 받는 창구 역할을 하며, 요청을 분석해서 알맞은 컨트롤러에 전달한다. 스프링 MVC에서는 DispatcherServlet이 프론트 서블릿의 역할을 수행한다. 컨트롤러: 실제 웹 브라우저의 요청을 처리한다. 컨트롤러는 클라이언트(브라우저)의 요청을 처리하기 위해 알맞은 기능을 실행하고 그 결과를 뷰에 전달한다. 컨트롤러의 주요 역할은 다음과 같다. 클라이언트가 요구한 기능을 실행 응답 결과를 생성하는데 필요한 모델 생성 응답 결과를 생성할 뷰 선택 서비스: 기능의 로직을 구현한다. 사용자에게 비밀번호 변경 기능을 제공하려면 수정 폼을 제공하고, 로그인 여부를 확인하고, 실제로 비밀번호를 ..

Spring/스프링5 프로그래밍 입문

Chapter 14. MVC 4: 날짜 값 변환, @PathVariable, 익셉션 처리

날짜를 이용한 회원 검색 기능 public class MemberDao { private JdbcTemplate jdbcTemplate; private RowMapper memRowMapper = new RowMapper() { @Override public Member mapRow(ResultSet rs, int rowNum) throws SQLException { Member member = new Member(rs.getString("EMAIL"), rs.getString("PASSWORD"), rs.getString("NAME"), rs.getTimestamp("REGDATE").toLocalDateTime()); member.setId(rs.getLong("ID")); return member;..

Spring/스프링5 프로그래밍 입문

Chapter 13. 세션, 인터셉터, 쿠키

로그인 처리를 위한 코드 준비 AuthInfo(로그인 성공 후, 인증 상태 정보를 세션에 보관할 때 사용할 클래스) package spring; import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor public class AuthInfo { private final Long id; private final String email; private final String name; } Member(암호 일치 여부 메소드 추가) package spring; import java.time.LocalDateTime; public class Member { private Long id; private ..

Spring/스프링5 프로그래밍 입문

Chapter12. MVC 2: 메시지, 커맨드 객체 검증

*Chapter11은 jsp에 대한 내용을 다루므로 블로깅은 스킵 태그로 메시지 출력하기 문자열을 별도 파일에 작성하고 JSP 코드에서 이를 시용하려면 다음 작업을 하면 된다. 문자열을 담은 메시지 파일을 작성한다. 메시지 파일에서 값을 읽어오는 MessageSource 빈을 설정한다. JSP 코드에서 spring:message 태그를 사용해서 메시지를 출력한다. 예제 메시지 파일 작성(lable.properties) member.register=회원가입 term=약관 term.agree=약관동의 next.btn=다음단계 member.info=회원정보 email=이메일 name=이름 password=비밀번호 password.confirm=비밀번호 확인 register.btn=가입 완료 register.d..

Spring/스프링5 프로그래밍 입문

Chapter 10. 스프링 MVC 프레임워크 동작 방식

* Chapter 9는 다른 블로그를 참고하여 설정한 상태이기 때문에 스킵합니다. 스프링 MVC 핵심 구성 요소 spring bean 이라 표시한 것은 스프링 빈으로 등록해야하는 것을 의미하며, 회색 배경을 가진 구성요소는 개발자가 직접 구현해야하는 요소이다. DispatcherServlet은 모든 연결을 담당한다. 웹 브라우저로부터 요청이 들어오면, 그 요청을 처리하기 위해 컨트롤러를 검색하는데, 이때 HandlerMapping이라는 빈 객체에 컨트롤러 검색을 요청한다. 웹 요청 경로가 /hello 라면 등록된 컨트롤 빈 중에서 '/hello' 요청 경로를 처리할 컨트롤러를 리턴한다. 컨트롤러 객체를 받은 DispatcherServlet은 HandlerAdapter 빈에게 요청 처리를 위임한다. Han..

Spring/스프링5 프로그래밍 입문

Chapter8. DB연동

JDBC란? 💡 JDBC: DB에 접근할수 있도록 Java에서 제공하는 API (Java Database Connectivity) Spring JDBC 💡Spring JDBC: JDBC의 단점을 보완하여 더 편리한 기능을 제공 Connection 열기와 닫기 Statement 준비와 닫기 Statement 실행 ResultSet Loop처리 Exception 처리와 반환 Transaction 처리 JDBC 프로그래밍의 단점을 보완하는 스프링 구조적인 반복을 줄이기 위한 방법은 템플릿 메서드 패턴과 전략 패턴을 함께 사용하는 것이다. 스프링은 바로 이 두 패턴을 엮은 JdbcTemplate 클래스를 제공한다. 💡 JDBC Template: Spring JDBC접근 방법중 하나로, 내부적으로 Plain JD..

Spring/스프링5 프로그래밍 입문

Chapter7. AOP 프로그래밍

뒤에서 설명할 트랜잭션의 처리 방식을 이해하려면 AOP(Aspect Oriented Programming)를 알아야 한다. 프로젝트 준비 aspectjweaver 의존 추가 build.gradle에 추가 implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.8.13' 스프링의 AOP 기능은 spring—aop 모듈이 제공하는데 spring—context 모듈을 의존 대상에 추가하면 spring-aop 모듈도 함께 의존 대상에 포함된다. 따라서 spring—aop 모듈에 대한 의존을 따로 추가하지 않아도 된다. aspectjweaver 모듈은 AOP를 설정하는데 필요한 애노테이션을 제공하므로 이 의존을 추가해야 한다. 프록시와 AO..

지구우중
'Spring/스프링5 프로그래밍 입문' 카테고리의 글 목록