728x90

개발일지/SPRING 12

[Spring Data JPA] @CreatedDate, @LastModifiedDate가 null이 들어가는 이유

Spring Data JPA의 Auditing 기능은 엔터티가 생성되거나 수정될 때 자동으로 특정 필드를 갱신해주는 기능입니다.  1. @EnableJpaAuditingSpring Boot 애플리케이션 클래스나 설정 클래스에 추가하여 Auditing 기능을 활성화합니다.1) 애플리케이션에 추가하는 경우import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.data.jpa.repository.config.EnableJpaAuditing;@SpringBootApplication@EnableJpaAuditin..

개발일지/SPRING 2024.06.20

[Spring] Spring Boot 3.x에 Swagger 설정하기 (예시 코드)

API 테스트를 위해서 Postman을 쓸 수도 있지만 좀 더 쉽게 하기 위해 Swagger를 세팅할 수도 있습니다.  1. 라이브러리 사용을 위해 dependencies에 추가//gradleimplementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0' //swagger//maven org.springdoc springdoc-openapi-starter-webmvc-ui 2.5.0  2. Config 파일 추가package com.tutorial.spring.global.config;import io.swagger.v3.oas.models.OpenAPI;import io.swagger.v3.oas.mo..

개발일지/SPRING 2024.06.11

[Spring Boot] 스프링 부트 프로젝트 생성

start.spring.io를 통해 쉽게 스프링 부트 프로젝트를 생성해 보겠습니다. 아래 경로로 들어간 후 개발 환경에 맞게 선택을 해줍니다. https://start.spring.io/ 1) Project Gradle과 Maven은 빌드 관리 도구로 프로젝트에서 사용하는 외부 라이브러리를 자동으로 관리해서 의존성에 맞는 라이브러리들을 받아옵니다. 이렇듯 의존성 관리뿐만 아니라 빌드 설정 관리, 자동화된 빌드 및 테스트, 배포 관리의 역할을 해줍니다. Gradle 빌드 스크립트를 Groovy DSL로 작성해서 가독성이 좋고 유지보수가 쉽고 Maven은 XML 기반 설정 파일은 가독성이 떨어지고, 복잡한 설정을 작성하기 어려울 수 있습니다. Maven의 장점도 있지만 Gradle의 장점이 더 크기 때문에 ..

개발일지/SPRING 2023.11.27

[Spring] 스프링 빈 설정과 라이프 사이클

스프링 빈 설정 메타정보 1. XML 태그를 사용 2. Annotation - 빈 스캐닝을 통해 자동 등록함 - component-scan 사용 - base-package 하위 클래스들을 스캔하여 자동으로 등록해줌 - @Repository, @Service, @Controller, @Component - 빈 특성, 종류에 따라 구분한 annotation으로 등록 - @Autowired : 타입에 맞춰서 연결해줌 - @Qualifier("name") : 동일 타입 bea이 여러개일 경우 식별 @Component public class MemberServiceImpl implements MemberService{ @Autowired private MemberDao memberDao; } 1) setter m..

개발일지/SPRING 2023.10.23

[Spring] IoC & Container (BeanFactory, ApplicationContext) 개념

Spring IoC (Inversion of control) 1. DL (Dependency LookUp) - 컨테이너가 lookup context를 통해서 필요한 자원이나 객체를 얻음 - 캐스팅과 예외처리가 필요 2. DI (Dependency Injection) - 객체에 lookup를 사용하는 것이 아닌 컨테이너가 직접 의존 구조를 Object에 설정해줌 - 객체가 컨테이너의 존재를 알 필요가 없음 Container - 객체 생성, 사용, 소멸에 해당하는 라이프사이클을 담당함 - 라이프 사이클 관리, Dependecy 객체 제공, Thread 관리 등의 기능 - 비즈니스 로직 외 부가기능을 독립적으로 관리하기 위해 필요함 - 서비스 look up이나 Configuration에 대한 일관성을 갖게 해..

