[인프런 워밍업 클럽 2기 - 백엔드 프로젝트(Kotlin, Spring)] 1주차 발자국
1주차 발자국
웹 개발 기본 개념
프레임워크와 라이브러리
웹 프레임워크
프레임워크가 주도권을 가지고 있음
동적 웹 서비스 개발을 편리하게 만들어주는 도구
웹을 개발할 때 공통적으로 요구되는 기능들을 보다 편리하게 사용할 수 있도록 함
라이브러리
사용자가 주도권을 가지고 원하는 것을 만들 수 있음
프로젝트 환경구성
Dependencies
Spring Web : Spring MVC를 사용하여 RESTful을 포함한 웹을 구축
Spring Data JPA: Spring Data 및 Hibernate를 사용하여 Java Persistence API로 SQL 저장소의 데이터를 유지
H2 Database: 작은(2MB) 설치 공간으로 임베디드 및 서버 모드와 브라우저 기반 콘솔 응용 프로그램을 지원
MySQL Driver: MySQL JDBC 드라이버
Thymeleaf: HTML을 브라우저 및 정적 프로토타입으로 올바르게 표시
Validation: Hibernate 유효성 검사기를 사용한 Bean 유효성 검사
(Spring Security)
어노테이션 정리
Id : 테이블의 기본 키(PK)에 대응함을 선언
Entity : JPA 엔티티임을 선언
GeneratedValue : @Id의 생성 전략을 선언
GenerationType.IDENTITY : PK 생성을 DBMS에 위임(MySQL에서는 auto_increment를 사용)
GenerationType.TABLE : PK 생성 전용 테이블을 사용
GenerationType.SEQUENCE : DBMS의 시퀀스 오브젝트를 사용하여 PK를 생성
GenerationType.AUTO : JPA의 알고리즘에 따라 DBMS에 적합한 전략을 선택
Column : 필드가 컬럼명이 기본 전략에 의해 변환된 값과 다 르거나 구체적인 속성을 따로 정의해주기 위해 사용
MappedSupperClass : 여러 엔티티의 공통 컬럼을 갖고 있는 상위 클래스에 사용
CreatedDate : 생성된 시간을 자동으로 저장
LastModifiedDate : 수정된 시간을 자동으로 저장
Enumerated : Enum 타입의 필드를 데이터베이스 컬럼과 매핑할 때 사용
EnumType.ORDINAL : Enum 내부에 정의된 순서대로 번호를 지정해 값을 저장
EnumType.STRING : Enum의 이름을 값으로 사용
Column
nullable : 해당 컬럼이 null일 수 있는지 정의
updatable : 해당 컬럼의 값이 변경될 수 있는지 정의
OneToMany : 한 엔티티가 여러 다른 엔티티와 관계를 맺는 경우
ManyToOne : 여러 엔티티가 한 엔티티와 관계를 맺는 경우
미션
[미션1]테이블설계, [미션2] 깃허브 리포지토리에 프로젝트 올리기
깃허브 리포지토리에 프로젝트 올리는 것은 문제가 없었으나 테이블 설계를 하면서 신경쓸 부분이 많아서 제출을 급하게 하게된 것이 아쉬웠다.
다시 생각해보고 구상해서 테이블을 설계해야 할 것 같다. 그리고 ReadMe 파일도 제출 기한에 쫓겨 급박하게 작성해서 제출하느라 아쉬운 점이 많았다. 다시 보기 깔끔하게 올려야할 것 같다.
댓글을 작성해보세요.