Genie의 Java 개발 공부와 일지를 기록하는 아카이브 공간 Develop Study/Spring39 (24.05.30)[7주차] Access Token과 Refresh Token 구현 JWT Access Token과 Refresh Token어제 정리한 내용을 기반으로 내 자신 나름대로 Spring Security를 사용하지 않고, 코드를 짜려고 했고 스스로 코드를 분석하고자 한다.작동하는데는 이상이 없고, 후에 반드시 변경점을 재포스트 할 수 있도록!기존 JWT 활용 로그인 환경에서 Access Token / Refresh Token 구현 해보기Spring Security (Authentication Filter, Authorization Filter 등)을 사용하지 않고 Controller - Service - Repository 구조에서 실행될 수 있도록 구현로그인 진행할 때만 Filter를 사용할 수 있도록 세팅 public JwtAuthenticationFilter(JwtUt.. 2024. 5. 30. (24.05.29)[7주차] JWT Access Token과 Refresh Token 정리 개인 과제에 필요한 토큰의 종류와 이를 다루는 방식, 그리고 과제에 적용하기 위해 JWT Access Token 과 Refresh Token을 정리 했다.JWT Access Token과 Refresh Token 토큰을 2개를 만들어서 활용하라는 과제로이에 대해서 고민하고 찾아보면서 공부를 한 것을 정리했다.가급적이면 참고자료의 문헌을 보지 않고, 이해하고 나만의 언어로 외워서 정리하려고 노력했다.기존 JWT, JSON Web Token인증 인가의 방식으로 Client-Server간 주고 받을 수 있는 방법외부의 탈취가 쉬운 환경Client-Server간 어떤 Key값을 토대로 정보=Payload 를 토큰화 시키고 주고 받기 때문에, 중간에 Key값을 알고 중간에 Token을 갈취만 할 수 있다면, 어떤.. 2024. 5. 29. (24.05.28)[7주차] void 반환 타입일 때의 response 사용 개인과제를 진행하면서 적응을 하는데도 아직도 많이 적응 되지 않아서 시간이 걸리는게역랑일 수도! 클라이언트에게 직접 JSON 타입으로 Response 을 찾아보는 것만으로도 엄청 시간이 걸려서블로그에 기록..!Spring 숙련 개인 과제 주의할 점 정리 Client에게 출력할 내용 reponse더보기// Failure @Override protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException { response.setStatus(HttpStatus.UNAUTHORIZED.. 2024. 5. 28. (24.05.27)[7주차] Validation 의 @Pattern 오늘 점심, 저녁까지 밥먹으면서 개인과제를 붙들다간 뭔일이 났는지 하루종일 버그만 잡다가 지나가버렸다.. 결국 발견한건.. DB의 이름이 application.properties의 이름과 살짝 달라서 계속 오류가 났던 것..복수형/단수형 때문에 s를 안붇힌게 큰 화근이 되어버렸다.Spring 숙련 개인 과제 주의할 점 정리Validation 의 @Pattern더보기@Getter@Setterpublic class SignupRequestDto { @NotBlank @Size(min=4, max=10) @Pattern(regexp = "^[a-zA-Z0-9]*$", message = "알파벳과 숫자로만 이뤄져야합니다.") private String username; @NotBla.. 2024. 5. 27. (24.05.24)[6주차] Spring 숙련 강의 04 마무리 1차로 Spring 숙련 강의를 전부 듣기는 했는데도 아직도 이해가 완벽히 안되는 부분이 많기 때문에7주차 진행이 가더라도 한번더 듣는 시간을 가져야 할것Spring 숙련 강의 간단정리어제 학습했던 Entity간의 관계 및 방향성을 적용해서 실습하는 학습을 오늘 종일 진행그 중에 중요한 부분인 orphanRemoval과 Scheduer, 페이징과 정렬에 대해서 나의 말로 정리더보기고아 Entity 삭제orphanRemoval연관관계를 삭제하는 것만으로도 Entity자체를 DB에서 삭제를 할 수 있음즉, 기존의 CascadeType.REMOVE 의 기능을 같이 수행하고 있다고 볼 수 있음***단, 참조하고 있는 Entity를 삭제하는지 확인을 꼭 해야@ManyToOne 관계의 Entity일 경우 똑같은 항.. 2024. 5. 24. (24.05.23)[6주차] Spring 숙련 강의 03 SQLD 취득에 공부를 할 때, 단순히 쿼리문에 대해서 공부한 것 뿐만아니라 엔터티의 관계에 대해서 이론적으로 공부한 것이 조금 도움이 많이 되는 학습이었다. 하지만, Java에서의 JPA 일 경우에는 또 표현하는 방법이 많이 다르기 때문에 같이 연관 시켜서 학습한 것을 복습하고 기억할 수있도록 해야할 것.Spring 숙련 강의 간단정리DB내 Entity를 Java에서 관계를 형성할 때, 객체로 상용하면서 방향성을 가지게 되기 때문에 이에 대한 1:1, 1:N, N:1, N:M Entity끼리의 관계를 정리SQL쿼리에 의한 JOIN과 차이점을 보이기 때문에 꼭 기억을 해둬야할 것Entity의 관계에 대해서 SQL쿼리를 통해서 DB가 알아서 해주나 Java에서는 JPA 기능을 활용해야Annotation을 .. 2024. 5. 23. (24.05.22)[6주차] Spring 숙련 강의 02 난이도가 점점 높아지면서 이해하고 소화시키는데 약간 무리가 있어서 학습시간이 과하게 늘어지는 경향이 있다.이럴 수록 정신을 좀 차려서 집중할 수 있도록 학습 환경 구성이 필요하다고 생각Spring 숙련 강의 간단정리이번 강의에서는 Spring Security Framework에서의 formLogin과 JWT를 사용하는 Customization, 그리고 권한 설정과 검증 Validation에 관한 내용에 대해서 학습이를 파악하기 위해서 SecuritycontextHolder 구조를 이해하고 사용을 할 수 있고, Filter를 사용해야 하는 부분이 여러 패키지 사이를 움직이면서 작동하는 것이기 때문에 매우 복잡하고 난이도가 있게 느껴졌다반드시 2, 3회를 더 강의와 개인 Notion 노트를 보고 복습을 진행.. 2024. 5. 22. 이전 1 2 3 4 5 6 다음