🎙 레벨 인터뷰란?
우아한 테크코스에서는 각 레벨이 종료될 때마다 이제까지 어떤 것을 배웠는지 점검하는 시간인 레벨 인터뷰를 시행한다.
방식은 크루 3-5명, 코치 1명으로 이뤄진 그룹에서 인터뷰어와 인터뷰이, 옵저버로 구성되어 인터뷰 한 사이클을 돈다.
인터뷰이는 직접 인터뷰를 당하는 사람, 면접에서는 면접자라고 보면 될 것 같다.
인터뷰어는 인터뷰를 하는 사람, 면접에서는 면접관이라고 보면 된다.
옵저버는 이들을 관찰하며 피드백하고 필요한 메모들을 해주는 역할이다.
인터뷰 이전에 각 크루들은 자신이 이번 레벨 동안 배웠던 내용들을 압축적으로 정리해 공유한다.
인터뷰어들은 이를 토대로 해당 인터뷰이에게 질문할 것들을 정하고 인터뷰에 참여한다.
내가 이번에 함께한 크루는 레몬, 레오, 제프리, 제프, 프리 그리고 코치는 브라운이었다!
✍️ 이 회고를 쓰는 이유
이 회고를 작성하는 이유는, 인터뷰 당시 느꼈던 감정과 개선점에 대해 복기하고 앞으로의 이정표로 삼기 위함이다.
😰 인터뷰 전, 나의 상태
인터뷰를 하기 전에는 어떻게 진행 되는지, 어떤 식으로 준비해야 좋은지 아무것도 알지 못하겠다는 생각에 불안감이 앞섰다. 특히 우리 팀의 크루들은 프리를 제외하고서는 얼굴조차 모르는 분들이었기 때문에 긴장감은 배가 됐다. 더군다나 다른 조들은 미리 만나 어떻게 진행할지에 대한 논의를 하고 시작한다고 했는데, 우리조는 따로 이야기 나눈 것도 없어서 더 긴장됐다.
그런데 오히려 예측할 수 없는 상황에서 진행해야 내가 어디까지 진짜로 알고, 생각해봤는지 파악이 용이할 것 같아 굳이 모여서 논의하자는 제안을 하지는 않았었다. 개인적으로 이 부분이 인터뷰에서 더 많은 것을 느끼고 명확하게 내가 어디까지 알고 모르는지 확인하는 포인트가 되어 줬다고 생각한다.
💯 내가 준비한 과정
1. 내용에 대해
나는 제출한 페이퍼에서 다음과 같은 내용을 적었다.
1. 제네릭과 힙 오염
2. 정적 유틸 클래스
3. 정적 팩토리 메서드
4. Reference Object 와 Value Object 의 동등성과 동일성
5. 추상화
6. 불변 클래스
7. instanceof
처음에는 각 키워드에 대해 DFS 처럼 깊게 깊게 파고 들 생각이었다. 그래서 도식화를 위해 옵시디언을 사용하려고 했다.
그러나 이렇게 깊게 깊게 파고 들기에는 시간이 부족해서 노션에 각 키워드들에 대한 질문들을 뽑아내고 나의 대답들을 정리하고자 했다.
이렇게 내가 직접 예상 문제를 뽑기도 하고, ChatGPT 한테도 내가 처해 있는 상황에 대해 인지하도록 하여 예상 문제들을 뽑아 내 생각을 정리했다.
개인적으로 이 과정을 통해 인터뷰를 준비하는 과정 자체도 배움이 많았다. 생각보다 기준의 공백이 많았고, 사용하는 단어나 기준에 대해 재정립해야 하는 부분들이 분명히 보이기 시작했기 때문이다. 예를 들어, 불변 객체의 장단점은 알고 있었지만 어떤 경우에 사용해야 하는지에 대한 명확한 기준이 없었다. 그러나 이 준비 과정을 통해 변경보다 교체가 자연스럽고, 멀티 스레드에서 사용될 것이라면 불변 객체를 사용해야겠다! 하는 기준이 세워졌었다. 이에 대해서는 다시 학습 내용을 정리해 볼 생각이다.
2. 말하기 방식에 대해
레벨1 진행 하면서 느낀 점.. 크루들과 나의 의견을 공유할 일이 정말 많은데 말에 두서가 없고 조리 있게 전달하지 못한다는 것이다. 그래도 꽤나 말을 잘 한다고 생각했었는데, 감각적으로 이해하고 있는 것을 꺼내서 말로 나타내기란 쉽지 않았다. 그래서 아예 의식적으로 '두괄식으로 말하기'를 목표로 정했다. 이를 토대로 ChatGPT 한테 어떤 방식이 좋을 것 같은지 가이드라인을 달라고 했다.
결론 -> 이유 -> 예시 의 말하기 형태를 인터뷰 당일에도 계속해서 의식했다. 이유가 부실하거나 명확히 떠오르지 않는 경우에는 스리슬쩍 예시를 줄줄 말하면서 이유를 떠올리는 방식으로 예시와 이유의 순서를 바꿔 말하기도 했다.
🎯 인터뷰 진행
우리 팀은 확실하게 인터뷰 순서를 정하지 않은 채로 당일을 맞이했다. 그래서 그냥 아무것도 모르는 채로 인터뷰 장소에 가서 기다리고 있었다. 그런데 브라운이 히로가 가장 첫번째~ 라고 하셔서 그 뒤로 아무것도 들리지 않고 순간 긴장이 됐다. 😓
그런데 말을 하면 할수록 긴장이 풀리고, 말이 잘 나왔다. 이 이유로는 앞서 이야기 한 말하기 방식을 정해뒀다는 것이 정말 컸다.
무엇보다 말하는 순서가 정해져 있으니 무의식적으로 구조적인 생각이 잡혔던 것 같다. 또한 결론을 먼저 이야기를 하게 되니 내 이야기의 방향이 잡혔다. 예시를 이야기하다 보면 어차피 내가 정말 겪었던 것들이니까 술술 설명할 수 있었다.
내가 받았던 질문들은 다음과 같다. 대부분 기술적인 질문들은 크루가, 철학적인 질문들은 브라운이 해주셨다.
Q. instanceof 대신에 다형성을 활용한 예시?
→ Cannon 의 isJumpOver 과 같이 행동에 집중해서 인터페이스로 빼냈다.
Q. 다형성을 활용하는 것이 더 바람직할 수도 있다고 했는데, 그 이유는 무엇인가?
→ 너무 지엽적인 경우에는 instanceof 를 활용하는 것이 더 맞다.
Q. 객체지향을 활용하는 이유가 무엇이라고 생각하는가? 이를 위해 어떤 설계를 해야 하나?
→ 가독성을 올리기 위해서. 객체가 각각의 책임을 명확하게 가질 수 있어서
이를 위해 -er 과 같은 네이밍을 지양하고 정적 유틸 클래스와 같은 설계를 경계
Q. 불변 클래스가 GC 상의 이점이 있을 수 있다고 했는데, 그 이유는?
→ 객체 스캔의 범위를 줄여준다. 예를 들어 Student 라는 클래스가 있을 때 Name 이라는 클래스를 필드로 갖게 되면 Name 을 굳이 확인하지 않는다.
Q. 객체지향이 오히려 단점이 있다고 주장해야 한다면, 어떤 주장을 하겠는가?
→ 객체지향은 생산성을 떨어뜨린다. 이를 실제로 놀면 뭐하니?(네오의 체스) 를 통해 느꼈다.
Q. 그렇다면 왜 가독성을 올려야 하나?
→ 객체지향적이기 때문이다 라는 식의 대답
Q. 현재 가독성 - 객체지향 사이에서 계속 반복이 되고 있는 것 같다. 궁극적으로 객체지향을 왜 준수해야 하나?
→ 개발에 참여하는 사람들의 하나의 컨벤션이라고 생각한다. 그리고 협업을 위해서도 있다.
Q. 자신의 기준을 세워야 한다면 어떻게 할 것인가?
→ 기준을 잘 세우기 위해서는 기존의 정답도 잘 알고 있어야 한다고 생각한다. 그래서 정답을 위한 학습을 명확히 할 것이다. 또한, 확실한 기준이 서지 않을 때에는 양극단을 직접 경험 해 보며 이는 왜 좋지 않고 이는 좋은지에 대해 차차 기준들을 세워 나갈 것이다.
거의 기억에 의존해서 후다닥 쓴 것이기에 기술적인 질문들이 대다수 누락되어 있다. 그러나 사실상 요지는 객체지향 - 가독성 이었다. 나는 객체지향을 왜 해야 하냐는 질문에는 가독성을, 가독성을 왜 올려야 하냐는 질문에는 객체지향을 이야기했다.
✅ 피드백
💯 잘한 점
크루들
1. 예시를 들어 설명해 듣는 사람의 이해도를 높였다.
2. 본인이 부족한 부분을 잘 알고, 이에 대해 기준을 세우기 위해 노력한 것이 엿보였다.
3. 객체지향 - 가독성이 반복되는 부분에 대해 협업을 언급해주어서 최종적으로는 이해가 됐다.
브라운
1. 말을 조리있게 잘 한다.
2. 예시를 들어 설명해 주어서 이해가 잘 갔다.
👩🏻🔧 개선할 점
크루들
1. 허리를 좀 더 피면 좋겠다.. 🐢
2. 목소리가 작다
3. 답이 너무 즉각적으로 나와서 암기한 것 같다는 느낌이 들었다.
브라운
객체지향 - 가독성이 반복되는 것은 우아한 테크코스 크루들의 한계라고 느껴지고, 동시에 레벨1 의 한계라고도 느껴진다.
커리큘럼이 인도하는 것과 코치들의 말을 무조건적으로 신뢰하지 말고 모든 것들에 의문을 가져 보아라. 그리고 이를 통해 자신의 철학을 세워라. 자신의 명확한 철학이 있다면, 이에 대해 이야기하는 것이 한결 편안해진다. 자신만의 정체성을 가진 개발자가 되기 위해 꾸준히 기준들을 정립 해 나가야 한다.
🧩 KEEP – 다음에도 유지할 점
1. 두괄식으로 말하기
2. 각 키워드 별로 예상 문제(w/ ChatGPT )를 뽑아 정리하기
🚀 TRY – 다음엔 이렇게 해보자
1. 양해를 구하고 녹음하기
검프가 인터뷰 이후에 녹음본을 통해 학습하는 방법에 대해 추천해주셨는데, 녹음을 하지 않은 것이 너무 아쉬웠다.
다음에는 인터뷰어 / 코치의 허가를 받고 녹음을 해서 추가적으로 학습해보고 싶다.
2. 키워드를 레벨2 의 학습 목적에 맞춰 선정하기
브라운도 레벨1 의 각 학습 키워드에 맞춰 인터뷰를 진행하시는 모습을 보였다.
ex) 캡슐화를 통해 ~ 를 할 수 있습니다 -> 그렇다면 캡슐화는 왜 지켜야 하나?
만약 페어와 이에 대해 충돌이 생긴다면 어떻게 해결하나? TDD 를 할 때 캡슐화는 어떻게 지킬 수 있나?
이렇게 TDD / 페어 / OOP / 클린코드 와 같이 우리가 학습한 주차별로의 키워드와 연계하는 모습을 볼 수 있었다.
3. 조금 더 일반적인 예시로 이야기 하기
이번 레벨 인터뷰에서는, 일반적인 예시라기보다 우테코라는 집단 속에 있다면 이해할 만한 예시들로 설명했다. 예를 들어, 예시를 들 때 이번 장기 미션에서~ 와 같이 장기가 무엇인지 그리고 미션의 요구사항이 무엇인지 인지하고 있는 것을 전제 하에 이야기했다. 인터뷰를 통해 습득한 말하기 스킬을 나중에 직무 인터뷰를 볼 때에도 적용할 상황이 분명히 생길 것이기에 미리 미리 일반적인 예시를 들어 설명해야겠다는 생각을 했다.
🔍 PROBLEM – 이번 인터뷰에서 드러난 개선 지점
1. 나의 기준들을 꾸준히 세워 아카이빙 하기
이에 대해서는 또 다른 크루인 모다와 이야기한 적이 있다. 모다는 자신이 어려운 지점들에 대해 덤프해뒀다가, 이펙티브 자바에서의 목차들의 뉘앙스와 같이 자신만의 '아이템'을 만들고 있다는 것을 알려줬다. 이 방식이 의식적으로 나의 기준을 잡아가는 데에 정말 좋은 것 같다. 그래서 레벨2 에는 적극적으로 이러한 포맷을 활용해볼 생각이다. thx to 모다. 🥳
2. 질문을 던지자
객체지향과 가독성은 사실 우리 우테코 크루들 사이에서 정말 중심축이 되는 말이다. 그러나 정작 이를 왜 해야 하나 에 대한 근본적인 물음은 던진 적이 없었다. 밑바닥부터 모든 것에 대한 의문을 갖고 나의 생각을 정리하자.
3. DFS 방식으로 도식화해서 공부하는 것은 좋다.
앞서 언급한 대로, 옵시디언의 그래프 뷰와 같이 DFS 처럼 내가 의문을 갖는 지점들을 쭉 쭉 파고 들어 가며 해결하는 것이 정말 좋은 공부법이라는 생각을 했다. 현재는 메모 앱으로 베어를 사용 중인데, 옵시디언으로 옮겨볼까 하는 고민이 된다.
4. 자신의 기준을 인터뷰 준비할 때처럼 주기적으로 점검하는 것은 좋다.
인터뷰는 레벨마다 진행되기에, 보다 짧은 주기로 나의 기준을 점검하는 것이 어떨까 하는 생각이 들었다. 레벨1 이 끝나며 준이 나만의 미니 테코톡을 매일 해볼 것을 제안해 주셨는데, 다음 레벨에서는 나도 입을 자주 열고! 나의 기준을 자주 말해보는 기회를 찾아 나서야겠다는 생각을 했다.
5. 까불지 말자? 선택과 집중
우아한 테크코스에서 미션을 진행 하다 보면, 정-말 많은 키워드의 홍수 속에서 살아가게 된다. 전략 패턴을 누군가 말해서 그게 뭐야 웅성웅성 찾아보고 나면 또 다시 상태패턴! 상속! 인터페이스! 조합! 과 같이 키워드가 마구 쏟아져 나온다.
그래서 무엇을 공부해야 하는지 매일의 선택 속에 놓이게 되는데 괜한 것들에 집중하기 보다는 우리의 학습에 주축이 되는 키워드들을 중심으로 공부해 나가야겠다는 생각을 했다. 선택과 집중을 하자. 괜히 어려운 개념들까지 알아보겠다며 까불지 말고..
🏹 당장 실행해 볼 액션 플랜
인터뷰 과정에서 개선하기 위한 액션 플랜을 세우고, 원한다면 브라운에게 점검 받아 보라는 이야기를 들었다. 나의 경우에는 직접적으로 경험해볼 것 + 다양한 것들에 의문을 갖고 = 나만의 기준을 세워 철학을 가질 것을 느꼈기 때문에 위와 같이 브라운에게 메시지를 남겼다.
브라운이 칭찬과 함께 이렇게 진행해보면 좋을 것 같다는 피드백을 주셔서 방학 기간 동안 이를 실천해 보고자 한다. 액션 플랜을 바탕으로 한층 더 성장한 내가 되어 있길 바란다!
재미있는 레벨1 인터뷰였다!
'우아한 테크코스 7기' 카테고리의 다른 글
[우아한 테크코스 7기] 레벨3를 돌아보며 (2) | 2025.08.24 |
---|---|
[우아한 테크코스 7기] 방탈출 예약 관리 미션 회고 (0) | 2025.05.05 |