CS 58

[Spring] JPA와 영속성 컨텍스트

영속성 컨텍스트(Persistence Context) 💡영속성 컨텍스트(Persistence Context)란?Persistence = "영속성, 지속성"JPA에서 말하는 영속성 컨텍스트란, Entity 객체를 효율적으로 관리하기 위한 가상의 공간Persistence를 객체의 관점으로 해석해 보자면 ‘객체가 생명(객체가 유지되는 시간)이나 공간(객체의 위치)을 자유롭게 유지하고 이동할수 있는 객체의 성질’을 의미개발자들은 JPA를 사용하면, 직접 SQL을 작성하지 않아도 DB에 데이터를 저장하거나 조회할 수 있으며 수정, 삭제 또한 가능하다.이러한 일련의 과정을 효율적으로 처리하기 위해 JPA는 영속성 컨텍스트에 Entity 객체들을 저장하여 관리하면서 DB와 소통한다.영속성 컨텍스트에서 PK로 Ent..

심화/Spring 2025.10.06

[CLRS] Chapter 1. The Role of Algorithms in Computing

Questions 이번 챕터에서는 답을 찾을 질문들 3️⃣가지 1️⃣ 알고리즘이란 무엇인가? (What are algorithms?) 2️⃣ 알고리즘은 왜 연구할 가치가 있는가? (Why is the study of algorithms worthwile?) 3️⃣ 컴퓨터 분야에서 이용되고 있는 다른 기술과 관련해 알고리즘은 어떤 역할을 할까? (What is the role of algorithms relative to other technologies used in computers?)1-1. Algorithms 알고리즘(Algorithms)은 간단히 말하면 어떤 값이나 값의 집합을 입력(input)으로 받아 또 다른 값이나 값의 집합을 출력(output)하는 정의된 계산 절차를 말한다. Inform..

정적 페이지와 동적 페이지

정적 페이지 💡정적 페이지 우리 회사에 오신 걸 환영합니다! 이 페이지는 항상 동일합니다.서버에 저장된 HTML 파일을 그대로 전달누가 요청하든 똑같은 내용이 반환됨HTML 안에 서버에서 채워 넣는 데이터가 없음ex. 회사 소개, 블로그 글 같은 고정 정보➡ 즉, “항상 동일한 결과물을 보내는 페이지”동적 페이지 💡동적 페이지 클라이언트의 요청이나 상황에 따라 서버가 데이터를 가공해서 HTML을 만들어 전달같은 URL이어도 요청자나 조건에 따라 내용이 달라짐HTML 템플릿 안에 변수 같은 자리를 두고, 서버가 데이터를 채워서 보냄ex. 로그인 후 사용자 이름 표시, 쇼핑몰에서 “장바구니 목록” 보여주기➡ 즉, “요청할 때마다 결과물이 달라질 수 있는 페이지”

Front-end 2025.10.04

[Spring] JPA란 무엇일까?

DB를 직접 다룰 때의 문제점 💡DB를 직접 다룰 때 필요한 과정 아래 형태의 객체 데이터를 DB에 저장해서 관리해야한다면 어떻게 해야 할까?public class Memo { private Long id; private String username; private String contents;} 1️⃣ DB 테이블 생성create table memo ( id bigint not null auto_increment, contents varchar(500) not null, username varchar(255) not null, primary key (id));직접 DB로 접속해서 SQL 작성 필요2️⃣ 애플리케이션에서 SQL 작성String sql = "INSER..

심화/Spring 2025.10.03

[Spring] IoC Container와 Bean

Spring IoC 컨테이너 💡DI와 객체 생성DI(의존성 주입)를 사용하려면 먼저 객체가 생성되어 있어야 한다.그런데 객체를 언제, 어디서, 누가 생성해야 할까? → 이 역할을 대신해 주는 것이 바로 Spring 프레임워크다.Spring은 필요한 객체를 직접 만들고, 관리하고, 주입까지 해준다.💡핵심 개념빈(Bean) : Spring이 관리하는 객체Spring IoC 컨테이너 : 생성된 Bean들을 모아 관리하는 저장소Spring 'Bean' 등록 방법 💡@Component 1️⃣ @Component 사용@Componentpublic class MemoService { ... }클래스 위에 @Component 어노테이션을 붙이면 Spring이 자동으로 Bean으로 등록2️⃣ Bean 저장 과정//..

심화/Spring 2025.10.02

[Spring] IoC(제어의 역전), DI(의존성 주입)

