[워밍업 BE 프로젝트 3기] 1주차 발자국 - 안녕 코프링
안녕 ?
Bye 아니고, Hi 입니다.
요즘 가장 핫한 스택 같아서 경험해보고 싶은 욕구는 있었는데, 타이밍 좋게 워밍업을 알게되어 참가했습니다.
스프링을 아예 처음 접하는 건 아니라서 다른 언어들과 코틀린이 어떤 차이가 있는지, 특히 자바(+스프링)와 어떻게 다를지도 궁금합니다.
또 그동안 몰랐던 개념이 있다면 보완해나가는 시간이 될 것 같습니다.
개인적으로 테스트 코드 작성 경험이 없는데, 관련 내용도 다루는 것 같아 더욱 기대하고 있습니다.
학습
1주차는 처음부터 섹션 3의 일부까지 진행합니다.
기본 이론: 웹서비스 구성 요소, Spring, HTTP, REST API, DB, 테이블 설계, Git/Github
프로젝트 세팅: 프로젝트 생성, 개발환경 및 환경변수 설정, Github 연결
엔티티 개발: 설계한 테이블을 클래스로 정의, 엔티티 간 관계 설정, 필요한 메서드 구현
이론 강의들을 통해 기억에서 흐려지던 기본 개념들을 다시 짚어보았습니다.
처음 접한 코틀린 문법에서 신기한 점도 많아서, 알아가는 재미가 있었습니다.
생성자의 위치 - 클래스명 바로 옆에 있다. !
map 함수 사용 문법 - 괄호가 아니라 중괄호가 나온다. ! it은 어디서 나오는 걸까?
MutableList - 수정 가능한 리스트 같은데 ArrayList랑 뭐가 다를까?
본격 기능 개발은 커리큘럼 상 다음 주부터 진행되기 때문에 다음 강의가 기대됩니다. 😁
미션
1주차 미션은 2가지입니다.
깃허브 레포지터리 생성
테이블 설계
레포지터리 생성 미션은 강의에 나온 대로 하면 어렵지 않게 할 수 있었습니다.
테이블 설계의 경우, 관계를 먼저 생각하지 않고 하고 싶은 프로젝트를 먼저 생각하다 보니 관계가 바로 떠오르지는 않았습니다.
오히려 고민 포인트가 더 생겨서 좋았는데요,
저는 미니 가계부를 프로젝트 주제로 잡았고, 다음과 같이 관계를 정의했습니다.
사용자가 필요한카테고리(ex. 식비, 생필품)를 만들수 있습니다. ->사용자와카테고리는 1:N 입니다.사용자는 여러거래를 기록합니다. ->사용자와거래는 1:N입니다.거래에는 하나의카테고리가 지정됩니다. ->카테고리와거래는 1:N입니다.
여기서, '거래에서 카테고리를 타고 가면 사용자가 특정될 텐데 거래에서도 사용자를 가지고 있어야 할까?' 라는 생각이 들었습니다.
물론 거래에 미리 정의된 카테고리만 지정 가능하도록 만든다면, 사용자와의 관계가 끊기기 때문에 간단하게 없어질 고민이죠. . . 유혹이 생기긴 합니다. 🥲
발자국 작성 시점이 테이블 설계 미션 제출 전이라, 좀 더 고민해보기로 했습니다.
이번 워밍업을 통해 틀리더라도 다양한 고민을 해보면서 많이 배우는 시간이 되었으면 좋겠습니다.
이왕이면 꼭 완주할 수 있기를 .. 아좌좟 ..! 💪🏻