더파이러츠 면접후기

회사가는 길

나는 아침부터 집에서 동대구역으로, 또 동대구역에서 서울역으로 KTX를 타고 열심히 갔다. 서울역에서 내린 뒤, 두 가지 코스 중에서 1호선으로 시청역까지 이동해서 2호선으로 갈아타는 길을 선택했다. 2호선을 타면 영등포구청역에서 내리면 되었다. 드디어 영등포구청역에서 내리고 회사가 있는 건물인 ‘이엔씨드림타워'로 열심히 걸어갔다. 저 멀리 건너편에서 ‘인어교주 해적단'이라고 적혀있고 죠스그림이 로고에 박혀있는 검정 티셔츠를 입은 남자가 담배를 피우고 있는 것이 보였다. 아마 이 회사의 경영진이 아닐까?

기다리면서

나는 오후 3시에 면접 예정인데, 너무 일찍 도착한 나머지 우선 밥부터 먹어야겠다고 생각했다. 그런데 주변에 식당은 엄청 많은데도 불구하고 직장인들이 너무 많아서 어디 함부로 들어가기가 힘들었다. 그래서 결국 다시 돌아와 찾은 곳이 회사 건물 1층의 김밥천국. 들어가보니 나같은 혼밥러들이 많다. 나는 무려 50가지 정도는 되어보이는 거대한 메뉴판에서 제육덮밥을 시켰다. 남자들의 소울푸드이기도 하니깐. 이곳 서울에도 아직 정은 남아있었다. 제육덮밥을 시켰는데 멸치조림, 어묵볶음, 오이김치, 김치, 곤약, 김치전, 유부된장국까지 반찬이 아주 푸짐하게 나왔다. 덕분에 아주 맛있게 잘 먹었다. 그런데 웃긴것은 혼자 오는 남자손님은 100% 라면을 먹었다.

이제 밥도 잘 먹었겠다. 화장실에 가고싶지만 어디인지도 모르고.. 우선 바로 옆의 카페에 갔다. 직장인들이 많이 드나들다보니 테이크아웃은 많지만 정작 내부에 손님이 적어서 좋았다. 나는 거기에서 커피를 마시면서 면접준비를 하다가 이 건물의 화장실도 아주 잘 구경했다. 바빠보이는 사람들, 명찰을 달고 다니는 사람들, 다양한 복장의 사람들이 바쁘게 왔다갔다 했다.

면접 입장

어느덧 시간이 2시 40분쯤 되었고, 나는 슬슬 정리해서 왁스로 머리도 좀 고정시키고 회사 건물의 6층, 614호로 걸어갔다. 이 건물은 꽤 규모가 큰지 무슨 회사가 한 층에도 몇 개나 되었다. 6층에서 더 파이러츠는 2개 정도의 공간을 사용하는 듯 보였다. 우선 6층에서 다시 머쓱해서 괜히 화장실에 한번 가서 거울을 보고, 614호로 당당히 걸어갔다. 복도에는 꽤 어려보이는 남자 두 명이 서서 이야기 중이었다. 면접을 보러온 사람들일까? 아니면 회사 직원들일까? 나는 들어갈까, 노크를 할까, 문앞에서 서성거리는데 옆에서 검정 옷을 힙하게 입은 여자분이 당당하게 안으로 들어갔다. 나는 급하게 비켜주며 마스크를 썼지만 당황한 표정을 숨기지 못했다. 나는 면접보러온 사람인 것이 확 티가났다. 다행히 똑똑… 하니깐 문앞에 있던 분이 "면접보러 오셨어요?"하면서 안내르 해주셨다.

무슨 휴게실 같은 곳에서 대기했는데, 나는 거기가 면접장인줄 알았다. 푹신하고 적당히 낡은 소파와 기숙사같은 2층침대에 이불이 널부러져있었다. 설마… 야근을 밥먹듯이 한다는 뜻인가? 뭐.. 점심 시간이라도 저기에서 잘 수 있다면 정말 좋겠다고 생각했다. 갑자기 어떤 젊은 남자가 전화를 받으면서 들어오길래 벌떡 일어나서 인사를 하려는데, 쳐다보지도 않고 전화중이었다. 의도치않게 듣게 된 내용은 "자연산은 1만원 정도인데, 그게 아니면 4만 5천까지도 올라가죠… 어쩌구저쩌구…" 듣다보니 개발자가 저런 일까지 하는건가? 싶었다. 아무튼 이 회사가 수산물을 다루는게 맞기는 하구나.. 생각했다. 이내 인사담당자가 들어와서 면접장으로 이동하자고 했다. 엥? 그럼 이 사람은 뭐지? 어쩐지 개발자 느낌은 나지 않았다. 여기는 그냥 휴게실이었구나.

