Dev/SpringBoot 37

27. [springboot] 환경 구성 분리하기

1. 서론 - 프로젝트를 진행하던 도중, AWS에서 운용되기 위한 환경과, Local에서 돌리는 환경을 다르게 구성하는 방법이 있다는 것을 알게 되었습니다. - 이 글을 읽게되면 DEV, PROD 설정을 다르게 구성할 수 있게 됩니다. 2. 본론 - 강의로 보거나, 책으로 프로젝트를 만들게 되면, 대체로 application.yml 파일 하나만 사용하게 되는 경우가 많습니다. 하지만 어느정도 팀을 이루고, 함께 배포하자는 목표를 가지고 나아가다 보면, 환경 설정을 다르게 적용해야 하는 경우가 있습니다. 하지만 DB 구성도 다르고, 민감한 키값들을 Git에 바로 올리기에는 부담이 크다고 느꼈습니다. - 이를 해결하기 위해 설정 파일을 구분하여 공개해도 되는 파일만 git에 올리는 방식을 공부해보았습니다. ..

Dev/SpringBoot 2020.11.16

26. [springboot] Thymeleaf 값 전달방법 기초(짱쉬움)

1. 서론 - 한번쯤은 짚고 넘어가볼 만한 html에서 controller로 정보를 넘기는 상황에 대해 정리하고 싶었습니다. - 이 포스팅을 통해 th:value, th:name 에 대하여 이해할 수 있습니다. 2. 본론 - hidden 값을 이용해 controller 에 값을 전달하고 싶었습니다. 애초에 다른 controller에서 값을 내려줄 때, 저는 model.addAttribute를 통해 키, 벨류를 이용하여 값을 내려주는 과정은 이해하고 있었습니다. model.addAttribute("userId",1); - 이제 이 값은 th:value에 담기게 됩니다. ${} 문법이 여기에서 중요한데, ${}를 쓰지 않으면 value는 문자 그대로의 userId가 되게 됩니다. ${}를 사용하게 되면 1이..

Dev/SpringBoot 2020.11.04

25. [springboot] Thymeleaf select option에 관하여

