(Spring) RESTful에 대한 이해
·
Spring
1. RESTful 기본 개념RESTful은 HTTP 기반의 웹 서비스 설계 방식으로, 자원(Resource)에 대한 일관된 접근 방식을 제공합니다. REST(Representational State Transfer) 원칙을 따르며, 주로 클라이언트-서버 간 상호작용을 효율적이고 확장성 있게 설계하기 위해 사용됩니다.RESTful 아키텍처의 주요 원칙자원(Resource) 식별 : 각 자원은 URI(Uniform Resource Identifier)를 통해 고유하게 식별됩니다. 예를 들어, 사용자 정보를 나타내는 자원은 /users로 표현하고, 특정 사용자의 정보를 가져올 때는 /users/{userId}와 같은 URI 구조를 사용합니다.무상태성(Statelessness) : 각 요청은 독립적이고, 서버..
(Spring) 데이터베이스 개념 및 MySQL 개요
·
Spring
1. 데이터베이스 개념 및 주요 용어● 데이터베이스 (Database)데이터베이스는 ‘데이터의 집합’으로, 우리가 매일 사용하는 카톡 메시지, 인스타그램 사진 등 다양한 데이터를 저장하고 관리하는 곳입니다. ●  DBMS (Database Management System)DBMS는 데이터베이스를 관리하고 운영하는 소프트웨어로, 데이터를 저장, 검색, 수정, 삭제할 수 있게 도와줍니다. 다양한 종류가 있으며, 목적에 따라 적합한 DBMS를 선택하는 것이 중요합니다. ●  RDBMS (Relational Database Management System)RDBMS는 관계형 데이터베이스 관리 시스템으로, 데이터를 테이블(표) 형태로 저장합니다. 각 테이블은 열(칼럼)과 행(로우)으로 구성되어 있어 데이터를 직관..
(Spring) HTTP 데이터 객체 처리 및 CRUD 구현하기
·
Spring
1. 학습 목표 및 개요이번 학습에서는 HTTP 데이터를 객체로 처리하는 방법과 CRUD 구현의 중요성을 다루었습니다. DTO를 사용해 계층 간 데이터를 이동시키는 원리를 이해하고, RESTful API에서의 요청 처리 방식을 실습했습니다. 이 과정에서 @ModelAttribute와 @RequestBody의 차이점도 명확히 정리했습니다.2. 주요 내용2.1 @ModelAttribute와 @RequestBody의 활용@ModelAttributeHTML 폼 데이터를 자바 객체로 매핑할 때 사용합니다.주로 POST 방식의 요청에서 사용하며, 필드명과 파라미터명이 자동 매핑됩니다.생략 가능하지만 명시적으로 사용하는 것이 가독성에 좋습니다.@RequestBodyJSON 형식의 데이터를 자바 객체로 변환합니다.RE..
(Spring) Path Variable & Request Param 차이점
·
Spring
1. 들어가기 전서버로 데이터를 보내는 방법은 여러 가지가 있습니다. 그 중 Path Variable과 Request Param은 자주 사용되는 방식으로, 이 두 가지를 활용하면 URL을 통해 서버와 클라이언트 간 데이터를 효율적으로 주고받을 수 있습니다. 이번에는 각각의 사용법과 차이점을 배워보겠습니다.2. Path Variable사용법Path Variable은 URL 경로에 데이터를 포함시키는 방식입니다. 경로에 중괄호 {}를 사용해 동적으로 변수를 받아올 수 있습니다. 예시 경로/star/{name}/age/{age}▶ 코드 예제@GetMapping("/star/{name}/age/{age}")public String getStarInfo(@PathVariable String name, @PathV..
(Spring) Jackson과 Spring에서의 활용
·
Spring
1. Jackson이란?Jackson은 Java에서 JSON 데이터를 쉽게 처리하기 위한 라이브러리입니다. 주로 객체(Object)를 JSON 문자열로 변환(직렬화)하거나, JSON 문자열을 객체로 변환(역직렬화)할 때 사용됩니다. 이 라이브러리를 통해 애플리케이션이 외부 시스템과 JSON 형식으로 데이터를 주고받을 수 있습니다.2. Spring에서의 Jackson 지원Spring은 3.0 버전부터 Jackson을 기본 JSON 처리기로 채택했습니다. 이를 통해 개발자가 직접 JSON 파싱 코드를 작성하지 않아도, @RestController와 @RequestMapping 어노테이션을 활용할 때 Jackson이 자동으로 객체와 JSON을 변환합니다.Spring Boot의 spring-boot-starte..
(Spring) 삭제 관련 Cascade 사용 여부에 따른 정리
·
Spring
1. Cascade 없이 직접 삭제하는 방식 (서비스 계층에서 처리)구현 원리양방향 매핑 없이 @ManyToOne 단방향 연관관계만 사용.게시물(Board) 삭제 전에 댓글(Comment)과 좋아요(Like)를 서비스 계층에서 명시적으로 삭제.엔터티 설정@Entitypublic class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; @ManyToOne @JoinColumn(name = "user_id") private User user;}@Entitypublic class Comme..
(Spring) Controller & RestController란 무엇인가
·
Spring
1. Controller 기본 개념Spring Framework에서 @Controller와 @RestController는 클라이언트 요청을 처리하기 위한 두 가지 방식입니다.@Controller주로 뷰 템플릿(HTML 등)을 반환하는 데 사용됩니다.Thymeleaf와 같은 템플릿 엔진과 결합해 동적인 HTML 페이지를 생성할 수 있습니다.@RequestMapping이나 @GetMapping, @PostMapping 등의 어노테이션을 사용하여 경로를 정의합니다.@RestControllerRESTful API를 위한 컨트롤러입니다. @Controller와 달리 JSON, XML 등의 데이터 형식을 반환합니다.내부적으로 @ResponseBody를 포함하고 있어 별도로 지정할 필요가 없습니다. 이는 HTTP 요..
(Spring) DI와 IOC 이해하기
·
Spring
1. Spring의 DI와 IOC 이해하기2. 내용IOC (Inversion of Control)객체 생성 및 의존성 관리의 제어 흐름이 외부로 전환되는 원칙.전통적인 프로그래밍에서는 객체가 직접 의존성을 관리하지만, IOC에서는 객체가 필요로 하는 의존성을 외부에서 주입받는다.DI (Dependency Injection)IOC의 구체적인 구현 방식 중 하나로, 객체가 의존하는 다른 객체를 외부에서 주입받는 방법.주입 방식생성자 주입 : 생성자를 통해 의존성을 주입.세터 주입 : 세터 메서드를 통해 의존성을 주입.인터페이스 주입 : 특정 인터페이스를 통해 의존성을 주입.3. 코드 예제// 인터페이스public interface MessageService { void sendMessage(String..