분류 전체보기 썸네일형 리스트형 [Spring] vault 개념과 활용 Vault란?Vault는 HashiCorp에 의해서 개발된 크로스플랫폼 패스워드 및 인증 관리 시스템이다. 공개되면 안되는 비밀번호, API 키, 토큰 등을 저장하고 관리한다.https://www.vaultproject.io/ 에서 개발했다.사용 이유사용자명, 엔드포인트, 비밀번호, 포트 등 중요한 정보를 형상관리툴에 노출시키지 않게 하기위하여 사용한다.Spring 과 Vaultspring cloud 에서 공식적으로 vault 연결해주는 dependency를 제공해준다.https://spring.io/guides/gs/vault-config/Vault설정org.springframework.cloud:spring-cloud-starter-vault-config 가 있고springframework-vault.. 더보기 [jwt] refreshToken을 db에서 유지하는 이유 JWT 인증은 Stateless 원칙을 기본으로한 인증방식 인증서버에서 1회만 발급받으면 해당 토큰이 가진 만료시간이나, 속성들을 사용하여 어플리케이션이 인증서버의 도움없이 인증 및 인가에 사용할 수 있는 방식 JWT로 인증을 받을경우 해당 토큰은 폐기가 불가능 보안문제를 해결하기 위해 다시 Stateful한 방식인 세션과 같이 Token을 DB에 저장하고 로그아웃이나 기타 정책에 의해 Token을 DB에서 삭제하면 유효한 JWT토큰을 가지고 있더라도 인증실패 처리를 할 수 있음 1시간 만료되서 accessToken을 재발급 받으려고 다시 로그인 하면,서버입장에서는database에서 SELECT Member table 도 해야하고,찾은 Member를 UserDetails로 변환해 검증도 해야하고,검증.. 더보기 [Spring] 필터(Filter) vs 인터셉터(Interceptor) 차이 1. 필터(Filter)[ 필터(Filter)란? ]필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것이다. (디스패처 서블릿에 대해 잘 모른다면 여기를 참고해주세요!)즉, 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너(서블릿 컨테이너)에 의해 관리가 되는 것이고(스프링 빈으로 등록은 된다), 디스패처 서블릿 전/후에 처리하는 것이다. 이러한 과정을 그림으로 표현하면 다음과 같다. [ 필터(Filter)의 메소드 ]필터를 추가.. 더보기 [Mybatis]insert 구문 실행 후 selectKey 값이 1이 나오는 현상 기존 repository 소스코드 @Repository public class AttachFileRepository4Mybatis { @Autowired private SqlSessionTemplate sessionTemplate; public List insertList(List attachFiles) throws DataAccessException { List attachFileIds = new ArrayList(); for (AttachFileRequestDTO attachFileRequestDTO : attachFiles) { Long result = Long.valueOf(sessionTemplate.insert("attachFile.insert", attachFileRequestDTO)); a.. 더보기 [Spring] QueryDsl의 Q클래스 빨간줄 에러 뜨는현상 방지 인텔리제이 + maven 사용해서 QueryDSL을 설정해봅시다. 필요 라이브러리 querydsl-apt: 쿼리 타입(Q-Class)을 생성할 때 필요 querydsl-jpa: QueryDSL JPA 라이브러리 com.mysema.querydsl querydsl-apt 3.6.3 provided com.mysema.querydsl querydsl-jpa 3.6.3 QueryDsl을 사용하기 위해 필요한 라이브러리는 위와 같습니다. pom.xml을 열어서 안에 추가해주세요. 버전은 사용하시는 환경에 맞게 설정하시면 됩니다. Q Class 생성 플러그인 추가 QueryDSL을 사용하려면 엔티티를 기반으로하는 쿼리용 클래스를 생성해야 합니다. 해당 클래스를 컴파일시 자동으로 생성하기 위해서 플러그인을 추가해주.. 더보기 [mac] Mac 에서 특정포트 kill 하기 Mac 에서 특정 포트가 살아있어 죽이고 그 포트로 다시 실행해야 할 때가 있다. 그럴때에는 아래 명령어로 현재 살아있는 포트의 정보를 확인한 뒤 $ sudo lsof -i : 포트번호 kill -9 명령어로 해당 PID 를 적어주어 포트를 종료한다. $ sudo kill -9 PID ex) PID가 1111 로 나오는 3000번 포트를 종료하고 싶다면 아래와 같이 명령어를 입력하면 된다. $ sudo lsof -i :3000 # pid 확인 후 $ sudo kill -9 1111 더보기 [mac] bracket 설치 (텍스트에디터) 브라켓 - Brackets - 웹 개발 중 프로트엔드 개발을 하는데 사용되는 많은 에디터들이 있습니다. - VSCode , Atom, SublimeText 등이 있습니다. - 저는 예전부터 Brackets을 주로 사용해 왔습니다. - 다들 많은 장점들을 가지고 있지만, 처음 부터 브라켓을 사용해 와서 인지 많이 익숙해져 있어서 Brackets을 주로 사용하는 것 같습니다. - 그럼 브라켓 설치 방법과 기본적으로 사용하면 유용한 확장기능들을 설치해 보겠습니다. 브라켓 다운로드 - 아래의 링크로 이동해서 브라켓 설치 파일을 다운로드 합니다. brackets.io/ A modern, open source code editor that understands web design Brackets is a light.. 더보기 [백엔드TIL] 싱글톤패턴 구현 방법 학습 싱글톤 패턴은 생성(Creational) 패턴 중 하나로써 객체를 오직 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴이다. 간단히 말해서 애플리케이션 전체에서 단 하나의 객체만 생성하고 필요할 때마다 이 객체에 접근하여 사용하겠다는 의미이다. 이번 글은 싱글톤 패턴을 구현하는 방법을 중점으로 정리할 것이기 때문에 싱글톤 패턴에 대해 좀 더 자세히 알고 싶다면 다음 글을 참고하길 바란다. https://sorjfkrh5078.tistory.com/107 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 생성(Creational) 패턴 중 하나로써 객체를 오직 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴이다. .. 더보기 [Spring] In-Memory DB에 해당되는 H2 DB 사용방법 H2 DB의 3가지 모드 H2DB는 자바 기반 오픈소스 RDBMS(관계형 데이터 베이스 관리 시스템)이다. H2DB Cheat Sheet를 살펴보면 세 가지 용도를 찾을 수 있다. 1. Embedded Mode 2. In-Memory Mode 3. Server Mode Server Mode Server Mode는 공식 사이트에서 H2를 Plafform-Independent 버전을 다운로드하고 h2/bin/h2.sh를 터미널로 실행하면 h2가 TCP 통신을 할 수 있는 서버 버전으로 실행된다고 볼 수 있다. 따라서 외부에서 h2 서버가 실행되어야 스프링에서 application.properties에 h2서버 주소를 입력해 접속할 수 있다. 김영한님의 스프링 입문 강의 섹션 6 : H2 데이터베이스(무료강.. 더보기 [백엔드TIL] SET, TreeSet, LinkedHashSet 개념 Set은 특별한 순서 없이 고유한 값을 저장할 수 있는 추상 자료구조다. 유한 집합의 수학적 개념을 컴퓨터로 구현한 것이다. 대부분의 다른 컬렉션 유형과 달리 집합에서 특정 요소를 검색하는 대신 일반적으로 집합의 구성원 자격에 대한 값을 테스트한다. 일부 집합 자료구조는 구성된 후 변경되지 않는 고정 집합 또는 고정 집합을 위해 설계됐다. 정적 집합은 주어진 값이 집합에 있는지 확인하거나, 랜덤하게 값을 열거하는 것과 같은 요소에 대한 쿼리 작업만 허용한다. 동적 또는 변경 가능한 집합(mutable set)이라 하는 다른 변형을 사용하면 집합에서 요소를 삽입, 삭제할 수도 있다. 다중 집합(multiset)은 요소가 여러 번 나타낼 수 있는 특별한 집합이다 고유한 값을 저장한다면 중복되는 값은 집어넣을.. 더보기 이전 1 2 3 4 5 6 ··· 25 다음