면접 시작

처음 들어가서 가방과 우산을 뒤쪽에 놓고 의자를 빼서 앉았다. 면접관은 두 분이었고, 한 분은 파마를 하셨고 나이가 상대적으로는 있어보였다. 그리고 옆에는 안경을 쓰셨고 개발자 포스가 났다. 특이하게 면접관님이 먼저 자기소개를 했다. 회사도 나를 면접하는 입장이지만, 나도 회사를 면접하는 입장이므로 먼저 소개하겠다고 했다. 파마를 하신 분은 개발본부장이라고 소개하셨고, 그 옆의 분은 개발팀장이라고 하셨다.. 음.. 근데 무슨 차이가 있지? 암튼 나도 학교 다니면서 보안 공부를 하다가 이것저것 하다가 웹 개발에, 그리고 백엔드 개발에 흥미를 갖게 되었다고 소개했다.

일반면접 질문

  • Q. 소개하시면서 웹 개발에 흥미를 느끼게 되었다고 하셨는데, 특별히 웹 개발이 다른 분야와 다른 점이 있나요? 어떤점에서 흥미를 느끼게 되었나요?
    • A. 보안 공부를 하면서 BOB라는 프로그램에 참가하게 되었는데, 그때도 결국 개발 프로젝트를 진행하였습니다. 그래서 무언가를 만드는 것에 흥미를 충분히 느끼게 되었고, 특히 졸업 프로젝트에서 웹 기반의 프로젝트를 하였는데, 그때 웹 개발로 내가 기획한 것들을 자유롭게 표현할 수 있다는 걸 깨닫고 공부하기 시작했습니다.
  • Q. 졸업 프로젝트 말씀해주셨는데, 졸업 프로젝트에서는 주로 어떤 역할을 맡으셨나요?
    • A. 프론트엔드, 백엔드, 발표, 문서… 등 했습니다.
  • Q. 약간 다 하신 것 같은데, 혹시 팀원들이 모두 참여를 적극적으로 했나요?
    • A. 사실 두 명이 개발은 거의 담당을 했는데, 나머지 두 명에게도 최대한 도움이 되는 방향으로 이끌어 가려고 노력했습니다.
  • Q. 말씀하신 것처럼 물론 팀원들이 다 함께 따라와주면 좋겠지만, 그렇지 않은 상황이 많이 발생하는 것 같아요. 그럴 땐 어떻게 하나요?
    • A. 저같은 경우에는 두 가지 정도 안 좋은 케이스가 있다고 생각합니다. 첫 번째는 각자 잘하지만 팀웍이 깨지는 경우, 두 번째는 팀원의 역량 부족으로 고전하는 경우입니다. 두 번째의 경우는 어떻게 해서든 이끌어주면서 같이 성장해나갈 방법을 모색하면서 노력할 수는 있다고 생각합니다. 개개인의 역량은 분명히 다른데 어떤 사람은 같은 업무를 하는데 8시간이 걸리고, 어떤 사람은 같은 업무를 하는데도 2시간이 걸릴 수 있습니다. 따라서 ‘1인분'을 했는냐 못했느냐는 같은 팀원으로서 할말이 아닌 것 같습니다. 하지만 오히려 첫 번째 경우에서 저는 프로젝트 완성여부와 상관없이 좋지않은 결과를 가졌던 것 같습니다. 사실 그 첫 번째 경우에는 물론 나름의 노력을 하겠지만 당사자가 화합하려는 의지가 없다면 해결하기 어려울 것 같습니다.
  • Q. 졸업 프로젝트로 하신 웹 프로젝트를 한 번 설명해보실 수 있나요?
    • A. 우선 크게는 협업툴의 기능과 커뮤니티의 기능을 가지고 있습니다. 협업툴의 기능으로는 칸반보드의 형태로 기존의 협업툴인 트렐로의 기능을 많이 따랐습니다. 그리고 입학부터 졸업까지 학부생이 프로젝트를 진행하면, 그것을 프로필 상에 타임라인으로 나타내고, 또 신입생들은 선배들의 해당 과목의 프로젝트 보드를 보고 또 참고할 수 있는 형태로 개발하였습니다. 구동되는 페이지를 보여드리지 못 한점 죄송합니다..
  • Q. 작년부터 지금까지 공부를 어떻게 해오고 계신가요?
    • A. 우선 작년에 졸업을 하고 처음에 무작정 스프링을 시작했습니다. 그런데 스프링의 코드를 따라치고 이것저것 해보았지만 명확히 개념이 잡히지 않았습니다. 왜냐하면 기본적으로 자바에 대한 이해도가 떨어졌기 때문입니다. 그래서 다시 자바 기초부터 차근차근 공부하기 시작했습니다. 그리고 올해는 자바, 스프링, 스프링부트, 웹 등 공부를 계속 꾸준히 하고 있습니다.
  • Q. 스프링 공부는 어떻게 하고 계신가요?
    • A. 작년에 잠깐 한 것을 빼면, 올해부터 주로 스프링 부트를 활용하여 프로젝트 단위로 학습을 하고 있습니다. 그 과정에서 궁금한 것들은 책이나 강의를 찾아봅니다.
  • Q. 책은 어떤 책을 읽나요?
    • A. 최범균님의 스프링5? 스프링 5.0?을 주로 찾아봅니다. (토비도 말할걸…)
  • Q. 그렇게 학습하면서 스스로 많이 실력이 늘었다고 생각하시나요?
    • A. 네, 엄청나게 늘었다고 생각하고, 특히 모르는게 생겼을 때 이전에는 확실하지 않은 블로그 글을 참조한다던가 다른 코드를 참고했다면, 이제는 공식문서를 참고하려고 하는 편입니다. 공식문서를 읽는데 두려움이 없어졌다는 점이 가장 큰 차이점 같습니다.
  • Q. 그 공식문서도 틀리거나 불친절한 경우가 꽤 있는데, 그런 경우에는 어떻게 하나요?
    • A. 우선, 스택오버플로우나 최대한 정확한 정보를 계속 찾아보겠지만, 정 안된다면 현재는 주변의 스터디원에게 물어보기도 하면서 해결합니다. (개발자에게 메일보낸다고 할걸..)
  • Q. 개인 블로그나 따로 정리하는 글 같은게 있나요?
    • A. 네, 깃허브 소개 페이지에 보시면 TIL이라고 적힌 부분에는 제가 주로 TIL에 관하여 정리하는 블로그이고, Blog라고 적힌 부분은 어떤 주제에 관하여 정리하는 글을 올리는 곳입니다.
    • Q. 네, TIL 거의 매일 적으셨네요? 주로 자바 관련 글이네요. 결국 꾸준히 하는 사람이 성공하는 것 같아요. 계속 꾸준히 하는 것이 중요한 것 같습니다.
  • Q. 웹 개발자로서의 비전 같은게 있나요?
    • A. 네, 저는 우선 앞에 계신 두 분과 같이 훌륭한 개발자가 되는 것이 꿈입니다. (웃음) 구체적으로 행동? 같은 관점에서 말씀드리면, 제가 보안 공부를 하면서 여러 컨퍼런스나 세미나에 가보았는데요. 개발관련 해서도 컨퍼런스가 많아서 매번 느끼는 것은 ‘언젠가는 나도 저런 자리에서 어떤 특정분야에서 정점을 찍고 발표를 하고 싶다.'하고 생각했습니다.

