개인 프로젝트

    [쇼핑몰 만들기] 4 - 소셜 로그인 기능 구현

    OAuth OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개발형 표준이다. (wikipedia) 역할 Client : 사용자 Authorization Server : 인증(Accesss Token) 및 권한부여를 관리하는 서버 ex)구글, 카카오 Resource Server : 자원(사용자 정보) 관리 및 제공 서버 ex)구글, 카카오 회원 정보를 관리 소셜 로그인 기능 구현 [요구사항 확인] 구글 로그인 설정 카카오 로그인 설정 소셜 회원가입 성공 시, 회원 정보 수정 화면으로 이동 구글 OAuth 서비스 등록 https://console.cloud.g..

    [쇼핑몰 만들기] 3 - 로그인 기능 구현

    로그인 기능 구현 [요구사항 확인] 로그인 성공 시 메인화면으로 이동 로그인 실패할 경우 오류 메시지 출력 로그아웃 기능 구현 Controller 개발 로그인과 로그아웃의 경우에는 SpringSecurity가 로그인과 로그아웃 과정을 대신 처리해주기 때문에, Controller만 추가로 구현하였습니다. 로그인 뷰와 로그인에 실패하는 테스트를 우선 수행한뒤 Controller를 구현하였습니다. 결과 화면 https://github.com/tjdgh925/MarketProject/issues/2 [FEAT] 회원가입 기능 구현 · Issue #1 · tjdgh925/MarketProject 📌 개요 회원 가입 기능 구현 👨‍💻 작업 사항 회원가입 성공 시 로그인 페이지로 이동 동일한 이메일로 회원가입 할 경..

    [쇼핑몰 만들기] 2 - Spring Security 적용

    Spring Security Spring Security는 Spring 기반의 애플리케이션의 보안을 담담하는 스프링의 하위 프레임 워크 입니다. Spring Security는 인증과 권한에 대한 부분을 Filter의 흐름에 따라 처리하고, 로그인, 로그아웃 등 보안과 관련된 많은 기능을 제공해주기 때문에 직접 구현하지 않아도 된다는 장점이 있습니다. 먼저 Spring Security를 사용하기 위해서 build.gradle에 spring security depedency를 추가합니다. implementation 'org.springframework.boot:spring-boot-starter-security' Spring Security 적용 SecurityConfig 구현 UserDetails 구현 U..

    [쇼핑몰 만들기] 1 - 회원가입 기능 구현

    TDD TestDrivenTest : 테스트 주도 개발, 테스트를 먼저 만들고 테스트를 통과하기 위해서 코드를 짜는 것 저는 이 프로젝트에 TDD를 적용하였고, Repository -> Service -> Controller 순서로 개발을 진행하였습니다. 회원가입 기능 구현 [요구사항 확인] 이미 존재하는 회원이 있을 경우 실패 비밀번호와 확인용 비밀번호가 일치하지 않을 경우 실패 회원가입 성공 시 로그인 페이지로 리다이렉트 Repository 개발 우선 회원을 저장할 때 사용하는 save 메소드와 중복 회원을 확인하기 위한 회원 조회 메소드에 대한 테스트 코드를 작성합니다. 그 다음, 테스트가 성공할 수 있도록 그에 맞는 MemberRepository에 대한 코드를 작성합니다. Service 개발 Se..

    [쇼핑몰 만들기] 0 - 프로젝트 생성 및 환경설정

    프로젝트 환경 패키지 구조 이번 프로젝트는 도메인 주도 설계 방법을 적용해서 패키지 구조를 설계하였습니다. [Domain Driven Design] 도메인 주도 설계는 도메인을 중심으로 설계하는 방법을 의미합니다. 도메인은 실세계에서 사건이 발생하는 집합을 의미합니다. [패키지 역할] domain : 도메인 모델을 구현하고, 각 도메인들의 핵심 로직을 구현 global : 프로젝트에서 공통적으로 사용되는 설정 혹은 에러 처리 방법을 구현 infra : 외부와의 통신을 담당하는 계층 web / api : 사용자 요청에 대해 해석하고 응답하는 일을 책임지는 계층 (Controller) 프로젝트 설정 (application.yml) 테스트 환경용 설정 (application-test.yml) 테스팅 환경과 개..