현재 '토이프로젝트 저장소'라는 주제로 개인 프로젝트를 진행하고 있다. 게시글에 달린 태그를 기준으로 게시글을 검색할 수 있도록 했는데 이때 자동완성 기능이 있으면 사용자 편의성이 높아질 것이라 생각해서 자동완성 기능을 구현하기로 결정했다. 기존상황 기존의 검색창으 Tagify 라이브러리를 사용하여 아래와 같이 검색할 수 있도록 구성했었다. 위 사진도 언뜻보면 자동완성이 되는 것 같지만 반은 맞고 반은 틀리다. Tagify 라이브러리를 사용하면서 고정된 리스트에서 검색어와 태그의 prefix를 비교하여 동일한 데이터를 보여주도록 한 것이다. 따라서 사용자가 고정된 리스트에 없는 태그를 등록한다면 자동완성 데이터에 업데이트가 되지 않아 제대로된 자동완성이 동작할 수 없다. 그래서 이 문제를 해결하고자, 백..
개인 프로젝트에서 검색어 자동완성 기능을 구현하기 위해 Redis를 활용하였다. 그래서 배포환경에서는 Redis를 어디에 둬야할까 고민을 해보았다. (일단 나는 AWS 프리티어 사용자로서 매달 연속해서 사용할 수 있는 EC2는 한 대 뿐이다.) 두 가지 선택지가 있었다. EC2 내부에 Redis를 설치하여 개발환경과 같이 localhost로 사용하기 별도의 캐시 서버 구성하기 오늘은 두 가지 선택지 중 하나를 결정하기 위해서 생각한 고민을 정리하고자 한다. EC2 내부 로컬 Redis Redis를 EC2 내부에 직접 설치하여 운영하는 방식이다. [장점] 매우 간단하고 .properties 파일에 연결정보 또한 로컬환경과 동일하게 가져갈 수 있다. 하나의 EC2 내부에서 동작하기에 운영비용이 절감된다는 장..
문제상황 토이 프로젝트를 진행하고 있었다. 나는 스프링 시큐리티를 활용해서 인증/인가 작업을 처리했고 JWT를 활용하여 로그인을 구현하고 있기에 커스텀한 인증 필터를 하나 더 만들어서 스프링 시큐리티 필터에 추가시켰다. 스프링 시큐리티 같은 경우 필터기반으로 인증/인가 작업을 한다. 그래서 별다른 설정을 하지 않으면 모든 경로에 대해 필터를 지나가게하여 보안 작업을 처리한다. 이 때 이미지 또는 .css, .js, favicon 등은 필터를 거치지 않아도 접근이 가능토록 해야했기에 아래 코드를 사용하여 필터무시 설정을 해줬다. @Bean public WebSecurityCustomizer configure() { return (web -> web.ignoring().requestMatchers("/ima..
책을 읽게된 이유 스프링, 스프링부트, JPA에 대해 어느정도 공부가 되었다고 생각했을 때 실제로 배포까지 진행해보고 싶었고 목차에 있는 OAuth나 스프링시큐리티를 활용한 로그인 구현 등 내가 그 시기에 접해보지 못했던 기술을 사용하여 구현한다는 것에 매력을 느껴 이 책을 구매하여 읽게되었다. 후기 이 책에는 스프링부트를 활용하여 간단한 게시판을 개발하고 이를 AWS에 배포까지하는 전 과정이 들어있다. 더구나 스프링시큐리티도 사용하고, 그에 대한 테스트코드까지 작성하여 처음시작 백엔드 개발을 공부를 시작하는 사람들이 전반적인 웹 개발의 흐름을 알아가기 좋은 책이라고 생각하고 어느정도 공부한 사람도 보기 괜찮은 책이라는 생각이 든다. 하지만 아쉬웠던 점은 이 책에 나온 사진 및 프로그램의 버전이 책의 초..
책을 읽게된 이유 처음 스프링을 공부하고 DB와 연결할 떄 JDBC 또는 Spring JDBC Template을 활용했다. 그런데 토이 프로젝트를 진행할 때 나는 거의 INSERT, UPDATE, DELETE, SELECT 쿼리 등을 작성하는데 개발의 절반 이상을 사용했다. 그렇게 이런 문제에 대한 불편함을 느껴 JPA라는 기술을 알게되었고 이 책을 통해 공부를 시작하게 되었다. 후기 한마디로 JPA의 한국판 교과서와도 같은 책이다. 이 책은 JPA를 사용함에 있어 필요한 지식과 전반적인 내용을 담고 있어 JPA를 사용하고자 한다면 이 책을 사서 공부하는 것을 추천한다. 다만, 이 책은 JPA에 관련된 책이지 RDB에 대한 책이 아니다. 이 책을 통해 JPA를 공부하기 전 RDB에 대한 어느정도 이해는 ..
나는 이번 프로젝트에서 JWT(AccessToken+RefreshToken)을 활용하여 로그인 기능을 만들었다. 그래서 JWT 생성에 필요한 Issuer와 SecretKey를 .properties 설정파일에 입력한 뒤에 @ConfigurationProperties 어노테이션을 사용하여 하나의 클래스로서 관리하고자 하였다. 또한 이 클래스를 Bean 객체로 만들어 의존주입하여 편하게 사용하려고 클래스레벨에 @Component 어노테이션까지 붙여주었다. 오류상황 TokenProvider와 통합테스트 코드를 작성하고 있었다. JWT의 SecretKey는 노출되면안되기 때문에 .gitignore에 등록해놓았다. 그럼 나중에 CI/CD 파이프라인 구축할 때 당연히 JWT관련 properties파일이 없기에 테스트..
- Total
- Today
- Yesterday
- 오류
- 서블릿#Servlet
- 파이썬
- 4673번
- java
- 사탕 게임#백준#3085
- list
- 백준#잃어버린 괄호#1541
- 대충 만든 자판
- 게시판#자바#JPA#Entity
- MVC
- 1316번
- HTTP#HTTP특징
- controller
- 1978
- 11659
- 회고
- 자바
- arraylist
- Spring
- querydsl
- this()
- 덧칠하기
- 백준
- 7568
- 백엔드#게시판
- springboot
- 프로그래머스
- 백준#서강근육맨#20300
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |