🎁 모든 강의 30% + 무료 강의 선물🎁

[인프런워밍업클럽3기 BE] 1주차 발자국

[인프런워밍업클럽3기 BE] 1주차 발자국

1. 강의

강의 진도 : 섹션2 ~ 섹션 3

1.1 학습 내용

  • JPA(Java Persistence API)

    • JDBC처럼 다형성을 기반으로 DB가 달라져도 소스 코드를 거의 수정하지 않아도 된다.

    • 자바 표준 ORM

    • 내부적으로 JDBC API를 이용한다.

    image


@Entity
class Achievement(
          title: String
        , description: String
        , achievedDate: LocalDate?
        , host: String
        , isActive: Boolean): BaseEntity() {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "achievement_id")
    var id: Long? = null

    var title: String = title

    var description: String = description

    var achievedDate: LocalDate? = achievedDate

    var host: String = host

    var isActive: Boolean = isActive
}
  • 엔티티 클래스

    • 테이블과 매핑되는 자바 클래스를 의미한다.

    • 기존 VO(Value Object)와 동일한 개념이다.

    • 보통 테이블명 동일한 이름을 사용한다.

  • @Entity

    • 엔티티 클래스를 의미한다.

    • 이름이 중복되어서는 안된다.

    • name속성을 생략하면 클래스명이 엔티티명이 된다.

  • @Table

    • 엔티티와 매핑될 테이블을 설정한다.

    • 엔티티명과 테이블명 다를경우에만 지정해주면 된다.

  • @Id

    • PK 컬럼인 경우에만 사용한다.

  • @GeneratedValue

     

    • PK를 자동으로 생성해준다.

    • 방법

      • GenerationType.IDENTITY

        • MySQL의 Auto Increment 기능을 지원하는 DB에서만 가능하다.

        • Oracle 12g 이상 버전도 사용 가능하다.

      • GenerationType.SEQUENCE

        • 시퀀스를 지원하는 DB에서만 사용이 가능하다.

      • GenerationType.TABLE

        • DB 종류와 상관없이 사용 할 수 있는 방법이다.

           

      • GenerationType.AUTO(기본값)

        • DB의 특성에 맞게 알아서 적용해준다.

  • 연관관계 매핑

     

    • @OneToMany

      • 1:N 관계를 맺을 때 사용한다.

    • @ManyToOne

      • N:1 관계를 맺을 때 사용한다.

    • N:M관계에서는 @OneToMany 쪽에서 mappedBy를 설정하고 @ManyToOne 쪽에서 @JoinColumn을 설정해야 한다.

       


  • 코틀린 기본 문법

    • 변수 선언

      • val

        • 불변 변수, 자바의 final 변수와 비슷하다.

      • var

        • 변경 가능한 변수

    • 기본 데이터 타입

    val number: Int = 42
    val pi: Double = 3.14
    val isKotlinFun: Boolean = true
    val letter: Char = 'A'
    val text: String = "Hello, Kotlin!"
    • null처리

var name: String? = null  // null 허용
println(name?.length)     // null이면 실행하지 않음 
println(name?.length ?: 0) // null이면 0 반환 

1.2 느낀 점

올해 목표였던 코틀린 학습을 실천하게 되어 뿌듯하다. 새로운 언어인 코틀린을 직접 사용해보니 흥미로웠고 재미있었다.

다음 주에는 평일마다 최소 1시간씩 꾸준히 강의를 듣는 것을 목표로 삼고자 한다.


2. 미션

2.1 깃허브 리포지토리에 올리기

Git Subtree

메인 레포지토리와 함께 관리되고 프로젝트마다 독립적인 커밋 관리가 가능하다.

2.2 느낀 점

서브트리를 처음 이용해봐서 찾아보고 설정하느라 시간이 좀 걸렸다. 그래도 내가 원하는 기능이 되어서 기분이 좋았다.

 

출처

채널톡 아이콘