본문 바로가기
728x90

개발/Spring48

[Spring] 스프링시큐리티 OAuth2.0 적용해보기(Facebook) 이번엔 페이스북 로그인을 작업해보려한다. 지난 포스팅에 사용했던 코드에 이어서 작업하려한다. https://devhooney.tistory.com/100 [Spring] 스프링시큐리티 OAuth2.0 적용해보기(Google) 구글, 페이스북, 네이버 로그인을 적용해보려고 한다. 지난 포스팅에 사용했던 코드에 이어서 작업하려한다. https://devhooney.tistory.com/99 [Spring] 스프링시큐리티 예제 이전에 작성한 포스팅은 단순 devhooney.tistory.com 1. 페이스북 개발자 사이트 - 사이트에 접속해서 내 앱 > 앱 만들기 클릭 - 소비자 선택 - 표시 이름 작성, 선택된 비즈니스 관리자 계정 없음 선택 후 앱 만들기 - 만들어진 앱 선택 후 Facebook 로그인 빠.. 2022. 9. 1.
[Spring] 스프링시큐리티 OAuth2.0 적용해보기(Google) 구글, 페이스북, 네이버 로그인을 적용해보려고 한다. 지난 포스팅에 사용했던 코드에 이어서 작업하려한다. https://devhooney.tistory.com/99 [Spring] 스프링시큐리티 예제 이전에 작성한 포스팅은 단순히 책에 있는 내용을 정리한 것이었는데, 이번엔 직접 코드를 짜보면서 복습해보려고 한다. 1. 라이브러리 설치 implementation 'org.springframework.boot:spring-boot-starter-secur.. devhooney.tistory.com 1. 구글 api console https://console.cloud.google.com/apis/dashboard Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.go.. 2022. 8. 31.
[Spring] 스프링시큐리티 예제 이전에 작성한 포스팅은 단순히 책에 있는 내용을 정리한 것이었는데, 이번엔 직접 코드를 짜보면서 복습해보려고 한다. 1. 라이브러리 설치 implementation 'org.springframework.boot:spring-boot-starter-security' 2. IndexController 생성 - controller 패키지 생성 후 IndexController 생성 @GetMapping({"", "/"}) public String index() { return "index"; } - resources/template/index.html 생성 인덱스페이지입니다. 3. user, admin 메소드 생성 - IndexController에 두 개의 메소드를 만들어 준다. @GetMapping("/use.. 2022. 8. 29.
[Spring] Message 적용해보기 개발하다보면 한 화면을 여러 언어로 보여줘야 하는 경우가 있다. 언어마다 같은 HTML을 작성하지 않고, 스프링을 이용하여 편리하게 구현해봤다. - 먼저 Bean 등록을 해준다. LocaleConfig라는 파일을 생성하여 작성했다. - @Value값 안에 들어가는 내용은 application.properties에 작성했다. - basename에는 앞으로 여러 언어를 같은 코드로 관리하기 위한 파일인 messages.properties파일의 경로를 넣어주었다. - 나같은 경우 messages/messages를 넣었다. - encoding은 UTF-8을 넣어주었다. - 스프링 부트의 경우 Bean등록을 안해도 된다는 글들이 많았는데, 안해주니 나는 에러가 발생했다.(해주면 이상 없음) @Bean public.. 2022. 8. 21.
[Spring] Validation 적용해보기 프론트에서만 유효성 검사를 했었는데, 언제든지 우회할 수 있다고 듣고, 서버쪽에서도 유효성 검사하는 로직을 추가하려했다. 근데 스프링에서는 validation이라는 프레임워크로 편하게 할 수 있었다. 그 과정을 남기려고 한다. - 라이브러리 설치(build.gradle) implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.2' - 먼저 회원가입을 한다고 하면 User 엔티티가 필요하다. @Entity @Getter @NoArgsConstructor public class User { @Id @GeneratedValue(strategy = GenerationType.IDEN.. 2022. 8. 18.
[Spring] 스웨거(Swagger) 라이브러리 기존에는 api 테스트를 위해서 포스트맨을 사용했는데, 스웨거는 서버로 요청되는 api 리스트를 html 화면으로 문서화해서 테스트할 수 있는 라이브러리이다. @RestController를 읽어서 api를 분석해서html문서로 정리해준다. 아주 편리해보인다. - dependency에 아래 두 가지를 넣어준다. implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' - 나는 gradle을 사용 중이기 때문에 buid.gradle 파일 안에 넣어줬다. - config.. 2022. 8. 17.
[Spring] 스프링 시큐리티 (3) 스프링 시큐리티가 변경되었다. - 버전 5.7.0-M2 버전부터 변경되었고, SecurityFilterChain을 빈으로 등록해서 사용해야 한다. - 아래 코드는 카카오 로그인 구현 중에 작성한 코드다. private final CustomOauth2UserService customOauth2UserService; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf().disable() // enable h2-console .headers() .frameOptions() .disable() .and() .authorizeRequests() .antMatchers("/api/**").perm.. 2022. 8. 12.
[Spring] 프레젠테이션 층의 설계와 구현 1. 프레젠테이션 층이란 - 프레젠테이션 층은 사용자 인터페이스와 컨트롤러를 말한다. - 프레젠테이션 층에서는 스프링MVC와 스프링 웹 플로를 이용할 수 있다. 2. 스프링 MVC와 REST - URL을 자유롭게 결정할 수 있다. - HTTP 메소드에 따라 실행할 처리를 전환할 수 있다. - URL의 일부를 쉽게 추출해 사용할 수 있다. 3. 스프링 MVC의 구성 요소 이름 역할 DispatcherServlet - 프론트 컨트롤러를 담당 - 모든 HTTP 요청을 받아들여 그 밖의 오브젝트 사이의 흐름을 제어 - 기본적으로 스프링 MVC의 DispatcherServlet 클래스를 그대로 적용 Handler Mapping - 클라이언트의 요청을 바탕으로 어느 컨트롤러를 실행할 지 결정 Model - 컨트롤러.. 2022. 7. 28.
[Spring] 비즈니스 로직 층의 설계와 구현 비즈니스 로직 층의 역할은 도메인 모델인지, 트랜잭션 스크립트인지 관계없이 업무 처리(비즈니스 로직)를 하는 것 비즈니스 로직과 밀접한 관계가 있는 트랜잭션 처리는 잘 대응해야 함 5.1 트랜잭션이란? - 트랜잭션이란 관련된 여러 처리를 하나의 큰 처리로 취급할 경우의 단위 - 트랜잭션 내의 모든 처리가 성공했을 때 트랜잭션이 확정 - 트랜잭션 내에서 하나라도 실패할 경우 트랜잭션이 시작하기 전의 상태로 롤백 (1) 여러 업무에 걸쳐진 트랜잭션 예) 고객이 주문한 상품을 공장에 발주하고 물건이 도착하면 고객에게 출하하기 전까지의 트랜잭션 단위 (2) 하나의 사례에서 사용자로부터의 여러 요청에 걸쳐서 발생하는 트랜잭션 예) 상품의 재고를 화면에 표시하고, 출하할 상품 수를 입력한 후 확정 버튼을 누르기까지.. 2022. 7. 21.
728x90