서류를 제출했던 것을 까먹을 때 쯔음 집가는 버스를 오들오들 떨면서 기다리고 있었는데 갑자기 서류합격메일을 받게 되었다. 너무 기뻐서 소리를 지를 뻔했다 꺄아아아~~
면접 준비는 내가 작성했던 포트폴리오 위주로 답변을 준비하였고 기술적인 부분보다는 개발공부를 하는 방법이나 협업하는 방식에 대해서 어떻게 답변을 할지 고민을 많이 하게 된 것 같다.
나름 많은 것을 준비했다고 생각하였는데 실제로 면접장가서 다 말하고 오지는 못한 것 같다.
우선 면접전에 대기장소에서 대기하고 있었는데 랜덤으로 알파벳을 뽑으라고 하셨다. 그래서 나는 아래 사진과 같은 카드를 받았고 신나게 정의나 예시같은 것을 찾으면서 살펴보고 있었다. 또 이렇게 정의만 물어볼 것 같지는 않아서 나름대로 이야기를 만들어보았는데...
크롬이나 사파리, 파이어폭스 , 익스플로어 등이 있는 웹브라우저라는 인터넷에 대한 정보를 검색하고 자유롭게 다닐수 있는 공간에 컴파일러와 인터프리터라는 친구가 살고 있었습니다. 이 두친구는 일하는 방식이 달랐는데요 컴파일러는 작업에 대해서 명령을 실행하고 번역하는 것이 프로그램단위로 진행이 되어서 효율성을 따지는 아이였구요 인터프리터는 성격이 급해서 한줄씩 명령을 수행하고 해석하며 실행을하는 친구였습니다. 한줄씩 번역하고 실행하기 때문에 일처리 하는데에 시간은 걸리지만 결과적으로 빠른 결과물을 가져올 수 있는 친구입니다.
컴파일러 친구는 주로 자바 c c++ 안드로이드 농장에서 일을 하기 적합하였습니다. 이클립스나 비주얼스튜디오나 제트브레인에서 제공하는 인텔리제이를 이용하여서 일을하였구요
인터프리터 친구는 주로 자바스크립트, sql, html, 파이썬 농장에서 일을하여 vscode나 파이참 mysql workbench등을 이용하여 작물을 하였습니다
이 친구들이 수확한 농작물을 저장하고 관리하기 위해서는 하나의 공간이 필요하였는데요 관계형 데이터 베이스인SQL과 비관계형 저장소인 Nosql 데이터베이스를 선택할수 있었습니다. mysql각 스키마와 구조가 있음 저장공간 테이블은 명확히 정의된 구조가 있고 중복되는 / 하지만 Nosql은 스키마에 맞지 않아도 대용량의 데이터들을 처리하기에 좋은 장점을 가지고 있습니다.
그러다 어느날 이 평화로운 마을에 새로운 기술인 그래픽에 관련된 농사를 지을 것을 주장하는 포토샵이 등장하였습니다. 다음화에 이어집니다.. ㅋ_ㅋ
다 쓸데없는 짓이였다.. ㅎ_ㅎ...
일단 내 시간대 12시에는 총 8명이서 2팀으로 나눠서 3명씩 다른 면접장에 들어갔다. 하지만 2명의 인원이 오지 않아서 3명씩 면접을 진행하게 되었다. 기억이 명확하지는 않지만 전반적으로 순서는 아래와 같고 답변을 할 때 마다 꼬리에 꼬리를 무는 질문의 형태로 이루어졌다. (꼬리를 무는 질문으로 말하던 것을 다 말하지 못하고 다른 질문에 대해서 또 다시 생각해보면서 답하여서 논리정연하게 답변하지 못한거 같다)
자기소개
자기소개에서 나는 혼자보다는 같이의 중요성을 많이 느꼈고, 함께 프로젝트를 진행하면서 배우는 점이 많아서 서버개발캠프를 통해서 실무자들의 피드백도 받고 같은 분야의 열정넘치는 분들과 함께 하며 배워가고 싶다라고 간단하게 설명하였다.
프로젝트 1개에서 내가 담당한 부분
주니어 실무자들을 위한 아티클 큐레이션 서비스인 아틱을 설명드리고 전체적인 디비설계와 파이썬 부분을 담당하였다고 말씀을 드렸는데, 조금 더 자세히 말씀드리지 못한 부분이 너무너무너뭐무어무너ㅜ너너무 아쉬웠다 (다시 돌아간다면 서버접속, 설계, 회원가입(소셜로그인), 카테고리별로 아티클을 보여주는 API, 이미지 업로딩등을 하였다고 구체적으로 말할 것이다)
1) 웹 크롤링의 정의 : 컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것을 의미합니다.
내가 이부분에 대해서 명확지 인지하지 못하고 아틱을 진행 할때에 해당링크에서 메타정보들만 긁어서 디비에 저장한 부분이 크롤링이라고 말했다가 오지게 뚜두려 맞았다.. 하하 그리고 돔으로 감싸져있어 그 정보들을 다 가져오지 못할텐데 어떻게 해결할거냐 물어보셨는데... 나는 웹 클라쪽은 공부해본적이 없어서 그 부분을 알지도 못했다.. 그래서 그부분은 잘 모르는 것 같습니다... 하고 말했다 여기서 부터 망한 것 같았다.. 하하
2) Nosql의 단점
아틱이라는 서비스에서 해당 아카이브를 스크랩 해 놓으면 새로운 아티클이 추가 될때마다 스크랩해놓은 유저에게 알림이 가도록하였는데 한번 알람이 가면 많은 유저에게 알람을 보내면서 그 유저 수많은 데이터가 쌓일텐데 그 부분을 방지하기 위해서 NoSQL인 몽고디비를 사용했다고 하였다. 하지만 이사님은 5천명에게 뿌려도 1초도 안걸린다고 하시며 왜 구지 그렇게 한 이유가 있냐 다시 되물으셨고 나는 솔직하게 학부생입장에서 비관계형 데이터 베이스인 몽고디비를 사용해보고 싶다고 했다. 또 NoSQL의 단점을 질문을 주셨는데 명확하게 답하진 못하여 다시 정리해보겠다
기본 RDBMS의 한계를 극복하기 위해 만들어졌고 트래픽을 감당하기 어려워져 관계와 스키마가 필요없는 NoSQL이 등장하였다. 가용성과 확장성으로 각광받고 있지만 데이터의 일관성이 항상 보장되지 않는다. 다양하고 복잡한 쿼리는 불가능하다.
카드 5개중에서 프로젝트에서 도움받아야하는 1개 선택
위에서 재미나게 이야기를 만들었던 것은 아무 소용이 없었고 설명했던 각자의 프로젝트에서 카드 중 하나의 도움을 받아야 한다면 어떤것을 선택하겠는가? 라는 질문에 대해서 나는 주저없이 Database를 골랐다. 서버에서 가장 중요한 것이 데이터베이스라고 생각해왔으며, 아티클이라는 것 자체가 큐레이션되어서 사용자들에게 보여지는 정보이고 어떤 아티클이 제일 많이 읽히고 사랑받는지에 대한 정보를 알아야 이 서비스가 더 효과적으로 운영될 수 있을 것
서버개발캠프 지원이유
이 질문은 준비 했던 질문이라 술술 말할 수 있었다. 하지만 그 이후에 면접관님의 추가 질문에 멘탈이 탈탈털렸다. 답하느라고 질문도 생각이 안난다.....
마지막 이사님 말씀
프로그램을 만든이유는 프로젝트 만들기에 급급하고 쫓기듯이 생활하는 학부생들에게 자기자신을 돌아보는 시간을 주고 싶어서 라고 하셨다. 마지막에 그 이야기를 들으면서 살짝 눈물을 흘릴뻔했다.
프로젝트로 배우고 학습하는 방법은 계속 새로이 배워야 할 것만 늘어나고 자기것으로 만들지 못하고 늘어나기만 한다고, 굴비를 엮었으면 먹을 수 있어야지 먹지 못하는 격이라고 그부분에 대한 고민을 더 해보라고 말씀해주셨다. 그 이야기를 듣고 나 혼자만의 공부방식도 만들어야겠다고 느꼈고 내가 정말 많이 부족한 사람이라는 것을 많이 느꼈다. 진짜 내가 얼마나 이 분야에 흥미를 가지고 공부할 수 있으며 얼마나 일을 할 수 있을까 고민을 해볼 수 있는 계기였던 것 같다. 면접을 다녀온 후에 내가 잘 할 수 있는일, 하고 싶은 일에 대해서 많이 고민해보는 시간이 되어 너무 좋은 경험이였다.
정보 공유 무한한 감사를 드립니다!