효과는 굉장했다!
실전 프로젝트 3주 차를 지나고 나서 뭔가 한주 동안 전보다 더 진행되는 게 더디다는 느낌이다.
물론 전체적인 프로젝트는 순항 중인 것처럼 보이고, 다른 팀원분들도 맡은 기능과 역할을 충분히 잘해주고 계신데, 그에 반해 내가 많이 더디다는 느낌을 받은 것 같다.
지금까지 해온 역할
일단 2주 차 중간발표 MVP까지 프런트단 작업과 CD(Continuous Delivery 또는 Continuous Deployment), Artillery를 통한 부하테스트를 진행했고, 이후로는 Socket.io를 응용하여 팀원분들이 구축한 시스템을 기반으로 유저 간 대전(pvp)을 구현하는 데 있어, 우선적으로 이전에 socket.io에 대해 학습은 잠시 했었지만, 구현이나 응용해 본 적이 없어 다시금 기초를 다지고 가려 2일 정도 적응하는 시간을 가지고 그 이후로 pvp대전에 대해 구상하는데 1일, 그 이후로 하나 둘 작업하기 시작했다.
중간에 도저히 깔끔하게 정리할 용기가 안 나서 난잡해 보이는데 어느 정도 구현이 돼서 정리가 되면 깔끔하게 다시 만들어보려고 한다.
모의 면접
26일(토)에 항해에서 모의면접을 진행하였다. 면접을 봐주신 분은 실전 멘토라 불리는 현업 시니어 개발자분이 진행해 주셨는데, 일단 결론적으로는 여러모로 현타도 많이 왔고, 면접준비의 중요성에 크게 느꼈다.
대략적인 면접 내용을 말하자면
- 자기소개 - 개발자 ‘장용호’에 대해 설명이 필요, 무슨 언어를 쓰고, 어떤 프레임 워크로 어떤 프로젝트를 진행해 봤는지 같이 기술스택을 중심으로 자기소개를 준비해야 한다.
- 프로젝트를 진행하면서 어떤 역할을 맡았는지 - 프로젝트상에서 본인의 기술스택과 역할에 대한 연관성이 느껴지도록 대답해야 한다.
- CI / CD에 대한 설명 - 프로젝트를 진행하면서 초기에 배포와 부하테스트에 대한 이야기 밖에 말하지 못해 질문을 주셨는데 결론적으로 대답은 모른다였다..
- 파이프라인에 대해서 설명 - CD에 대해 설명을 하다가 파이프라인을 언급해서 나온 질문인 것 같다. 이것 또한 누구도 만족할만한 답변을 하지 못했다.
- 프로젝트 진행 중 가장 어려웠던 점과 해결과정 - EB적용 중 Github Actions 에러에 대한 이야기를 하였다.
- var, let, const의 차이 - 재선언과 재할당, 호이스팅에 대해서 대답하였다.
- 프로미스에 대해 설명 - 프로미스면 비동기로 처리해야 한다라고만 대답하였다.
- async, await에 대해 설명 - 이때 정말 말문이 턱 하고 막혔는데, 많이 사용했지만 왜 쓰는지, 어떤 상황에서 써야 하는지, 특징은 어떤지 전혀 관심 가지지 않고 그냥 썼었구나 하는 생각에 너무 많은 생각과 자괴감까지 들어버렸었다.. 결론은 대답하지 못했다.
- 동기와 비동기의 차이 - 순서에 대해서만 이야기하였다. 큐, 콜스택, 힙, 이벤트루프와 같은 단어는 꺼내지도 못했다.
- 프로세스와 스레드의 차이 - 일단 프로세스와 프로그램의 차이부터 헷갈렸고, 스레드는 아예 입도 떼지 못했다. (지금도 프로세스가 실행되면 스레드를 할당받는다.라는 것만 기억난다. 물론 이것마저도 말하지 못했다)
- 개발자가 되고 싶은 이유
- 3개월간 시간이 주어지면 공부나 하고 싶은 프로젝트 - 결론은 컴퓨터 시스템원리와 알고리즘, 자료구조, 객체지향문법에 대한 기초공부를 하고 싶다고 했는데, 이 부분은 모의면접이라고 인식해서 이런 대답을 하지 않았을까 싶다. 실제 면접에서 똑같이 대답한다면 분명 면접관은 이 친구는 기초가 많이 부족하구나 라는 인상을 심어주지 않을까 싶다.
한 주 동안 프로젝트 진행하면서 수면리듬도 많이 꼬이고 컨디션관리도 안되어 코딩에 전혀 집중을 못해 팀원들에게 너무 미안하다..
또, 기초가 부족하다는 것은 항상 느꼈지만, 모의면접을 통해 중요성을 뼈저리게 느꼈으므로 다시 한번 기초에 대해 하루에 한 번은 꼭 시간을 내서 다시 복습해 볼 생각이다.
앞으로 중요한 과제
- socket.io
- proxy
- docker, dockerhub
- kubernetes
- MSA
- 면접준비
- 멘탈관리