Programming/Spring Boot
-
스프링 부트 운영 (스프링 부트 활용 - 12)Programming/Spring Boot 2020. 3. 14. 20:18
스프링 부트는 애플리케이션 운영 환경에서 유용한 기능을 제공한다 . 스프링 부트가 제공하는 엔드포인트와 메트릭스 그리고 그 데이터를 활용하는 모니터링 기능에 대해 학습한다. 1. 스프링 Actuator 소개 - 어플리케이션의 각종 정보를 확인할 수 있는 Endpoints JMX(Jconsole, JvisualVM) 또는 HTTP를 통해 접근 가능 함 활성화 옵션 조정 공통적으로 의존성 추가 2. Jconsole 터미널에 Jconsole 입력 3. JvisualVM 설치 후 터미널에 JvisualVM 입력 4. HTTP 다음의 설정 추가하면, 모든 정보가 노출되므로 스프링 시큐리티로 admin만 접근가능하도록 하는 등 처리 필요 management.endpoints.web.exposure.include=*..
-
스프링 시큐리티 (스프링 부트 활용 - 10)Programming/Spring Boot 2020. 3. 13. 18:05
1. 스프링 시큐리티 웹 시큐리티 메소드 시큐리티 다양한 인증 방법 지원 1) security 의존성 추가 바로 security사용이 가능하며, 모든 요청에 인증이 필요함 기본 사용자는 스프링이 생성 (username : user, password : 실행할 때마다 랜덤 값) 스프링 부트가 기본적으로 제공하는 시큐리티는 거의 사용하지 않고, 커스텀마이징 하여 사용함 2) 시큐리티 커스텀 예제 1. index.html, hello.html 은 로그인 하지 않아도 확인 가능하지만, my.html 은 로그인을 해야 확인 가능 2. 스프링 부트에서 자동으로 만들어주는 user가 아닌, Runner에서 user를 생성 1) 의존성 추가 org.springframework.boot spring-boot-starte..
-
스프링 데이터 - 3 (스프링 부트 활용 - 9)Programming/Spring Boot 2020. 3. 13. 00:40
NoSQL 1. Redis Key-Value로 데이터를 저장 - 스프링 데이터 Redis StringRedisTemplate, RedisTemplate extends CrudRepository 1) 도커로 Redis 설치 및 실행 docker run -p 6379:6379 --name redis_boot -d redis docker exec -i -t redis_boot redis-cli 2) 의존성 추가 3) Account 작성 @RedisHash("accounts") public class Account { @Id private String id; private String username; private String email; public String getId() { return id; } pu..
-
스프링 데이터 - 2 (스프링 부트 활용 - 8)Programming/Spring Boot 2020. 3. 12. 01:37
1. ORM, JPA, 스프링 데이터 JPA 개요 - ORM (Object - Reltional - Mapping) 와 JPA (Java Persistence API) 객체와 릴레이션을 맵핑(ORM)할 때 발생하는 개념적 불일치를 해결하는 프레임워크(JPA) - 스프링 데이터 JPA JPA 표준 스펙을 아주 쉽게 사용할 수 있게 스프링 데이터로 추상화 시켜 놓은 것 Spring Data JPA -> JPA -> Hibernate -> DataSource 2. Spring-Data-JPA 연동 1) JPA, PostgreSql 의존성 추가 1-1) 프로퍼티에 디비 연결 설정 2) @Entity 클래스 만들기 getter, setter, equals, hashCode 오버라이드 @Id : 아이디로 사용 @G..
-
스프링 데이터 - 1 (스프링 부트 활용 - 7)Programming/Spring Boot 2020. 3. 11. 15:50
1. 인-메모리 데이터베이스 - H2(추천 : 콘솔 때문에), HSQL, Derby - 기본 연결 정보 (URL : "testdb", username: "sa", password : "") 1) H2, JDBC 를 의존성에 추가 2) Runner 코드를 작성 Spring-JDBC가 클래스 패스에 있으면 자동 설정이 필요한 빈(DataSource, JdbcTemplate)들을 설정해줌 @Component public class H2Runner implements ApplicationRunner { @Autowired DataSource dataSource; @Autowired JdbcTemplate jdbcTemplate; @Override public void run(ApplicationArguments..
-
스프링 웹 MVC - 2 (스프링 부트 활용 - 6)Programming/Spring Boot 2020. 3. 10. 20:10
1. ThymeLeaf 동적으로 컨텐츠를 생성해서 응답으로 보내야 하는 경우 템플릿 엔진을 사용 1) 테스트 생성 @RunWith(SpringRunner.class) @WebMvcTest(SampleController.class) public class SampleControllerTest { @Autowired MockMvc mockMvc; @Test public void hello() throws Exception { mockMvc.perform(get("/hello")) .andExpect(status().isOk()) .andDo(print()) .andExpect(view().name("hello")) .andExpect(model().attribute("name", is("hongchan"))..
-
스프링 웹 MVC - 1 (스프링 부트 활용 - 5)Programming/Spring Boot 2020. 3. 10. 00:44
- 아무런 설정 없이 스프링 웹 MVC를 바로 사용할 수 있는 것은 AutoConfigure 덕분 - WebMvcConfigurer 을 구현하여 스프링 자동 설정에 더해서 여러 설정을 입맛대로 변경 가능 1. HttpMessageConverters - 스프링 프레임워크에서 제공하는 인터페이스 - HTTP 요청 본문 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용 {"username":hongchan, "password":"123"} User - @RequestBody, @ResponseBody와 함께 쓰임 1) 테스트 코드 작성 @Test public void createUser_JSON() throws Exception { String userJson = "{\"username\":\..