강의/스프링 부트 개념과 활용(11)
-
[인프런 강의] 스프링 부트 개념과 활용 - 11
이번 정리부터는 스프링 시큐리티에 대한 정리이다. 스프링 데이터 파트에서 Redis 및 MongoDB의 내용들은 개인적으로 아직 docker를 활용하는데 익숙하지 않기 때문에 뒤로 미루었다. docker를 이용해 툴 설치에 익숙해지면 바로 정리해 보아야겠다. 1. addViewControllers 컨트롤러에서 어떤 맵핑된 주소에 대하여 view를 내어주는 것 외에 다른 작업을 하지 않을 때는 addViewControllers를 사용할 수 있다. 이렇게 하면 컨트롤러에 GetMapping을 해주지 않아도 /hello요청이 왔을 때 hello라는 이름을 가진 view를 내어준다. 하지만 컨트롤러에서 다른 로직이 추가될 경우 컨트롤러에서 GetMapping을 사용하여 작업해야 한다. 2. 스프링 시큐리티 적용..
2020.06.22 -
[인프런 강의] 스프링 부트 개념과 활용 - 10
1. ORM과 JPA 스프링 부트에 관심이 있다면 한 번쯤 ORM과 JPA에 대해 들어본 적이 있을 것이다. ORM은 Object-Relational Mapping의 약자이다. 말 그대로 Object와 Relational을 맵핑할 때 발생하는 개념적 불일치를 해결하는 프레임워크이다. 예를 들어 어떤 클래스는 여러 가지 멤버 변수를 가질 수 있는 데에 비해 테이블은 테이블과 칼럼만을 가지고 있다. 그렇다면 어떻게 객체의 다양한 항목을 테이블에 맵핑시킬 수 있을 것인가? 또한, 객체들 간에는 상속이라는 개념이 존재하지만 테이블 간에는 이러한 개념이 존재하지 않는데 어떻게 맵핑시킬 것인가? 이러한 문제들을 해결해 주는 것이 ORM이다. JPA는 ORM을 위한 자바 표준이다. JPA는 하이버네이트를 기반으로 만..
2020.06.16 -
[인프런 강의] 스프링 부트 개념과 활용 - 9
지난 정리까지는 스프링 웹 MVC에 대한 내용을 정리해다면 이번 정리부터는 스프링 데이터에 대해서 정리하게 될 것이다. 강의를 들으면서, 해당 실습 코드들을 깃허브에 정리하고 있어서 정리한 글과 코드를 함께 보면 더욱 도움이 될 것 같다. (물론 남이 보기엔 가독성이 매우 좋지 않겠지만 내가 다시 복습할 때...) (스프링 부트 개념과 활용 코드) 1. 인메모리 데이터 베이스 스프링 부트가 제공하는 인메모리 데이터베이스에는 H2, HSQL, Derby 가 있지만 이 강의에서는 H2로 진행하였다. 실습을 위해 프로젝트를 만들 때 Web, H2, jdbc의존성을 추가하여 만들어 준다. jdbc의존성이 들어올 때는 히카리 컬렉션 풀 라이브러리가 함께 들어온다. spring.factories를 살펴보면 Data..
2020.06.10 -
[인프런 강의] 스프링 부트 개념과 활용 - 8
1. 스프링 웹 MVC - ExceptionHandler 스프링 부트 애플리케이션을 실행하고 웹을 띄워보면 whitelabel 에러 페이지를 볼 수 있었다. 이것은 웰컴 페이지를 찾지 못하였을 때 띄워지도록 ExceptionHandler가 핸들링한 예시로 볼 수 있다. 이처럼 스프링 부트는 따로 설정해주지 않아도 등록된 핸들러를 통해서 ExceptionHandle을 해준다. 간단한 예외 핸들링 상황을 만들어 보자. 위에서 @ExceptionHandler(SampleException.class)가 의미하는 것은 SampleController에서 발생하는 예외 중 SampleException에 해당하는 예외가 발생할 경우 이 핸들러를 통해 처리한다는 것을 의미한다. 여기서는 AppError라는 클래스를 만들..
2020.06.09 -
[인프런 강의] 스프링 부트 개념과 활용 - 7
1. 스프링 웹 MVC - Thymeleaf 템플릿 엔진은 주로 뷰를 만드는데 사용된다. 하지만 다른 용도로도 사용될 수 있다. (코드 제너레이션, 이메일 템플릿적용 등) 어찌 되었든 가장 많이 사용되는 곳은 뷰를 만드는 것이기 때문에 이에 대해 정리해 보겠다. 스프링 부트가 자동 설정을 지원하는 템플릿 엔진들은 아래와 같다. FreeMarker Groovy Thymeleaf Mustache 스프링을 배울때는 주로 JSP를 통해 뷰를 만들었지만, 스프링부트가 추구하는 방향에 JSP는 적합하지 않다고 한다. 따라서 비교적 최근에 만들어 졌고 가장 널리 사용되는 템플릿 엔진중 하나인 Thymeleaf에 대해 정리할 것이다. 1) Thymeleaf를 사용하기 위해 먼저 의존성을 추가해야한다. 위와 같이 thy..
2020.06.04 -
[인프런 강의] 스프링 부트 개념과 활용 - 6
1. 스프링 웹 MVC - 정적 리소스 지원 정적 리소스란 웹 브라우저 또는 클라이언트에서 요청이 들어왔을 때, 그에 대한 응답이 미리 만들어져 있을 경우에 새로 만들지 않고 그대로 보내주는데 이때 그 응답의 내용을 정적 리소스라고 할 수 있다. 기본적으로 아래의 네가지 경로에 있는 리소스의 경우 정적 리소스로 맵핑되어 제공이 될 수 있다. (단, classpath:가 의미하는 것은 src/main/resource이다.) classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 위 내용을 확인하기 위해서 src/main/resource에 static폴더를 만들고 hello.html파일을 만들어 보자. 이후..
2020.06.04