[회고] 우아한테크코스 레벨 1 회고

Daon (HyeongIk Jo)·2024년 4월 20일
2

우테코 6기

목록 보기
7/7
post-thumbnail

레벨 2의 유연성 강화 목표는 매일 기록해보기 이다.
그전에 문득, 레벨 1에 대한 회고를 해볼까 싶었다.

과연 나는 성장했을까?

  • 글쓰기는 책을 읽거나 공부를 하고 자기가 느끼게 된 감정, 생각을 자기 손으로 문자로 심어보는 것이라 생각해요.
  • 문자로 표현해보기 전까지는 나의 생각과 감정은 내 것이 아니다.
    - 유시민 말하는 글쓰기의 중요성

방학 전 날 백지 한 장에 각 미션 동안 배운점을 적어본 것이 생각났다.
그 당시 큰 종이에 비해 난 많이 써내려가지 못했다.

이는 꽤나 충격으로 다가왔었다.

그럼 내가 배웠던건 뭘까? 하는 생각에 알게된 것과 달라진 점을 적어보기로 했다.
과연 무엇을 알게 되었고 어떻게 달라졌을까

알게된 것

내가 알던 자바가 아니다.

나에게 Java는 알고리즘을 위한 수단 또는 스프링 프레임워크를 다루기 위한 언어였다.
Java를 잘 한다란 기준은 stream을 10줄 넘게 현란하게 쓰며 나만 아는 라이브러리를 가져와 최대한 짧고 간략히 쓰는 것이었다. 그와 동시에 가독성은 내가 읽기 편한 기준이었다.

하지만 이것은 명백한 오답이었다.
여러 객체를 스트림으로 무리하게 처리한 것보다 for Each나 메서드 분리가 효과적일 수도 있다.
또, Java는 언어이다.
"언어"라는 철학적인 관점에서 나만 아는 라이브러리는 욕설로 봐도 무방하다.
그래서 가독성의 기준은 내가 아닌 누구나 편하게 읽을 수 있는 기준이었다.
어느 언어와 같이 Java는 정답은 없지만 오답은 존재한다.
그 정답에 가까워 지려는 Java라는 언어의 문화엔 객체지향이 있다.

이 문화를 접한 이후로 Java는 더이상 내가 알던 그것이 아니었다.

성장형 마인드 셋

레벨 1 동안 우테코는학습 마인드셋몰입을 강조했다.
물론 여전히 이들은 어색하다.
관련 개념만 이해했을 뿐 체화해가는 과정에 있다.

시간이 사라지는 걸보니 몰입이었단 생각이 들기도 한다.

그러나 효과적인 공부법이었는지 확신은 들지 않는다.

그래도 열등감과 좌절감을 느끼는 기간이 줄어들었다.
물론 시간이 없는 것도 있다.
그래도 뭐랄까 이 과정이 일로 느껴지지 않는다.
즐거움이라 생각한다.

마치 수능 만점자들이 공부하는 게 재밌다던 인터뷰와 동일하다 본다.
그땐 이해 못했었는데 지금은 무슨 말인지 알 거 같다.
갖춰진 학습 환경에서 직접 부딪혀보며 지식을 얻고(자의적으로)
이 지식을 크루들과 나눠보는 행위 자체가 즐겁다.

레벨 2에도 이 마인드가 오래 갔으면 한다.

달라진 것

코드를 대하는 자세

레벨 1 동안의 우테코를 친구들에게 이렇게 소개한다.

나는 100% F 성향인데 T로서 대화하는 법을 배우고 있어.

이 말이 무슨 뜻이냐
모든 코드에 대해 언제든 설명할 수 있는 근거가 있어야 한다는 말이다.

그리고 그 근거는 제 3자가 코드를 봤을 때 납득할 수 있어야 한다.

예를 들어 불변 객체를 사용하려 한다고 가정하자.
그럼 불변 객체를 사용한 근거는 무엇일까?

불변 객체를 사용했을 때 이점

  • 원시값을 포장한다.
  • 의미있는 객체가 된다.

위의 이점을 근거로 들었다면 제 3자는 설득되지 않는다.
오히려 이렇게 되물었던적도 있었다.

지금 당장 객체 비교가 필요하지도 않고 없어도 어플리케이션이 잘 돌아가는데?

그 근거 안에는 추후 발생할 수 있는 오류가 있어야 한다.

우리는 이 데이터를 컬렉션으로 관리해야 해.
이때 원시값을 제네릭으로 사용한다면 우리가 예측하지 않는 데이터가 컬렉션에 들어갈 수도 있어.
이때 불변 객체를 활용한다면 해당 컬렉션은 이러한 오류를 사전에 방지할 수 있어.

지금도 둘 중에 아래 설득이 더 효과적이라 느낀다.

코드 리뷰에 대하는 자세

6기 프리코스에는 각 미션에 대해 지원자끼리 코드 리뷰를 자유롭게 주고 받을 수 있었다.
그땐 스펀지가 되고자 했다.
각 미션마다 리뷰를 많이 받은 PR들을 읽어보며 흡수하려 하였다.
그때 가장 많이 성장했다고 느낀다.

하지만 지금 현재 코드 리뷰에 대한 관점이 변하였다.
물론 배움에 초점이 없진 않지만 소통이라는 키워드가 더 중요해졌다.

위에 코드를 대하는 자세와 연계되는데 무조건적으로 받아들이지 않는다.

무조건적인 수긍이라기 보다, 리뷰 의도를 생각하고, 오류 발생 위험을 찾고, 근거를 생각해본다.
애매할 때는 지체없이 물어본다.
내가 이해되고 납득하고 넘어가야 내 것이 되기 때문이다.

가끔 혼나기도 했지만 그래도 재밌고 소중한 경험임을 체감한다.


마지막은 KPT 회고 방식을 적용해보려 한다.

KPT

Keep

  • 레벨 2에도 나만의 기준을 세워나가보자
  • 리뷰어와 배움이 아닌 소통에 초점을 맞춰보자

Problem

  • 아직 글과 말로 배웠다고 생각한 개념들을 나타내기 힘들다.
  • 코드에 2-3시간 이상 몰두하다 보니 거북목과 눈이 건조하다.
  • 나보다 빨리, 더 잘하는 크루를 바라볼 때 조급해지곤 한다.

Try

  • 1주일에 한번씩 글과 말로 학습한 내용을 정리해보자. 2주 정도 해보고 괜찮으면 스터디로 해도 괜찮아 보인다.
  • 2시간에 한번씩 의도적으로 10분 정도 다른 크루들에게 가보자. 수다도 떨자
  • 불안해하지 말자. 아직 최종 PR까지 여유롭다.
profile
To be a Backend Developer

4개의 댓글

comment-user-thumbnail
2024년 4월 21일

근거를 가지며 코드를 짠다는 것과 코드리뷰를 소통이라고 받아드린 점이 인상깊군요 👍👍

1개의 답글
comment-user-thumbnail
2024년 4월 23일

T로서 새로운 관점이네요 👍👍 레벨 2에서는 비판 다온으로 성장한 모습 기대할게요 !

1개의 답글