인프런 워밍업 클럽 BE - 1주차 발자국

벌써 인프런 워밍업 클럽이 시작된지 일주일이 지났다. 기존에 이미 수료했던 강의였지만, 최근에는 Kotlin을 주로 사용하면서 자바 언어에 대한 어색함이 있어서 이번 기회에 다시 수강하면서 자바에 조금 더 익숙해지고, 스프링에 대해서 더 알아가고 공부하고 싶어서 신청한 스터디였다.

 

1일차

'서버 개발을 위한 환경 설정 및 네트워크 기초'에 해당하는 1~5강을 아주 간단하게 훑었다. 이 부분은 기본적인 내용이고 기존에 수강했었기에 강의를 거의 넘기듯이 봤다. 2강. '@SpringBootAppication과 서버' 강의에서 스프링의 어노테이션에 대해 간단히 언급하셨는데, 이 때 까지는 '아 그냥 스프링에서 사용하는 문법이구나~' 정도로 생각하고 넘어갔다.

 

그런데 1일차 과제가 어노테이션에 대해서 블로그 글을 찾아보는 것이였다. 나는 그냥 찾아보고 정리하고 넘겨야지. 정도로 생각하고 있었는데, 디스코드를 보니 과제의 질문은 두 가지였지만, 사람들은 이에 대해서 열심히 알아보고, 딥하게 공부하며 질문하는 사람들을 보게 되었다. 이 때, 내가 지금까지 공부를 하면서 놓친 부분을 알게되었다. 나는 코딩이 그냥 돌아가면 되지의 마인드로 하고있었는데, 이건 잘못된 접근 방식이었던 것 같다. 다른사람들의 과제도 읽어보고, 질문도 읽어보고, 최태현님의 답변들도 보면서 무엇때문에 이러한 과제를 내주었는지, 왜 이런 기초적인 부분이 중요한지에 대해서 깨닫게 되어 열심히 저리하기 시작한 것 같다. 자극을 많이 받게 된 첫 날이었다.

 

2일차

2일차는 GET API와 POST API를 만드는 과제였다. 6~9강을 들으며 API를 생성하는 기본적인 내용에 대해서 학습했다. DTO를 적용해서 과제를 진행할까 하다가 '강의에서 배운정도로만 적용을 하자'라는 생각으로 Controller에 모든 코드를 때려박는식으로 구현했다. 하지만, DTO를 구현하는 것이 보통의 상황에서 선택되는 것이기 때문에 강의대로만 맞추지 말고 더 나아가 해보는게 어땠을까 라는 아쉬움이 있었다. 그래도 이번 과제를 하면서 DTO와 생성자 개념에 대해서 더 자세히 알게 되었다. Body를 List 형태로 받아 POST API로 보내는 과제가 있었는데, 이 때 에러 코드를 보고 트러블슈팅을 하면서 기본 생성자의 필요성과 개념에 대해서 알게되어 유익한 시간이었다.

 

3일차

3일차에는 익명클래스와 람다식에 대해서 알아보는 시간이었다. 본격적으로 DB와 통신하는 API를 구현하기 전에 기초를 쌓는 시간이라고 생각했다. 이 날의 과제의 질문은 두개였지만, 키워드는 6개나 있었다. 나는 질문에 치중해서 알아봐서 익명 클래스, 람다 함수형 프로그램에 대해서만 공부하고 과제를 제출했는데, 나머지 키워드인 @FunctionalInterface, 스트림API, 메소드 레퍼런스에 대해서 알아보지 못한게 많이 아쉬웠다. 이에 대해서는 오늘 더 알아보기로!

 

4일차

뭔가 본격적으로 API를 만들어보는 과제였다. 이를 위해 새로 프로젝트를 생성해서 mysql를 연동해보고 데이터베이스와 테이블을 생성하는 것 부터 시작했다. dependencies를 추가해주면서 gradle에 버전 명시를 하지 않았더니 mysql 라이브러리를 가져오지 못하는 에러가 있어서 잠시 혼란스러웠다. 하지만 버전을 명시해주면서 잘 해결된 걸 보고 다음부터는 문제가 있으면 버전부터 명시해주면 될 거라고 생각했다. 그리고 이 때 jdbcTemplate 쪽은 조금 어색해서 3번째 문제에서 어려움을 겪었는데, RowMapper도 써보고 queryForObject도 써보고 ResultSetExtractor도 써보면서 지식을 넓힐 수 있었던 유익했던 과제였다.

 

5일차

이번 과제는 따로 API를 작성하는 것이 아니라 클린코드를 하는 과제였다. 제시된 과제는 변수명도 명확하지 않았고, 메인 클래스 하나에 기능별 구분 없이 한 번에 작성된 코드였다. 그래서 기능별로 함수를 먼저 분리를 하는게 우선이라고 생각했고, 변수명도 명확하게 바꿔주어서 이 함수와 변수가 무엇인지를 알 수 있도록 변경해주었다. 상수도 써보고, 클래스 단위로 나누기도 하였는데 여기서 더 좋은 코드로 바꾸려면 어떻게 해야할까? 라는 생각이 들었다. 하지만 나는 그저 여기서 마무리하고 과제를 제출했는데, 디스코드를 보니 사람들이 다른 사람들의 코드에 대해서 궁금해하기도 하고, 코드리뷰 할 사람들을 구하는 것을 보면서 나는 더 좋은 코드를 작성하는 방법에 대해서 조금 더 관심갖지 않았던게 아쉬웠다.

 

1주차 스터디를 마치며

사실 가볍게 생각했던 스터디였다. 강제적인건 없고 자율적으로 이루어지는 스터디기에 시간이 되면 적당히 과제만 해야겠다. 라는 마인드였다. 하지만, 막상 1일차 과제를 진행하면서 사람들의 열정을 보니 나도 더 열심히 하고 싶어졌다. 그래서 약속이 있을 때도, 회식이 있을 때도, 너무 피곤할 때도 있었지만 사람들의 열정을 보며 마음을 고쳐먹고 과제를 진행했다. 그랬더니 매일매일 과제를 해나가는 내 모습이 뿌듯하기도 하고 실제로 생각하지 못했던 부분도 많이 생각하게 되고 공부하게 되면서 5일밖에 되지 않았지만 많은 것을 배운 것 같다. 과제를 할 때, 더 딥하게 알아갈 수도 있었지만 내가 너무 가볍게만 생각했던 것 같다. 다음주에는 우선 꾸준히 과제를 제출하고 열정을 배워가는게 다음주의 목표이고, 1주차보다 조금 더 딥하게 내용을 알아가 보도록 해야겠다.

 

댓글을 작성해보세요.

채널톡 아이콘