전체 글 295

[Spring boot] 영속성 컨텍스트란?

영속성 컨텍스트(Persistence Context)란, 엔티티 객체들을 관리하고, 데이터베이스와의 상태를 동기화하는 일종의 저장소입니다.쉽게 말해, 애플리케이션이 실행되는 동안 데이터베이스에서 가져온 엔티티 객체들을 임시로 보관해 두는 메모리 공간입니다. 이 공간에 있는 객체들은 "영속 상태"로 관리되며, 이 상태에 있는 동안 엔티티 객체의 변화는 자동으로 데이터베이스에 반영됩니다.즉, 이것이 있기 때문에 데이터베이스에서 효과적으로 데이터를 가져올 수 있고, 엔티티를 편하게 사용할 수 있습니다. 핵심 키워드영속성 컨텍스트: 엔티티 객체를 관리하고, 데이터베이스와 동기화하는 임시 저장소.영속 상태: 영속성 컨텍스트에 의해 관리되는 상태, 데이터베이스와의 동기화가 이루어짐.추가적인 설명을 한다면 영속성 컨..

Spring boot 2024.10.01

[Spring boot] 엔티티 매니저에 대해 알아보자.

JPA와 하이버네이트에 대한 기본 개념을 확인했다면 다음으로 엔티티 매니저와 영속성 컨텍스트에 대한 개념을 알아보자. 학습 키워드 정리엔티티(Entity): 데이터베이스 테이블과 매핑되는 자바 클래스입니다.엔티티 매니저(Entity Manager): 엔티티의 생명주기를 관리하며, CRUD 작업을 수행합니다.엔티티 매니저 팩토리(Entity Manager Factory): 엔티티 매니저를 생성하는 팩토리로, 스프링 부트 애플리케이션에서 한번만 생성됩니다. 코드 상에서의 엔티티 선언 형태@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Strin..

Spring boot 2024.10.01

[Spring boot] JPA 와 하이버네이트란?

DBMS에 여러 종류가 있듯이, ORM에도 여러 종류가 있습니다. 자바에서는 JPA(Java Persistence API)를 표준으로 사용합니다. 즉, JPA는 자바 진영에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스입니다. 그러나 실제로 DB와 상호작용하려면 이 인터페이스를 구현한 구체적인 도구가 필요합니다. 그 대표적인 구현체로는 Hibernate가 많이 사용됩니다. Hibernate는 JPA 스펙을 구현한 자바용 ORM 프레임워크로, 스프링 부트 프로젝트에서 ORM을 구현할 때 자주 사용되는 도구입니다.  JPA(Java Persistence API):자바 객체와 관계형 데이터베이스를 연결하여 데이터를 관리하는 표준 API입니다. JPA는 객체 지향 도메인 모델과 데이터베이스 간의 중간..

Spring boot 2024.10.01

[Spring boot] 스프링 부트 DB 접근 기술 ORM

ORM(object-relational mapping)은 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법입니다.예를 들어, RDBMS에 name과 grade라는 컬럼에 각각 '고길동'과 '3'이라는 값이 들어있다고 생각해봅시다. 이 값을 자바 코드에서 사용하려면 JDBC API를 포함한 다양한 설정과 사전 지식이 필요합니다. 또한, SQL에 대한 공부도 필수적입니다. 하지만 ORM을 사용하면 데이터베이스에 존재하는 값들을 마치 자바 객체처럼 사용할 수 있습니다. 쉽게 말해, SQL을 전혀 몰라도 자바 언어로만 데이터베이스에 접근하여 값을 받아와 사용할 수 있습니다. 즉, 객체와 데이터베이스를 자바 언어로만 다룰 수 있게 하는 기술이 바로 ORM입니다. 물론 이 기술은 자바뿐만 아니라 다양한 언어에서..

Spring boot 2024.10.01

[Spring boot] POST 방식에 이해 및 실습

💡1. JSON 이해 2. POST 주소 맵핑, @RequestBody를 Map 구조로 설정 3. JSON 형식을 만들고 POST 방식으로 데이터 보내기 4. DTO 만들어서 사용해보기5. @JsonProperty 사용해 보기      -스네이크 케이스와 카멜케이스 구분 💡 JSON 데이터 타입 확인문자열 ("name": "John")숫자 ("age": 30)불리언 ("isStudent": false)객체 ("address": { "city": "New York", "zipCode": "10001" })배열 ("hobbies": ["reading", "traveling", "swimming"])null ("middleName": null) 시나리오 코드@RestController // IoC 대상 @..

Spring boot 2024.09.26

[Spring boot] GET 방식과 URL 주소 설계

