Spring/강의 52

[📕 기초 Spring] 6-4. SQL (Structured Query Language)

📕 목차SQL (Structured Query Language)MySQL 살펴보기1. SQL (Structured Query Language)SQL (Structured Query Language)SQL은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 정의, 조작, 제어, 조회하기 위해 사용되는 표준 프로그래밍 언어이다. SQL 특징관계형 데이터베이스와의 상호작용을 표준화하고 효율적으로 수행할 수 있게 해준다.데이터베이스에서 원하는 정보를 추출하고 분석할 수 있게 해준다.대부분의 RDBMS(MySQL, PostgreSQL, Oracle 등)가 SQL을 지원한다.표준 SQL은 존재하지만, 제품마다 조금씩의 차이(함수명)가 존재한다.SQL 명령문은 대소문자를 구분하지 않고, 대문자로 사용하면 가..

Spring/강의 2025.05.06

[📕 기초 Spring] 6-3. 데이터베이스 (Database)

📕 목차Database 준비하기데이터베이스 (Database)데이터베이스 관리 시스템(DBMS)관계형 데이터베이스 (RDBMS)1. Database 준비하기MySQL 설치하기참고: https://gajicoding.tistory.com/305 MySQL 설치하기MySQL 을 설치해봅시다.1. 설치설치 링크: https://dev.mysql.com/downloads/mysql/ MySQL :: Download MySQL Community ServerSelect Version: 9.3.0 Innovation 8.4.5 LTS 8.0.42 Select Operating System: Select Operating System… Microsoft Windows Ubungajicoding.tistory.com2..

Spring/강의 2025.05.06

[📕 기초 Spring] 6-2. 메모장 프로젝트 - ver3 (레이어드 아키텍처 적용)

메모장 프로젝트 ver2 의 문제점Controller에 책임이 너무 많다.(요청, 비지니스 로직, 응답, 예외 처리 등)서버가 종료된 후 다시 켜지면 데이터가 모두 초기화 된다.📕 목차Controller 분리하기 메모 생성 API 리팩토링 메모 목록 조회 API 리팩토링 메모 단건 조회 API 리팩토링 메모 전체 수정 API 리팩토링 메모 제목 수정 API 리팩토링 메모 삭제 API 리팩토링 해결한 문제점 & 문제점1. Controller 분리하기책임 분리Controller클라이언트의 요청을 받는 역할을 수행한다.요청에 대한 처리를 Service Layer에 전달한다.Service에서 처리 완료된 결과를 클라이언트에 응답한다.Service Layer비지니스 로직 처리Repository Layer데이터베..

Spring/강의 2025.05.05

[📕 기초 Spring] 6-1. 레이어드 아키텍처(Layered Architecture)

