본문 바로가기
스터디/인프런

[인프런 워밍업 스터디 클럽 0기- BE] 4일차 강의 내용 정리(Section2)

by 행복한라이언 2024. 2. 22.
728x90
반응형

1.  (14강) 유저 업데이트 API, 삭제 API 업데이트

  • 도서관 사용자 이름을 업데이트 할 수 있다.
    • HTTP Method: PUT
    • HTTP Path: /user
    • HTTP Body(JSON)
    • 결과반환 X 
  • 도서관 사용자 이름을 삭제할 수 있다.
    • HTTP Method: DELETE
    • HTTP Method: /user
    • 쿼리 사용
      • 문자열 name(삭제되어야 하는 사용자 이름)
    • 결과 반환 X
  • 문제 상황 →CREATE / DELETE / UPDATE에 문제가 존재함!!
    • 없는 유저를 업데이트 하거나 삭제해도 200OK 응답! (강의)
    • [ERROR] 사용자 등록할 때 이름은 필수로 존재해야하는데 이름이 없어도 저장이 된다. user table을 만들 때 not null로 부가조건을 걸었는데도 등록이 되는 것을 보면 프론트에서 이름이 들어오지 않는 경우 공백처리해서 테이블에 저장하는 것 같다. (내가 찾은 문제)


2. (15강) 유저 업데이트 API, 삭제 API 예외처리 하기

  • API에서 예외 상황이 발생한다면 어떻게 될까?
    • 200OK 대신 500 Internal Server Error가 발생하게 된다.
    • 즉, 서버에서 문제가 발생하면 500 Internal Server Error가 발생하게 된다.
  • 유저 업데이트 API 예외처리 하기

 

  • readSql: id를 기준으로 유저가 존재하는지 확인하는 select 쿼리 작성
  • jdbcTemplate.query(readSql, (rs, rowNum) -> 0, request.getId()
    • request.getId() 를 통해서 id를 얻고 readSql의 id = ?에 집어 넣는다. 
    • 만약 select SQL의 결과가 존재한다면 (rs, rowNum) 0으로 반환된다.
    • query는 반환된 값들을 List로 값싸줘서 최종적으로는 List가 반환된다.
    • jdbcTemplate.query의 결과인 List가 비어있다면 유저가 없으므로 업데이트 해선 안된다.
  • 유저 삭제 API 예외처리하기

  • 유저 업데이트와 거의 유사하고 where 부분에서 id > name 으로 변했다.
  • [ERROR] 한국이름은 delete하려고 하니까 서버에러가 난다. 그 이유는 무엇일까?

3. (16강) Section2 정리 및 문제 상황

  • 디스크와 메모리의 차이를 이해하고, DB의 필요성을 이해한다.
  • SQL을 이용해 MySQL을 조작할 수 있다.
  • 스프링 서버를 이용해 DB에 접근하고 데이터를 저장, 조회, 업데이트, 삭제할 수 있다.
  • 문제상황: Controller에서 너무 많은 역할을 하고 있다.
  • 다음 section
    • 왜 한 함수에서 모든 기능을 구현하면 안되는지
    • 이 문제를 스프링을 이용해 어떻게 해결할 수 있을자

누적과제

  • [ASSIGNMENT] 커스텀 어노테이션 만들고 정리하기 (1일차 과제)
  • [ASSIGNMENT] LocalDate 정리하기 (2일차 과제)
  • [ERROR] NumberRequest에서 기본 생성자를 추가하지 않으면 에러가 발생하는 이유는 무엇인가?(2일차 과제)
  • [ERROR] 사용자 등록할 때 이름은 필수로 존재해야하는데 이름이 없어도 저장이 되는 문제가 발생했다. 왜 이 문제가 발생했는지 알아보고 해결할 수 있는 방법을 찾아보기(4일차 강의, 내가 찾은 문제)
  • [ERROR] 한국이름은 delete하려고 하니까 서버에러가 난다. 그 이유는 무엇일까? (4일차 강의)

 

※ 강의 출처

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%84%9C%EB%B2%84%EA%B0%9C%EB%B0%9C-%EC%98%AC%EC%9D%B8%EC%9B%90/dashboard

728x90
반응형