Dev 126

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

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

Dev/SpringBoot 2020.11.16

6. [IntelliJ] TDD를 위한 첫걸음 - 커스텀 템플릿 제작하기

1. 서론 - 오늘은 TDD를 수행하기 위한 첫번째 단계로 라이브 템플릿을 지정하는 방법에 대해 포스팅하겠습니다. - 예를들면 tdd 입력 후 텝을 누르면 다음과 같은 템플릿이 자동 생성되는 형태입니다. @Test public void hello(){ //given //when //then } 2. 본론 - 그렇게 어렵지 않습니다. 인텔리제이 - preference 에서 live template을 지정해주면 됩니다. 저는 custom 이라는 그룹 안에 tdd를 만들었는데요. 우측 상단에 + 버튼을 이용해 추가할 수 있습니다. 문법은 저렇게 작성해주시면 됩니다. 3. 결론 오늘은 약어를 이용해 커스텀 템플릿을 제작하는 방법에 대해 학습하였습니다.

Dev/Intellij 2020.11.12

5. [IntelliJ] 프로젝트 실행시 버튼 모양이 안바뀝니다. (해결완료)

1. 서론 - 인텔리제이에서 프로젝트를 시작했더니 실행은 잘 되는데 화살표 모양이 바뀌지 않았던 경험이 있습니다. - 이 글을 읽게 된다면 그 원인과, 해결법을 알 수 있게 됩니다. 2. 본론 프로젝트를 실행하면 분명 버튼이 바뀌어야하는데 계속 저렇게 나오는 이유가 궁굼했습니다. 그리고 계속 눌러보면 아래의 그림과 같이 종료 후 시작되는 것이 아니라 프로젝트가 중복으로 실행되는 것이어서 불편했습니다. 원인을 몰라 고민하던 중, 강의를 들으며 환경설정을 하다가 알게 되었습니다. 해당 프로젝트 실행 시 저는 gradle로 실행하고 있었는데, 이를 intellij 로 바꾸어 주면 되는 것이었습니다. 3. 결론 - 다시 실행 버튼을 눌러준다면 잘 되는 것을 볼 수 있습니다. --- 2020-11-20 추가 윈도..

Dev/Intellij 2020.11.10

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

9. [SSO] Keycloak User Storage SPI 번역해보기 - 2

1. 서론 어제에 이어 계속해서 번역작업을 진행해보도록 하겠습니다. 어제 내용을 잠깐 복습해보면, SPI라는 것을 이용하면, Keycloak과 기존 사용자 DB를 연동하여 이용할 수 있다고 하였습니다. UserStorageProvider를 구현하고, UserStorageProviderFactory 를 구현해주어야 한다고 했습니다. 저번시간에는 UserStorageProvider에 대해 집중 탐구해보았으니, 오늘은 Factory에 대해 탐구해보겠습니다. 2. 본론 2.5.2. Provider Factory Implementation public class DemoUserStorageProviderFactory implements UserStorageProviderFactory { public static ..

Dev 2020.10.13

8. [SSO] Keycloak User Storage SPI 번역해보기

1. 서론 keycloak 기본 예제는 어느정도 할 수 있게 되었습니다. 하지만 실제 디비에 적용시키기엔 무리가 있다는 것을 알게 되었습니다. 키클락에서 제공하는 칼럼 정보와 현재 회사에서 사용하고 있는 디비 칼럼구조와 다르기 때문에 이걸 어떻게 적용해야할지에 대한 고민을 많이 하게 되었고, 그러던 도중 User Storage SPI 라는 글이 있기에 번역해보면서 공부해보려 합니다. 해당 원문 링크는 여기에 있습니다. 2. 본론 사용자 스토리지 SPI를 사용하여 Red Hat Single Sign-On에 확장하여 외부 사용자 데이터베이스 및 인증 정보 저장소에 연결할 수 있습니다. 기본 제공 LDAP 및 ActiveDirectory 지원은 이 SPI를 실제 구현한 것입니다. Red Hat Single S..

Dev 2020.10.12

7. [SSO] Keycloak Default DB 변경해보기

1. 서론 keycloak은 현재 H2 Database로 관리되고있습니다. 이를 오라클로 변경해보는 작업을 진행하였는데, 찾아봐도 번역본이 없기에 내가 직접 해본 후기를 올리려고 합니다. 참고 자료 Configuring Keycloak to use Oracle Database 2. 본론 1. ojdbc download 우선 오라클을 이용하기 위해 ojdbc가 있어야 합니다. 저는 ojdbc6을 사용하였습니다. 다운로드는 여기에서 진행하시면 됩니다. 2. make directory 다음과 같은 디렉토리 구성이 필요합니다. \\modules\\system\\layers\\keycloak\\com\\oracle\\main 다음과 같이 경로를 구성하셨다면, 두 개의 파일을 아래의 사진과 같이 이동시켜줍니다. 3..

Dev 2020.10.08

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