개발일지/SPRING 2023.10.22

[Spring] Spring 핵심 개념, 모듈

스프링 핵심 개념 1. POJO (Plain Old Java Object) - 특정 환경이나 기술에 종속되지 않는 객체지향 원리에 충실한 자바객체 -> 생산성, 이식성 향상 - 특정 인터페이스를 구현, 클래스를 상속하지 않는 일반 자바 객체 지원 - 테스트 용이, 객체지향 설계 적용 가능 2. PSA (Portable Service Abstraction) - 환경, 기술 변경과 관계없이 기술에 접근할 수 있게 해주는 설계 원칙 - 트랜잭션 추상화, OXM 추상화, 데이터 액세스의 Exception 변환기능 등 기술적 복잡합을 추상화하여 Low Level의 기술 구현 부분과 기술 사용 인터페이스로 분리함 3. IoC/DI (Dependency Injection) - 확장 가능한 객체 생성 후 외부에서 객체..

개발일지/SPRING 2023.10.22

[SPRING] DI(Dependency Injection) 설정 방법

DI 설정 방법 1. XML 기반 - xml 파일을 사용하여 요소를 정의 - applicationContext.xml에 beans, c, context 네임스페이스 추가 1) 생성자 기반 의존성 주입(Constructor based dependency Injection) - 생성자 인수를 통해 의존성 주입 - xml에 태그를 사용하여 컴포넌트 주입 설정 2) 설정자 기반 의존성 주입(Setter based dependency Injection) - 메서드 인수를 통해 의존성 주입 - xml에 요소의 name 속성에 주입할 컴포넌트 이름 설정 2. Annotation 기반 애너테이션을 클래스에 사용해서 DI컨테이너가 빈 자동 등록 - @Autowired : 컨테이너가 빈과 다른 빈과의 의존성을 자동으로 주..

개발일지/SPRING 2021.06.12

[Spring] Dependency Injection(DI) 개념

DepenDency Injection(DI) : 의존 관계 주입을 통해 오브젝트 간 의존관계를 만들어줌 스프링은 런타임 시 객체 간 의존관계를 부여(컨테이너를 통해) 객체 간의 결합도를 낮춰줌(인터페이스를 사용) -> 객체 간 영향력이 줄어들어 변경용이성, 확장성 증가 IoC(Inversion of Control) : 인스턴스를 제어하는 주도권이 역전됨 DI 컨테이너가 인스턴스의 생성과 의존 관계 연결을 해주기 때문 ( A가 B를 원할 때 B를 생성해서 A에게 넣어줌 ) IoC 컨테이너 : 인스턴스의 생명주기 관리 및 의존 관계 주입을 처리함 스프링 빈(Spring Bean)의 생성, 관계, 조립, 생명주기를 관리함 - BeanFactory 경량 컨테이너로 작업할 때 활용하고 DI의 기본 기능을 제공함 ..

개발일지/SPRING 2021.06.05

[Spring] 빌드 라이프사이클

빌드 라이프 사이클 : 빌드 단계(컴파일,테스트,패키징,배포) - 기본 라이프 사이클 여러 단계의 페이즈(phase)로 나뉘어져있으며 각 페이즈가 의존관계를 가짐 compile -> test -> package -> deploy - Clean 라이프 사이클 clean 페이즈로 이전 빌드에서 생성된 타겟 디렉토리를 삭제 - Site 라이프사이클 site, site-deploy 페이즈를 통해 생성된 문서들을 대상 사이트에 배포 [주요 용어] 골(Goal) : 각 빌드 단계에서 수행되는 작업 플러그인(Plugin) : 골을 실행시킴 페이즈(phase) : 하나 이상의 골을 수행함 페이즈 별로 플러그인이 작업을 수행(이 작업이 골)

개발일지/SPRING 2021.04.26
728x90
반응형