REST API 기반으로 주소 맵핑 처리 1. GET 방식에 주소 맵핑 2. 클라언트에서 보낸 값을 받는 방식에 이해 응답에 이해 3. Path Variable 방식으로 값을 보내거나 받는 방식에 이해 4. Query Parameter 방식으로 값을 받는 방법 이해  - key=value 구조 데이터 파싱 처리 - Map 사용 방식 구조 처리 - Dto 객체를 만들어서 처리 💡 멱등성(Idempotency)이란 같은 작업을 여러 번 수행해도 결과가 달라지지 않는 성질을 의미합니다. 이 개념은 특히 HTTP 메서드나 데이터베이스 연산에서 자주 사용됩니다.멱등성을 가짐 (GET, PUT, DELET ) 비 멱등성을 가짐 (POST)멱등성의 의미?안정성: 멱등성을 가진 연산은 중복 요청에 대해 안전합니다. ..

Spring boot 2024.09.26

[JPA] 스프링 부트 간단한 요청과 응답 동작 방식을 알아보자.

💡1. 디스패처 서블릿에 대해서 알아 보자. 2. 메시지 컨버터와 뷰 리졸버를 기억해 보자.  스프링 부트 그림으로 요약한 요청과 응답에 흐름 살펴 보기클라이언트 측에서 /user로 GET 요청을 합니다. 이 요청은 톰캣을 거쳐 스프링 부트 애플리케이션으로 전달됩니다.이때, 스프링 부트의 **디스패처 서블릿(DispatcherServlet)**이 요청을 받습니다. 디스패처 서블릿은 요청된 URL을 분석하고, 이를 처리할 수 있는 컨트롤러와 해당 메서드를 찾습니다.컨트롤러에서 비즈니스 로직이 필요한 경우, 비즈니스 계층(Service) 및 퍼시스턴스 계층(Repository)을 통해 데이터를 처리합니다.응답 과정에서 MIME 타입(예: JSON, HTML, XML 등)에 따라 다음과 같이 응답 방식이 달..

카테고리 없음 2024.09.26

[JPA] 스프링 부트의 웹 애플리케이션 구조 어떻게 만들어져 있을까?

💡1. MVC 패턴이란? 2. 레이어드 아키텍처란? 1. MVC 패턴 (Model-View-Controller)MVC 패턴은 애플리케이션의 기능을 세 가지 역할로 분리하는 구조입니다:Model (모델): 데이터와 비즈니스 로직을 관리합니다.View (뷰): 사용자에게 데이터를 시각적으로 보여줍니다.Controller (컨트롤러): 사용자의 요청을 받아 모델을 통해 처리하고, 결과를 뷰에 전달합니다.이 패턴은 애플리케이션의 UI 로직과 데이터 처리 로직을 분리하여 코드의 가독성을 높이고, 유지보수를 쉽게 합니다.  2. 레이어드 아키텍처 (계층 구조) 레이어드 아키텍처는 애플리케이션을 세 가지 주요 계층으로 나누어 각각의 책임을 명확히 하는 구조를 말합니다.프레젠테이션 계층 (Presentation L..

카테고리 없음 2024.09.26

[JPA] 스프링 부트 핵심 콘셉트가 뭘까?

💡1. 제어의 역전(IoC)과 의존성 주입(DI) 2. 빈(Bean)과 스프링 컨테이너 3. 관점 지향 프로그래밍(AOP) 4. 이식 가능한 서비스 추상화(PSA) 전 기반 지식1. 스프링 프레임워크(Spring Framework)일반적인 정의: 스프링 프레임워크는 자바 플랫폼을 위한 강력한 애플리케이션 프레임워크입니다. 객체 지향 프로그래밍의 원칙에 기반하여 애플리케이션을 구성하고 관리하는 방식으로, 주로 엔터프라이즈급 애플리케이션을 구축할 때 사용됩니다.설정 방식: 스프링은 초기 설정이 복잡할 수 있습니다. XML 설정 파일이나 자바 기반의 설정 클래스를 통해 다양한 기능을 직접 구성해야 합니다.기능: 스프링은 의존성 주입(DI), AOP(관점 지향 프로그래밍), 트랜잭션 관리, 데이터 액세스, 웹..

카테고리 없음 2024.09.26

[POST 방식] 포스트맨(postman) & talend api 설치 및 사용 방법

Download Postman | Get Started for FreeTry Postman for free! Join 30 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.www.postman.com  Talend API Tester - Free Edition - Chrome 웹 스토어Visually interact with REST, SOAP and HTTP APIs.chromewebstore.google.compostman과 talend api을 사용해서 post 방식으로 던질 수 있다포스트맨 화면 포스트맨 사용해 보기 talend api 화면 p..

설치 메뉴얼 2024.09.26