전체 글(90)
-
[Spring] Spring Security - 기본 이해 (2)
Session 1 스프링 시큐리티 기본 이해 목적 : usernameAuthenticationFilter, LogoutFilter, RememberMeAuthenticationFilter, AnonymousFilterAuthenticationFilter, SessionManagementFilter, ConcurrentSessionFilter 이해 - 로그 아웃 로그아웃 request가 있을 시에 HTTP session을 무효화하고 rememberMe authentication이 있다면 없에지고 SecurityContextHolder를 삭제해주며 url 로 연결해준다. 이에 대한 공식 자료의 예시 코드는 아래와 같다. public SecurityFilterChain filterChain(HttpSecuri..
2022.06.22 -
[Spring] Spring Security - 기본 이해 (1)
Session 1 스프링 시큐리티 기본 이해 목적 : usernameAuthenticationFilter, LogoutFilter, RememberMeAuthenticationFilter, AnonymousFilterAuthenticationFilter, SessionManagementFilter, ConcurrentSessionFilter 단어 이해 Spring Security는 기본적으로 authentication, authorization 과 protection을 지원한다. Authentication : 특정 리소스에 접근하려고 하는 사람이 누구인지 확인한다. 가장 쉬운 방법은 username과 password (우리가 흔히 아는 아이디와 로그인 같음)를 통해서이다. 이를 위해 Spring에서는 P..
2022.06.21 -
[JPA] QueryDSL 사용하기 - 환경설정 (1)
프로젝트를 진행하면서 Lazy Loading으로 인한 N+1 문제 발생으로 인해 한꺼번에 데이터를 가져올 상황에서는 모두 jpaRepository에서 기본적으로 제공하는 @Query를 사용하여 JPQL 문법으로 작성하였다. JPA에 대해 공부를 하던 도중 QueryDSL에 대해 알게 되었다. JPQL을 활용하게 되면서 MyBatis로 작성했을 때보다 훨씬 간편하다고 생각했었는데 더 편의성을 높이는 기능을 지원한다는 사실을 알게 되었다. http://querydsl.com/static/querydsl/4.0.1/reference/ko-KR/html_single/ Querydsl - 레퍼런스 문서 Querydsl은 JPA, JDO, Mongodb 모듈에서 코드 생성을 위해 자바6의 APT 어노테이션 처리 기..
2022.06.20 -
[LeetCode] 70. Climbing Stairs
문제 링크 : https://leetcode.com/problems/climbing-stairs/ Climbing Stairs - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1또는 2씩 계단을 오르는 모든 경우의 수를 리턴하는 문제이다. 가령 n 개의 계단이 주어졌을 경우 1칸 또는 2칸씩 올라갈 수 있는데 경우의 수가 모두 얼마인지 계산하면 된다. 처음 생각했을 때는 1칸 올라가는 갯수를 a, 2칸 올라가는 갯수를 b라 가정하고 a에 n값을 넣은 뒤, a가..
2022.06.17 -
[Node.js] 프로젝트 유지보수(4) : 회원가입
지난 번 글과 이어진다 : https://begintoend.tistory.com/70 [Node.js] 프로젝트 유지보수(3) : 회원가입, 로그인 기능 - 1 일단 html 파일을 넣고 maria db 연동을 통해 데이터를 주고 받는 기능을 완성하였다. 그렇게 하고 난 뒤 회원 가입과 로그인 기능을 만들어서 가입한 사람만 글을 작성할 수 있도록 하였다. 먼저 erd begintoend.tistory.com 앞서 했던 pseudo 코드를 이용해서 코드를 다시 작성하였고 이는 아래와 같았다. app.post('/join', (req, res) => { var name = req.body.inputName; var id = req.body.inputId; var password = req.body.inpu..
2022.06.17 -
[Node.js] 프로젝트 유지보수(3) : Crypto 모듈
일단 html 파일을 넣고 maria db 연동을 통해 데이터를 주고 받는 기능을 완성하였다. 그렇게 하고 난 뒤 회원 가입과 로그인 기능을 만들어서 가입한 사람만 글을 작성할 수 있도록 하였다. 먼저 erd를 생성했는데 다음과 같다. 간단하게 만들었고 회원가입 폼을 작성하면 USER_TB 테이블에 생성이 되는 것을 확인하였다. 편하게 하려고 한다면 로그인 기능을 활용할 때 user_tb에 uid와 password를 확인해서 맞다면 회원을 인증할 수 있도록 할 수 있긴 한데.. 비밀번호 암호화 기능을 활용하여서 보안을 좀 더 강화하고자 생각하였다. (이건 지금 해결하고 있는데 아직 해결이 안됐다...) 더불어서 session을 넣어서 글을 작성하는 기능에서 굳이 사용자를 넣지 않아도 session에서 정..
2022.06.14