🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

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

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

이번주 학습 내용


웹 기본 개념

  1. 3-tier-architecture

    1. 클라이언트 / 서버 / 데이터베이스

  2. 웹 프레임워크와 Spring Framework

    1. 프레임워크를 사용하면 웹 개발에 필요한 공통적인 기능들을 편리하게 구현할 수 있다

  3. 디자인 패턴

    1. MVC 패턴

      1. Model: 데이터를 담는 역할

      2. View: 사용자에게 보여지는 화면 담당

      3. Controller: 사용자의 요청과 응답을 처리

  4. 레이어드 아키텍처 (layerd-architecture)

    1. Controller: 클라이언트 요청과 응답을 처리

    2. Service: 비즈니스 로직에 맞게 데이터 처리

    3. Repository: 데이터베이스에 접근하여 데이터 요청

  5. 스프링 프레임워크 의존성 주입

    1. 생성자 주입

      1. 생성자가 호출될때 주입

    2. setter 주입

      1. setter 메서드를 호출하여 주입

    3. 필드 주입

      1. 필드에 @Autowired 사용


코틀린 문법

class Table(
    // 주생성자
    // 주생성자의 파라미터와 프로퍼티를 지정한다.
    var arg: String,
    val arg2: Int
) {
    // 프로퍼티
    var arg3: String
}

JPA

  1. @Entity

    1. 테이블과 매핑할 클래스를 지정하며, JPA가 관리한다.

    2. 기본 생성자를 필수로 한다.

  2. @GenerateValue

    1. 키 생성 전략

      1. IDENTITY 전략

        1. 기본 키 생성을 데이터베이스에 위임하는 전략 / MySQL, PostgreSQL, SQL Server, DB2에서 사용한다.

        2. insert 후 기본키를 받아올 수 있다. 데이터베이스와 1번 통신한다.

      2. SEQUENCE 전략

        1. 데이터베이스의 유일한 값을 순서대로 생성 / 시퀀스를 지원하는 DB에서 사용이 가능하다. Oracle, PostgreSQL

        2. 시퀀스를 조회 후 / insert를 실행하기 때문에 데이터베이스와 2번 통신한다.

      3. TABLE 전략

        1. 키 생성 전용 테이블을 생성하여, 마치 데이터베이스의 시퀀스를 사용하는 것처럼 할 수 있다.

        2. 테이블만 생성하면 모든 데이터베이스에서 사용이 가능하다.

  3. @Enumlated

    1. enum 타입을 매핑할 때 사용한다.

    2. EnumType.ORDINAL : enum의 순서를 저장한다.

    3. EnumType.STRING : enum의 이름을 저장한다.

      1. ORDINAL을 사용할 경우 순서가 바뀌면 데이터의 정합성이 깨질 수 있기 때문에 되도록 STRING 사용을 권장한다.

  4. @MappedSuperclass

    1. @Entity는 실제 테이블과 매핑되지만 @MapperSuperclass는 실제 테이블과 매핑되지 않는다. 단순하게 매핑정보를 상속하는 목적으로 사용된다.

    2. 왜 abstract class로 지정할까??

      1. abstract class가 아닌 일반 class로 지정하여도 동작에는 문제는 없어서 왜 abstract class로 지정하는지 찾아보니 MappedSuperclass는 매핑 정보만 제공하려는 목적이기 때문에 해당 클래스를 직접 생성해서 사용하는 일은 없으므로 abstract class로 지정한다고 한다.


이번주 미션 진행

[미션1] 깃허브 리포지토리에 프로젝트 올리기

[미션2] 테이블 설계하기


회고

직장, 운동, 공부를 병행 하려니까 시간 분배가 쉽지 않은 것 같습니다😢

생각보다 미션과 발자국이 제출해야 하는 마감일이 있어 다음주는 출퇴근 시간에 강의를 들으려고 합니다.

코틀린과 JPA도 처음 사용하다보니 모르는 것이 많아서 정리하는 시간이 소요되는 것 같아 궁금한 부분은 그때그때 정리해 두려고 합니다.

무사히 완주하는 것을 목표로 달리겠습니다!

 

댓글을 작성해보세요.

채널톡 아이콘