일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 스터디카페
- 스프링부트
- 사전캠프
- 자바
- til #데이터베이스 #sql
- 함바그
- springboot
- optional
- validation
- 스파르타코딩클럽
- 내일배움캠프
- 요시
- 스파르타코딩클럽 #개발자 #백엔드
- 스파르타코딩클럽 #사전캠프
- 캡슐화
- 스파르타사전캠프
- 레퍼클래스
- 깃
- jvm
- 피드백
- static
- Framework
- Interface
- Til
- 프레임워크
- Spring
- Java
- 깃헙
- 메모리구조
- 키오스크
- Today
- Total
목록분류 전체보기 (56)
John's Code Journey
📘 Spring Boot 개발 순서 가이드 (ERD & API 명세 기반)✅ 전제ERD (Entity Relationship Diagram) 완성API 명세서 (Swagger, Notion, Excel 등으로 작성된 요청/응답 정의) 완성1️⃣ Entity 설계목적데이터베이스 테이블과 1:1 매핑되는 클래스 정의작업@Entity, @Table 어노테이션 사용필드에 @Column(nullable = false) 등 제약 조건 명시연관관계 설정: @ManyToOne, @OneToMany, @JoinColumn 등@NoArgsConstructor(access = AccessLevel.PROTECTED) + 생성자/비즈니스 메서드 사용→ setter는 지양하고 update() 같은 메서드로 변경예시@Entit..

📝 Validation 스프링에서 Validation(검증)은 사용자 입력 데이터를 검증하고, 이를 통해 유효하지 않은 데이터가 애플리케이션에 들어가는 것을 막기 위한 중요한 과정입니다. 특히, 웹 애플리케이션에서 폼 제출이나 API 요청 시 검증은 필수적입니다. 이 글에서는 스프링에서 Validation을 구현하는 방법, 주요 어노테이션, 그리고 @Valid와 @Validated의 차이를 중심으로 자세히 설명합니다. 1. 스프링 Validation 개요스프링 Validation은 주로 Bean Validation API를 기반으로 동작합니다. 이 API는 객체에 대해 유효성 검사를 수행하고, 검증 규칙을 어노테이션을 통해 정의합니다. 스프링은 @Valid와 @Validated 어노테이션을 통해 이러한..

