본문 바로가기

[kotlin] JPA 6: Spring Boot에서 Repository 활용 들어가기 데이터베이스에서 데이터를 조회하거나 저장하기 위해서 연동해주는 객체가 필요하다. 이를 리포지토리라고 한다. 일반적인 리포지토리이면 실제 데이터베이스에 데이터를 저장하거나 조회하기 위한 JDBC를 사용하거나 라이브러리 사용할 경우 쿼리를 작성해 줘야한다. 그러나 JPA에서는 더 쉽게 자동으로 처리해준다. 어떻게 할 수 있는지 살펴보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 리포지트리 구조 Spring Data에서 리포지토리를 위한 Repository 인터페이스를 제공한다. 이 인터페이스를 통해 데이터베이스와 연동된다. 아래는 Spring Data JPA에서 제공되는 Repository의 상속 트리 구조이다. Repository 인터페이스를.. 더보기
[kotlin] JPA 5: Spring Boot에서 Entity 고급관계 들어가기 JPA에서 연관관계 말로 다양한 관계를 표현할 수 있다. 클래스 상속 관계, 내포관계, 콜렉션 데이터 표현 등 다양하다. 이번에는 이전 연관간계 외에 엔티티에서 사용되는 다양한 관계를 살펴볼려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 어노테이션 목록 MappedSuperclass Inheritance DiscriminatorColumn DiscriminatorValue Embeddable Embedded AttributeOverride SecondaryTable ElementCollection CollectionTable PrimaryKeyJoinColumn ForeignKey Index @MappedSuperclass 어노테이션 .. 더보기
[kotlin] JPA 4: Spring Boot에서 Entity 연관관계 들어가기 엔티티는 여러 개가 존재하고 엔티티 간에 관계가 존재하다. 이런 관계는 대부분 데이터베이스 기준으로 ER 다이어그램에서 카디널리티(cardinality)에 해당한다. 결국 데이터베이스에 테이블 간에 관계를 엔티티로 매핑하는 방식을 기술한다. 이런 엔티티 간에 관계를 연관관계라고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 샘플 아래는 샘플로 사용할 엔티티 클래스 다이그램이다. 사용자가 서비스에 가입하고 게시물을 관리하기위한 구조이다. 앞으로 다룰 엔티티 연관관계를 다루기 위해 만든 샘플이므로 참고만 하시기 바란다. 연관관계 관계는 다중성과 방향을 알아야 한다. 다중성은 두 대상이 서로 1:1, 1:N, N:M 관계인지를 의미한다. 방향은.. 더보기
[kotlin] JPA 3: Spring Boot에서 Entity 매핑 확장 들어가기 이번에는 엔티티 정의위한 확장된 어노테이션에 대해서 다룰려고 한다. 더 다양한 타입과 알아두면 좀더 도움이 되는 어노테이션에 대해서 다룰 예정이다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 엔티티 정의 엔티티 정의를 위한 추가적인 어노테이션이다. @Enumerated: enum 타입 매핑 @Temporal: 날짜 타입 매핑 @Transient: 매핑 무시 @Lob: BLOB CLOB 타입 매핑 @CreationTimestamp: insert 시간 자동 저장 @UpdateTimestamp: update 시간 자동 저장 @CreateDate: 엔티티 생성시간 @LastModifiedDate: 엔티티 변경시간 @CreatedBy: 엔티티 생성 사.. 더보기
[kotlin] JPA 2: Spring Boot에서 Entity 매핑 기본 들어가기 엔티티(Entity)에서 세부적인 정의를 살펴볼려고 한다. 먼저 엔티티 자체 정의하는 방법을 살펴보자. 엔티티와 데이터베이스 테이블과 매핑하는 방법을 위주로 먼저 살펴볼려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 엔티티 정의 엔티티 정의를 위한 기본 어노테이션으로 다음과 같다. @Entity: 엔티티 선언 @Table: 매핑할 테이블 선택 @Id: 테이블 기본키 사용할 속성 지정 @GeneratedVaue: 키값 생성 전략 @Column: 매핑할 컬럼 선택 이미 몇 개는 앞에서 보았던 어노테이션도 있다. @Entity 어노테이션 엔티티를 지정할때 사용하는 어노테이션이다. 데이터베이스 테이블에 매핑할 엔티티를 정의한다. 에티티를 지정.. 더보기
[kotlin] JPA 1: Spring Boot에서 간단한 CRUD 들어가기 Spring Boot 기반의 Spring Data JPA를 사용하여 API 서버 구축할려고 한다. 복잡한 JPA 개념을 건너뛰고 바로 Spring Boot에서 기본적인 CRUD 부터 시작해보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 기본환경 먼저 kotlin과 Spring Boot에서 Maven 빌더를 사용한다고 가정하겠다. 기본적인 Spring Boot 프로젝트가 구성되었다면 아래와 같은 dependency을 추가해줘야 한다. org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 spring-boot-starter-data-jpa에 의해서 기본적인 JPA 관련 .. 더보기
[CSS] Flex 사용하기 들어가기 CSS에서 화면 배치 관련해서 Flexbox가 있다. 간단하게 화면 레이아웃을 구성하는데 유용하다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 기본 구성요소 먼저 Flex을 들어가기 전에 기본 구성 요소부터 살펴보자. Flex container는 배치할 Flex item라는 자식들을 가지는 부모요소이다. Flex item은 Flex container에 포함되고 배치될 요소들이다. 그리고 Main Axis은 수평 방향의 축을 의미하며, Cross Axis은 수직 방향의 축을 의미한다. Flexbox 시작 Flexbox을 사용하려면 항상 Flex container에 해당하는 부모의 display 속성에 flex 또는 inline-flex을 지정한.. 더보기
아키텍처 종류 몇가지 정리해보기 들어가기 아키텍처 종류에 대해서 정리해보았는데 아키텍처만 정리하지 않고 아키텍처를 다루면서 같이 언급되는 대상까지 간단하게 정리했다. 개인적으로 한번 정리하고 싶었고 공유하면 괜찮을 듯해서 정리해보았다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 모노리스(Monolith) 모노리스는 아키텍처라고는 할 수 없다. 전체 애플리케이션을 한 덩어리인 결과물이라고 할 수 있다. 즉, 배포할 때에 결과물도 하나인 경우를 말한다. 과거에 대부분의 애플리케이션이 모노리스 형식으로 많이 배포되었다. 성능 상에 이슈에는 여러 모노리스 애플리케이션을 배치해 수평확장하는 구조로 되어 있다. 모노리스라고 해서 아키텍처가 무시되지는 않는다. 내부적인 아키텍처는 다양한 형태로 .. 더보기

반응형