TIL 22.12.16 / 개인과제 마무리, 후발대 과제

쓰옹·2022년 12월 16일
0

개발자를 향해~~TIL✍

목록 보기
40/87

스프링 숙련 개인과제

깃허브 링크


스프링 입문 과제로 블로그 서버 만든 거에서 발전시키는 과제였다.

요구사항 변경

  1. 회원 가입 API
    • username, password를 Client에서 전달받고 정규표현식 설정
    • DB에 중복된 username이 없다면 회원을 저장하고 Client 로 성공했다는 메시지, 상태코드 반환하기
  2. 로그인 API
    • username, password를 Client에서 전달받고 로그인 성공 시, 로그인에 성공한 유저의 정보와 JWT를 활용하여 토큰을 발급하고, 발급한 토큰을 Header에 추가하고 성공했다는 메시지, 상태코드와 함께 Client에 반환
  3. 선택한 게시글 수정 API
    • 비밀번호로 사용자 일치 여부 확인하던 로직을 토큰 인증으로 변경
  4. 선택한 게시글 삭제 API
    • 비밀번호로 사용자 일치 여부 확인하던 로직을 토큰 인증으로 변경

진행

  • API명세 수정
  • 테이블 ERD 설계
  • User 클래스 추가, Blog 객체 수정
  • JWT 구현
  • 회원가입 기능 구현
  • 로그인 기능 구현
  • 게시글 작성 기능 수정 - 토큰 인증
  • 게시글 수정 기능 수정 - 토큰 인증
  • 게시글 삭제 기능 수정 - 토큰 인증
  • 회원가입 시 정규표현식 추가

추가 공부할 것

  • 위에 추후 정리할 내용 정리
  • Exceptionhandler 사용해서 예외처리 하기
  • 튜터님 코드리뷰 해주신 특강 보면서 코드 수정하기
  • Client와 주고 받는 데이터 타입 공부


후발대 과제


  • 랜덤으로 정수 10개 저장, 최소값을 찾아주세요!
public class FindMinNumber() {
	public static void main(String[] args) {
		Random random = new Random();

        int[] numbers = new int[10];
        for (int i = 0; i < 10; i++){
            numbers[i] = random.nextInt(100)+1;
        }
        
        System.out.println(Arrays.toString(numbers));

        int min = numbers[0];
        for (int num : numbers) {
            if (num < min) {
                min = num;
            }
        }
        System.out.println(min);
	}
}
  • 처음에 int min = 0; 이렇게 짰는데 결과가 계속 0이 나왔다.
    • 랜덤으로 숫자가 생성되니까 뭘 하든 0보다 크게 나올 수 밖에... 이 생각을 못했다. 코드를 돌려보고 나서야 깨달음.
    • 특정 숫자로 지정하지 않고 배열의 첫 인덱스 숫자로 지정하면 된다.
  • nextInt()
    • 처음에 괄호 안에 아무것도 설정을 안하고 랜덤을 돌리니.. 숫자가 어마무시 하게 나왔다.
      [-14183575, -1448159115, -1906217649, 395503441, 1734636734, -455261681, -2006129680, 273178387, -1501715107, -222186214]
    • int형이라서 유효범위가 231-2^31(-2,147,483,648) ~ 23112^31 -1(2,147,483,647) 이기 때문
    • 그래서 범위를 설정해줬다. 1부터 범위가 들어가기 위해 +1을 해줌
profile
기록하자기록해!

0개의 댓글