전체 글 (201) 썸네일형 리스트형 [주특기 2주차] Spring 4일차 troubleshooting 1. @CookieValue를 이용해서 토큰을 받는 걸 HttpServletRequest를 이용하여 토큰을 받는 걸로 수정했을 경우 토큰을 검증하는 과정에서 오류가 발생. @CookieValue를 사용할 경우 토큰 값에 %20로 인코딩한 공백이 자동으로 공백으로 들어오고, HttpServlet의 경우 %20가 그대로 문자열로 토큰 값을 가져와 따로 공백으로 수정처리를 통해 오류 해결 Refresh Token을 사용하기 위해서 여러가지로 시도를 해보았는데, AccessToken과 구분을 지어 토큰 2개를 발급을 하고 Refresh의 경우에는 DB에 저장하여 로그인 시 저장하여 중복되지 않게 관리를 하고 Access가 만료됐을 경우 Refresh정보를 가져와서 검증을 하고 다시 .. [주특기 2주차] Spring 3일차 Pattern으로 에러처리가 들어온 메시지를 처리하는 방법을 찾았다. getmMessage를 타고 들어가서 보니 bindingResult에서 에러값을 가져오는 부분이 있는데 이걸 출력을 해보니 선택했던 에러 메시지가 이 부분에 들어가 있었다. 이제 에러 처리부분은 메시지들을 정한 대로 출력할 수 있도록 수정을 하고 댓글을 생성, 수정, 삭제를 구현해보았다. 엔티티는 게시물과 유저 둘 다 양방향 N 대 1의 관계를 주어 구성하여 사용을 하였다. 이제 과제 Lv3은 게시물 조회 시 댓글을 같이 조회하는 부분만 구현을 하고 더 나아가기 부분을 한번 확인하고 적용을 시켜봐야겠다. [Weekly I Learned]9월 1주차 DI (Dependency Injection : 의존성 주입) 외부에서 의존성을 주입하여 객체간의 결합을 느슨하게 만들어 사용하는 스프링의 핵심 개념으로 구현 방식, 기술이라고 할 수 있다. (객체를 사용하기 위해서 객체를 받아서 사용하는 것) 클라이언트가 어떤 서비스를 사용할 것인지 직접 정해서 사용하는 것이 아니라 클라이언트에게 해당 서비스를 주고 사용할 수 있도록 해주는 것이다. DI 장점 의존성으로 부터 격리시켜 코드 테스트에 용이하다. DI를 통하여, 불가능한 상황을 Mock와 같은 기술을 이용하여, 안정적으로 테스트 가능하다. 코드를 확장하거나 변경 할 때 영향을 최소화 한다. (추상화) 순환참조를 막을 수 있다. IoC (Inversion of Control : 제어의 역전) 객체를 직접 생.. [JAVA][Level1]PROGRAMMERS 개인정보 수집 유효기간 개인정보 수집 유효기간 문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날짜가.. [주특기 2주차] Spring 2일차 오늘은 이제까지 본 강의들을 가지고 페어가 정해지기 전에 미리 과제 3에 대해서 연습을 할 겸 과제의 코드를 수정하였다. 과제를 기존에 username, password의 유효성 검사를 Entity에서 걸었다가 password의 암호화로 인해서 비밀번호에 오류가 나서 service로 옮겨 matches를 이용해서 유효성 검사를 구현했는데, 다시 @Pattern, @Size를 이용해서 리팩터링을 해보았다. 회원가입 시 유효성 검사를 할 때 Controller에서 RequestDto에 @Vaildated를 이용해서 유효성 검사를 구현을 하면서 같이 예외처리 부분을 한 번에 처리하기 위해서 GlobalExceptionHandler를 추가하여 에러에 대한 메시지를 출력했다. 그런데 Pattern으로 에러처리가 .. [주특기 2주차] Spring 1일차 Spring 숙련주차 2주차 강의 My Select Shop 설계 이때까지 배운 내용들을 종합적으로 활용하고 구현해 보면서 배워보는 과정이라서 따라가면서 많은 점을 배울 수 있었다. 네이버 API를 이용해서 상품을 가져오고 카카오 API를 이용해서 카카오 로그인 연동을 시키는 등 다른 API를 가져와 적용을 시키고 Spring Security를 이용해 인증과 인가를 구현했다. 여전히 혼자서는 구현하기는 힘들지만 이제 어느 정도 흐름정도는 이해가 되고 있는 느낌이다. 엔티티의 관계도 쓰임에 따라 N 대 1의 단방향, 양방향 관계와 N 대 M 관계를 활용하면서 구현하면서 상황마다의 관계를 어떻게 연결 해야할 지 알 수 있었다. RequestEntity의 경우에는 적으면서도 아직 어떤식으로 동작하는지는 알겠는.. [주특기 1주차] Spring 7일차 Spring 숙련주차 2주차 강의 Entity 연관 관계 Entity는 JPA를 이용해서 자동으로 DB의 테이블을 구성해 준다. Entity가 하나의 테이블로 객체하나가 하나의 row라고 생각하면 편하다. 필드가 컬럼으로 다양한 어노테이션으로 설정이 가능하다. 관계를 설정하고 cascade옵션을 이용해서 영속성 전이를 이용해 자동 연결 등록 및 삭제가 가능하다. 1대1 관계(OneToOne) : 엔티티 간에 1대1로 맺어준다, 단방향 : 외래 키 주인을 직접 지정해 주인만 외래 키를 등록, 수정, 삭제를 할 수 있고 반대쪽은 외래 키를 읽기만 가능하다. 양방향 : 양쪽 다 등록, 수정, 삭제가 가능하다. N 대 1 관계(ManyToOne) : N이 외래 키의 주인으로 있는 여러 개 대 1로 맺어준다. 단.. [주특기 1주차] Spring 6일차 Spring 과제 Level 2 신규 서비스 요구사항 회원 가입 API username, password를 Client에서 전달받기 username은 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성되어야 한다. password는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성되어야 한다. DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기 참고자료 https://mangkyu.tistory.com/174 https://ko.wikipedia.org/wiki/정규_표현식 https://bamdule.tistory.com/35 로그인 API username, password를 .. 이전 1 ··· 13 14 15 16 17 18 19 ··· 26 다음