1. 서론 - 타임리프를 활용하여 앱을 작성하다가 select option에 대해 한번 정리할 필요성을 느꼈습니다. - 이 글을 읽는다면 controller에서 html로 정보가 이동하는 방법, html에서 select 한 정보가 controller 로 이동되는 방법을 알 수 있게 됩니다. - 이 글을 읽고 저처럼 더이상 삽질하지 않기를 바라는 마음에서 작성합니다. 2. 본론 저는 평소 entity를 dto로 변환해서 html에 뿌리는 방식을 사용합니다. 2.1 controller 에서 web으로 내려주기 dto @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class FirstPageDto { private String p..

Dev/SpringBoot 2020.11.02

24. [SpringBoot] RESTFul한 로그인 구현 예제 - 2

1. 서론 지난 포스팅에서는 하드코딩된 하나의 유저로 로그인 하는 과정을 학습해보았습니다. 이 방법은 실무에 적합하지 않습니다. 이번 포스팅에서는 여러 유저의 정보를 통해 회원가입을 하고, 회원 가입된 유저를 로그인하는 방법에 대해 학습하겠습니다. 2. 본론 1. User - 우리는 유저 정보를 저장하기 위해 JPA를 이용할 것입니다. 그러기 위해서 가장 먼저 필요한 것이 도메인 설정입니다. - 유저에는 UserDetails를 implement 해줍니다. 관련 설정들을 모두 오버라이딩 해줍니다. import lombok.*; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.a..

Dev/SpringBoot 2020.10.06

23. [SpringBoot] RESTFul한 로그인 구현 예제

1. 서론 백엔드로서의 Spring boot를 구현하는 것을 공부하고 있습니다. 웹으로 띄우는 것이 목적이 아닌, 서버 자체로서의 Spring boot. 가장 핵심이라고 할 수 있는 회원가입과 로그인 기능을 제공하는 백엔드 서버를 만들어보고자 하는데요~ 22. [SpringBoot] 스프링부트 spring security 완전 기초 예제 1. 서론 RESTFul API를 이용해서 토큰을 발급받아 접근허용하는 예제를 만들어보았습니다. 이 예제를 학습하면 다음을 이해하는 것이 됩니다. - 간단 회원가입시, DB에 정보가 저장됩니다. - 로그인�� dkyou.tistory.com 이전 포스팅에서 프로젝트 init을 진행하고 왔다면, 이번엔 DB설정 없이 JWT 로그인 기능을 구현해보고자 합니다. 2. 본론 -..

Dev/SpringBoot 2020.10.05

22. [SpringBoot] 스프링부트 spring security 완전 기초 예제

1. 서론 RESTFul API를 이용해서 토큰을 발급받아 접근허용하는 예제를 만들어보았습니다. 이 예제를 학습하면 다음을 이해하는 것이 됩니다. - 간단 회원가입시, DB에 정보가 저장됩니다. - 로그인을 하면, 토큰이 발급됩니다. - 특정 url에 접근 시, 토큰을 헤더에 담지 않으면 접근이 되지 않습니다. - 잘못된 정보로 토큰 접근 시, 접근이 제한됩니다. - API 테스트의 기초를 이해할 수 있습니다. 2. 본론 1. 먼저, 프로젝트 생성 후 hello world를 찍어볼 것입니다. 프로젝트 생성은 여기에서 진행합니다. 저는 이와같은 설정으로 프로젝트를 만들었습니다. 하단의 Generate를 클릭하여 프로젝트를 적당한 위치에 다운로드 받아줍니다. 15버전이 10월 기준 최신 버전이더라구요! 저는..

Dev/SpringBoot 2020.10.04

21. [SpringBoot] 간단하게 비밀번호 암호화해보기

1. 서론 - 회원가입 로직을 구현하던 중 평문 비밀번호를 그대로 저장하는 것을 알게 되었고, Spring security 를 이용하여 암호화하는 방법을 학습해야겠다고 생각했다. 2. 본론 의외로 간단하다. spring-security 의존성이 필요하다. org.springframework.boot spring-boot-starter-security 그리고 springsecurity 환경설정을 진행해준다. import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security...

Dev/SpringBoot 2020.10.01

20. [SpringBoot] 버전 걱정 없는 SSO 구현 번역해보기 - 2

1. 서론 오늘은 어제에 이어서 두번째 앱을 구성해보겠습니다. 2. 본론 스프링 OAuth Client Thymeleaf-2를 사용하였습니다. 이전 포스팅에서 첫번째 앱을 구성한 것과 비슷한 설정을 가져갈 것입니다. 2.1 application.yml spring: security: oauth2: client: registration: custom: client-id: ssoClient-2 client-secret: ssoClientSecret-2 scope: read,write authorization-grant-type: authorization_code redirect-uri: http://localhost:8084/ui-two/login/oauth2/code/custom provider: cust..

Dev/SpringBoot 2020.09.22

19. [SpringBoot] 버전 걱정 없는 SSO 구현 번역해보기 - 1

1. 서론 Simple Single Sign-On with Spring Security OAuth2 | Baeldung A simple SSO implementation using Spring Security 5 and Boot. www.baeldung.com 을 번역해보는 작업을 실시하였습니다. 이유는 코드를 한번 돌려보았는데 완벽하게 내가 원하는 작업과 일치하였기 때문입니다. 최신 코드이기 때문에 decperated 된 어노테이션이 없을 것이라고 생각하였습니다. SSO 코드를 여러개 분석하면서 버전이 다르거나 변경된 코드로 인해 고생을 많이 했었고, 최신 코드로 하면 변경이 없을 것 같아 도전해보게 되었습니다.(번역해보니 이전 버전은 점점 사양화되고있다고 한다.) 2. 본론 2.1 개요 이 튜토리얼에..

Dev/SpringBoot 2020.09.21

18. [SpringBoot] 환경설정별로 다르게 실행해보자

1. 서론 요즘 스프링 부트를 학습하면서, 정말 제대로 학습해보고 싶은 생각이 많이 들었습니다. 그래서 기본을 계속 찾아보다 프로파일에 따른 환경을 구성해서 분리하는 작업을 해보았는데, 개발 환경 구성을 다르게 하는 것이 중요하다는 것을 알게되었습니다. 이 글을 이해하시면 한 프로젝트 내에서 로컬, 개발, 베포환경을 분리할 수 있습니다. 2. 본론 아주 간단합니다. 프로젝트 생성 후, application.yml 파일 설정을 하시면 됩니다. 1. application.yml 작성하기 - application.yml 은 다음 경로에 있습니다. 없다면 그냥 new 해서 해당 경로에 새로 생성 하시면 됩니다. server: port: 80 --- spring: profiles: local server: por..

Dev/SpringBoot 2020.09.09