전체 글 78

길벗 코딩 자율 학습단 3주차

프로토콜 : 컴퓨터 간에 원활하게 통신하기 위해 사용하는 전 세계 표준그중, HTTP : 웹 서비스에 사용하는 프로토콜 ! → 클라이언트의 다양한 요청을, 메서드를 통해 서버로 보내는 역할 ** 태그는 GET과 POST 메소드만 지원 **○ action "폼 데이터를 어디로 보낼지 URL 지정" ○ method "어떻게 보낼지 방식 지정" 데이터를 수정할 때 기존 데이터를 조회 후 저장하는 이유✅ 기존 데이터 보호 : form에 빠진 필드가 null이라도, 기존 데이터를 유지 가능✅ JPA의 영속성 사용 가능 : 기존 엔티티는 영속 상태이므로, Dirty Checking으로 간편하게 수정 가능 Dirty CheckingJPA가 영속 상태의 객체를 트랜잭션 안..

Spring 2025.04.23

길벗 코딩 자율 학습단 2주차

롬북(Lombok) : 코드를 간소화해 주는 라이브러리로깅(logging) : 프로그램의 수행 과정을 기록으로 남기는 것리팩터링(refactoring) : 코드의 기능에는 변함이 없이 코드의 구조 또는 성능을 개선하는 작업 @AllArgsConstructor : 클래스 안쪽의 모든 필드를 매개변수로 하는 생성자 자동 생성@NoArgsConstructor : 기본 생성자를 추가해주는 어노테이션@ToString : toString()메서드 자동 생성@Slf4j (Simple Logging Facade for Java) : 로깅기능 - println() 문으로 데이터 검증 시 서버의 성능 악영향 && 나중에 확인 불가 - log.info() 문으로 로깅을 찍을 수 있음@PathVariable : U..

Spring 2025.04.16

기본 생성자

기본 생성자 : 매개 변수가 없는 생성자 스프링에서 기본 생성자가 필요한 경우 ● JPA(Entity) ○ JPA는 리플렉션(Reflection)을 사용해서 객체를 생성하는데, 이때 매개변수가 없는 생성자가 필요 ○ JPA는 new를 직접 사용하지 않고 내부적으로 프록시 객체를 만들거나 객체를 복원하기 때문에, 기본 생성자가 없으면 객체를 생성할 수 없음 ☞ 그럼 왜 protected로 작성할까?기본 생성자를 public으로 열어두면 누구나 호출할 수 있어서 객체 일관성이 깨질 위험이 있기 때문 - public : 외부에서도 객체를 직접 만들 수 있음 (지양) - protected : JPA가 내부적으로 객체를 생성하는 용도로만 사용가능!!! ● D..

Spring 2025.04.16

연관관계 매핑(2)

일대다 단방향 관계 매핑단점 : 매핑한 객체가 관리하는 외래 키가 다른 테이블에 있다 ( → insert, update SQL 모두 필요)@JoinColumn 사용→ 일대다 단방향 매핑보다는 다대일 양방향 매핑이 권장됨 일대일양쪽이 하나의 관계만 가짐. 반대도 일대일 → 주 / 대상 테이블 중 아무 테이블이나 외래키를 가질 수 있음객체 매핑에 @OneToOne 사용. 이때 외래 키에 유니크 제약조건을 추가해야 DB가 물리적으로 일대일 임을 보장 가능1. 주 테이블에 외래 키2. 대상 테이블에 외래 키   - 양방향으로 매핑해서 사용, 단방향은 지원 X 🛑 주 테이블 VS 대상 테이블  ✔️ 주 테이블 (연관관계의 주인)외래 키(Foreign Key)를 가지고 있는 쪽즉, DB에 실제로 외래 키 컬럼이 ..

Spring 2025.04.13

길벗 코딩 자율 학습단 1주차

JDK : 자바 코드의 번역과 실행을 담당하는 자바 개발 도구start.spring.io 에서 Artifact = 프로젝트 이름빌드(Build) = 소스 코드를 실행할 수 있는 독립적인 형태로 만드는 것→ 프로젝트를 빌드 = 독립된 파일이 생성되고 이를 실행해 프로젝트에 작성한 기능들 이용가능해짐 메타데이터 : 컴파일 및 실행과정에서 코드를 어떻게 처리해야 할지 알려주는 추가 정보템플릿화한다 : 코드를 하나의 틀로 만들어 변수화한다 스프링 부트 프로젝트의 구조java = 자바 코드 저장resources = 외부 파일 저장+) localhost 의 ip주소 = 127.0.0.1  웹 서비스의 동작 원리웹 서비스는 클라이언트의 요청에 따른 서버의 응답으로 동작웹 브라우저(클라이언트) ←→ 스프링 부트(서버)..