📕 목차기존 패턴의 문제점레이어드 아키텍처(Layered Architecture)프레젠테이션 계층 (Presentation Layer)비즈니스 계층 (Business Layer)데이터 접근 계층 (Data Access Layer)DTO, Model(Entity), DAO1. 기존 패턴의 문제점기존의 MVC 패턴에서 Controller는 역할이 무수히 많다.요청에 대한 처리예외처리View Template 응답 or Data 응답비지니스 로직 처리DB 상호작용문제점Controller에서 요청에 대한 모든 처리를 수행한다. 즉, 책임이 너무 많다.기능 추가, 수정, 삭제 등의 유지보수가 힘들어진다.코드의 재사용성이 떨어진다. 메서드로 분리하여도 메서드를 호출하는 중복 코드가 발생한다.2. 레이어드 아키텍처(..

Spring/강의 2025.05.05

[📕 기초 Spring] 5-4. 메모장 프로젝트 - ver2 (프론트 컨트롤러, 어댑터 패턴 적용)

메모장 프로젝트 ver1 의 문제점실제 문제의 원인을 파악하기 어렵거나 잘못된 정보 전달 및 처리가 될 수 있다.응답 코드가 세분화 되어있지 않다.(성공 시 모두 200OK)적절한 예외가 발생하지 않는다.(실패 시 모두 500 Error 발생)서버가 종료된 후 다시 켜지면 데이터가 모두 초기화 된다.📕 목차요구사항 분석 및 설계 메모 생성 기능 메모 목록 조회 기능 메모 단 건 조회 기능 메모 단 건, 전체 수정 기능 메모 단 건 제목 수정 기능 메모 삭제 기능 해결한 문제점 & 문제점1. 요구사항 분석 및 설계메모장 API 요구사항통신 데이터 형태는 JSON이다.각각의 메모는 식별자(id), 제목(title), 내용(contents)으로 구성되어 있다.응답을 각각의 API에 알맞게 해야 한다.메모를 ..

Spring/강의 2025.05.04

[📕 기초 Spring] 5-3. 메모장 프로젝트 - ver1 (CRUD 실습, MVC 패턴 적용)

[실습] 메모를 CRUD 할 수 있는 Web Application 만들어보기메모 생성 기능 C (Create)메모 단건 조회 기능 R (Read)메모 전체 수정 기능 U (Update)메모 단건 삭제 기능 D (Delete)📕 목차요구사항 분석 및 설계 프로젝트 생성 프로젝트 Git 연동 클래스 설계 메모 생성 기능 메모 조회 기능 메모 수정 기능 메모 삭제 기능 1. 요구사항 분석 및 설계 메모장 API 요구 사항 통신 데이터 형태는 JSON이다.각각의 메모는 식별자(id), 제목(title), 내용(contents)으로 구성되어 있다.메모 CRUD 기능이 필요하다. HTTP API 설계메모 생성POST/memos메모 단건 조회GET/memos/{id}메모 수정(전체)PUT/memos/{id}메모 ..

Spring/강의 2025.05.04

[📕 기초 Spring] 5-2. 응답 데이터(서버 → 클라이언트)와 처리 방법

📕 목차응답 데이터(Response Data)정적 리소스 (Static Resources)View Template (동적 HTML 생성)HTTP Message Body1. 응답 데이터(Response Data)응답 데이터(Response Data)클라이언트가 서버에 요청(Request)을 보낸 후, 서버가 이를 처리하고 클라이언트로 다시 보내는 데이터클라이언트가 요청한 정보를 제공하거나, 처리 결과를 알려주는 중요한 역할을 한다. 응답 데이터 처리 방식정적 리소스 (Static Resources)View Template (동적 HTML 생성)HTTP Message Body 2. 정적 리소스 (Static Resources)정적 리소스 (Static Resources)파일 형태로 서버에 저장된 데이터를..

Spring/강의 2025.05.04

[📕 기초 Spring] 5-1. 요청 데이터(클라이언트 → 서버)와 처리 방법

📕 목차요청데이터 (Request Data)Query ParameterHTTP Form DataRequest Body어노테이션별 사용법 정리 1. 요청 데이터 (Request Data)요청 데이터(Request Data)클라이언트(Client)가 서버(Server)에 HTTP 요청을 보낼 때, 원하는 작업을 수행하거나 정보를 전달하기 위해 함께 보내는 데이터를 의미한다.요청 데이터 전달 방식은 크게 세가지가 있다. Query Parameter HTTP Form DataHTTP Request Body전달 방식 전송 위치 사용 용도 특징 Query ParameterURL검색, 필터링데이터 노출됨HTTP Form DataBody로그인, 회원가입 등HTML 폼에 최적화HTTP Request BodyBod..

Spring/강의 2025.05.04

[📕 기초 Spring] 4-1. 스프링 주요 어노테이션(Annotation)

📕 목차어노테이션(Annotation)의 역할@Component, @Service, @Repository, @Controller, @RestController @Autowired@Value @RequestMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping@Bean@Transactional@PostConstruct, @PreDestroy@SpringBootApplication@Slf4j, @Log4j2, @Log메타 어노테이션강의에서 소개하는 어노테이션에 추가로 Spring에서 자주 사용되는 어노테이션들을 소개하고, 각 어노테이션의 사용 방법과 예제를 정리해보고자 한다.1. 어노테이션(Annotation)의 역할 Spring에서 어노테이션 S..

Spring/강의 2025.05.03

[📕 기초 Spring] 3-3. Spring MVC

📕 목차Spring MVCSpring MVC 구조 Spring MVC 흐름 핵심 구성 요소 정리 Spring MVC 패턴의 장점1. Spring MVC자바 기반의 웹 애플리케이션을 개발하기 위한 프레임워크인 Spring Framework의 일부이다.MVC 패턴에 프론트 컨트롤러 패턴, 어댑터 패턴이 적용된 구조를 가지고 있다.이 패턴은 코드의 가독성과 유지보수성을 높이고, 요청 처리 과정을 역할에 따라 분리하여 효율적인 개발을 돕는다.2. Spring MVC 구조 Spring MVC에서 프론트 컨트롤러의 역할DispatcherServlet: 모든 HTTP 요청은 처음에 DispatcherServlet을 통해 들어온다. 이 서블릿은 요청을 처리할 수 있는 적절한 핸들러를 찾고, 그 핸들러가 처리할 수 ..

Spring/강의 2025.05.03