전체 글 293

7. [springboot] Spring Security 간단 권한관리 예제 - UserDetailsService 방식

1. 서론 - 오늘은 userDetailsService를 이용하여 DB에서 정보를 가져와 인증하는 방식을 구현해보고자 합니다. - 이 글을 이해하면 로그인 기능을 구현할 수 있습니다. - 질문은 댓글로 언제든 환영합니다! 2. 본론 SecurityConfig.java - 시작은 SecurityConfig 클래스에서부터 시작합니다. package com.example.springsecurity.security; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.security.servlet.PathRequest; import org.springframew..

Dev/SpringBoot 2020.06.09

6. [springboot] Spring boot 기초 회원가입 예제

1. 서론 스프링 시큐리티를 이용하여 권한을 부여하고, 회원가입 처리를 하는 간단 예제를 만들어 볼 것입니다. 이 글을 이해하면 간단한 회원가입을 스프링 시큐리티로 구현할 수 있습니다. 간단한 MVC 구조를 알고 계신다면 더 편하게 따라오실 수 있습니다. 2. 본론 엔티티 모델링 먼저, 원활한 회원가입을 위한 엔티티 모델링부터 진행합니다. 여기서 주의할 점은 username 부분인데, 시큐리티에서 템플릿과 연동 시 기본으로 제공하는 name 값이 username 이므로 이에 맞추어 줍니다. 커스터마이징 또한 따로 할 수 있으나 추후 포스팅하겠습니다. import lombok.AccessLevel; import lombok.Builder; import lombok.Data; import lombok.NoA..

Dev/SpringBoot 2020.06.09

1. [프로그래머스] Level_2 카펫 (완전탐색)

문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로길이는 세로 길이와 같거나, 세로 길이보다 깁..

Dev/Algorithm 2020.06.09

5. [springboot] Spring Security 간단 권한관리 예제

1. 서론 - 스프링 시큐리티 공부하던 도중 간단하게 권한 부여하는 방법을 예제로 구현해보고자 포스팅하게 되었습니다. - 이 포스팅을 잘 보게 될 경우 간단한 권한관리를 알 수 있게 됩니다. 2. 본론 - 먼저, 간단하게 컨트롤러 구성부터 해보겠습니다. package com.example.springsecurity.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.we..

Dev/SpringBoot 2020.06.08

4. [springboot] hibernate.hbm2ddl.auto 속성 정리

- 데이터베이스 스키마 자동 생성 DDL을 애플리케이션 실행 시점에 자동 생성한다. 테이블 중심에서 객체 중심으로 이동 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성한다. 이렇게 생성된 DDL은 개발 단계에서만 사용 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용 1. 속성 persistence.xml 의 속성옵션을 보자. 주석한 곳이 있을 것이다. hibernate.hbm2ddl.auto인데 value 값을 조정하면서 하면 된다. 옵션 설명 create 기존 테이블 삭제 후 다시 생성 DROP + CREATE create-drop create와 같지만 종료시점에 테이블 DROP, 아예 없앤다. update 변경분만 반영(운영DB에는 사용하면 안된다), 추가만..

Dev/SpringBoot 2020.03.26

3. [Springboot] Hello JPA! - JPA 시작하기

1. 환경 구성 JPA 를 사용하여 간단하게 프로젝트를 만들어보고자 합니다..! 우선, 환경 구성부터 실시해보겠습니다. DB는 H2 DB를 사용할 것입니다. http://h2database.com/html/main.html 현시점(20/03/26) 기준 [Version 1.4.199]가 가장 안정적인 버전이기 때문에 이것을 다운로드 받고 사용합니다. 윈도우 기준 H2 실행 방법 C:\Program Files (x86)\H2\bin 경로로 가서 h2.bat 파일 더블클릭하면 실행 됩니다. 프로젝트는 메이븐을 사용하며, 자바 8 이상을 권장합니다. ArtifactId : 빌드되면 나오는 파일 이름입니다. 1.1 pom.xml 작성 먼저, JPA 하이버네이트 설정과 H2 데이터베이스, 롬복 설정을 해주겠습니다..

Dev/SpringBoot 2020.03.26

2. 1분기 중반 즈음에(20-03-18)

서론 취업을 하고나서 뚜렷한 변화가 있었던 것은 아니다. 그저 나의 경험을 되돌아보고, 반성해보고, 의미있었는지 뒤돌아보는 여정중에 작성하였다. 본론 우선 프로그라피라는 기술동아리에 최종 합격하게 되었다. 나는 6기로 합격하게 되었는데, Django라는 프레임워크를 접하는 도중에 알게 된 소중한 동아리이다. 직장인이라 분위기를 혹여 망치지는 않을까 걱정했지만 다행이 직장인 반, 학생 반으로 이루어진 소중한 동아리였다. 내가 미처 숙지하지 못했던 슬랙 활용법, 스타트업 시작법, 서비스 완성법에 대한 고민을 많이 해결해줄 수 있을 것 같아 너무 기대된다. 인프런 강의 44만4천400원 인프런 강의를 질러버렸다. 진짜 듣고싶었던 갓영한님의 JPA 실무강의인데,, 너무 비쌋는데 20% 할인해준다고 하길래 후딱 ..

[vscode] html 태그가 먹지 않습니다.

아무리 해봐도 html 태그가 먹히지 않았다. 확장자 html snippts를 깔아봐도 안되었고, div 태그조차 자동 닫기 설정이 안되어 왜 그런 것인가 이유를 살펴 보다가 html 설정이 django-html 으로 설정되어있다는 것을 알게 되었다. 해결방법은 의외로 간단했다. 우측 하단 django-html 써있는 부분을 눌러주고 html로 바꾸어주기만 하면 된다. 태그도 잘 먹고 해결되었다.

카테고리 없음 2020.03.16

2. [Springboot] JPA(Java Persistence API) 정리

1. 뜻 JPA Java Persistence API 자바를 굳이 고집하는 API 정도라고 생각하면 될듯 자바 표준 ORM(Object Relational Mapping) 2. 발생동기 객체지향 프로그래밍을 배웠는데 테이블 모델링에 집중해야하는 상황을 이겨내기 위해. 객체를 테이블에 맞추어 데이터를 담는 그릇 역할만을 수행하는 한계에서 벗어나기 위해. 관계형 데이터베이스를 이용하는 프로젝트에서 객체지향 프로그래밍을 수행하기 위해. SQL문에서 탈피하기 위해. 지향하는 바가 다른 두개 영역(객체지향 프로그래밍 언어와 관계형 데이터베이스)을 중간에서 패러다임 일치 시켜주기 위해. 개발자는 객체지향적으로 프로그래밍을 하고, JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행한다. SQL에 더..

Dev/SpringBoot 2020.01.21

1. [Springboot] Annotation 정리

1. @After Junit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정한다. 보통은 베포 전 전체 테스트를 수행할 때 테스트간 데이터 침범을 막기 위해 사용한다. 여러 테스트가 동시에 수행되면 테스트용 DB인 H2에 데이터가 그대로 남아있어 다음 테스트 시행 시 테스트가 실패할 수 있다. 이것을 방지 2. @RestController 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어준다. @ResponseBody를 각 메소드마다 선언했던 것을 한번에 사용할 수 있게 해준다고 생각하자. 3. @GetMapping HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 준다. @RequestMapping(method=RequestMethod.GET)으로 사용되었던 것을 대체한다. 4...

Dev/SpringBoot 2020.01.20