레벨 2 - 자동차 경주 (웹) 회고

주노·2023년 4월 30일
0

우테코 5기 회고

목록 보기
6/12
post-thumbnail

서론

페어 홍고와 함께 자동차경주 미션을 진행했다.
레벨 1 방학동안 너무 정신없이 놀았는지 그동안 정해놓은 페어프로그래밍에 대한 규칙에 대해 상기하지 못한 상태로 미션을 진행하게되었다.

자바를 학습할때와는 약간 학습 방향이 달라져야할 필요성을 느꼈지만 어떤 방향으로 나아가야할지도 확신이 서질 않아 우왕좌왕하던 시간이 많았던 것 같다.

때문에 이번 페어프로그래밍은 스스로에게 아쉽고 페어에게 미안한 마음이 크다.

회고를 통해 반성하고, 좋은 점은 부각시킴으로써 더 나은 사람이 되어보자.

🙆‍♂️ 소프트스킬

💡 소프트스킬?
소프트 스킬이란 다른 사람과 함께 일하고 다른 사람들과 교류하는지를 설명하는 대인관계 기술로 충돌 해결, 비판적 사고, 공감, 조직, 리더십, 팀워크, 시간관리 등을 포함한다.

🌱 스프링 경험

페어와 나 둘 다 스프링을 사용해본 경험이 있었기 때문에 미션을 진행하는데 막힘이 없었다.

덕분에 시간 내로 미션은 잘 마무리할 수 있다는 확신을 가질 수 있었고, 시간 관리를 구성함에 있어 심적으로 많은 도움이 되었다.

🤷‍♀️ 왜?

페어가 항상 이야기해준 이걸 왜 이렇게 사용해야해?라는 질문이 너무 좋았다.

스스로 해당 지식을 잘 알고 사용하고 있는지를 검증할 수 있는 시간이였다.

특정 부분에 있어 나는 학습했지만 함께 일하는 사람에게는 당연한 지식이 아닐 수도 있다는 경계를 할 수 있었다.

💨 기술부채

처음으로 페어와 미션을 진행하면서 같이 기술부채를 작성해봤다.

사실 이전 블랙잭 미션을 하면서 페어였던 블랙캣 🐈‍⬛이 사용했던 방식이였는데 그때의 경험이 너무 좋아서 차용해서 사용해봤다.

막히는 부분이 생겼을 때 즉시 기술부채를 작성하면서 왜 어려웠고, 어떻게 해결하는지 혹은 어떤 지식이 필요한지 나중에라도 정리할 수 있도록 했다.

💬 설명

코드를 작성하면서 왜 이렇게 작성하는지 어떤 이유로 해당 코드가 동작하는지 설명하면서 코드를 작성했다.

페어에게 유치원 어린이에게 말해주듯 차근차근 설명해줘서 좋았다. 와 동시에 너무 유치원 어린이한테 설명해주듯이 해서 조금 킹받았다. 양날의 검인 것 같다. 와 같은 피드백을 받았다.

스스로 설명을 하면서 뿌듯함을 느끼긴 했지만, 페어가 어느정도까지의 지식을 가지고 있는지와 어떤 성향을 가지고 있는지 파악하지 못한 상태로 나의 방식을 고수했던것이 문제점이였던 것 같다.

끝까지 설명 잘 들어준 홍고 고마웡 🍊

🏃 독주!?

뭐가 그리 급했는지 드라이버가 되었을 때 설명하지 않고 코드를 파바박 치는 상황이 있었다.

그 때 마다 페어가 경계해줬는데 지금 생각해봐도 뭐에 씌인건지 참... 이상했다.

🔨 하드스킬

💡 하드스킬?
특별하게 훈련할 수 있는 기술로 각 분야별로 해당하는 요소가 다르다.
엔지니어링의 경우 프로그래밍언어(Java, Python 등), 클라우드 컴퓨팅, 서버 유지보수 등을 포함한다.

📀 gradle의 depencency-cache

자료에 나와있는 구조로는 dependency-cache라는 패키지가 존재했는데 내 프로젝트에는 생기지 않았다.

왜 구조가 다르지? 하면서 depencency-cache가 무엇인지 궁금해졌다.

gradle이 라이브러리를 받은 뒤 로컬에 라이브러리를 캐싱하고 있는 패키지로, 동일한 라이브러리 다운로드에 대한 시간 소요를 절약하기 위해 사용한다.

🫘 Test에서 Bean 주입

Test에서 생성자주입으로 bean을 주입하려고 하는데 Bean 주입이 정상적으로 이뤄지지 않았다.

알아보니 테스트에서는 Junit5에서 Bean주입을 담당하기 때문에 위와 같은 일이 일어났다.

Junit5가 Bean을 주입할 때는 @Autowired 어노테이션이 반드시 붙어있어야한다.

👀 @JdbcTest

JDBCTest에 대해서 정리해봤다.
@JDBCTest

😆 의식의 흐름대로 학습

1️⃣ step1 : ObjectMapper

json 데이터를 어떤 과정을 통해 객체로 파싱하는지 궁금해져서 ObjectMapper에 대해 알아보기 시작했다.

SpringBoot는 어떻게 Json 데이터를 받아올 수 있을까?

2️⃣ step2 : ArgumentResolver

그러다보니 어떻게 @RequsetBody라는 어노테이션만 붙어있는데 ObjectMapper가 동작할 수 있는지 궁금해져서 ArgumentResolver에 대해 알아봤다.

컨트롤러는 어떻게 값을 바인딩할까?

3️⃣ step3 : RequestBodyAdvice

직접 실습을 진행하면서 학습하던 도중 @RequestBody가 붙어있으면 직접 만든 ArgumentResolver가 먹히지 않는 현상이 발생했다.

RequestBodyAdvice에 대해 알아봤다.

@RequsetBody에 ArgumentResolver가 안먹힌다?

🧹 정리

페어프로그래밍에서 많은 아쉬움을 겪고 회고를 작성하며 반성하는 시간을 가졌다.
페어프로그래밍이 끝나고도 많은 질문을 던져준 페어에게 감사의 인사를...🍊 🙇‍♂️

학습적인 측면에서는 의식의 흐름대로 3단계까지 내려가보고 이에 대해 정리할 수 있어서 기분이 좋았다. 👍


JDBCTest 검색 3등 ㄷㄷㄷㄷ 벨로그 폼 미쳤다.. 캡쳐해놔야지

profile
안녕하세요 😆

0개의 댓글