본문 바로가기

[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을 지정한.. 더보기
[java/kotlin] Spring Boot에서 웹소켓 사용하기 들어가기 웹소켓(websocket)은 브라우저와 웹서버 간에 통신을 할 수 있는 채널을 만드는 기술이다. 기존 HTTP을 사용하는 경우 데이터를 송수신할 때마다 매번 연결하고 끊어지는 작업이 반복된다. 웹소켓은 계속 연결된 상태로 유지되기 때문에 데이터를 더 효율적으로 처리할 수 있다. 웹소켓도 사용하기 위한 자신만의 규약이 있지만 Spring Boot에서 웹소켓을 쉽게 사용하는 방법이 있다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 웹소켓이란? 웹소켓은 양방향 통신하는 프로토콜(RFC6455)이다. 웹소켓은 80과 443위에서 HTTP 프로토콜과 호환되도록 동작한다. 기존 HTTP 폴링에 비해 부하가 낮고 푸시 방식의 실시간 데이터 전송가능하다. .. 더보기

반응형