🌱 Optional 쉽게 이해하기✅ 1. Optional이 뭐야?Optional은 값이 있을 수도 있고, 없을 수도 있다는 걸 감싸는 상자(Box) 같은 거값이 있으면 → 상자 안에 들어 있음값이 없으면 → 비어 있음 (null 아님!)이 상자를 쓰는 이유는 null 때문에 프로그램이 갑자기 죽는 걸 막기 위해서 ✅ 2. Optional이 없을 때 예시 (나쁜 예)public class Main { public static String getName() { return null; // 값이 없을 수도 있어! } public static void main(String[] args) { String name = getName(); System.out.p..

🧠 다형성이란?"같은 이름(메서드, 변수 등)인데 여러 가지 형태로 동작하는 것"→ "하나의 타입(부모)으로 여러 타입(자식)을 다룰 수 있는 것"자바에서 다형성은 주로 상속 + 메서드 오버라이딩 + 업캐스팅을 통해 실현됨 🎯 다형성의 힘코드 재사용 증가유지보수 쉬움확장성 좋아짐다양한 객체를 하나의 타입으로 처리 가능!✅ 다형성 기본 예제1. 부모 클래스class Animal { public void sound() { System.out.println("동물이 소리를 냅니다."); }} 2. 자식 클래스들 (오버라이딩)class Dog extends Animal { @Override public void sound() { System.out.println..

💊 캡슐화란?캡슐화는 데이터(필드)와 행동(메서드)를 하나로 묶고,외부에서 직접 접근하지 못하도록 감추는 것쉽게 말하면, 중요한 데이터는 "숨기고", 접근은 안전한 통로로만 허용하겠다는 개념.마치 약(데이터)을 캡슐(클래스)로 감싸서 안전하게 먹는 것처럼 🧠 왜 캡슐화를 사용할까?이유설명데이터 보호외부에서 마음대로 값을 바꾸는 걸 막음 (잘못된 사용 방지)코드 유지보수 ↑내부 구조가 바뀌어도 외부에는 영향 없음 (안정적 설계)유효성 검사값을 넣을 때 조건 체크 가능 (setter에서 검증 등)✅ 캡슐화의 구현 방법자바에서 3단계로 구현필드는 private 으로 감추기getter/setter 메서드로 간접 접근 허용필요하다면 setter에 유효성 검사 추가📄 예제public class Student ..

📚인터페이스(interface)란?인터페이스는 설계 표준입니다.클래스가 따라야할 최소한의 공통 규칙을 정의하는 역할을 합니다. 📚인터페이스를 사용하는 이유모든 설계에 표준이 있는 이유와 똑같습니다.개발자마다 서로 다른 방식으로 메서드를 만든다면 일관성이 깨질 수 있습니다.인터페이스를 활용해서 최소한의 규격을 정의합니다.세부 구현은 각 클래스에 맡깁니다.일관성을 유지하면서 클래스가 고유한 특색을 확장할 수 있도록 돕습니다.⚠️자동차를 예시로 인터페이스 왜 필요한지 알아봅시다.LuxuryCar 와 SpeedCar 모두 자동차를 구현하고 있습니다.LuxuryCar 를 이용하는 경우 move() 메서드로 주행할 수있지만SpeedCar 를 이용하는 경우 drive() 메서드를 활용해 주행해야합니다.같은 자동차..

🔒 자바의 final 키워드란?final은 "변경 금지" 라는 의미.자바에서 final은 값이나 구조를 더 이상 바꿀 수 없게 만들 때 사용됨.📌 final이 사용되는 3가지 주요 장소대상의미예시변수한 번만 값 할당 가능 (상수처럼 사용)final int x = 10;메서드오버라이딩 금지final void print() {...}클래스상속 금지final class Dog {}✅ 1. final 변수 (상수)public class Example { final int x = 100; // 초기화 후 변경 불가 public void test() { // x = 200; // ❌ 오류: final 변수는 수정 불가 }}public class Config { public st..

✅ static이란?static은 "공유" 라는 개념클래스에 소속되어 있어서 객체를 만들지 않아도 사용할 수 있는 멤버를 만들 때 사용함 💡 쉽게 말해서일반 변수/메서드: 객체(Object)를 만들어야 쓸 수 있음.static 변수/메서드: 객체를 만들지 않고도 클래스 이름으로 바로 사용 가능!📌 예시public class Student { // static 변수 (모든 객체가 공유) static int count = 0; // 인스턴스 변수 (각 객체마다 따로 존재) String name; // 생성자 public Student(String name) { this.name = name; count++; // 객체가 생성될 때마다 count 증..

📌 자바의 레퍼 클래스(Wrapper Class)란?레퍼 클래스(Wrapper Class) 는 자바의 기본 자료형(Primitive Type) 을객체(Object) 형태로 다룰 수 있도록 만들어진 클래스.기본형 (Primitive) 레퍼 클래스 (Wrapper)intIntegerdoubleDoublecharCharacterbooleanBooleanbyteByteshortShortlongLongfloatFloat❓ 왜 레퍼 클래스가 필요할까?자바는 기본형과 객체를 구분함.기본형은 단순한 데이터지만, 객체처럼 다루기 위해선 Wrapper가 필요하다.💡 주된 이유:컬렉션(예: ArrayLis..

🔸 영속성이란?데이터가 메모리에만 있지 않고, DB에 저장되어서 "오래도록 유지될 수 있는 상태" 를 뜻함. 📍 쉽게 말하면?우리가 자바 프로그램에서 어떤 객체를 만들면, 그 객체는 프로그램이 종료되면 사라진다.그런데 그걸 데이터베이스에 저장하면, 프로그램이 꺼져도 그 데이터는 계속 남아 있음.이렇게 "오래 살아남는" 상태를 영속(Persistent)이라고 함.🔸 비유로 이해하기✅ 비영속 상태Member member = new Member(); // 그냥 자바 객체그냥 메모리에만 있음. 저장 안 된 상태.컴퓨터 꺼지면 사라짐.✅ 영속 상태em.persist(member);JPA가 이 객체를 영속성 컨텍스트에 등록하고, 나중에 DB에 insert함.데이터베이스에 저장되면 오래 살아남는 상태가 됨 → ..