기술면접 질문

  • Q. 마이크로 서비스 아키텍처(MSA)에 대해서 아시나요?
    • A. 네, 우선 모놀리식 아키텍처와 상반되는 개념으로, 먼저 모놀리식 아키텍처는 한 마디로 모든 서비스가 한 개의 서버 내에서 동작하는 아키텍처입니다. 이 경우에는 하나의 서비스에서 장애가 나게되면 다른 서비스까지도 영향을 미칠 수 있습니다. 반면, 마이크로 서비스 아키텍처의 경우, 각 서비스 별로 별도의 서버를 구축함으로써 하나의 서비스에 대해서 장애가 발생하더라도 나머지 서비스는 정상적으로 동작하게 됩니다. 다만, 구축하는데 비용이나 시간이 많이 든다는 단점이 있습니다.
  • Q. 자바를 공부하셨으니까, 자바하면 또 객체지향이 떠오르는데 객체지향에 관하여 설명해주실 수 있나요?
    • A. 네, 객체지향 프로그래밍, OOP는 모든 사물을 객체 단위로 생각해서 코드를 작성하는 것인데, 조영호님의 책에 따르면 객체가 반드시 클래스와 1대1 맵핑되는 것은 아니지만, 자바에서는 대부분 그렇게 작성하는 방식을 따르고 있습니다.. 그리고… 또 객체간에는 메시지 패싱을 통하여 메시지를 주고받으면서 통신을 하는데 이러한 것들을 OOP라고 하는 것 같습니다. (망함)
  • Q. 스프링에서 DI나 IoC에 대하여 설명해주실 수 있나요?
    • DI는 @Autowired 키워드를 통하여 인스턴스를 따로 생성하는 것이 아니라 생성자를 통하여 주입받는 형태로 구성하는 것으로, 이를 활용하면 인스턴스를 재활용할 수 있고, 또 계층구조를 가질 수 있습니다. IoC는… 잘 모르겠습니다. (망함)
  • Q. 스프링의 기본 컨셉에 대하여 아시나요?
    • A. 스프링의 기본 컨셉이라… 엣날에 자바 ㅂ.. 엔터프라이즈와 스트러츠로 이어지는 발전과정에서 거론된 무슨 단점을 극복하기 위해서 탄생한 것으로 기억합니다. (완전 망함)
  • Q. 저희가 과제로 내준 프로젝트에서 JPA를 쓰셨죠? JPA의 장점에 대해서 말씀해주실 수 있나요?
    • A. 아.. 네, 우선 저는 JPA가 아니라 Spring Data JDBC를 사용했습니다. 하지만 JPA도 이전에 사용해보았고, 그 장점은 쿼리를 사용하지 않고도 개발할 수 있다는 것 입니다.
    • Q. 그것을 장점이라고 생각하시나요?
    • A. 네, 저같은 경우에는 전공자라서 그런지 쿼리가 더 익숙하지만, 그렇지 않다면 도움이 될 것 같습니다. 그리고 자바 코드상에서 애노테이션으로 관리가 되니까 그 구조를 더 한눈에 파악할 수 있는 장점이 있습니다.
  • Q. 저희가 드린 과제에서 가장 어려웠던 부분은 어떤 것이 있나요?
    • A. 기본적인 요구사항을 구현하는 데는 그렇게 많은 시간이 걸리지 않았습니다. 다만, 마지막에 날짜관련해서 처리할 부분이 꽤 많아서 그 부분이 좀 어려웠던 것 같습니다.
  • Q. 전체 구현 시간은 얼마나 걸렸나요?
    • A. 음.. 제가 다른 일과 병행하느라 한번에 많은 시간을 투자하진 못 했지만, 하루에 4시간 정도를 투자해서 이틀 정도 만에 끝낸 것 같습니다. 총 8시간 정도입니다.
  • Q. 잘 동작한다고 생각하시나요?
    • A. 네, 우선 주어진 요구사항에 대해서는 잘 동작하는 것을 확인했습니다. 물론 제가 다양한 테스트 코드를 작성해서 테스트 해보지는 못 했습니다만..
  • Q. 저희 서비스에 대해서는 아시나요? 혹시 사용해보신 적이 있나요?
    • A. 네, 실제로 얼마전에 인어교주해적단 앱을 설치하고 사용해보았습니다. 그런데 개인적으로는 특정 부분이 느리거나 한 부분이 있었습니다.
  • Q. 만약에 그런 성능상의 문제가 발견되면 어떻게 해결하실 계획인가요?
    • A. 우선, 여러가직 테스트 케이스를 테스트해보고 정확한 원인을 찾아냅니다. 클라이언트의 문제인지, 디바이스 자체의 문제인지, 아니면 서버의 문제인지를 찾아냅니다. 그리고 만약 서버의 문제라는 것이 확실해지면, 또 하나씩 짚어보면서 어느 부분이 문제인지 찾아내고, 수정하고, 또 테스트 하는 방식으로 반복할 것 같습니다.
  • Q. 개발자는 평생 공부해야한다는 말이 있는데요, 본인은 새로운 기술을 받아들이거나 학습할 자세가 잘 되어있다고 생각하십니까? 앞으로도 어떤식으로 노력하실건가요?
    • A. 네, 저는 새로운 기술을 항상 수용하기 위해서 적극적으로 노력하는 편입니다. 주로 책이나 공식문서 등을 참조하고, 필요하다면 인프런 같은 사이트에서 강의도 보고합니다.

