티스토리 뷰

취준

내맘대로 면접질문(21.06.09)

안양사람 2021. 6. 9. 19:53
728x90
SMALL

지금까지 공부해온 것들을 말해주세요

 군대에 있을때 진로를 생각하던 중에 개발자가 마음에 들었고 비전공자이면서 개발 공부를 하는 친구를 알게됩니다. 그렇게 군대 말차를 나와서 개발 공부를 시작하게 되었고 친구의 조언을 바탕으로 공부하기 시작했습니다.

 처음에 자바를 공부하고 안드로이드로 헬스앱을 만들었습니다. 이때가 거의 공부를 해오면서 가장 힘들었던 시간이였습니다. 아무것도 모르는데 갑자기 앱을 만들어야한다니 정말 막막했지만 한가지 작업에 며칠식 매달려 가면서 완성을 했습니다. 실제로 오랜기간 사용했으며 지금 앱 분야를 공부하지는 않지만 값진 경험이였다고 생각합니다. 그리고 이제 웹을 공부하기 시작했는고 처음에는 생활코딩 이고잉님의 강의를 들었습니다. 그리고 바로 서버, db를 이용한 프로젝트를 하기는 무리라고 생각해서 api를 이용해서 날씨어플리케이션을 만들었습니다. 그리고 티스토리를 클론코딩한 블로그를 만들기 시작했는데 중간에 많은 어려운 과정이 있었지만 html, css, js, mysql, nodejs(express)를 이용해 aws ec2에 배포까지 완성을 했습니다. 이때 당시에 기초가 너무 없었기 때문에 그냥 구글링해서 어떻게든 완성을 했습니다.

 그리고 이제 기초공부를 할까 리액트를 사용해서 프로젝트를 만들까 하다가 리액트를 사용해보기로 했습니다. 금방 끝날줄 알았지만 리액트는 생각보다 많이 어려웠습니다. 그게 당연한게 기본 자바스크립트 원리도 아얘 모르는데 리액트를 사용하려니 당연히 문제가 생기는 것이였습니다. 그리고 코드가 지저분한 것을 원하지 않고 효율적이게 동작하기를 원했기 때문에 리팩토링 하는데도 많은 시간이 필요했습니다.  자료구조에 대한 기초나 빅오 개념도 없었기 때문에 지금봐도 많이 부족합니다. 이때 당시에 깃허브와 블로그 모두 조금씩 하고 있었는데 귀찮아서 코드가 바뀌었음에도 불구하고 깃허브를 매일 올리지는 않았습니다. 그러다가 컴퓨터가 고장이나게 됩니다. 고장나기 전에 친구가 깃허브 요즈음에도 올리냐고 물어보고 저는 이것만 하고 올릴게 하다가 고장이 나버렸습니다. 그래서 그때 깃허브의 소중함을 알고 그다음부터는 깃에 꼭 commit하는 습관을 가지게 되었습니다. 그렇게 우여곡절끝에 리액트로 된 커뮤니티 사이트를 만들게됩니다. 기초가 없다보니 원하는 기능은 많은데 이 모두를 구현하는게 거의 불가능했고 원래 계획보다 훨씬 규모나 기능이 작은 프로젝트가 나오게 됩니다.

 기초에 대한 필요성을 느끼고 그때부터 기초공부를 하기 시작합니다. 네트워크, c, 자료구조, 데이터베이스, html, css, javascript 책들을 봤는데 지금 생각하면 너무 대충 보고 넘어간 것 같습니다. 그렇게 기초 공부를 하고 이제 코딩테스트 준비도 하기 시작합니다. 

 그렇게 프로젝트도 만들어봤고 기초도 공부했으니 이제 리액트, nodejs에 대해 공부를 해야겠다고 마음을 먹고 약 두달간 리액트의 기술과 node교과서를 보게됩니다. 이제 이걸바탕으로 프로젝트를 만들고 내껄로 만들면 되겠다고 생각했을 때 친구에게 전화가 오고 저에게 기본 테스트를 해본다며 몇가지 질문을 했습니다. osi7계층이나 quicksort, promise 같은 기본 면접질문에 나올법한 질문을 했는데 저는 제대로 대답하지 못했습니다. 그때 친구는 저에게 이러면 아무것도 안된다고 말하고 저도 조금 충격에 빠졌습니다. 기본공부를 한다고 했는데 진짜 그냥 보고 넘어갔구나 하는 생각을 하면서 다른 걸 다 멈추고 기초 공부를 다시 하기 시작합니다. 그렇게 기초공부를 계속하면서 기업들의 코딩테스트를 보게됩니다. 대기업 코딩테스트를 안정적으로 통과하기에는 아직 부족함이 많다는 것을 깨달았습니다. 그 중에 네이버 코딩테스트가 기억에 남는데 순열 조합을 구현하고 활용해야 하는 문제가 있었습니다. 구글링을 해서 이해한 후에 항상 복사붙여넣기를 했기 때문에 구글링이 허용되지 않는 시험에서 갑자기 코드를 짤려니 생각처럼 되지 않았고 그 문제를 틀리게 됩니다. 작년 후기를 찾아보니 그 문제를 맞았다면 1차를 통과할 수도 있을만한 점수였습니다. 네이버 코딩테스트와 앞서말한 친구와의 대화를 통해 대충 아는 것이 아니라 남에게 설명할 정도로 알아야 시간이 지나도 기억한다는 것을 깨닫고 유투브를 시작하게됩니다. 그리고 중간에 우아한형제들 기술블로그에서 https://woowabros.github.io/experience/2020/04/14/stop-making-todo-list.html

 

