validation 적용을 하려고 한다 . @valid 적용 할 목록 이메일 필드에 이메일 형식 검증 추가비밀번호 필드에 대소문자, 숫자, 특수문자(~!@#$%^&*) 포함 최소 8자 이상 검증 추가스페이스 네임 필드에 최대 20자 미만 검증 추가is_public 필드에 Y 또는 N 값 검증 추가채널 이름 필드에 최대 50자 미만 검증 추가채널 타입 필드에 T 또는 V 값 검증 추가 /** * ChannelController는 채널 관련 API 요청을 처리 */@RestController@RequiredArgsConstructor@RequestMapping("/spaces/{spaceId}/channels")public class ChannelController { private final Chan..
TIL
저번에 username추가 하고 프로필 조회, 수정, 비밀번호 변경을 구현했다. 유저 엔티티다@NoArgsConstructor(access = AccessLevel.PROTECTED)@Getter@Table(name = "user")public class User { @Id private Long id; private String email; private String password; private String intro; private String nickname; private int status; private Long kakaoId; // 상태: 인증 전, 인증 완료, 탈퇴 public enum Status { ACTIVATE, ..
채널 쪽 api를 설계 후 우리의 erd를 보니깐 현재 이메일하고 비밀번호밖에 없다.그래서 user name이라고, 닉네임 같은 걸 넣어줬다.그래서 dto에 user name을 추가해 주고!@AllArgsConstructor@Getterpublic class UserRequestDto { private String username; private String email; private String password; private String intro;}@Getterpublic class UserResponseDto { @JsonProperty private Long id; @JsonProperty private String username; @JsonPr..
1차 스코프에서 스페이스(Space) CRUD 작업을 완료하였으며, 이후 다른 CRUD 작업도 맡기로 했다. 나는 간단한 유효성 검사와 함께 채널(Channel), 프로필(Profile), 그리고 친구(Friend) 기능을 추가로 맡았다. 채널쪽은 다른사람이 일부 구현해놓은거를 내가 완성 시키는게 목적이었고 프로필은 이미 해봐서 간단했었다.친구쪽 부분은 2차스코프였지만 매우 중요한(?) , 꼭 있어야할 시스템이기 때문에 같이 구현했다. 채널(Channel) API 설계는 다음과 같이 구성하였습니다.채널 생성 시, 텍스트(Text) 혹은 음성(Voice) 타입(T 또는 V)을 선택해야 하며, 다른 타입이 입력되면 예외를 발생시키도록 처리했습니다. 프론트엔드에서 T와 V만 선택할 수 있게 할 수도 있지만, ..
최종프로젝트가 시작한지 약2주가 지나고 우리팀은 설계를 하고 개발을 시작한지 약 1주일 넘게 지났다나는 처음 1차 스코프 맡은 스페이드쪽 CRUD를 맡았다. 내가 맡은건 비교적 다른팀원이 했던거보다 엄청 쉬워서금방 끝낼 수 있었다. 다른팀원분들이 맡은건 웹소켓을 이용한 음성, 채팅 , 프론트 등 다 어려운거를 맡으셔서나는 쉬운걸 빨리 끝냈으니, 스코프에서 나온 기능들을 빠르게 api를 뚫으려고 한다. 일단 저번 블로그에서 한 CRUD는 됐긴했는데 , 예외처리부분이 안돼 있었다. 예외처리 부분을 공통으로 구현하고다른사람이 기능을 개발할때 파일을 @@ErrorCode , @@SuccessCode 등 이렇게 파일을 만든 후 간단하게예외를 찍게 하려고 한다. 아래 코드는 공통 예외처리 부분이다.@RestCont..
최종 프로젝트가 시작되고 며칠이 지났다일단 기능 분배를 했는데, 내가 팀에서 상대적으로 실력이 부족하다 보니 제일 쉬운 CRUD를 맡았다스페이스 쪽 api와 erd는 이렇게 짰다.이렇게 짰고 , erd는 그냥 저번에 한거 그대로 가긴했다. 기본적인 CRUD 코드이다 스페이스 부분 api와 erd만 잘 설계한다면 그렇게까지 어렵지 않다@RestController@RequiredArgsConstructor@RequestMapping("/spaces")public class SpaceController { private final SpaceFacade spaceFacade; @PostMapping public Mono> createSpace(@RequestBody SpaceRequestDto ..