Entity
·
spring
# Entity란?DB에서 Table 역할을 수행하는 JPA 컴포넌트이며 영속성이 부여되는 객체를 의미한다. 즉 실제 데이터베이스의 테이블과 1:1로 매핑되는 클래스이다. Entity는 애플리케이션에서 사용하는 객체(Object)를 관계형 데이터베이스의 테이블 구조와 자동으로 매핑하기 위해 사용하는 JPA의 핵심 요소이다.이 객체는 JPA가 관리하는 영속성 콘텍스트에 의해 생명주기를 관리하며 저장, 조회, 수정, 삭제 작업이 트랜잭션 단위로 처리된다.# Entity ListenerEntity에는 특정 시점마다 자동으로 콜백되는 Listener 기능이 존재한다.Listener는 삽입 전/후, 수정 전/후, 삭제 전/후에 특정 로직을 실행하도록 지원한다.💡주요 Entity Listener 메서드@PrePe..
JPA(=Java Persistance API)
·
spring
# ORM과 JPA 개념ORM(Object Relational Mapping)은 객체와 데이터베이스를 매핑하는 기술이다.애플리케이션에서 사용하는 객체와 DB 테이블을 자동으로 연결해 주기 때문에 개발자는 SQL을 직접 작성하지 않아도 되는 장점이 있다.ORM : 객체 ↔ DB 매핑 기술JPA : Java ORM 표준Hibernate : JPA를 구현한 구현체Spring Data JPA : 스프링에서 제공하는 JPA/Hibernate 편의 APISpring Data JPA → Hibernate → JPA → DB 순서로 사용된다고 볼 수 있다.# Spring Data JPA 기본 사용 예시기본 CRUD 테스트 코드@SpringBootTestclass UserRepositoryTest { @Autowi..
Thymeleaf
·
spring
# Thymeleaf란Thymeleaf는 Spring Boot에서 가장 많이 사용되는 템플릿 엔진이며 HTML을 훼손하지 않고 사용할 수 있도록 설계된 엔진이다.Natural Templates를 지원하여 순수 HTML 파일을 그대로 브라우저에서 열어볼 수 있다는 점이 특징이다. 또한 서버 사이드 렌더링(SSR) 방식으로 동작하며 학습 난도가 낮고 Spring 공식 템플릿 엔진으로 채택되어 있다.# Thymeleaf 기본 표현식Thymeleaf는 HTML 태그의 속성에 기능을 부여하는 방식으로 동작한다.콘텐츠 영역에 값을 직접 출력하고 싶으면 [[...]]를 사용한다.💡주요 표현식👉변수 표현식: ${...}👉선택자: *{...}👉링크(URL): @{...}💡리터럴 표현👉텍스트: 'hello'👉..
Validation
·
spring
# Validation웹 애플리케이션에서는 사용자가 입력한 값이 올바른지 확인하는 과정이 반드시 필요하다.예를 들어 이름이 빈 값인지, 이메일 형식이 맞는지, 나이가 제한 범위 안에 있는지 등을 사전에 검증하는 과정을 Validation이라고 부른다.Validation을 수행하면 비즈니스 로직과 검증 로직을 분리할 수 있어 코드 품질이 높아지고 유지보수가 쉬워진다.# Validation 개념 이해Validation이란 프로그램에서 특정 값이 적절한지 미리 확인하는 과정이다.null 체크문자열 길이 확인이메일/전화번호 포맷 검사숫자 범위 제한Custom 로직 검사 등로직 코드와 혼합되면 코드가 복잡해지기 때문에 Spring에서는 Annotation 기반 Validation을 제공하여 이를 깔끔하게 분리한다..
AOP (Aspect Oriented Programming)
·
spring
# AOP 관점지향 프로그래밍스프링에서 AOP(Aspect Oriented Programming)는 복잡한 비즈니스 로직 속에서 중복되는 공통 기능을 분리하고 핵심 로직만 깔끔하게 유지하도록 돕는 중요한 개념이다.특정 기능을 내가 바라보는 관점에서 모듈화 하여 한 곳에서 관리하는 방식으로 이해하면 접근하기 쉽다.# AOP란?AOP는 여러 모듈에 걸쳐 반복적으로 등장하는 공통 관심사를 따로 분리하여 핵심 로직에 영향을 주지 않고 한 곳에서 처리할 수 있게 해주는 기법이다.💡API 진입 시 입력값 출력💡메소드 실행 시간 측정💡예외 발생 기록💡사용자 인증/권한 체크💡캐싱❗이런 기능을 매번 직접 코드에 넣으면 중복이 생기고 유지보수가 어렵다.👉AOP는 이런 공통 로직을 한 곳에서 처리해 준다# AO..
Spring boot 기초
·
spring
# Spring Boot 컨트롤러 기초 정리Spring Boot로 REST API를 만들 때 가장 먼저 이해해야 할 부분이 컨트롤러 구조와 요청 데이터를 받는 방식이다.여기서는 @RestController, @RequestMapping, @PathVariable, @RequestParam, DTO 매핑, 커스텀 Converter, Builder Pattern, POST 요청 처리까지 순서대로 정리해 본다.# 컨트롤러 기본 구조컨트롤러 클래스에는 요청 경로, HTTP 메서드, 응답 방식을 지정하는 여러 어노테이션이 사용된다.💡주요 어노테이션@RestControllerREST API👉응답을 위해 클래스 자체가 JSON/text 응답을 반환함을 의미한다.@RequestMapping👉컨트롤러 레벨에서 공통..
Web?
·
spring
# Web?웹 서비스 개발을 시작하면 꼭 마주하게 되는 개념이 있다.바로 URI, HTTP, REST API 같은 요소들이다.단어는 익숙하지만 실제로 어떤 역할을 하는지 한 번에 연결되지 않는 경우가 많다.이 글에서는 웹이 어떻게 동작하고 REST가 무엇을 의미하며왜 모든 서비스가 REST API 형태로 제공되는지 흐름 중심으로 정리해 본다.# 웹을 구성하는 기본 요소웹은 크게 세 가지 축으로 돌아간다. 1. 사용자에게 보이는 웹사이트우리가 브라우저로 접속하는 화면들이다. 2. 개발자가 사용하는 API(Web Service)카카오/네이버/구글 등에서 제공하는 Open API 같은 데이터 교환용 서비스. 3. 브라우저(Chrome, Safari 등)사용자–서버 간 연결을 중개하는 인터페이스.웹은 이 세 가..