Todo list 만들기는 이제 그만 - 우아한형제들 기술 블로그

안녕하세요. 만화경 프론트엔드 개발자 한민호입니다.realworld.io 오픈소스에 기여한 이야기를 해보려 합니다.

woowabros.github.io

이 글을 보고 프로젝트를 제대로 만들기 전에 투두리스트에서 블로그까지 여러가지 방법으로 만들어보겠다는 결심을 하게 됩니다. 만드는 과정을 강의 형식으로 유투브에 올리게됩니다.

 그러던 와중에 우아한테크코스 1차가 붙고 2차 시험을 본다는 이메일이 왔습니다. 붙을것을 예상하지 못한 저는 한참을 손놓고 있었던 웹을 다시 공부하게 됩니다.(투두리스트 몇개를 만든것을 제외하고는 웹을 거의 놓은 상태였습니다.) 이메일이 오고 이틀뒤에 시험이 있었기에 준비를 할 시간이 부족했습니다. 프로그래머스 과제란을 보니 바닐라자바스크립트로 모듈화를 한다던가 모달창을 만든다던가 그런 기본 자바스크립트만으로 작업을 하는 것을 보았습니다. 다행히 자바스크립트를 나름 열심히 공부해왔기 때문에 생각보다는 빠르게 코딩능력이 올라왔습니다. 하지만 우아한 테크코스 2차 과제에서 간단한 오류 하나를 해결하지 못해서 한시간 이상을 날리게 되고 다른 오류도 제대로 잡지 못해서 클린 코드를 작성하지 못했습니다. 그 결과 충분히 해결할 수 있는 것들을 많이 못했고 기대를 하지 않았습니다. 시험을 보고 웹도 꾸준히 공부를 해야겠다고 느꼈고 그때부터 웹에 대한 공부도 병행하게 됩니다. 그렇게 지금은 블로그를 만들고 있습니다. 역시 유투브에 영상을 올리고 있고 쿠키, 세션 같은 개념부터 리액트를 왜 사용하는지 리덕스는 무엇이고 왜 필요한지 이런 기본적인 상식들도 구글링해서 정보를 얻고 유투브에 올리고 있습니다. 그런데 갑자기 우아한테크코스 2차 시험이 붙었다는 연락을 받게됩니다. 그래서 부랴부랴 면접을 준비하면서 이 글을 쓰고 있습니다.

