Spring 81

정적 팩토리 메서드 (Static Factory Method)

정적 팩토리 메서드란?new 키워드를 사용하지 않고, 클래스에 정의된 static 메서드를 통해 객체를 반환하는 방식이다.public class User { private String name; private User(String name) { this.name = name; } public static User of(String name) { return new User(name); }}User user = User.of("홍길동");장단점✅ 장점 이름을 가질 수 있어 의미가 명확하다→ User.of("홍길동") vs new User("홍길동")생성 로직을 캡슐화할 수 있다→ 내부적으로 캐싱, 서브타입 반환 등도 가능생성자보다 유연하다→ 같은 파라미..

Spring/문법 2025.05.09

Entity와 DTO(Data Transfer Object)의 차이

개발을 하다 보면 한 가지 의문이 생긴다."Entity랑 DTO, 왜 굳이 나눠서 써야 하지?" 처음엔 둘 다 그냥 데이터를 담는 그릇처럼 보인다. 하지만, 이 두 객체는 그 목적과 사용되는 맥락이 다르기 때문에, 실제로는 각각 다른 역할을 수행한다.이 글에서는 Entity와 DTO의 차이점을 명확히 구분하고, 왜 둘을 분리해서 사용하는 것이 중요한지에 대해 살펴보겠다.1. Entity"Entity는 데이터베이스 테이블과 1:1로 매핑되는 객체이다." 특징@Entity로 선언되고, 주로 JPA 같은 ORM과 함께 사용된다.DB에 직접 저장하거나 조회하는 객체다.비즈니스 도메인을 표현하기도 한다.@Entitypublic class User { @Id @GeneratedValue private L..

[📗 스프링 입문] 2. 스프링 웹 개발 기초

📗 목차정적 컨텐츠MVC와 템플릿 엔진API[퀴즈]1. 정적 컨텐츠정적 컨텐츠서버에서 별도의 처리 없이 그대로 클라이언트에게 전달되는 파일ex. HTML, CSS, JavaScript, 이미지(jpg, png, gif 등) 스프링부트에서는 정적 컨텐츠src/main/resources/static 디렉토리 아래에 위치한 파일들을 정적 컨텐츠로 인식하고, 자동으로 서빙한다.http://localhost:8080/{파일명} 으로 접근 가능하다. [실습]정적 컨텐츠 입니다.2. MVC와 템플릿 엔진MVC (Model-View-Controller)애플리케이션을 세 가지 책임으로 나누는 아키텍처 패턴Model: 애플리케이션의 데이터와 비즈니스 로직 처리 (예: 서비스, 도메인 객체)View: 사용자에게 보여지는..

Spring/강의 2025.05.08

[📗 스프링 입문] 1. 프로젝트 환경 설정

📗 목차프로젝트 생성라이브러리 살펴보기View 환경설정빌드하고 실행하기[퀴즈]1. 프로젝트 생성사전 준비물Java 11 설치IDE: IntelliJ 또는 Eclipse 설치 스프링 프로젝트 생성스프링 부트 스타터 사이트: https://start.spring.io/설정Project: Gradle-GroovyLanguage: JavaSpring Boot: 기본값 (강의는 Sping Boot 2.3.1 버전을 사용한다.)Project Metadata: Group, Artifact 지정Dependancies: Spring Web, Tymeleaf 추가GENERATE: 누르면 압축파일이 다운로드 된다. 압축 풀고, IntelliJ 로 폴더 열기 폴더 구조 설명project-root/├── build.gra..

Spring/강의 2025.05.07

[📗 스프링 입문] 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

인프런 무료 강의인스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술강의를 듣고 내용을 정리해보고자 한다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 [지금 무료]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 | 김영한 - 인프런김영한 | , 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 첫 번째 강의입니다. 우아한형제들 최연소 기술이www.inflearn.com

Spring/강의 2025.05.07

[📕 기초 Spring] 6-7. 메모장 프로젝트 - ver4 (데이터베이스 접근 기술 적용)

메모장 프로젝트 ver3 의 문제점데이터베이스에 영구적으로 데이터가 저장되지 않는다. (Database 접근 기술)예외 발생시 공통적으로 처리가 불가능하다.각각의 모든 예외를 try-catch 하여 처리해야 한다.RequestDto, ResponseDto를 공유하여 null값이 들어오기도 한다.필요없는 필드에 추가적인 null 검사를 해야한다.Spring Bean, 생성자 주입 등 Spring의 동작 원리에 대해 이해하지 못했다.왜 Interface로 만들어서 구현하여 사용하는지 모른다.📕 목차프로젝트 세팅JDBC Template 적용메모 생성 API 리팩토링 메모 목록 조회 API 리팩토링메모 단건 조회 API 리팩토링메모 전체 수정 API 리팩토링메모 제목 수정 API 리팩토링메모 삭제 API 리팩..

Spring/강의 2025.05.07

[📕 기초 Spring] 6-6. Java와 Database

📕 목차JDBC(Java Database Connectivity) JDBC의 한계Persistence Framework1. JDBC(Java Database Connectivity)JDBC (Java Database Connectivity)Java 언어를 사용하여 DB와 상호 작용하기 위한 자바 표준 인터페이스JDBC를 사용하면 SQL 쿼리를 실행하고, 결과를 처리하며, 데이터베이스와 연결된 상태에서 트랜잭션을 관리할 수 있다. JDBC의 주요 구성 요소표준 API:다양한 관계형 데이터베이스 시스템(RDBMS)과 호환되며, 일관된 방식으로 데이터베이스와 상호작용할 수 있다.ex. Database 종류가 바뀌어도 쿼리문이 실행된다. MySQL → ORACLE데이터베이스 연결:JDBC를 통해 애플리케이션과..

Spring/강의 2025.05.06

[📕 기초 Spring] 6-5. SQL 실습

📕 목차Intellij Database 연동 CREATE ALTER INSERT SELECT UPDATE DELETE JOIN 1. Intellij Database 연동새로 만들기 > 데이터 소스 > MySQL > MySQL 연결 정보 입력연결 테스트 완료 후, 확인 스키마 생성 좌측 콘솔창에 명령어 입력use sparta;2. CREATE데이터베이스 혹은 테이블 생성에 사용한다. STUDENT(학생) 테이블-- 테이블 생성 (student)CREATE TABLE student ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '학생 식별자', name VARCHAR(100) COMMENT '이름', age INT COMMENT '나이', ..

Spring/강의 2025.05.06

[📕 기초 Spring] 6-4. SQL (Structured Query Language)

📕 목차SQL (Structured Query Language)MySQL 살펴보기1. SQL (Structured Query Language)SQL (Structured Query Language)SQL은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 정의, 조작, 제어, 조회하기 위해 사용되는 표준 프로그래밍 언어이다. SQL 특징관계형 데이터베이스와의 상호작용을 표준화하고 효율적으로 수행할 수 있게 해준다.데이터베이스에서 원하는 정보를 추출하고 분석할 수 있게 해준다.대부분의 RDBMS(MySQL, PostgreSQL, Oracle 등)가 SQL을 지원한다.표준 SQL은 존재하지만, 제품마다 조금씩의 차이(함수명)가 존재한다.SQL 명령문은 대소문자를 구분하지 않고, 대문자로 사용하면 가..

Spring/강의 2025.05.06

[📕 기초 Spring] 6-3. 데이터베이스 (Database)

📕 목차Database 준비하기데이터베이스 (Database)데이터베이스 관리 시스템(DBMS)관계형 데이터베이스 (RDBMS)1. Database 준비하기MySQL 설치하기참고: https://gajicoding.tistory.com/305 MySQL 설치하기MySQL 을 설치해봅시다.1. 설치설치 링크: https://dev.mysql.com/downloads/mysql/ MySQL :: Download MySQL Community ServerSelect Version: 9.3.0 Innovation 8.4.5 LTS 8.0.42 Select Operating System: Select Operating System… Microsoft Windows Ubungajicoding.tistory.com2..

Spring/강의 2025.05.06