본문 바로가기

스프링31

TIL : @CreatedDate, @CreationTimestamp (11) 🌞 Spring 엔티티 클래스에서 시간을 2가지 방법으로 관리한다. 바로 Hibernate에서 제공하는 @CreationTimestamp과 JPA에서 제공하는 @CreatedDate. 둘의 차이를 알아보자!! 1️⃣ @CreatedDate & @LastModifiedDate 사용하기 위해선 2가지 설정이 필요하다! SpringApplication에 @EnableJpaAuditing을 붙인다. 선언한 엔티티에 @EntityListeners(AuditingEntityListener.class)를 붙인다. 설정이 필요한 이유는 다음과 같다. JPA는 JPA 고유 메모리 공간(context)을 이용해서 엔티티 객체들을 관리한다. 관리되는 객체들이 변경되면 데이터에 반영되는 형식이다. 즉, 재사용하는 방식이다. .. 2022. 9. 12.
[Spring] Spring의 DB 접근 기술 ✍️ 학습 목표 JDBC Spring JdbcTemplate JPA Spring Data JPA 📌 JDBC JDBC란? Java Database Connectiviy의 약자로 Java 환경에서 DB에 접근하기 위한 표준 API이다. 스프링과 독립적이며 DBMS의 종류와 상관없이 하나의 JDBC API를 이용해서 데이터베이스 작업을 처리한다. ✔️ 등장 배경 및 특징 JDBC 이전에는 데이터베이스 종류에 따라 다른 SQL문을 사용해야 했다. JDBC가 등장하면서 데이터베이스마다 다른 메서드나 전역 변수 등을 통일하는 문법을 만들어 사용할 수 있게 해주었다. 코드가 길고 쿼리문을 직접 작성해야 하는 번거로움이 있으며 예외 처리를 위한 복잡한 try-catch 문을 사용해서 현재는 많이 사용하지 않는다. 📌.. 2022. 8. 23.
[Spring] Spring의 핵심 : IoC, DI (23.05.16 updated) ✍️ 학습 목표 IoC DI 📌 IoC (Inversion of Control) IoC란? Inversion of Control의 약자로 단어 그대로 해석하면 '제어의 역전'이라는 뜻이다. 이전에는 프로그램의 흐름을 개발자가 주도했지만 스프링에서는 이 흐름이 달라진다. 메소드나 객체의 호출을 개발자가 아닌 스프링 컨테이너에서 담당한다. 스프링 컨테이너는 IoC 컨테이너라고도 불린다. ✔️ IoC 컨테이너 IoC 컨테이너란? 객체를 생성, 관리 그리고 의존성을 관리해주는 컨테이너이다. IoC 컨테이너가 관리하는 객체를 Bean이라고 하는데, Bean을 저장해서 BeanFactory라고도 불린다. BeanFactory는 하나의 인터페이스이다. 의존 관계 외에 다양한 기능을 제공하는데 이 BeanFactory.. 2022. 8. 23.
[Spring] Spring vs Spring Boot (2) ✍️ 학습 목표 스프링이란? 스프링 부트란? 차이점 📌 스프링 부트란? 스프링의 등장만으로 큰 변화를 가져왔지만 개발자들은 여전히 불편한 점이 있었는데 바로 복잡한 환경 설정이다. 다양한 라이브러리와 기술을 지원하면서 덩달아 개발자가 처리해야 하는 설정도 많아지고 복잡해진 것이다. 스프링 부트는 이 문제를 해결하고자 등장했다. 다음 항목들은 내가 생각하는 가장 중요한 기능이자 스프링과의 차이점이라고 생각한다. Auto Configuration Easy Dependency Management Embedded Server 이 3가지 기능들 외에도 라이브러리 버전 자동 관리, 인메모리 데이터베이스(H2), 테스트 환경 제공 등 스프링에는 없던 다양한 기능들을 추가함으로 더 편한 개발 환경을 제공한다. 즉, 최.. 2022. 8. 23.
[Spring] Spring vs Spring Boot (1) ✍️ 학습 목표 스프링이란? 스프링 부트란? 차이점 📌 스프링이란? 자바 엔터프라이즈 개발을 편하게 만들어주는 가벼운 애플리케이션 프레임워크이다. 이 한 문장이 스프링의 모든 특징을 잘 말해주고 있다. ✔️ 애플리케이션 프레임워크 일반적인 프레임워크는 특정 분야나 한 가지 기술에 특화되어 있다. 애플리케이션 프레임워크는 많은 영역을 포괄하는 프레임워크를 말한다. 스프링은 전 영역을 관통하는 프로그래밍 모델과 각 영역별로 필요로 하는 조건을 채워주는 기술로 개발의 모든 과정을 빠르고 편리하면서 효율적으로 진행할 수 있게 한다. ✔️ 가볍다 단순히 가볍다거나 코드의 양이 적다는 의미가 아니다. 가볍고 단순한 환경에서도 대규모 개발의 고급 기술을 대부분 사용 가능하고 빠르고 간편하게 코드를 작성할 수 있어 유.. 2022. 8. 19.
[Spring] Spring Data JPA (2) 📌 기본 설정 Spring Boot 프로젝트를 생성할 때 'Auto Configuration'이라는 기능 덕분에 관련된 설정이 자동으로 추가된다. Spring Data JPA도 마찬가지이지만 구체적인 값을 지정해야 데이터베이스를 사용할 수 있다. DB를 위한 JDBC 드라이버 설정하기 Spring Boot 프로젝트 내 DB 설정하기 ✔️ Application.properties 설정 (프로젝트 내 DB 설정) spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/{DB명} spring.datasource.username= spring.datasource.passwor.. 2022. 8. 13.