IoC와 DI 처음 IoC와 DI에 대한 개념을 들었던게 작년 말에 부트캠프 들었을 때였는데, 그때만해도 Spring이 뭔지도 모르고 Java도 처음써보고 CS 관련 지식도 없었어서 대체 이게 무슨 뜻인지 어떻게 공부해야하는지도 막막했었다. Java랑 Spring에 관련된 중요한 개념인 것 같았는데 어떻게 공부해야할지를 몰라서 뭔지 엄청 궁금했었는데 이제 어떤건지 알게돼서 1년 묵은 체증이 날아갈 것 같다. 💡IOC와 DISpring 으로 개발을 입문한 분들이 처음에 가장 많이 오해하는 것이 바로 IoC와 DI가 Spring에서 처음으로 만든 기능이라고 생각하는 것IoC, DI는 객체지향의 SOLID 원칙 그리고 GoF의 디자인 패턴과 같은 설계 원칙 및 디자인 패턴이다!IoC는 설계 원칙에 해당하고..

심화/Spring 2025.10.01

[Spring] JDBC란 무엇일까?

JDBC(Java Database Connectivity) 💡등장배경애플리케이션 서버에서 DB에 접근하려면 기본적으로 다음 과정이 필요하다우선 DB에 연결하기 위해 커넥션을 연결해야한다.SQL을 작성한 후 커넥션을 통해 SQL을 요청한다.요청한 SQL에 대한 결과를 응답 받는다.여기서 기존에 사용하던 MySQL 서버를 PostgresSQL로 변경하고자할 때, 문제가 발생한다.MySQL과 PostgreSQL은 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답받는 방법 모두 다를 수 있기 때문에, 애플리케이션 서버에서 작성했던 DB 연결 로직들을 전부 수정해야한다.이러한 문제를 해결하기위해 JDBC 표준 인터페이스가 등장했다.💡JDBC란?JDBC(Java Database Connectivit..

심화/Spring 2025.09.30

[Spring] DTO란?

DTO 💡DTO란?DTO(Data Transfer Object)는 데이터 전송 및 이동을 위해 생성되는 객체를 의미한다.💡어떤 상황에서 사용되나요?클라이언트와 서버 간 통신Client에서 서버로 보낸 데이터를 객체 형태로 처리할 때 사용서버에서 Client로 응답을 보낼 때도 사용서버 계층 간 이동ex. Service 계층 ↔ Controller 계층 간 데이터 이동DB와의 소통 과정에서도 엔티티(Entity)를 직접 반환하지 않고 DTO로 변환해서 전달💡Entity VS DTOEntity는 DB 테이블과 직접적으로 매핑되는 클래스DTO는 전송을 목적으로 하며, 엔티티와 동일하지 않을 수 있다.💡DTO 클래스의 명명 규칙요청(Request) 데이터를 담는 객체 → RequestDto응답(Respo..

심화/Spring 2025.09.26

[Spring] HTTP 데이터를 객체로 처리하는 방법

HTTP 데이터를 객체로 처리하는 방법 클라이언트가 서버로 요청을 보낼 때 HTTP 요청을 사용는데, 이때 데이터는 보통 URL 쿼리스트링, HTML Form 데이터 혹은 JSON 같은 형태로 전달된다. 단순히 문자열로 들어오는 데이터를 일일이 파라미터로 받으면 코드가 길어지고 유지보수가 어려워지는데, Spring에서는 이런 문제를 해결하기 위해 HTTP의 데이터를 서버에서 Java의 객체로 저장하는 기능을 제공한다. 이후 설명할 @ModelAttribute와 @RequestBody는 각각 쿼리/폼 데이터와 JSON 요청 바디를 객체로 매핑하는 대표적인 방법이다.@ModelAttribute Client(브라우저)에서 URL 쿼리 파라미터(ex.?name=개발자&age=30)에서 데이터를 서버로 보내 ..

심화/Spring 2025.09.25

[Spring] PathVariable과 RequestParam

PathVariable과 RequestParam Client(브라우저)에서 서버로 HTTP 요청을 보낼 때 데이터를 함께 보낼 수 있고, 서버에서는 이 데이터를 받아서 사용할 수 있다. Spring에서는 이런 데이터를 전달받는 대표적인 방법으로 PathVariable과 RequestParam을 제공한다.PathVariable 💡PathVariableGET http://localhost:8080/hello/request/star/Robbie/age/95URL 경로 자체에 데이터를 포함시켜 서버로 전달하는 방식주로 특정 리소스를 식별할 때 사용된다.💡Controller 코드 사용 예시@GetMapping("/star/{name}/age/{age}")@ResponseBodypublic String hel..

심화/Spring 2025.09.24