본문 바로가기
개인 공부/BackEnd Study

[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 7 -

by 킴도비 2024. 3. 17.

7.1 데이터 수정 과정

  1. 수정 페이지를 만들고 기존 데이터 불러오기
  2. 데이터를 수정해 DB에 반영한 후 결과를 볼 수 있게 상세 페이지로 리다이렉트

 

1번 동작 과정

수정 버튼 클릭 -> 요청 받은 컨트롤러는 해당 글의 id로 DB에서 데이터 찾기 -> 컨트롤러는 가져온 데이터를 뷰에 사용할 수 있게 모델에 등록 -> 모델에 등록된 데이터를 수정 페이지에 보여줌 -> 사용자가 내용을 수정할 수 있는 상태

 

2번 동작 과정

폼 데이터(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받음 -> DTO를 엔티티로 변환 -> DB에서 기존 데이터를 수정 데이터로 갱신 - > 수정 데이터를 상세 페이지로 리다이렉트

 

7.2 <수정 페이지> 만들기

  • mustache에서 가져오는 데이터의 사용 범위를 {{#데이터명}}{{/데이터명}} 형식으로 지정한 경우에는 {{변수명}}만 써도 가능하지만 범위를 따로 지정하지 않았다면 점(.)을 사용해 {{데이터명.변수명}}라고 표시해야 함
  • <input> 태그로 생성한 입력 요소의 초깃값은 value로 정의하지만 <textarea> 태그로 생성한 여러 줄의 입력 요소는 콘텐트 영역에 초깃값을 정의함
<input type="text" class="form-control" name="타이틀" value="{{데이터명.변수명}}">

<textarea class="form-control" rows="3" name="내용"> 
	{{데이터명.변수명}} 
</textarea>

 

7.3 수정 데이터를 DB에 갱신하기

  • MVC(Model-View-Controller) : 서버 역할을 분담해 처리하는 기법
  • JPA(Java Persisitence API) : 서버와 DB 간 소통에 관여하는 기술
  • SQL(Structured Query Language) : DB 데이터를 관리하는 언어
  • HTTP(HyperText Transfer Protocol) : 데이터를 주고 받기 위한 통신 규약

 

7.3.1 HTTP 메서드

  • 프로토콜(protocol)란?
    • 컴퓨터 간에 원활하게 통신하기 위해 사용하는 전 세계 표준
    • 친구와 연락할 때도 전화, 메신저, 이메일, 쪽지 등 다양한 방식을 사용하는 것처럼 프로토콜도 파일 전송을 위한 FTP(File Transfer Protocol), 이메일 전송을 위한 SMTP(Simple Mail Transfer Protocol) 등 기기와 목적에 따라 구분해 사용
    • HTTP(HyperText Transfer Protocol)은 웹 서비스에 사용하는 프로토콜. 클라이언트의 다양한 요청을 메서드를 통해 서버로 보내는 역할
    • HTTP의 대표적인 메서드
      • POST : 데이터 생성 요청
      • GET : 데이터 조회 요청
      • PATCH(PUT) : 데이터 수정 요청
      • DELETE : 데이터 삭제 요청
  • CRUD(Create Read Update Delete)는 데이터의 생성, 조회, 수정, 삭제 기능의 동작을 합친 말
데이터 관리 SQL HTTP
데이터 생성(Create) INSERT POST
데이터 조회(Read) SELECT GET
데이터 수정(Update) UPDATE PATCH(PUT)
데이터 삭제(Delete) DELETE DELETE

 

  • 데이터 수정시 PATCH가 아닌 POST를 사용한다.
  • 그 이유는 <form> 태그가 옛날에 만들어진 규격이라 PATCH 메서드를 지원하지 않기 때문
  • <form> 태그는 GET과 POST 메서드만 지원

 

  • findById() 메서드는 리파지터리가 자동으로 제공하는 메서드, 괄호 안에는 찾는 id 값을 작성