들어가며
3월 29일 첫 레벨 인터뷰를 진행하였다. 레벨 인터뷰를 진행하기 전에는 그냥 아는 것 이야기 하고 오고 모르면 어쩔 수 없지 라는 생각을 가지고 있었다. 하지만 막상 준비를 하며 내가 정확하게 알지 못하는 것이 많다고 느꼈고, 지식을 쌓아감에 있어서 양보다 질을 우선시 할 필요를 느꼈다. 하나를 알더라도 확실히 알 필요가 있을 것 같았다.
시작
나는 오전 시간에 토미와 함께 인터뷰를 진행하였다. 우리팀은 썬샷, 에단, 나, 가비, 저문, 매튜,마코 였다. 나의 앞 타임은 썬샷, 에단이였는데 둘 모두 말을 논리정연하게 잘 대답하였다. 그래서 그 다음 순서인 내가 더욱 떨렸다. 총 7명의 눈으로 나를 쳐다본다고 하니 너무 떨렸다. 최근에 이런 면접을 경험해보지 못해서 그런 것인지 어려웠다. 자신감도 많이 떨어졌다. 남과 비교를 하지 말라 했던 우아한테크코스이지만 바로 직전 사람과 비교하게 되는 것은 어쩔 수 없었던 것 같다.
인터뷰
나는 오전 마지막으로 인터뷰를 진행하였고 내가 정리한 학습 사항에 대한 질문은 다음과 같다.
전략 패턴과 의존성 주입은 어떤 차이가 있나 ?
- 이는 내가 전략 패턴과 의존성 주입에 대한 차이가 궁금했기에 학습했던 내용이였다. 둘의 차이점을 말하며 내가 헷갈렸던 부분을 토대로 설명하였다. 내용적으로는 잘 말한 것 같으나 말을 논리적으로 하였는지는 잘 모르겠다.
일급 컬렉션은 비즈니스 종속적이라는데 자세히 설명해달라.
- 일급 컬렉션을 통해 검증, 관리를 통해 클래스 내부에서 비즈니스 검증 로직이라고 설명하였고 미션을 진행하면서 이를 미션에서 경험한 것에 대해 설명하였다.
equals와 hashcode를 같이 정의해야 되는가 ?
- 이는 동등성과 동일성과 값 객체에 관해 잘 몰랐기에 학습했었다. 둘의 차이를 알게 되었고 학습하게 된 것에 관해 말하였다.
try-with-resource 사용하는 이유 ?
- 처음에는 단순하게 finally사용하는 중에 예외 발생 시 finally가 호출되지 않는다고 생각하여 try-with-resource를 사용하는게 좋다고 생각하였다.
- 마코가 finally도 결국 호출이 되지 않느냐라고 물어봐 주었다. 나는 잘못 알았음을 인지하였다.
- finally를 지양하는 이유는 자원이 여러개 일 경우 코드가 길어지며 깔끔하고 견고한 코드를 작성할 수 있다. 라고 알게 되었다.
- finally 를 사용하면 되지 않나요 ?
조합을 사용해 봤나요 ?
- 블랙잭 미션에서 처음에는 상속구조였는데 player와 dealer를 모두 처리하기 위한 조합 Participants 만들었다. 경험을 기반으로 최대한 말해보려 하였다.
- 나는 조합의 단점을 크게 못 느꼈었고 깊게 생각해 본적은 없다. 장점만 생각해봤던 것 같다.
- 후에 찾아본 조합의 단점은 객체나 메서드명이 명확하지 않으면 코드가 가독성이 떨어지고 이해하기 어려워진다는 것이다. 나는 큰 시스템이 아니였기에 못느꼈던 단점 같다.
- 조합의 단점을 느꼈나요?
디자인 패턴을 사용해야하나 ?
- 디자인 패턴을 굳이 쓸 필요는 없다고 생각한다. 구현을 함에 있어서 자연스레 불편함을 해결하기 위해 디자인 패턴을 생각하는 것이라고 생각한다. 이에 대한 내 생각을 말하였다.
리팩토링 할 때 기준과 절차 ?
- 이 부분에 대해서는 크게 생각해본적이 없어서 두루뭉실하게 대답했던 것 같다. 그래서 기억이 잘 안난다..😂 한번 깊게 생각해보면 좋을 것 같다.
- 후에 생각하는 거로는 반복되는 코드, 긴 코드, 역할이 많은 클래스, 긴 매개변수 목록 등을 먼저 처리를 하며 이에 대한 test code를 작성하고 코드를 분해한다. 후에는 객체지향생활체조원칙을 지킬 것이다.
좋은 코드란 무엇인가 ?
- 내가 생각하는 좋은 코드는 가독성이다. 협업을 하는 개발자로써 가장 중요하기 때문이며 SOLID원칙을 잘 지킨 코드라고 생각한다.
- 단일책임,개방폐쇄,인터페이스 분리, 의존관계 역전만 말하였다.
- 긴장한 나머지 생각이안나 작성을 못했다.
- 이에 대한 코드를 작성해 줄 수 있는지 ?
- 단일책임,개방폐쇄,인터페이스 분리, 의존관계 역전만 말하였다.
- SOLID원칙 설명해달라.
DCI 패턴이란 ?
- 토니로 부터 학습하게 된 DCI에 대해 설명하였다. 테스트를 작성함에 있어 효율적으로 작성 가능하다.
캐싱의 이점을 구체적인 사례를 들어 말해줄 수 있나요?
- 체스에서 모든 좌표를 만들 필요 없이 캐싱된 데이터를 가져오는 것에 대해 말하였다.
제네릭 미션 중 배웠던 내용 ?
- 제네릭에 대한 설명보다는 제네릭의 타입 매개변수에 대해 설명했다. 타입 매개변수의 제한을 설명하였는데 잘 못한 것 같다 ..
페어 프로그래밍을 하면서 페어를 설득해본 경험 ?
- 페어와의 의견이 충돌 되어 제3자를 통해 중재를 했다는 경험을 말하였다.
- 사실 설득의 노하우에 대한 것은 없었다. 계속해서 이야기하고 대화하는 것이라고 말하였다.
- 설득의 노하우 ?
추후에 페어프로그래밍, 팀프로젝트에서 이견이 발생했을 때는 어떤 방식으로 접근할 것인지 ?
- 크루들과 계속해서 이야기 하며 설득하지만 그래도 힘들다면 중재자를 통할 것 같다.
피드백
학습 좋았던 면 및 나빳던 면
- 기술, 테크닉들이 장단점이 있기 때문에 이에대해 스스로 학습하여 느끼는 경험을 하면 발전할 수 있을 것이다.
- 넓은 부분에서 학습한 것 같다. 좀 더 깊게 배우고 체감하면 좋을 것이다.
인터뷰, 말하기 측면에서 좋은점 및 개선할 점
- 긴장 시 몸이 앞뒤로 움직이는 불안한 모습이 보인다.
- 자신이 잘 모르는 부분을 확실히 인지하고 개선하겠다는 모습이 좋다.
- 목소리 톤이 차분해서 좋았고 경험을 이야기하는 면이 인상깊다.
- 당황하면 웃음이 나오는 점을 고치면 좋다.
- 생각할 시간을 달라하고 고민을 더 하는 것이 좋지 않을까 라는 생각이 든다.
나가며
나는 인터뷰를 진행하면서 중간에 말을 하다가 생각을 위해 음.. 이런식으로 멈췄던 기억이 있다. 이를 고치기 위해 지식을 확실히 하고 고치면 좋을 것 같다. 레벨2 인터뷰는 진짜 잘할 것이다.
'우아한테크코스' 카테고리의 다른 글
[우아한테크코스 5기] 웹 자동차 경주 2단계 학습 로그 (1) | 2023.04.23 |
---|---|
[우아한테크코스 5기] 웹 자동차 경주 1단계 학습 로그 (1) | 2023.04.23 |
[우아한테크코스 5기] 체스 2단계 학습 로그 (0) | 2023.04.02 |
[우아한 테크코스 5기] 체스 1단계 학습 로그 (0) | 2023.03.26 |
[우아한 테크코스 5기] 블랙잭 2단계 학습 로그 (1) | 2023.03.18 |