[인프런 워밍업 클럽 2기 백엔드 프로젝트 과정] 2주차 발자국

[인프런 워밍업 클럽 2기 백엔드 프로젝트 과정] 2주차 발자국

I. 2주차 학습 내용

 

1일차 - 데이터를 다루는 리포지토리 개발하기

1) 데이터베이스 초기화

테스트 데이터를 초기화 했음

 

@Component - 스프링에 빈으로 만들 클래스를 알려주는 것

설명을 들으때마다 이런 기술들을 통해 스프링의 위대함을 잘 알려주는 것 같다. 스프링이 없었다면 개발을 위해 직접 인스턴스를 생성하고 관리해야 했을텐데 복잡한 서비스에서는 스프링이 필수라는 것을 잘 느낄 수 있는 것 같다.

 

@Profile - 특정 value일 때만 빈으로 생성

@PostConstruct - 빈 생성 직후 postConstruc 과정시에 실행 되도록 해줌

 

1일차 과정 중에는 프로젝트에 사용할 테스트 데이터들을 정의 하고 필요한 곳에 초기화 하였음

코틀린 문법에 익숙하지 않아 혼자서 생각하면서 작성하지는 못했으나 파이썬이나 JS, Java 등 프로그래밍 언어에 어느 정도 익숙한 사람이라면 추측 가능한 코드들이 많아서 어렵지 않았습니다. 코틀린 문법에 익숙해지기 위해 코틀린의 리스트 생성등 기초 문법을 찾아 보는 등 다른 공부에 시간을 많이 할애 할 수 있는 시간이였습니다.

 

2일차 - 리포지토리 테스트 하고 성능 개선하기

들어보기만 했던 대망의 테스트 코드 작성

@DataJpaTest - Jpa 관련 테스트 어노테이션

@TestInstance - 테스트 인스턴스를 관리 강의에서는 인스턴스의 라이프 사이클을 클래스 단위로 정의해주는 역할을 했음

assert - 개발 및 디버깅을 전제로 사용하는것, 비즈니스 로직과 검증 로직은 구분할 수 있음

 

코드나 개념적으로 어려운 부분은 없었음. 테스트 코드를 작성하면서 해야할 생각에 대해 배운게 더 많았다. 데이터가 어떻게 서로 전달되고 결과는 어떻게 나와야할지 클래스를 추상화 하듯이 생각하면서 오류를 잘 발견할 수 있게끔 그러면서도 테스트 코드의 가독성은 높게 작성하는 것이 좋은 테스트 코드라는 생각이 들었다.

 

 

개발자 관련된 소식을 접하다 보면 테스트 코드에 대해서 많이 들어보게 됩니다. 저는 아직 제가 테스트 코드 같이 딥한 내용을 배우기보다는 기초에 더 투자할 때라 생각하여 한번도 테스트 코드 작성과 관련해서 고민 해본적도 작성해본적도 없었습니다. 하지만 테스트 코드에 대해서 배우고 나니 생각보다 어려운 개념이 아니였고 기초 단계의 공부와 코드 작성에 많은 도움을 주었습니다. 오류의 탐색 범위를 줄이는데 도움을 주었고. 완성될 프로젝트의 작동 과정에 대해 코드적으로 고민해 보니 다른 코드들이 어떻게 작성되어야 할지 간접적으로 생각해보게 되었습니다. 이는 나중에 제가 개인 프로젝트를 할때 큰 도움이 될것 같았습니다. 항상 어려운 개념이라고 느껴졌던 테스트 코드에 대해서 선입견을 깨는 좋은 경험이였습니다.

 

 

3일차 - 데이터를 조회하고 변환하는 서비스 개발

 

II. 2주차 미션 - REST API 설계하기

왜 백엔드가 상상력이 풍부한 사람들이 해야 하는가에 대해 깨달았던 시간

 

어떤 유튜브 동영상에서 백엔드 개발자는 상상력이 많은 사람들이 해야하는가에 대해 관한 이야기를 하는걸 봤었다.

백엔드 개발자는 상상력이 풍부한 사람이여야 한다.

당시에는 이해하지 못했지만 미션을 해결하면서 어느 정도 깨달음을 얻은 것 같다.

 

이번 미션은 REST API 설계였다. 대학교에서 과제를 하면서 카카오 REST API를 활용한적 있는 나한테는 그리 어려운 과제가 아닐거라고 생각했었다.

 

하지만 API를 사용하는것과 설계하는 것은 달랐다.

 

API를 설계하면서 나는 내가 작성했던 ERD를 다시 보았다. 그때 당시에는 꽤 괜찮은 설계라고 생각했었는데 api를 통해 데이터가 오가는걸 생각하니 잘못된 부분이 보여 몇 군데를 수정했다. 연결관계에는 문제가 없었지만 데이터를 주고 받는데 불필요한 외래키와 중복키가 있어서 제거 하였다.

 

이번 과제를 하면서 가장 고민했던 부분은 API 설계 툴이였다. 그냥 표로 간단하게 정리해서 설계를 하려 했었는데 다른 분들이 올리신 API 설계를 보니 특정 툴을 이용해서 올린게 너무 멋있어 보였다. 그래서 PostMan, Swagger, GitBook 등을 찾게 되었다. 하지만 안타깝게도 개인적인 사정으로 바쁜 나머지 툴들을 이용해서 과제를 올리지는 못했다. PostMan과 GitBook이 내 마음에 들어서 추후 워밍업 클럽 과정이 끝나면 해당 툴들에대해 공부하는 시간을 가져야겠다.

 

 

 

III. 2주차 회고

2주차는 개인적으로 바쁜 시간이였습니다. 개인적인 일들로 많이 바쁜 시간이었고 집에오면 몸이 지쳐서 강의를 제때도 못듣고 대충 듣고 넘어가기도 했던 것 같습니다. 평소라면 그냥 넘어갔다가 기억을 다 잊은 상태에서 다시 강의를 들으러 왔었겠지만 워밍업 클럽을 신청하게 된 다짐과 동기, 그리고 앞으로 해야 할 과제들을 생각하면서 시간 날 때마다 강의를 다시 들어 빠르게 내용을 습득하고 제 것으로 만들 수 있었던 것 같습니다. 시작한지 얼마 안 지난것 같은데 벌써 10월의 절반이 갔고 워밍업 클럽의 진도도 50%가 넘어가고 있는데 저 같이 꾸준하지가 못한 사람들은 마음을 다시 다잡을 때인것 같습니다. 앞으로도 계속 정진하여 완주 하는 것을 목표로 달려보겠습니다.


댓글을 작성해보세요.

채널톡 아이콘