본문 바로가기
반응형

전체 글322

[Spring Security] 기존 테스트에 시큐리티 적용하기 테스트 코드를 작성했을 때는 API를 바로 호출해서 만들었다. 하지만 시큐리티 옵션이 활성화되면서 인증된 사람만 API를 호출할 수 있게 되어 테슽트 코드마다 인증한 사용자가 호출한 것처럼 작동하도록 수정해야 한다. 일단 전체 테스트를 한 번 돌려보자 문제1 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig' defined in file [..\SecurityConfig.class] :Unsatisfied dependency expressed through constructor parameter 0; org.springframework.beans.facto.. 2021. 1. 22.
[OAuth 2] 네이버 로그인 연동하기 네이버 API 등록 developers.naver.com/apps/#/register?api=nvlogin 접속 등록 후에는 Client ID와 Client Secret을 확인할 수 있다. 해당 키 값을 application-oauth.properties에 등록한다. 네이버에서는 스프링 시큐리티를 공식 지원하지 않기 때문에 전부 수동으로 입력해야 한다. #registration spring.security.oauth2.client.registration.naver.client-id=클라이언트아이디 spring.security.oauth2.client.registration.naver.client-secret=클라이언트시크릿 spring.security.oauth2.client.registration.na.. 2021. 1. 21.
[OAuth 2] 구글 로그인 연동하기 Spring Security - 막강한 인증, 인가 기능을 가진 프레임워크 OAuth : 인터넷 사용자들이 비밀번호 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹 사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단. - ex: 네이버 아이디로 로그인, 구글 아이디로 로그인, ... 들어가기 전에... 본 프로젝트에서는 Spring Boot 2 방식인 Spring Security Oauth2 Client 라이브러리를 사용한다. - 기존의 1.5에서 사용되던 프로젝트는 신규 기능이 더이상 없을 예정 - 스프링 부트용 라이브러리 출시 - 이전 사용 방식은 확장 포인트가 적절히 오픈되어 있지 않아 직접 상속/오버라이딩 해야함 이 책 외의 스프링 부트 2 방식의 자료를 찾고 싶은 경우.. 2021. 1. 21.
[Spring Boot] Request method 'DELETE' not supported Request method 'DELETE' not supported @DeleteMapping을 이용해 게시글 삭제 기능을 구현하고 있었는데, 405 에러가 떴다. Spring boot에서 put, delete 요청에서 @DeleteMapping이나 @PutMapping을 사용할 경우에는 application.properties에 다음 설정을 추가해야한다. spring.mvc.hiddenmethod.filter.enabled=true 다만, 추가적인 이슈가 있다면 tomcat과 연동해 사용할 경우에는 request의 body 내용을 HTTP POST Method일 때만 파싱해올 수 있다 tomcat에서 설정을 바꿔주거나 스프링에서 제공하는 필터 등을 사용하면 된다. (방법은 참고2 링크) 참고 (1) p.. 2021. 1. 20.
[Mustache & Spring] 전체 조회 화면 만들기 UI 변경 index.mustache에 게시글 목록을 나타낼 테이블 코드를 추가 {{>layout/header}} 스프링 부트로 시작하는 웹 서비스 글 등록 게시글 번호 제목 작성자 최종 수정일 {{#posts}} {{id}} {{title}} {{author}} {{modifiedDate}} {{/posts}} {{>layout/footer}} Repostiory 수정 PostsRepository.interface 수정 public interface PostsRepository extends JpaRepository{ @Query("SELECT p FROM Posts p ORDER BY p.id DESC") List findAllDesc(); } @Query - SpringDataJpa에서 제공하지 않.. 2021. 1. 19.
[Mustache] 게시글 등록 화면 만들기 공통 코드 게시글 등록 화면에 앞서 부트스트랩과 제이쿼리 라이브러리를 추가하겠다. 이 라이브러리들은 mustache 화면 어디서나 들어가는 공통 코드들이니 별도로 레이아웃 파일을 추가하겠다. 본 프로젝트는 간단한 규모이니 외부 CDN을 사용한다. 하지만 실무에서는 이 방법을 사용하면 CDN 서비스하는 곳에 문제 생기면 CDN을 사용한 화면에서도 덩달아 문제가 생겨버리니 잘 쓰지 않고, 직접 라이브러리를 받아서 사용한다. src/main/resources/templates/layout에 header, footer를 만든다. header.mustache footer.mustache 위 코드를 보면 header에 css, footer에 js 파일이 추가되었다. html은 기본적으로 위에서 아래로 코드가 실행되.. 2021. 1. 19.
[eclipse] mustache 이용하기 intellij와는 다르게 eclipse에서는 mustache 플러그인이 존재하지 않는다. *.mustache 형식으로 파일을 생성할 수는 없지만 하이라이트, 기울기 등의 효과가 없어 코드를 작성, 수정이 힘들다. html 파일로 생성한 뒤에 파일 이름 수정을 통해 .mustache로 바꾸는 경우도 있지만, 매번 이렇게 하기는 힘들 것이다. 그래서 나는 아예 mustache 형식의 파일은 html 문법을 따르도록 설정해두었다. window - preferences - General - Content Types Add Root 버튼 클릭 후 Mustache 입력 (이름은 자유롭게 지정해도 된다.) File associations의 Add 버튼을 누르고 *.mustache 추가 Associated edito.. 2021. 1. 19.
정수 삼각형 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 내 코드 import java.lang.Math; class Solution { public int solution(int[][] triangle) { for(int i=1;i 2021. 1. 18.
[Mustache] 화면 구성 Mustache란? 머스테치는 다양한 언어를 지원하는 심플한 템플릿 엔진이다. (템플릿 엔진: 지정된 템플릿 양식과 데이터가 합쳐져 html 문서를 출력하는 소프트웨어.) java에서 이용할 때는 서버 템플릿 엔진, javascript에서 이용할 때는 클라이언트 템플릿 엔진으로 모두 사용 가능하다. 서버 템플릿 엔진의 종류 - JSP, Velocity: 스프링 부트에서 권장 x - Freemarker: 템플릿 엔진으로서 과한 기능 지원. 숙련도 낮으면 비즈니스 로직 추가의 확률 有 - Thymeleaf: 스프링에서 권장. 문법이 어려움 - Mustache: 심플. 하나의 문법으로 서버/클라 모두 사용 가능. Intellij를 기준으로, thymeleaf의 플러그인은 유료이므로 이 프로젝트에선 Mustac.. 2021. 1. 18.
반응형