Tiny Star

📌TIL [Today I Learn]

[TIL] 23년 6월 22일 목요일

청크 2023. 6. 22. 21:27

23년 6월 22일 목요일

오늘의 목표 : Spring 숙련 2주차 수강완료 및 숙련주차 개인과제

 

오늘 공부한 내용🤓

당장 이번주 금요일까지 과제 제출 기한이 있어서 다 이해할 수는 없지만 과제를 하면서 이해하기로하고 빠르게 진도를 나갔다.

(그런 와중에 과제제출과 숙련 공부기간이 약 4일정도 연장되어 조금 더 깊게 공부를 할 수 있을 것 같다^_^)

 

숙련주차 수강을 완료하고 지난 주차 과제에서 주석을 추가하고 숙련주차 과제를 시작했다.

숙련주차 과제 1번의 요건 회원가입 API와 로그인 API를 추가로 구현하는게 우선이었다.

 

[UserController]

package com.sparta.blogapi.controller;

import com.sparta.blogapi.dto.UserRequestDto;
import com.sparta.blogapi.dto.UserResponseDto;
import com.sparta.blogapi.service.UserService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
@RequiredArgsConstructor  //생성자 주입으로 userService에 대한 생성자를 생성하지 않아도 됨
public class UserController {

    private final UserService userService;

//
//    1. 회원 가입 API
//    - username, password를 Client에서 전달받기
//    - username은  `최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)`로 구성되어야 한다.
//    - password는  `최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9)`로 구성되어야 한다.
//    - DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기

    @PostMapping("/signup")
    public UserResponseDto signup(@RequestBody UserRequestDto requestDto){
        return null;
    }



//2. 로그인 API
//    - username, password를 Client에서 전달받기
//    - DB에서 username을 사용하여 저장된 회원의 유무를 확인하고 있다면 password 비교하기
//    - 로그인 성공 시, 로그인에 성공한 유저의 정보와 JWT를 활용하여 토큰을 발급하고,
//    발급한 토큰을 Header에 추가하고 성공했다는 메시지, 상태코드 와 함께 Client에 반환하기

    @PostMapping("/login")
    public UserResponseDto login(@RequestBody UserRequestDto requestDto, HttpServletResponse res) {
        return null;
    }
}

아직 다 완성된 코드는 아니지만, 오늘 UserController class를 작성해보면서 지난 과제 복습도 되었다.

 

+

왜 내가 선발된지 모르겠는 과제미션수행단..!

1차 소집에서 내주신 깃 레퍼런스를 보고 주석을 달면서 코드 이해하기 과제를 어느정도 하고,오늘은 트랜젝션과 jwt 재발급, isPresent, orElseThrow, IllegalArgument Exception에 대해 구글링하고 TIL에 적는 과제를 추가로 내주셨다.

 

+

 

그동안 스터디한 GetMapping과 Map, 객체 생성/저장의 내용 + Map의 메서드를 복습할 겸

다른 팀원분께도 알려드리고 코드를 리뷰하는 시간을 가지고 오늘도 9시 이후 개인 스터디를 진행했다.

 

어려웠던 내용😵‍💫

강의와 강의에서 만든 코드 + 깃허브 레퍼런스를 가지고 참고하면서 이번주차 과제를 하는 중인데 토큰관련 모든게 어렵다..

궁금&부족한 내용❓

 

느낀 점💡

다른 코드를 보고 작성하는 것 자체가 굉장히 도움이 안될 것이라고 생각했다.하지만 오늘 숙련주차 과제를 하면서 참고해보니 단순히 복사붙여넣기를 하는 클론코딩이 아니라하나하나 주석도 달고 스스로 쓸 수 있는 코드는 써보면서 전체적인 구조를 이해하는게 중요한 것 같다.

'📌TIL [Today I Learn]' 카테고리의 다른 글

[TIL] 23년 6월 27일 화요일  (0) 2023.06.27
[TIL] 23년 6월 26일 월요일  (0) 2023.06.26
[TIL] 23년 6월 19일 월요일  (0) 2023.06.20
[TIL] 23년 6월 16일 금요일  (0) 2023.06.16
[TIL] 23년 6월 15일 목요일  (0) 2023.06.15