JWT(Json Web Token) JWT는 웹상에서 정보를 JSON 으로 주고 받기 위한 암호화된 토큰이다. JWT는 크게 header, payload, signature 로 구성되어 있으며, 셋은 "." 으로 구분이 된다. header 에는 어떤 암호화 알고리즘을 사용하는지 등이 들어있다. payload 에는 전달하려는 정보를 (이를 claim이라 부른다) 넣어두며, JWT는 원문을 읽을 순 있기 때문에 인증에 필요한 최소한의 정보 (예를 들면 아이디, 토큰 만료일자, 권한의 범위 등) 만 넣어둔다. signature 에는 header와 payload를 시크릿키로 암호화를 해둔다. 이로인해 토큰이 조작되어도 시그니처를 통해 변경여부를 확인할 수 있다.
전체 글
안녕하세요. PS풀이, 개발일지 및 일기, 소소한 이야기를 적어가는 윤재 입니다.Object mapping 객체 간 매핑을 뜻하며, 엔티티를 DTO로 변환하는 등과 같이 다른 객체로 변환하거나 합치는 경우에 사용한다. 보통 이 경우엔 코드 중복이 발생하기 쉽고, 실수하기도 쉽고, 필드 수정이나 삭제가 일어날 경우 역시 수정이 필요하고, 비즈니스 로직에 섞이기 때문에 생산성이 떨어진다. 따라서 객체 매핑 라이브러리를 이용하여 이를 해결하며, 대표적으로 ModelMapper와 MapStruct 가 있다. 두 라이브러리 중에서는 MapStruct가 더욱 장점이 많아서 이를 쓰며, 둘 간의 차이점은 다음과 같다. 컴파일 시점에서 어노테이션을 읽어 구현체를 만들어내서 리플렉션이 발생하지 않음. 처리속도가 더 빠름 (원본 글에선 단위가 m/s 인데 이게 머선 단위지..) 컴파일 시 오류를 확인..
프로젝트 개요 프로젝트 제목 : 무비토크 프로젝트 설명 : 영화 리뷰 뉴스피드 서비스로, 리뷰마다 장르 해시태그가 있고, 특정 장르 해시태그를 선택하면 그 해시태그가 들어간 리뷰들을 보여준다. 프로젝트 링크 : 링크 와이어 프레임 피그마 링크 ERD 설계 ERDCLOUD 링크 API 명세 API 명세 노션 전체 API 명세 API 명세의 내부 페이지는 다음과 같다.
오늘 스프링 시큐리티를 다루다가 겪었던 에러다. 과제 제출 5분전까지 해결을 못해서 일단 제출하고 고쳤다 ㅋ 문제 Spring security filter 추가 IllegalArgumentException : does not have a registered order 에러 발생 해결 @Bean public JwtFilter jwtFilter() { return new JwtFilter(jwtUtil, userDetailsService); } @Bean public ExceptionHandleFilter exceptionHandleFilter() { return new ExceptionHandleFilter(); } @Bean public SecurityFilterChain securityFilterCha..
아주 유용한 기능을 하나 알게 됐다. 스프링 시큐리티를 쓰다보면 맨날 기본설정 자동으로 다 해줘서 403 스테이터스를 보게 되는데.. 시큐리티를 한 줄로 없애주는 설정. @SpringBootApplication(exclude = SecurityAutoConfiguration.class) // Spring Security 인증 기능 제외 public class SpringAuthApplication { public static void main(String[] args) { SpringApplication.run(SpringAuthApplication.class, args); } } @SpringBootApplication(exclude = SecurityAutoConfiguration.class) exc..
어제는 공가라서 TIL 안 썼다. 최종 면접을 다녀왔다. 면접 시간은 2시간인데, 왕복 5시간이었다.. 11시에 출발해서 7시에 도착.. 환승없이 지하철로 쭉 2시간을 가는데 집올 때는 퇴근시간이랑 겹쳐서 서서 갔다 ㅠㅠ 면접은.. 잘 모르겠다.. 합격 확률은 50% 미만으로 예상을 해 본다. 구글링해보니 대충 어떤 부분에서 질문이 나온다길래 그 부분을 중점적으로 준비를 했는데 1도 안 나왔다. ㅋㅋ 아니, 절대 예상을 못 한 질문만 나왔다 ㅋㅋㅋㅋ 그래도 나름 필살기라고 생각한 것을 어필하려고 어떻게든 방향을 틀면 면접관분들은 이악물고 다시 유턴을 해서 다른 질문을 하셨다.. 아무래도 미리 정해둔 질문 리스트가 있고, 면접자가 뭐라고 하든 꼬리 질문따윈 안 하고 이 리스트의 질문을 다 해야해 라는 느낌..
내일 면접이다,, 가는 길 체크 완, 정장 이상 무, 이제는 예상 질문 답변 써둔거 달달 외우고 있다. 면접이 떨어질까 걱정보다, 드디어 면접이 끝난다는 해방감이 압도적으로 크다... 최근 일주일 평균 심박수 120 BPM 일듯 ㅋ ㅋ ...근데 날 안 뽑는게 손해 아닌가? 날 탈락시킬 정도로 안목이 없는 회사에 가야되나? 스프링 프레임워크 스프링 이라고도 하며(프레임워크를 붙이는 것이 정확한 표현이다), 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. 1.0은 2004년 3월에 출시했으며, 현재 메이저 버전은 6이다. 스프링은 엔터프라이즈용 자바 애플리케이션을 편하게 개발할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크다. 스프링은 POJO 프로그래밍을 지향하는 특징을 가지며, 그를 ..
오랜만의 일기. 쓸 겨를이 없었다. 수요일에 최종면접을 본다.. 하루하루 입맛이 없고 쉴 때도 괜히 마음이 찔린다. 그냥 마음 비우고 봐야지.. 객체지향 프로그래밍이란 💡 시스템을 상태와 행위를 가진 객체들의 공동체로 보고, 객체들 간의 협력으로 로직을 구성하는 프로그래밍 방법. 장점 코드 재사용성이 높다. 누군가 만들어놓은 클래스를 재사용하거나 상속하여 확장한다. 유지보수가 쉽다. 수정할 부분이 클래스 내의 멤버 변수나 메서드로 존재하여 해당 부분만 수정하면 된다. 대형 프로젝트에 적합하다. 클래스 단위로 모듈화하거나 인터페이스로 … 업무분담하기 쉽다. 단점 처리 속도가 상대적으로 느리다. 객체가 많으면 용량이 커진다. 설계 시 많은 시간과 노력이 필요하다. 객체지향의 특징 추상화 불필요한 정보는 숨기..
람다 서버를 준비하거나 관리하지 않아도 코드를 실행할 수 있는 컴퓨팅 서비스. 서버리스 서비스다. 람다를 사용하면 필요할 때만 함수를 실행하고 자동 확장된다. 또한 사용한 만큼 비용을 지불한다. 람다는 AWS가 직접 서버에 관한 것들은 관리를 해주기 떄문에 (VPC도 관리할 필요 없다.) 개발자는 자신의 코드만 관리해주면 된다. 내 주식앱은 람다를 사용하고 있는데 이유는 다음과 같다. 우선 내가 앱과 서버 모두를 관리해야 하기에는 작업량이 너무 많았고, 크롤링 같이 단발성의 작업에 상시 서버를 켜두는 것보다 사용한 만큼만 지불하는 것이 더욱 비용효율적이며, 스케일링도 자동으로 해주어 요청에 탄력적으로 대응할 수 있었다. 제일 컸던 것은 일정량까지는 무료다. 그래서 슬퍼해야할지, 기뻐해야할지 모르겠지만 아..