나는 면접준비로 CS기본과 자바 기본위주로 준비를 했는데, 이 부분이 약간 착각이었다. 나는 인턴이나 다른 대기업의 신입채용에 지원한 것이 아니었기 때문이다. 스프링을 바로 사용해야하는데 스프링 관련 질문이 나온다고 왜 생각하지 못 했을까?

면접을 마치고

이 시국에 여기저기 다니지도 못 하겠고, 힘도 많이 남아있지 않아서 나는 바로 서울역으로 향했다. 다행히 빠른 시간 내에 동대구역으로 가는 KTX가 있었고, 나는 5시에 출발하는 열차를 타고 대구로 갔다. 집에 가는 길에 잠이 안와서 결국 또 김칫국을 마시면서 직방에서 영등포구청역 근처의 방을 알아보았다. 그리고 핸드폰은 아이폰 12미니로 바꿀지 SE2로 바꿀지 고민했다. 면접관님이 매사에 기대에 미치지 못 하더라도 크게 좌절하는 것은 도움이 되지 않는다며, 바로 극복할 수 있는 힘을 길러라고 하셨다. 하지만 나는 그 실망감을 알면서도 항상 기대하고 항상 크게 실망한다. 쉽게 말하면 멘탈이 약하다. 이러한 기대에 부응하는 결과가 있기를 기대해본다.