Spring Model/01. Model
-
이번 포스트에서는 @Repository에 대해서 살펴보자. @Repository 용도@Repository는 묵시적인 빈 등록을 위해서 사용되는 stereo type annotation으로 통상 Repository(DAO) 역할을 하는 빈에 선언한다.@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Repository { @AliasFor(annotation = Component.class) String value() default "";}통상 stereo 타입 annotation은 분류하기 위해서 사용하는데 @Repository는 좀 특별한 기능을 가지고 있다. docs에서 Re..
@Repository의 역할이번 포스트에서는 @Repository에 대해서 살펴보자. @Repository 용도@Repository는 묵시적인 빈 등록을 위해서 사용되는 stereo type annotation으로 통상 Repository(DAO) 역할을 하는 빈에 선언한다.@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Repository { @AliasFor(annotation = Component.class) String value() default "";}통상 stereo 타입 annotation은 분류하기 위해서 사용하는데 @Repository는 좀 특별한 기능을 가지고 있다. docs에서 Re..
2024.03.22 -
이번 포스트에서는 Connection Pool에 대해 살펴보자. Connection Pool 개념과 필요성"Connection Pool"이란 말 그대로 DB에 접속하기 위한 Connection들이 놀고 있는 수영장(Pool)이다.DB에 접속하기 위해서는 Connection이라는 리소스가 필요하다. 이 리소스는 특정 요청이 지속적으로 점유하게 되면 리소스 누수가 발생할 수 있기 때문에, 사용 후에는 반드시 종료해서 다른 요청이 사용할 수 있게 해야 한다. 그런데 일반적으로 DB는 네트워크 저~멀리 있기 때문에 매번 접속하는데 상당한 비용이 든다. 따라서 한번 쓰고 종료하는것은 매우 비효율적이다.이런 문제를 해결하기 위해서 Connection Pool 개념이 등장했다. Connection Pool은 Co..
Connection Pool이번 포스트에서는 Connection Pool에 대해 살펴보자. Connection Pool 개념과 필요성"Connection Pool"이란 말 그대로 DB에 접속하기 위한 Connection들이 놀고 있는 수영장(Pool)이다.DB에 접속하기 위해서는 Connection이라는 리소스가 필요하다. 이 리소스는 특정 요청이 지속적으로 점유하게 되면 리소스 누수가 발생할 수 있기 때문에, 사용 후에는 반드시 종료해서 다른 요청이 사용할 수 있게 해야 한다. 그런데 일반적으로 DB는 네트워크 저~멀리 있기 때문에 매번 접속하는데 상당한 비용이 든다. 따라서 한번 쓰고 종료하는것은 매우 비효율적이다.이런 문제를 해결하기 위해서 Connection Pool 개념이 등장했다. Connection Pool은 Co..
2024.03.22 -
우리는 데이터를 표현하기 위해서 Entity, VO, DTO라는 녀석들을 사용한다. 기본적인 작성 방법이 비슷해서 대충 섞어서 잘못 사용하는 경향이 있는데 이들의 정확한 차이점에 대해서 살펴보자. Entity vs VO vs DTO EntityEntity는 실제 데이터베이스의 테이블과 매핑되어 영속성을 가지는 데이터를 표현하기 위해 사용된다.Entity는 테이블의 기본키(Primary Key)에 해당하는 고유한 식별자(ID)를 가지며 이를 기준으로 동일성을 판단한다. 따라서 Entity 객체 하나가 테이블의 한 행(row)에 대응 된다. Entity는 식별자는 불변이지만 시간에 따라 상태가 변할 수 있는 가변성을 갖는다.Entity는 필요 시 비지니스 로직을 포함할 수 있으며 데이터와 관련된 로직을 ..
Entity vs VO vs DTO우리는 데이터를 표현하기 위해서 Entity, VO, DTO라는 녀석들을 사용한다. 기본적인 작성 방법이 비슷해서 대충 섞어서 잘못 사용하는 경향이 있는데 이들의 정확한 차이점에 대해서 살펴보자. Entity vs VO vs DTO EntityEntity는 실제 데이터베이스의 테이블과 매핑되어 영속성을 가지는 데이터를 표현하기 위해 사용된다.Entity는 테이블의 기본키(Primary Key)에 해당하는 고유한 식별자(ID)를 가지며 이를 기준으로 동일성을 판단한다. 따라서 Entity 객체 하나가 테이블의 한 행(row)에 대응 된다. Entity는 식별자는 불변이지만 시간에 따라 상태가 변할 수 있는 가변성을 갖는다.Entity는 필요 시 비지니스 로직을 포함할 수 있으며 데이터와 관련된 로직을 ..
2023.10.19 -
이번 시간에는 SpringBoot에서 Spring Data JPA를 사용하기 위한 프로젝트의 기본 환경 설정에 대해 살펴보자.프로젝트 개요 게시판을 위한 Spring Data Jpa 프로젝트우리가 만들어볼 애플리케이션은 회원제 게시판이다. 회원은 여러 개의 게시글을 작성할 수 있고 각각의 게시글은 하나의 첨부 파일과 여러 개의 댓글을 가질 수 있다. 데이터를 저장할 데이터베이스로는 H2를 사용한다.Spring Data JPA를 통해 접근한다. Spring Data JPA는 JPA 사용하는데 그 구현체로는 Hibernate를 사용한다. 구현체는 EclipseLink등으로 교체할 수도 있다.Model을 구성하는 Service와 Repository는 빈으로 관리되며 DB의 테이블을 객체화 하기 위한 Enti..
03. 프로젝트 구성이번 시간에는 SpringBoot에서 Spring Data JPA를 사용하기 위한 프로젝트의 기본 환경 설정에 대해 살펴보자.프로젝트 개요 게시판을 위한 Spring Data Jpa 프로젝트우리가 만들어볼 애플리케이션은 회원제 게시판이다. 회원은 여러 개의 게시글을 작성할 수 있고 각각의 게시글은 하나의 첨부 파일과 여러 개의 댓글을 가질 수 있다. 데이터를 저장할 데이터베이스로는 H2를 사용한다.Spring Data JPA를 통해 접근한다. Spring Data JPA는 JPA 사용하는데 그 구현체로는 Hibernate를 사용한다. 구현체는 EclipseLink등으로 교체할 수도 있다.Model을 구성하는 Service와 Repository는 빈으로 관리되며 DB의 테이블을 객체화 하기 위한 Enti..
2022.11.13 -
이번 시간에는 Spring Data project에 대해 살펴보자.Spring Data Spring Data란?https://spring.io/projects/spring-dataSpring Data는 전통적인 데이터 저장소에 대한 사용 특성을 유지하면서 여러 형태의 데이터 저장소를 활용하기 위한 프로젝트이다.프로그램에서 데이터를 영속적으로 저장하기 위해 과거에는 주로 관계형 데이터베이스를 많이 사용했고 데이터를 관리하기 위해 JDBC 기반의 기술들이 발전했지만 최근에는 비 관계형 데이터베이스, 맵 리듀스 프레임워크, 클라우드 기반 서비스들이 많이 등장했다. Spring Data는 다양한 데이터 저장소에 접근하는 다양한 기술들을 포함하는 포괄적인 프로젝트이다.Spring Data를 사용하면 MySql ..
02. Spring Data와 Spring Data JPA이번 시간에는 Spring Data project에 대해 살펴보자.Spring Data Spring Data란?https://spring.io/projects/spring-dataSpring Data는 전통적인 데이터 저장소에 대한 사용 특성을 유지하면서 여러 형태의 데이터 저장소를 활용하기 위한 프로젝트이다.프로그램에서 데이터를 영속적으로 저장하기 위해 과거에는 주로 관계형 데이터베이스를 많이 사용했고 데이터를 관리하기 위해 JDBC 기반의 기술들이 발전했지만 최근에는 비 관계형 데이터베이스, 맵 리듀스 프레임워크, 클라우드 기반 서비스들이 많이 등장했다. Spring Data는 다양한 데이터 저장소에 접근하는 다양한 기술들을 포함하는 포괄적인 프로젝트이다.Spring Data를 사용하면 MySql ..
2020.06.22 -
이번 시간에는 스프링에서 Model 단 프로그래밍을 위한 내용에 대해 살펴보자.Model MVC 디자인 패턴MVC 디자인 패턴이란 애플리케이션을 구성하는 가장 기본적인 패턴으로 애플리케이션을 Model, View, Controller 3가지 모듈로 분리해서 바라본다.Controller: 사용자의 입력을 처리하고 Model과 View 사이의 인터페이스 역할(@Controller)Model: 비즈니스 로직과 데이터 관리 로직을 처리하는 부분(@Service, @Repository)View: 사용자에게 보여지는 부분(JSP, Thymeleaf, ...)이렇게 영역을 모듈로 분리해서 관리하는 이유는 대부분 모듈 교체에 따른 유지보수가 용이하게 하기 위함이다. 예를 들어 View를 구성할 때 JSP로 만들었다가 ..
01. Model 영역과 Spring이번 시간에는 스프링에서 Model 단 프로그래밍을 위한 내용에 대해 살펴보자.Model MVC 디자인 패턴MVC 디자인 패턴이란 애플리케이션을 구성하는 가장 기본적인 패턴으로 애플리케이션을 Model, View, Controller 3가지 모듈로 분리해서 바라본다.Controller: 사용자의 입력을 처리하고 Model과 View 사이의 인터페이스 역할(@Controller)Model: 비즈니스 로직과 데이터 관리 로직을 처리하는 부분(@Service, @Repository)View: 사용자에게 보여지는 부분(JSP, Thymeleaf, ...)이렇게 영역을 모듈로 분리해서 관리하는 이유는 대부분 모듈 교체에 따른 유지보수가 용이하게 하기 위함이다. 예를 들어 View를 구성할 때 JSP로 만들었다가 ..
2019.09.09