0. 표준화 된 Validation 이 필요한 이유 먼저 Validation 기능이 왜 필요한지 아래의 사진을 봅시다. 만약 공통화된 Validation 기능이 없다면 어떻게 될까요 ?위의 그림 처럼 각각의 계층에서 반복적으로 Custom Validation 을 진행해야 할 겁니다. 하지만 개발자들이 누구입니까 ?게으르기 위해 성실한 사람들 아니겠습니까?이 반복적인 Custom Validation 을 제거하기 위해서 표준화된 Validation 기능이 필요했습니다. 그리고 표준화된 Validation 기능을 적용하면 아래의 그림처럼 되는 것이죠. 도메인 모델을 정의하고 도메인 모델에 Validation을 적용하게 되면 각각의 계층에서 불필요한 Validation 기능을 삭제할 수 있게 됩니다.그렇다면 B..
1. 문제 상황JWT 로그인 시에 토큰 인증에 실패한 경우 401 에러를 리턴하기 위해서 AuthenticationEntryPoint 을 구현했다.그런데 localhost:8080/login 에 접속할 때도 Unauthorized 오류가 발생했다. 정말 이게 무슨 상황인가 싶다 ... 분명 잘 됐었는데.. 갑자기 문득 생각나는 이 짤 .. 2. 원인잘 동작하던 친구가 401 에러 처리를 위해 AuthenticationEntryPoint 추가한 후 부터 동작을 하지 않는다. 아래는 내가 작성한 코드이다.2-1. AuthenticationEntryPoint Code@Component@Slf4jpublic class JwtAuthenticationEntryPoint implements Authenticati..
0. 지난 내용저번 포스트에서 OAuth2.0 Client 의 기능이 뭔지어떻게 OAuth 를 간단하게 구현할 수 있는지 알아 보았다.이번에는 OAuth 로그인 이후의 과정을 알아보자 ! 1. 이번 목표저번 포스트에서 OAuth 로그인을 통해 유저 정보를 받아 왔다.이 정보를 이용해서 우리 서버와 계속 통신할 수 있도록 JWT 토큰을 발급해보자 JWT 가 왜 필요한지 간단하게 설명하자면HTTP, HTTP 통신을 기반으로 하는 REST API 는 무상태성 통신을 지향하기 때문에매 요청마다 서버는 클라이언트가 누구인지 알 수 없다.이러한 단점을 해결하고 각 요청마다 요청한 사람이 누구인지 인증하기 위해 JWT, Session 등의 기술을 사용한다. 그 중에서 이번에는 보편적으로 이용되는 JWT 토큰 방식을..
1. OAuth2.0 이란?OAuth 2.0은 특정 사용자나 시스템이 자신의 자원에 접근할 수 있도록 제한된 권한을 제3의 애플리케이션에 부여하는 방식을 정의한 인증 및 권한 부여 프로토콜입니다.말이 어렵죠 ? 간단한 상황을 예시로 들어보겠습니다.A 라는 Client 가 제가 만들고 있는 출석부 서비스 체쿠리에 인증 요청을 할 때인증을 체쿠리 서버에서 하는 것이 아니라제3의 어플리케이션에게(ex. 카카오톡) 인증 대리를 맡기면인증 완료 후 제3의 어플리케이션으로 부터 체쿠리 서버가 인증 정보를 받게 되는 시스템 입니다. 아래의 카카오톡에서 제공하는 카카오톡 OAuth2 인증 절차를 보시면 더 쉽게 이해가 되실 겁니다. 2. 카카오톡 OAuth2 과정 2-1. 용어 정리이 인증 절차를 설명하기 전에 용어..
1. 🗒️ 체쿠리 MVP 버전 배포 후 반 년 반 년을 생각해 보면 모자른 부분이 너무 많았다. 엄밀히 말하면 아내 말고는 다른 사람에게 추천할 수 없을 정도였다.개선해야지 하면서도 현실이 너무 급급해 더 개선하지 못하고 지지부진했다... 기능도 말 그대로 MVP 버전으로 개발했기에 정말 출석체크 '만' 가능한 정도였다.주간 선생님의 스케쥴을 확인한다던가학생의 상세한 출석 통계 및 관리 기능을 개발하지 못했다.그리고 치명적으로 스케쥴을 변경하면 과거 기록이 보이지 않는 문제가 있었다 ... 😭이 부분은 설계의 오류였는데 손보려고 하니 일이 너무 커져서 엄두를 내지 못했다. 이걸 아내, 아내 친구들 그리고 내 지인들에게 써보라고 할 수 있을까 ? 생각하면 부끄러웠다. 그래서 2024년이 두 달 남은 ..