본문 바로가기

더 나은 엔지니어가 되기 위해

(80)
[스프링 부트 개념과 활용] 데이터 4. Redis, MongoDB, Neo4j 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. Redis 사용법 1) dependency 추가 pom.xml 에 라이브러리를 추가하자. org.springframework.boot spring-boot-starter-data-redis 2) Redis 띄우기 docker 로 Redis 컨테이너를 띄우자. $ docker run -p 6379:6379 --name redis_boot -d redis 컨테이너가 만들어졌으면, 다음 명령어로 접속하자. $ docker exec -i -t redis_boot redis-cli 3) Redis 연동하기 이제 코드 단에서 Redis 에 접근해보자. 바로 실행가능한 코드를 위해 ApplicationRunner ..
[스프링 부트 개념과 활용] 데이터 3. DB 초기화, 마이그레이션 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 데이터베이스 초기화 1) JPA 를 이용한 초기화 Entity 와 JPA Repository 만 설정해놓으면, 테스팅 코드에서는 테이블이 생성되어 잘 돌아가지만, Application 을 구동하면 그렇지 않다. 애초에 테이블 생성하는 코드가 없어서 그렇다. 따라서 Application 구동 시, 테이블을 생성하거나 혹은 수정하거나, 검증하거나 하는 등의 일을 설정해줄 필요가 있는데 application.properties 에서 이를 설정해줄 수 있다. spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=create 위와 같이 설정값을 주면, Appl..
[스프링 부트 개념과 활용] 데이터 2. JPA 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. JPA 사용법 1) Dependency 추가 pom.xml 에 spring-boot-starter-data-jpa 를 추가해주자. org.springframework.boot spring-boot-starter-data-jpa 2) Entity Class 정의 Entity 는 RDBMS 에서 데이터 테이블을 객체화 시킨 것이다. 즉, 이 클래스는 테이블의 이름과 컬럼들에 대한 정보를 가진다. 이제 데이터베이스의 레코드로 쓰일 데이터 Entity 를 정의하자. Entity 는 기본적으로 Id 와 Getter, Setter 를 가지고 있어야 한다. // Account.java @Entity public c..
[스프링 부트 개념과 활용] 데이터 1. DB 연동 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. h2 사용법 인메모리 데이터베이스 h2 를 사용하는 법을 알아보자. 1) dependency 추가 pom.xml 에 h2 와 spring-boot-starter-data-jdbc 라이브러리를 추가한다. com.h2database h2 runtime org.springframework.boot spring-boot-starter-data-jdbc 2) DataSource 와 Connection 로 연동하기 ApplicationRunnner 로 DB에 데이터를 넣어보는 프로그램을 실행시켜보자. 먼저 DataSource 로 부터 Connection 을 받아와 DB 연산을 수행할 수 있다. @Component..
[스프링 부트 개념과 활용] 웹 MVC 설정 4. HATEOAS 와 CORS 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. HATEOAS 해당 내용은 스킵. 이후 REST API 를 공부할 때 제대로 보자. 스프링 부트에서 지원하는 HATEOAS 적용 방법만 간략히 적어둔다. @GetMapping("/hello") public EntityModel hello() { Hello hello = new Hello(); hello.setPrefix("Hey, "); hello.setName("heumsi"); EntityModel helloResource = new EntityModel(hello); helloResource.add(linkTo(methodOn(SampleController.class).hello()).withSe..
[스프링 부트 개념과 활용] 웹 MVC 설정 3. ExceptionHandler 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 스프링 MVC의 ExceptionHandler 이번에는 Exception error 를 처리하는 ExceptionHandler 에 대해 알아본다. 먼저 예외 상황을 정의할 클래스 SampleExcepition 를 만든다. public class SampleException extends RuntimeException { } 다음으로, 에러의 정보를 담을 AppError 클래스를 정의하자. public class AppError { private String message; private String reason; public String getMessage() { return message; } .....
[스프링 부트 개념과 활용] 웹 MVC 설정 2. 정적 리소스와 웹 JAR 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 정적 리소스 지원 1) 기본 리소스 위치 기본 리소스 위치는 다음과 같다. classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 예를 들어, resources/static/hello.html 을 만들면 http://localhost:8080/hello.html 로 접근할 수 있다. 2) 접근 url path 설정 기본 리소스 위치에 대한 접근 url 설정은 application.properties 에서 spring.mvc.static-path-pattern 을 통해서 바꾸면 된다. 예를 들어, spr..
[스프링 부트 개념과 활용] 웹 MVC 설정 1. MessageConverters 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 스프링 웹 MVC 설정 스프링부트는 자동설정을 통해 스프링 웹 MVC 설정들을 기본적으로 제공해준다. 그런데 이 중 일부를 수정하거나, 아니면 내가 원하는대로 완전히 바꾸고 싶을 땐 어떻게 해야할까. 다음과 같은 방법들이 있다. 자동설정된 스프링 MVC를 확장하는 경우 @Configuration + WebMvcConfigurer 아예 스프링 MVC를 원하는 대로 재정의 하는 경우 @Configuration + @EnableWebMvc HttpMessageConverters (HTTP 요청 -> 객체) 로 매핑 또는 (객체 -> HTTP 응답) 하는데 사용 예를 들면 다음과 같은 요청이 { "userNa..