전체 글(141)
-
인증, 인가 부분이 추가된 개인 프로젝트(1일차)
🕛개인 프로젝트 (TO-DO LIST PLUS AUTHORIZATION)💡 프로젝트 기간: 2024-06-07~2024-06-09 프로젝트 목적기존 할일 카드 목록과 댓글 작성의 CRUD 구현에 더해 로그인에 성공한 사용자만이 카드를 생성하거나 댓글을 작성할 수 있으며 로그인한 사용자가 본인이 작성한 카드 에대해서만 수정,삭제,에 대한 접근이 가능하고, 다른사람의 카드나 댓글에 대해서는 수정,삭제가 불가능하도록 한다. 프로젝트 진행과정 카드 CRUD DONE댓글 CRUD NOT YET인증 인가 구현 DONE인증 인가 적용 NOT YET
2024.06.07 -
인가
✔오늘 배운 중요한 🔑 point클라이언트가 서버에 HTTP 요청을 할때 HTTP의 Authorization 헤더에 토큰이 들어있다.클라이언트 요청보냄-> OncePerRequestFilter를 통해 JWT 토큰 추출 -> JwtPlugin의 validateToken으로 유효성 검사-> 유효한 토큰일시 정보 추출하여 SecurityContextHolder에 저장 -> 필터 체인을 통해 다음 단계 진행SecurityContextHolder에 인증정보를 저장하는 것은 현재 인증된 사용자의 정보를 관리하고 일관되게 인증 및 권한 부여를 처리하기 위함이다 JWT (JSON Web Token) 기반의 인증에서는 자격 증명(credentials)이 JWT 자체에 포함되어 있기 때문에, 별도로 자격 증명을 처리할 ..
2024.06.06 -
JWT토큰을 이용한 로그인 기능
✔오늘 배운 중요한 🔑 pointSpring Security 의존성을 추가하게 되면 15개의 기본 필터들이 자동으로 적용이 되니 SecurityConfig에서 원치 않은 필터를 끌수 있다.https://jwt.io/ 사이트를 통해서 내가 생성한 토큰에 정보가 잘 담겼는지 확인할 수 있다.모든 인증을 Spring Security를 통하여 처리하고 싶다면 Filter를 쓰면 되고, 그렇지 않다면 Controller를 사용하여 구현하면 된다.🎯 오늘 배운 내용 인증 기본 설정 인증 관련 설정하기implementation("org.springframework.boot:spring-boot-starter-security")build.gradle.kts에 spring-security 의존성 추가 implemen..
2024.06.05 -
중복된 부가기능을 커스텀 어노테이션으로 (AOP)
✔오늘 배운 중요한 🔑 pointAOP 라는건 결국 중복된 부가기능의 작성을 없애고 싶어서 커스텀 어노테이션을 만들어서 적용시키는것🎯 오늘 배운 내용 AOP : 핵심 로직 ,부가기능 분리해서 부가기능을 모듈화를 하여 재사용성을 매우 좋게 만드는 패러다임 옆에서 객체들을 바라보았을때 중복되는 부가기능들을 모듈화 하는것이 바로 AOP의 핵심이다 AOP 주요 개념!Aspect: 부가기능 모듈화한 단위PointCut: Aspect가 적용될 프로그램상 실제 위치JoinPoint: PointCutd의 후보군, Aspect가 적용될 수 있는 위치Advice: 실질적인 로직(함수)Weaving: Aspect를 실제 코드에 적용하는 과정 AOP를 적용할 수 있는 대표적인 2개의 프레임워크Spring AOP:중간에 프..
2024.06.04 -
팀 프로젝트 회고
🕛팀 프로젝트 (뉴스피드 만들기)💡 프로젝트 기간: 2024-05-27~2024-06-03 KPT KeepIntellij 코드 스타일을 모두 Kotlin Style Guide에 맞추고 IntelliJ의 Actions On Save 기능을 활용해 어느 정도 코딩 컨벤션을 맞춘 것새로운 기능을 개발 했을 때 PR을 요청하고 반드시 한명 이상 코드 리뷰를 거친 후에 main 에 merge하도록 하는 정책Tutor 님의 피드백을 바탕으로 역할 분담을 한 것 (하나의 문제를 조금 더 세세한 문제로 쪼개서 분담을 하는 것, 같은 역할을 하는 구현체를 하나의 Interface를 정의하여 병렬적으로 개발)Problem, Try개발 진척도의 공유가 조금 미흡했던 점 → 문서를 통해서 공유, Git issue 관리 ..
2024.06.03 -
적합한 유효성 검사?
✔오늘 배운 중요한 🔑 point간단한 데이터 검증이 필요한 경우에는 @어노테이션을 사용하는 것이 좋고, 복잡한 데이터 검증 로직이 필요한 경우에는 내부 함수 로직을 사용하는 것이 좋다.🎯 오늘 배운 내용 우리가 평소 웹사이트를 이용할때 특정 조건에 맞는 형식을 사용해야할 때가 있다특정 형식에 맞지않는 입력값들을 입력했을경우에는 회원가입이 되지 않는식으로 되어있는 형태는 우리에게 매우 익숙하다. 이러한 규칙들은 API를 처음 설계할때 정하는 POLICY이며 사용자에 따라서 POLICY정책을 다르게 설정 할 수 있다. 이러한 데이터를 검증하는 방식으로는 @어노테이션을 사용하는 방법과 함수 내부 로직으로 검증하는 방법이 존재한다 @Valid @Valid 어노테이션을 사용하는 방법은 매우 간단하다.impo..
2024.06.02