Spring 2025.04.05

연관관계 매핑(1)

관계 맺기객체 : 참조(주소)를 사용테이블 : 외래키(FK)를 사용' 객체의 참조와 테이블의 외래 키를 매핑 ' keyword●  방향      단방향 (한 쪽만 참조)/ 양방향 (서로 참조) || 테이블 관계는 항상 양방향●  다중성      다대일 / 일대다 / 일대일 / 다대다●  연관관계의 주인       객체를 양방향 연관관계로 만들 경우 주인 명확히 해야함단방향 연관관계  (1 : N) @ManyToOne   - 다중성을 나타내는 어노테이션@JoinColumn(name="매핑할 외래 키 이름") - 외래 키를 매핑하는 것→ 이것은 1:N의 N에 해당하는 entity에 작성 !! JPA에서 엔티티를 저장할 때 연관된 모든 엔티티는 영속 상태여야 함 연관관계가 있는 엔티티를 조회하는 방법객체 그래..

Spring 2025.04.05

내 첫 스프링 CRUD 만들기

드디어 스프링으로 첫 CRUD를 만들게 되었다.. 아니나 다를까 처음 해보는건 막막하다...도메인 → 레포지토리 → 서비스 → 컨트롤러 순으로 만든다고 한다 1️⃣ 클래스명은 대문자로 시작 (Java Naming Convention)2️⃣ 일반적으로 "도메인 객체"는 단수형을 사용 (Members ❌ → Member ⭕)  정적 팩토리 메서드: 객체를 생성하는 역할을 하는 정적(static) 메서드이를 통해서 직접 생성자를 호출하는 대신, Member.create(...) 같은 메서드를 제공하는 방식 장점✅ 필요한 상황에 맞게 정적 팩토리 메서드를 여러 개 만들어 사용하면 된다!✅ 이름을 잘 지으면 객체의 용도를 직관적으로 알 수 있어 가독성이 좋아진다!✅ 객체 생성 과정을 변경해야 할 때, 기존 코드 ..

Spring 2025.04.04

SuperStruct

왜 Superstruct 를 사용할까?node.js + express 환경 → express는 입력 데이터 검증을 안해줌node.js+express는 서버 환경이고, 대부분의 요청은 외부 클라이언트로 부터 옴 = 이 데이터는 믿을 수 없음              ex) email 자리에 숫자 넣기, users POST요청에서 body에 이름이 빠져있는 등..typescript → 런타임 검증을 못함 (컴파일 타임에만 체크)→ 실제 api 요청으로 무엇이 들어올 지 모름Superstruct : 런타임에서 들어오는 데이터를 구조화 (structrue)해서 유효성 검사할 수 있게 해주는 라이브러리 = 런타임 스키마 검증 도구데이터가 기대한 타입인지필수 필드가 빠지지 않았는지값의 길이나 범위가 적절한지중첩된 구..

Project 2025.04.04

이펍 세미나(1)

Node.js 랑 생각보다 Spring이랑 부분부분 다른 점이 많아서 헷갈리지 않도록 신경써야 할 것 같다. +) Spring Boot에서는 객체를 반환하면 자동으로 JSON 변환됨. EnumSpring Boot에서 JPA를 사용할 때 Enum을 어떻게 저장할지 결정해야한다.Node.js에서는 그냥 enum을 객체처럼 만들어서 쓰면 되지만, JPA에서는 Enum을 직접 저장하는 방식이 두 가지가 있기 때문에 이를 명확히 지정해야한다.//example@Enumerated(EnumType.STRING)private AccountStatus status = AccountStatus.ACTIVE; Enum Type에는 ORDINAL 과 STRING 타입이 있는데, STRING 타입이 이름을 지정해서 저장하는 n..

Spring 2025.04.01

엔티티 매핑

JPA : 엔티티와 테이블을 정확히 매핑하는 것 @Entity: JPA를 사용해서 테이블과 매핑할 클래스이 어노테이션이 붙으면 JPA가 관리함, 엔티티라고 부름속성●  name :: 엔티티 이름주의 사항● 기본 생성자 필수● final, enum, interface, inner 클래스에 사용 불가● final 사용 불가능 @Table: 엔티티와 매핑할 테이블 지정속성●  name :: 테이블 이름●  catalog :: catalog 기능●  schema :: schema 기능●  uniqueConstraints(DDL) :: DDL 생성 시 유니크 제약조건  데이터베이스 스키마 자동 생성: JPA는 클래스의 매핑 정보와 데이터베이스 방언을 사용하여 데이터베이스 스키마 생성//애플리케이션 실행 시점에 데..

Spring 2025.03.30