Framework/Spring
-
예약 관련 서비스를 개발하다보니 관리자 페이지에서 예약 현황을 확인할 때 실시간으로 확인할 수 있는 기능이 필요했습니다. 예약 내용을 누가 확인하는지를 실시간으로 확인할 수 있어야했는데 "알림에 주로 사용되는 SSE(Server Sent Event)를 사용해보면 어떨까"라는 생각이 들엇습니다. 브라우저 접속 후 서버와 커넥션을 열어두고 A 직원이 예약 내용을 확인할 때 서버에 이벤트를 발행하고, 서버에서는 커넥션되어있는 클라이언트에게 알림을 보내주는 형태로(B, C 직원에게 알림) 말이죠. 고민 끝에 웹 소켓보다 가볍고 구현이 쉬운 SSE를 도입했었습니다. 오늘 포스팅할 내용은 해당 기능을 구현하며 만든 예제입니다. ※ 테스트 환경 Spring Boot Gradle React Postman 1. 프론트엔..
[Spring Boot]SSE 구현 2023. 3. 1. -
오늘은 Redis를 데이터 저장소로 사용하는 과정을 포스팅하려고 합니다. Redis는 설치되었다는 가정하에 진행되니 참고해주세요. (Redis 설치 방법) ※테스트 환경 Spring Boot Maven CentOS 7 1) Maven 추가 org.springframework.boot spring-boot-starter-data-redis Spring 설정에 들어가기전에 Redis에 데이터를 저장하는 방법은 2가지가 있습니다. RedisTemplate을 이용한 방법과 RedisRepository를 이용한 방법입니다. RedisTemplate을 이용한 방법은 직렬화,역직렬화 설정 후 데이터를 저장,조회하는 방법입니다.(생성자 주입 후 사용) RedisRepository를 이용한 방법은 CrudReposito..
[Spring Boot]Redis 사용법 2023. 2. 17. -
지난 글에 이어 본 글에서는 스프링 시큐리티의 로그인 기능을 커스텀하는 방법을 소개합니다. 소스와 내용이 기존 글에서부터 이어지기 때문에 지난 글을 보지 않으셨다면 이어서 보시는게 좋습니다 :) 스프링 시큐리티의 로그인 절차는 아래와 같이 흘러간다. 여기서 AuthenticationProvider와 UserDetailsService를 구현함으로써 상황에 맞는 비즈니스 로직을 녹여낼 수 있다. AuthenticationProvider는 스프링 시큐리티의 인증 절차를 담당하는 인터페이스로 부가적인 설명은 이 글에서 확인할 수 있다. 1. 사용자 정의 인터페이스 구현 UserDetails를 상속받는 UserEntity를 생성한다. 각각의 메소드들은 운영 환경에 맞게 수정해서 사용하면 된다. 여기서는 권한을 고..
[Spring Boot]Spring Security - 3) 로그인 구현 2023. 1. 17. -
이전 글에 이어서 본 편에서는 기본으로 제공되는 로그인 기능을 커스텀해서 사용하는 방법을 소개합니다. 그전에 본 글에서는 로그인 유저를 등록하는 회원가입을 먼저 구현하는 내용을 다루고 있습니다. 데이터베이스는 MySQL과 JPA 기술을 이용했습니다. *여기서부터는 DB를 연결하기 때문에 DB를 먼저 설치해야 합니다. 1. DB 연결 1-1) 디펜던시 추가 build.gradle //db connection(mysql) implementation 'mysql:mysql-connector-java' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 1-2) DB 접속 정보 설정 application.properties # jdbc ..
[Spring Boot]Spring Security - 2) 회원가입 구현 2023. 1. 15. -
예전에 Spring Legacy에서 Security 적용을 하는 과정을 포스팅 남긴 적이 있습니다. 시간이 많이 지나기도 했고 그때와 지금 사용하는 환경이 많이 달라져서 다시 한번 포스팅해보면 좋겠다라는 생각이 들었습니다. 본 포스팅은 Spring Boot 프로젝트 생성 후 Spring Security 적용 및 DB를 연동 후 로그인까지를 다뤘습니다. ※ 테스트 환경 Spring Boot 2.7 jdk 11 Gradle Thymeleaf 1. 프로젝트 생성 1-1) 프로젝트 생성 1-2) 디펜던시 추가 Developer Tools - Spring Boot DevTools, Lombok Web - Spring Web Security - Spring Security 2. 뷰 템플릿 설정 1. 프로젝트 셋팅까..
[Spring Boot]Spring Security - 1) 프로젝트 셋팅 2023. 1. 15. -
RestAPI의 테스트를 위해 Swagger를 연동하면서 발생했던 에러들과 해결법 공유를 위해 포스팅을 남겨봅니다. ※테스트 환경 Spring Boot : 2.7.2 (+Security) Swagger 3.0.0 * swagger 연동을 위한 config 설정은 아래에 작성해놓았습니다. swagger 연동 후 아래와 같이 swagger-ui.html로 페이지 이동이 안되는 현상이 발생했습니다. 연동 실패한 2.9.2 버전 io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 검색 결과 시큐리티 인증대상에서 제외시켜주면 된다고했지만 어째서인지 실패였습니다. //swagger 인증 대상에서 제외 web.ignoring()...
[Spring Boot]Spring Security + Swagger 연동 2022. 7. 31. -
이전 글에 이어 오늘은 데이터를 등록하는 과정을 포스팅했습니다. 테스트 환경 Spring Boot 2.5.6 JDK 1.8 MariaDB 10.2.22 1. 의존성 주입 1-1. 라이브러리 추가 JPA 적용을 위해 라이브러리를 추가합니다.(spring-boot-starter-data-jpa) Lombok 어노테이션을 사용을 위해 lombok 라이브러리도 추가해주었습니다. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.projectlombok lombok provided 1-2. Lombok 설치 (이전 글 1-2에서 lombok 의존성을 추가했다면 넘어가도 되는데 처음 프로젝트 셋팅시에는 이 부분을 몰랐네요...) 다운로드 사이트 접..
[Spring Boot]JPA 연동 - 2) 데이터 등록 2021. 11. 4. -
요즘 많이 사용되는 Spring Boot와 JPA를 연동하여 간단한 예제를 하나 만들어보려고 합니다. 테스트 환경 Spring Boot 2.5.6 JDK 1.8 MariaDB 10.2.22 1. 프로젝트 생성 1-1. New - Spring Boot - Spring Starter Project Maven, Gradle 중 원하는 자원관리 타입을 선택하면 되고 자바 버전을 맞춰줍니다. 1-2. 의존성 추가(이후 필요한 의존성은 따로 추가) - Finish Spring Boot 버전을 선택하고 기본적으로 필요한 것만 추가하였습니다.(Spring Web, MySQL 또는 MariaDB Driver, JDBC) 2. 테스트 페이지 생성 2-1. 프로젝트를 생성하게 되면 아래와 같은 화면을 확인할 수 있습니다. ..
[Spring Boot]JPA 연동 - 1) 프로젝트 셋팅 2021. 11. 3.