스트링 부트3 자바 백엔드 개발 입문 7~10장

cse 23·2024년 5월 20일
0

7장 - 데이터 수정

데이터 수정 절차

  1. 수정 페이지 생성 및 기존 데이터 불러오기

    • 사용자가 수정 요청을 하면 해당 데이터를 수정할 수 있는 페이지를 생성하고, 기존 데이터를 미리 불러와서 화면에 표시함
  2. 데이터 수정 후 저장 및 상세 페이지로 리다이렉트

    • 수정된 데이터를 DB에 반영하고, 수정 결과를 확인할 수 있도록 상세 페이지로 리다이렉트

클라이언트와 서버 간 처리 흐름

  • MVC : 서버 역할을 분담해 처리하는 기술
  • JPA: 서버와 DB 간 소통에 관여하는 기술
  • SQL: DB 데이터를 관리하는 언어
  • HTTP: 데이터를 주고받기 위한 통신 규약

HTTP 메서드

  • 프로토콜 : 컴퓨터 간에 원활하게 통신하기 위해 사용하는 전세계 표준
  • GET: 데이터 조회 요청
  • POST: 데이터 생성 요청
  • PATCH 또는 PUT: 데이터 수정 요청
  • DELETE: 데이터 삭제 요청

UPDATE 문

  • 데이터를 수정할 때 사용
UPDATE 테이블명
SET 속성명 = 변경할_값
WHERE 조건;

8장 - 데이터 삭제

데이터 삭제 절차

  1. 클라이언트가 특정 데이터를 삭제하겠다고 요청
  2. 서버가 DB에서 해당 데이터를 찾아 삭제
  3. 삭제 후 클라이언트를 특정 페이지로 리다이렉트

RedirectAttributes

  • 리다이렉트 시 일회성 데이터를 전달할 수 있도록 도와주는 객체

articleRepository.delete()

  • DB에 접근하여 데이터를 삭제할 때 사용하는 JPA 메서드

DELETE 문

  • 테이블에 저장된 데이터를 삭제하는 SQL 문
  • WHERE 절을 생략하면 모든 데이터를 삭제 (주의 필요)
기능HTTP 메서드URL 패턴설명
Create (작성)POST/articles새 게시글 저장
Read (조회 - 목록)GET/articles게시글 전체 목록 조회
Read (조회 - 단건)GET/articles/{id}특정 게시글 조회
Update (수정 - 폼)GET/articles/{id}/edit수정할 게시글 불러오기 (폼)
Update (수정 - 처리)POST/articles/update게시글 수정 내용 저장
Delete (삭제)GET/articles/{id}/delete특정 게시글 삭제 요청
DELETE [FROM] 테이블명
WHERE 조건;

9장 - JPA와 SQL 쿼리

JPA 로깅 설정

  • 애플리케이션 동작 시 SQL 쿼리 로그를 확인하기 위한 설정
  • application.properties 파일에 로깅 관련 설정 작성

로깅 7단계

  • TRACE(레벨1) :DEBUG 레벨보다 더 상세한 정보
  • DEBUG(레벨2) : 응용 프로그램을 디버깅하는데 필요한 세부 정보
  • INFO(레벨3) : 응용 프로그램의 순조로운 진행 정보
  • WARN(레벨4) : 잠재적으로 유해한 상황 정보
  • ERROR(레벨5) : 응용 프로그램이 수행할수 있는 정도의 오류 정보
  • FATAL(레벨6): 응용 프로그램이 중단될 만한 심각한 오류 정보
  • OFF(레벨7): 로깅 기능 해제

기본키 (Primary Key)

  • 테이블에서 각 행을 유일하게 식별할 수 있는 속성
  • 일반적으로 id를 기본키로 사용
  • @GeneratedValue(strategy = GenerationType.IDENTITY)로 자동 증가 설정 가능

CRUD와 SQL 쿼리 관계

  • JPA의 리포지터리는 CRUD 작업 요청을 SQL 쿼리로 변환해 DB에 전달

    • Create → INSERT
    • Read → SELECT
    • Update → UPDATE
    • Delete → DELETE

주요 SQL 쿼리

CREATE TABLE 문

  • 테이블 생성 시 사용
CREATE TABLE 테이블명 (
  속성명1 자료형,
  속성명2 자료형,
  속성명3 자료형,
  PRIMARY KEY (기본키)
);

INSERT 문

  • 데이터 삽입 시 사용
INSERT INTO 테이블명 (속성명1, 속성명2, 속성명3)
VALUES (1,2,3);

SELECT 문

  • 데이터 조회 시 사용
  • WHERE 절이 없으면 모든 데이터를 조회
SELECT 속성명1, 속성명2
FROM 테이블명
WHERE 조건;

UPDATE 문

  • 데이터 수정 시 사용
  • WHERE 절이 없으면 모든 행이 수정됨
UPDATE 테이블명
SET 속성명 = 변경할_값
WHERE 조건;


DELETE 문

  • 데이터 삭제 시 사용
  • WHERE 절이 없으면 테이블의 모든 데이터 삭제됨
DELETE [FROM] 테이블명
WHERE 조건;

10장 - REST API

REST API란?

  • 클라이언트가 서버 자원을 기기에 구애받지 않고 사용할 수 있도록 설계된 방식
  • 클라이언트가 요청을 보내면 서버는 JSON 데이터를 응답으로 반환
  • JSON은 다양한 플랫폼에서 활용 가능

JSON 데이터

  • 자바스크립트 객체 표현식을 차용
  • 키와 값의 쌍으로 구성된 구조
{
  "key1": 값,
  "key2": 값,
  "key3": 값
}

실습 도구

  • Talend API Tester: REST API 동작을 실습하기 위해 크롬 확장 프로그램 사용

HTTP 응답 코드

  • 1XX: 요청 수신, 처리 중
  • 2XX: 요청 성공 (예: 200 OK)
  • 3XX: 리다이렉션, 추가 동작 필요
  • 4XX: 클라이언트 오류 (예: 404 Not Found)
  • 5XX: 서버 오류 (예: 500 Internal Server Error)

HTTP 메시지 구조

  1. 시작 라인: 요청/응답의 첫 줄
  2. 헤더: 전송 관련 부가 정보
  3. 빈 줄: 헤더 종료 표시
  4. 본문: 실제 데이터 (예: JSON)

0개의 댓글