앞으로의 방향성을 말해주세요

앞으로는 취직하기 전까지 cs공부, 블로그 만들기(유투브), 프로젝트 만들기, 코딩테스트 공부를 할 생각입니다.

본인의 개발자로서의 장점, 단점을 말해주세요

 일단 가장 큰 장점은 꾸준함입니다. 사람마다 강렬하게 타올랐다가 금방 꺼지는 사람도 있고 화력이 강하지는 않지만 오래가는 사람들이 있습니다. 물론 공부가 안될때도 있고 잘될때도 있지만 그 폭의 변화가 저는 적습니다. 다른 직업도 마찬가지이지만 개발자는 평생 공부해야 하는 직업입니다. 지금 독서실 총무일을 하면서 한달에 두번정도밖에 쉬지 못합니다. 하지만 이런 환경에서도 쉬는날 유투브 영상을 찍거나 술먹은 날도 머리가 괜찮으면 공부를 하는 등 꾸준하게 공부하고 있습니다.

 단점이라고 하면 기본 능력이 뛰어나지 않습니다. 능력이 뛰어나지 않다는 말은 재능이 없다 라는 말일 수도 있는데 확실히 저는 타고나지 않은 지극히 평범한 사람입니다. 그래서 제가 공부를 꾸준히 해도 실력있는 개발자가 될 수 있을까 하는 생각을 할 때도 있습니다. 제 능력이 뛰어나던 뛰어나지 않던 어차피 하는 만큼 성장한다는 사실은 변함이 없기 때문에 꾸준함으로 이 단점을 극복할 생각입니다. 

본인이 가지고 있는 개발자로서의 가치관이 있다면??

 1. 기초 지식. 즉 cs나 자바스크립트 같은 부분을 일단 가장 중요시합니다. 이론적으로 공부하고 이를 실무와 연관지어서 생각할 수 있는 이런 과정이 굉장히 중요하다고 생각합니다. 어느 분야나 마찬가지이지만 결국 위로가면 연관없어 보이는 것들이 서로 합쳐지게 됩니다. 아직은 이정도 수준까지 이르지 못했기때문에 cs도 꾸준히 공부할 생각입니다. 그냥 구글링해서 코드 복사붙여넣기 하는 것은 의미있는 행동이라고 생각하지 않습니다. 저 역시 그렇게 프로젝트를 완성해왔고 필요한 내용을 구글링해서 찾는 것은 개발자에게 필수로 할줄알아야 하는 능력임을 부인하는게 아닙니다. 여기서도 필요한게 기초지식입니다. 이 코드가 왜 나오게 되었는지 라던가 그 이면에 있는 생각을 읽어야 합니다. 마구잡이로 코드를 작성하면 아무것도 남지 않습니다.

 2. 필요성. 리액트로 예를 들면 처음부터 리액트만 사용한 사람은 리액트의 장점이나 Virtual DOM 같은 기능들을 제대로 이해하지 못합니다. 하지만 바닐라 자바스크립트로 이런 기능들을 구현하고 passport를 이용하지 않고 로그인 기능을 구현하는 등 이런 작업들을 해보면 진짜 필요성을 뼈저리게 느끼게 됩니다. 그래서 유투브에 다양한 방법으로 같은 프로젝트를 만드는 것입니다.

 3. 코드. 코드는 처음보는 사람이 보더라도 주석 없이 알 수 있어야 합니다. 아직 읽지는 않았지만 클린코드 같은 책을 읽을 생각입니다.

 

 

728x90
LIST

'취준' 카테고리의 다른 글

앞으로의 계획(20201.09.12)  (0) 2021.09.12
우아한테크캠프 최종결과  (8) 2021.06.23
알아야될것들(개인용)  (0) 2021.06.18
우아한테크캠프 코딩테스트, 면접 후기  (7) 2021.06.10
공부순서(책)  (0) 2021.03.22
댓글
공지사항