면접 대비 특강
요새는 ‘나를 뽑아야 하는 이유’를 반드시 만들어야 합니다
자기소개서, 면접, 블로그
면접은 대화입니다.
대화는 오랜시간동안 채화해야 합니다.
기술적 질문은
알고 있음, 어떤식으로 일할 수 있을 지, 소통, 값어치 할지를 확인하는 방법입니다.
왜 물어봤고, 재치, 경혐, 이해시키도록 말할 수 있을 지 생각하고 답하세요
면접은 패시브 스킬... 평소에 잘하자
묻고 소통하고 많이 하세요
경쟁자 : 연근 낮아진 시니어 개발자, 동남아 개발자들, 퇴직한개발자들
개발자 취업을 위해 중요한 부분(우리가 가능한 것)
면접 빡세게
강의, 프로젝트는 완벽하게 다 이해해야함(다른 사람 코드도)
1. 면접 진행 방식 예시 (정해진 형식은 없음)
실리콘밸리 초기 스타트업
1. 4시간 동안 쇼핑몰 클라이언트, 서버 개발하기
2. 4시간이 지나면 코드를 제출하고 곧이어 바로 해당 코드에 대한 면접을 진행
미국발 글로벌 IT 기업
1. 4일 안에 Golang 언어(Go로 풀스택 개발)로 서비스 개발하기
2. 며칠후 해당 코드에 대한 면접 진행
국내 중견기업
1. 3시간동안 알고리즘 3문제 풀어서 제출하기
2. 며칠이 지난 후 일반적인 개발 지식 관련된 면접 진행
3. 이어서 알고리즘 문제 풀이법에 대한 토론
국내 스타트업
1. 면접관들과 함께 있는 자리에서 A라는 문제를 해결할 수 있는 아키텍쳐 실시간으로 설계하기
( 화이트 보드에 바로 실시간을 설계, 의견 반영, 대화....이유가 있어야 함. )
기술면접 유형 3가지
1. 사전 과제 주고 → 그 과제 위주로 면접 진행
예를 들어, 어떤 조건을 만족하는 서버를 개발하고 면접에서는 이를 어떻게, 그리고 왜 그렇게 설계했는지를 설명합니다
(어떤 이유로 이런 방법을 선택했는지 말해야함. 배웠던 거라. 예재가 이렇게 해서는 않됨)
2. 실시간으로 과제 코딩
예를 들어, "15분 내에 간단한 RESTful API를 구현해 보세요"라는 과제를 실시간으로 해결하며, 코드 작성 과정을 설명합니다.
(바로 앞에서 보고 있는데.. 경험을 많이 쌓아야 함)
3. 과제 없는 실시간 대화
예를 들어, "과거 프로젝트에서 가장 큰 도전은 무엇이었나요?" 같은 질문을 통해 지원자의 경험과 문제 해결 능력을 평가합니다.
(팀, 개발 안에서 이슈. 해결책을 어ᄄᅠᇂ게 도출했고 그게 최선이었는가, 대안은 뭐가? 등)
2. 회사가 면접을 통해 알고자 하는 것
면접관은 크게 3가지 요소를 파악하고자 합니다.
왜 물었는지 모르겠으면 차라리 물어보기
(1+1은 2인데 어떤 이유로 물으셨나요.. 혹시~이유로 물으셨나요 등)
1) 기술적 역량:
-이 사람이 정말 우리 팀에 기여할 수 있을까? (개발 할 줄 아는지, 사용할 수 있을 지, 코드주고 이해해 오라고 시키기도함))
-Node.js와 관련된 기술 스택 (Express.js, 데이터베이스, 비동기 프로그래밍 등)
-문제 해결 능력과 코드 작성 능력
-코드 리뷰와 이해 능력
2) 문화 적합성:
-이 사람과 함께 시간을 보낼 수 있을까?
-회사의 가치와 문화에 부합하는가
-팀과의 협업 능력
(어떤 사람이랑 일할 때 결과가 좋았는가
~할 때는 어떻게 했어요? 리더 였을 때, 팀원이었을 때
대화속에서 이 사람과 지낼 수 있을 지 드러남)
3) 성장 가능성:
-이 사람이 숨은 히어로일까? 아니면 빌런일까?
-학습 의지와 능력
(가성비.. 어느 기간 내에 쓸만해 지려나...)
-새로운 기술에 대한 적응력
빠르고 긴박한 상황에 익숙하게 대처해야한다\
아래 질문에 대해서는 함께 대답해봅시다.
기술적 역량
꾸준히 TIL 작성
작성자가 게시글을 생성, 조회, 수정, 삭제할 수 있는 API 서버를 만들어주세요. 그리고 작성한 코드를 설명해주세요.
동기 프로그래밍과 비동기 프로그래밍의 차이가 뭘까요?
이런 상황에서는 어떻게 서버를 개발해야 할까요?
→ 스스로 경험한 내용들에 대해 자세히 인지하고 있어야 합니다. 우리가 TIL을 작성하고 프로젝트에서 본인이 작성하는 코드를 100% 이해해야 하는 이유죠.
문화 적합성
팀원들과의 갈등을 해결한 경험이 있나요?
미들웨어에 대해 알고계신가요? 모르시면 제가 알려드릴게요. → 어디에 쓰면 좋을까요?
~~한 문제가 있으면 어떻게 해결할 수 있을까요?
→ 우리가 팀 프로젝트를 진행하고, 매번 팀을 바꿔서 새로운 사람들과 협업하는 이유죠.
다양한 살람과 일해야 함. 갈등을 해결하기 위해 노력해야 면접가서 할 말이 생김.
짜증을 내는 것이 아니라 어떻게 해쳐나갔는지
잘 몰라도 ‘뭐하는건지 설명해주시면 해보겠습니다. ’ ‘ ---하는겁니다’ ‘ 아, 그러면 ---인거는 ---인것 같으니 — 인것같습니다’
대화를 해야함
성장 가능성
이전에 프로젝트를 진행하며 어떤 기술을 사용했었나요?
~~한 기술이 있는데 어디에 적용하면 좋을까요?
최근에 학습한 기술은 뭐가 있나요?
→ 항상 새로운 기술을 배우려는 자세와 머릿속에 기본 개념을 미리 넣어두는 것이 필요해요. 그래야 실시간으로 배우는 내용들을 응용할 수 있죠.
→ "만약 우리 서비스가 갑자기 트래픽 폭주를 겪는다면 어떻게 대응할 것인가?"라는 질문을 했다고 합시다. 여기서 중요한 건 완벽한 답변보다는 문제 해결 접근법과 빠른 학습 능력을 보여주는 것이에요.
3. 어떻게 답변을 하고, 대화해야 하는가
알아서 잘 딱 깔끔하고 센스있게
평소에 잘 준비해야 해요.
(질문, 도와줄 때, 보고할 때, 설명할 때)
면접 준비 = 내가 가진 것을 최대한 보여줄 수 있는 연습
물어볼 때 정리해가기(6하원칙)
내가 원하는 것 (은 여기서 리소스가 나오는 것입니다.)
현황(현재는 ~에서 ~되는데 ~가 안되요)
추측(~같아서 시도했는데)
확인(~게 나옵니다.)
설명
당연히 하는게 아니라 ‘~~하는거라 ~에 사용합니다. ~할 때는 ~하는게 더 적절합니다’
모르면 ‘내가 더 공부해서 알려줄게’
방법중 한나일 뿐 틀에 박히지 말고 대화하듯이 해야함
STAR 기법
STAR 기법: 상황(Situation), 과제(Task), 행동(Action), 결과(Result)를 구조화하여 설명하는 방식
예를 들어, "REST API를 설계하고 개발한 경험에 대해 이야기해주세요"라는 질문에 대해:
Situation: "유저들이 실시간으로 게시글을 작성하고 댓글을 남기는 서비스를 개발해야 했습니다.”
Task: "해당 부분에서 전체적인 API 설계와 인증 부분을 담당하였습니다.“
Action: "express / spring framework를 사용해 빠르게 API 서버를 개발하였으며 cookie, session을 도입해 보다 안정적으로 서버를 운영할 수 있게 하였습니다."
Result: "RESTful한 API 설계로 클라이언트 개발자와 원활하게 협업을 하였고 결과적으로 3일만에 서비스를 런칭할 수 있었습니다."
이 STAR 기법에 맞게 이야기하면 우리가 알고 있는 것들을 면접관에게 깔끔하게 이야기해줄 수 있겠죠.
해야하는 것(DO)과 하지 말아야 하는 것(DON’t) 크게 3가지 케이스
Case 1: 이미 알고 있는 내용에 대한 질문
→ Do: 질문에 대해 명확하고 핵심만 간결하게 답변하고, 필요한 경우 구체적인 예시를 제공
→ Don’t:장황하게 안됨. ‘내가 아는 모든 것을 알려줄게’라는 태도로 끝없는 연설을 시작
Case 2: 모르는 내용에 대한 질문
→ Do: 면접관에게 질문을 하여 대화를 주도하거나 힌트를 받아서 생각을 전개
대화를!!!!! (~는 잘 모르는데 조금 힌트를 주실수 있을까요? )
→ Don’t: ‘모릅니다’라는 단어로 대화 종결
Case 3: 미리 준비한 내용에 대한 질문
→ Do: 준비한 내용중 면접관이 원하는 내용만 간단하게 답변
(달달외우지 말고 대화하듯이)
→ Don’t: 무언가를 보고 읽거나 준비한 모든 것을 이야기하는 태도
4. 평소에 어떻게 준비?
1. 기본 지식 & 경험
누군가와 대화를 하려면 그에 대한 기본적인 지식은 가지고 있어야 해요.
우리가 매일 캠프에서 배우고 있는게 바로 ‘기본 지식’이에요.
그리고 매번 개인 과제나 프로젝트를 하면서 ‘경험’을 쌓고 있어요.
왜 나만의 Wireframe, ERD, API 명세서 등을 작성하고 그에 맞춰 개발을 하는지 이제 이해가 되시나요?
2. TIL
끈기, 대화, 성장(새로 학습한 내용 등)
면접에서 이 내용을 보여주는 것도 중요하지만 면접이 아닌, 평소에 어떤 식으로 이 사람이 노력해왔고 성장해왔는지를 보여주는 것도 중요해요.
그런 의미에서 우리가 하는 TIL은 면접에서 무척이나 중요하게 작용한답니다.
3. 작성한 코드
우리팀의 코드면 100% 이해하고 있어야 함.
‘AI를 이용해 코드를 작성해도 되나요?’라는 질문을 무척이나 많이 받았는데요.
저는 오히려 거꾸로 물어보고 싶어요. ‘AI를 이용해 코드를 작성하면 그 코드를 100% 이해할 수 있나요?’
아무리 좋은 서비스를 만들어도 우리가 ‘직접’ 만들지 않았거나 이해하고 있지 못하다면 그것은 우리의 것이 아니에요.
우리가 어려워도 매일 코드를 작성하고 이해하려고 노력하는 이유가 여기에 있어요.
4. 팀 프로젝트
갈등은 면접 때 할 말이 생기는 겁니다. 회피하지 말고 해결을 위해 노력하세요
팀 프로젝트를 하며 갈등이 생기기도 하고 너무 좋은 시너지를 내기도 해요.
중요한건 회사도 팀 프로젝트와 크게 다르지 않다는 점이에요.
그렇기 때문에 회사에서는 지원자가 팀 프로젝트를 할 때 어떤 위치에서 어떤 태도로, 어떤 기여를 만들어내는 지에 대해 관심이 있어요.
그러니 문제가 생기면 회피하기 보다는 함께 해결하려 노력하고, 팀의 구성원으로서 맡은 바 책임을 다하고, 또 기여하는 것이 무척이나 중요해요.
5. 나는 어떤 개발자인가?
얼마나 스스로에대하 객관화 되어 있는지 중요.
나만의 강점을 가지고 있어야 한다.
자신감도 있어야 하고
답은 없는데 알아가기 위해 팀원들에게 물어봐야 합니다.
말이 길어지면 없어 보임. 핵심만 말하기
그래도 말 시키면 답할 수 있어야 함. 대화!
아시다시피 면접관 / 회사는 수많은 지원자들을 상대해요. 특히 주니어 개발자들을 뽑는 곳에서는 더더욱이요.
그럼 그 사이에서 여러분이 ‘특별한’ 개발자라는 것은 어떻게 보여줄 수 있을까요?
바로 ‘나는 어떤 개발자다!’라는 정체성을 명확히 잡는 것으로 이를 보여줄 수 있어요.
예를들어 ‘저는 다 잘할 수 있어요!’라고 포부만 가진 개발자와,
‘저는 요식업에 있어 다양한 경험을 가지고 있습니다. 그리고 개발도 좋아하고요. 그래서 요식에 관련된 개발이라면 저는 개발 뿐만 아니라 전반적인 것들을 모두 이해하고 있습니다!’라는 개발자, 이 둘 중 누구를 뽑으시겠어요?
아니면 ‘저는 리더형 개발자입니다’ 라고 본인의 강점을 말할 수 있는 개발자라면요?
여러분들은 이미 그 답을 가지고 있습니다!
커뮤니케이션이 잘 되는 지가 중요함.
생산력이 깎기게 하지 말고
핵심만 짧게... 대화 잘하기
말하다 실수 했을 때
알고 있는지 모르는건지 명확하게 인지해야 한다.
잘 모르는 것은 ~느 100프로 알지 못하지만 ~경험에 따라 ~인것 같습니다(잘 모르는건 먼저 말해도 됨)
죄송한데 아까말씀드린거 잘못말한것 같다. ~인것 같다
두서없이 말하지 말ㄷ고 생각할 시간을 요청하고 말하기
두서없이 설명을 하는것보단 질문에 답하기 전에 생각할 시간을 받을수있을까요 라는 방식의 말하는것도 괜찮나요?
팀 컬쳐핏에 관한 건 찾아보는데에 한계가 있는 항목인 것 같은데 준비할 수단
-알려진 것들 찾아보기(채용공고, 지인, 회사 후기
면접에서 거짓말하고 취직해서 다르면 소문남...
6. 그럼 화이팅!
면접은 대화다.
지금 하고 있는 것들이 모두 도움이 된다.
모의면접은 1:1로함