Spring Framework(5)
-
[클론 코딩] 네이버 카페 - 카페 만들기
네이버 카페는 네이버 회원 계정만 있다면 손 쉽게 만들 수 있다. 네이버 카페가 지원하는 '카페 만들기' 서비스는 다음과 같은 흐름으로 진행된다.카페 생성에 필요한 정보 입력카페 생성 회원은 자동적으로 생성한 카페의 매니저(관리자)로 가입 진행 위 내용처럼 카페 생성은 물론이고 생성한 회원의 카페 가입까지 자동적으로 이루어져야 한다.Cafepackage CloneCoding.NaverCafe.domain.cafe;@Entity@Table(name = "CAFE")@Getter@Builder@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructorpublic class Cafe { @Id @GeneratedValue(strategy ..
2024.05.22 -
[클론 코딩] 네이버 카페 - 네이버 회원 탈퇴
이번에는 네이버 회원 탈퇴에 대한 기능을 추가하려 한다. 실제 네이버 회원 탈퇴는 즉시 탈퇴가 아닌 탈퇴 신청 개념이며 일정 기간을 가져 중간에 탈퇴 신청을 취소할 수 있으며, 기간이 지나는 동안 별다른 조치를 하지않으면 탈퇴가 된다. 하지만 프로젝트에서는 즉시 탈퇴가 되도록 구현하였다.MemberControllerpackage CloneCoding.NaverCafe.domain.member.controller;@Slf4j@RestController@RequiredArgsConstructor@RequestMapping("/member")public class MemberController { private final MemberService memberService; @DeleteMapping..
2024.05.12 -
[클론 코딩] 네이버 카페 - 네이버 회원 정보 수정
이번에는 네이버 회원의 일부 정보를 수정하는 기능을 구현하고자 한다. 현재 네이버 회원이 가지는 정보들 중 수정이 가능한 정보는 계정 비밀번호, 이메일, 휴대전화번호, 별명이다. 특히 계정 비밀번호의 경우 다른 정보들과 다르게 변경시, 로그아웃이 되도록 구현해야 하므로 계정 비밀번호 수정 기능과 {이메일, 휴대전화번호, 별명} 수정 기능 2가지를 구현하였다.Memberpackage CloneCoding.NaverCafe.domain.member;@Entity@Table(name = "MEMBER")@Getter@Builder@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructorpublic class Member { public v..
2024.05.12 -
[클론 코딩] 네이버 카페 - 네이버 로그아웃
로그인 기능이 추가되었으니 이번엔 로그아웃 기능을 추가해보자. 우선 로그인시 생성되는 토큰을 사용해 로그인한 사용자라는 것을 확인하고 토큰정보를 복호화해 로그인 사용자의 계정 ID를 식별, 해당 사용자의 상태를 로그아웃으로 변경하고자 한다.MemberControllerpackage CloneCoding.NaverCafe.domain.member.controller;@Slf4j@RestController@RequiredArgsConstructor@RequestMapping("/member")public class MemberController { private final MemberService memberService; @PutMapping("/logout/{token}") public ..
2024.05.11 -
[클론 코딩] 네이버 카페 - 네이버 로그인
이번에는 저장되어있는 회원정보를 토대로 사용자가 로그인할 수 있도록하는 기능을 추가하고자 한다.Memberpackage CloneCoding.NaverCafe.domain.member;@Entity@Table(name = "MEMBER")@Getter@Builder@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructorpublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; @Column(name = "ACCOUNT_ID", unique = true) privat..
2024.05.10