SPRING/스프링부트 개념과 활용
-
[스프링부트 개념과 활용] 스프링 RestTemplate / Webclient 사용SPRING/스프링부트 개념과 활용 2021. 1. 22. 01:46
스프링 REST 자바단(서버단)에서 Client로써 다른 서버에 REST 요청을 하기 위해서는 rest클라이언트 인스턴스를 생성해서 사용해야 된다. 이때 2가지 선택사항이 존재하는데 아래와 같다. RestTempalte - Blocking I/O 기반의 Synchronous API WebClient - Non-Blocking I/O 기반의 Asynchronous API RestTemplate 예시 hello 메서드는 sleep을 5초를 주고, world는 3초를 준다. Blocking I/O 기반의 RestTemplate으로 요청을 날렸기 때문에 응답이 올때까지 다음으로 넘어가지 않는다. 즉, hello 요청에서 5초를 기다리고, world에서 3초를 기다리므로 8초 +@의 시간이 걸릴 것으로 예측할 수..
-
[스프링부트 개념과 활용] 스프링 시큐리티 (활용)SPRING/스프링부트 개념과 활용 2021. 1. 20. 12:34
이전 포스팅은 단순히 스프링 시큐리티를 적용하는데 그쳤지만, 이번에는 실제로 활용할 수 있는 방법을 알아보고자 한다. 위와 같이 시큐리티 설정을 하는 클래스를 생성한다. (index 페이지와 hello 페이지는 정상적인 접근이 가능하지만, my 페이지는 폼 인증 이후 접근이 가능하도록 설정) - PasswordEncoder는 password를 encoding을 한 후에 password를 저장하도록 하는 Bean이다. 계정 정보 Account Entity AccountRepository - 유저이름을 조건으로 유저 정보를 찾는 메서드 추가 AccountService - createAccount : 계정을 생성하는 메서드 - loadUserByUsername : username을 이름을 기준으로 유저정보를 ..
-
[스프링부트 개념과 활용] 스프링 시큐리티 (기본)SPRING/스프링부트 개념과 활용 2021. 1. 19. 23:40
스프링 시큐리티 기본 테스트 아래와 같이 프로젝트를 생성해준다. (타임리프 적용) 시큐리티를 적용하지 않을 시 위와 같이 평범한 화면이 나온다. 하지만 스프링 시큐리티 의존성을 적용할 시에는 아래와 같이 로그인화면이 나온다. org.springframework.boot spring-boot-starter-security 계정 : user 비밀번호는 아래 console 창에 나오는 password를 입력하면 index.html 페이지로 이동할 수 있다. 위와 같은 스프링 시큐리티 기본설정은 실무에서는 사용하지 않는다. UserDetailsService를 별도로 생성하여 애플리케이션에 맞게 커스터마이징하여 사용한다. 테스트 스프링 시큐리티를 테스트하고 싶으면 아래와 같은 의존성을 추가한다. org.sprin..
-
[스프링부트 개념과 활용] REDISSPRING/스프링부트 개념과 활용 2021. 1. 16. 22:59
Redis 를 스프링부트에서 사용하기 위해서는 아래와 같은 의존성을 추가해준다. org.springframework.boot spring-boot-starter-data-redis 도커를 이용하여 redis를 설치해줘야 한다. Docker 설치는 인터넷에 검색하면 많이 나오니 참고하면 된다. docker에서 redis 설치시 명령어 docker pull redis 포트번호 6379에 이름이 redis_boot로 하는 데몬으로 redis를 실행한다. docker run -p 6379:6379 --name redis_boot -d redis redis를 실행하는 명령어 docker psdocker exec -i -t redis_boot redis-cli 스프링부트에서 Redis 사용하는 방법 중 2가지를 소..
-
[스프링부트 개념과 활용] 데이터베이스 초기화SPRING/스프링부트 개념과 활용 2021. 1. 16. 00:26
JPA를 사용한 데이터베이스 초기화 application.properties에서 spring.jpa.hibernate.ddl-auto의 속성 값에 따라 스키마를 생성한다. none 아무것도 실행하지 않는다. create-drop 시작될 때 테이블 drop 및 생성을 실행하고, SessionFactory가 종료될 때 drop을 실행한다. (in-memory DB 경우 기본값) create SessionFactory가 시작될 때 데이터베이스 DROP을 실행하고 생성된 DDL을 실행한다. update 변경된 스키마를 적용한다. validate 변경된 스키마가 있다면 변경점을 출력하고 애플리케이션을 종료한다. 실제 Application 운영 시에는 spring.jpa.hibernate.ddl-auto=valid..
-
[스프링부트 개념과 활용] JPA 연동SPRING/스프링부트 개념과 활용 2021. 1. 11. 00:45
ORM Object Relational Mapping의 약자. 객체와 릴레이션을 mapping 할 때 발생하는 개념적인 불일치를 해결하는 프레임워크. JPA Java Persistence API의 약자. 여러가지 ORM 해결책들 중에서 자바에 대한 표준을 정한 것을 말한다. 예제 Pom.xml 의존성 추가 org.springframework.boot spring-boot-starter-data-jdbc org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web com.h2database h2 runtime mysql mysql-connector-java runtime Entity ..
-
[스프링부트 개념과 활용] MYSQL 연동 & DBCPSPRING/스프링부트 개념과 활용 2021. 1. 10. 00:50
DBCP란? DBCP는 DataBase Connection Pool의 약자로 DB와 Connection을 맺고 있는 객체를 관리하는 자원을 말함. DBCP는 WAS 실행시 , 일정량의 Connection 객체를 생성하고 Pool이라는 공간(자원)에 저장을 한다. 그리고 WAS로부터 DB연결 요청이 있으면, Connection 객체를 쓰고 반환을 한다. DBCP는 애플리케이션 성능에 아주 핵심적인 역할을 한다. (Maximam-pool-size 설정 등) 스프링부트는 기본적으로 HikariCP라는 DBCP를 함. MYSQL 스프링부트에서 MYSQL을 사용하기 위해서는 아래와 같이 의존성을 pom.xml에 추가해야 한다. mysql mysql-connector-java Application.propertie..