티스토리 뷰
수정(2021.09.03)
지금은 산업기능요원으로 21년 4월부터 복무 진행중
면접을 한참 보던 시기는 2020년 2학기~ 겨울방학 사이
면접 볼 때는 진짜 프론트, 백엔드 이런거 없이 다 넣었기 때문에 질문 주제가 다양할 수 있음
원래는 백엔드 개발자 하고 싶었는데 지금은 좀 다른 부분에서 근무중
들어가는 글
이번 학기 중에는 산업기능요원 면접을 몇 번 봤었다. 여러 질문들이 있었고, 이에 대해 정리해보고자 한다.
일단 생각보다 포트폴리오, 이력서에 대해서는 많은 질문을 하지 않았다. 그리고 깃허브를 보는 회사도 있고 안 보는 회사도 있었다. 물론 제출하면 좋지만, 현실적으로 이를 다 확인하는 것은 어렵기 때문에, 참고용으로 사용하는 것 같다.
보통 1시간~1시간 반 정도 면접을 보는데, 그 동안 진짜 엄청 많이 물어본다.
대부분의 회사에서 가장 집중적으로 물어본 부분은 크게 다음과 같다.
- 사용하는 언어에 대한 이해
- 프론트엔드, 백엔드, 통신
- 데이터베이스
- 클라우드
- 리눅스
- CS 내용, 도메인 지식
- 회사에서 개발하는 것들에 대한 기본적인 이해, 어떻게 작동하는지
- 자신의 성격상의 장단점, 협업할 때 좋은점
- 개발자를 선택한 이유, 구체적으로 어떤 분야를 가고 싶은지
- 신입 개발자로서 어필할 수 있는 부분
- 평소에 어떻게 학습하고 러닝 커브에 대응하는가
- 좋은 코드에 대한 생각, 그리고 이를 협업에서 어떻게 적용할 것인가
- 팀프로젝트에서 겪은 갈등상황과 그 원인, 해결방법
- 이후 개발자로서 어떤 부분에 집중하고 싶은지, 관심이 있는지
- 그 외 취미나 자기소개 등등 당연한 내용들
개발관련 질문 상세 내용
받았던 질문들에 대해, 나는 아직 모르는 부분이 많기 때문에, 잘못 이해하거나 분류를 이상하게 했을 수 있지만, 최대한 상세하게 써보면 다음과 같다. 그리고 Node.js를 주력으로 쓰는 회사들에 지원을 해서 해당 질문을 많이 받았다.
1. 사용하는 언어에 대한 이해
- Node.js(Express)
- 노드 기본 모듈들은 어떤게 있는지
- 사용해본 모듈들: Mongoose라던가, Passport를 사용해 봤다. -> 그게 무엇이고, 왜, 어디에 썼는가?
- 비동기를 사용하는 이유, 장점과 단점
- 그냥 변수 리턴해서 주고받는 것과 콜백을 주는것에는 무슨 차이가 있는지
- 콜백 지옥의 개념과 그 해결 방법
- 프로미스의 개념
- req,res,next의 개념
- 미들웨어란 무엇인지, 어떻게 사용해 봤는지
- 다른 언어에 비해 Node.js의 장점, 단점, 어디에 도입해야 하는지
- Javascript(기본적인 자바스크립트 문법에 대해)
- ES6가 뭔지, 사용해봤는지
- 클로저가 무엇인지
- 브라우저 호환성에 대해
- map reduce
- let var const 의 차이점 어떤 경우에 사용하는지 간단히 설명
- Python
- 머신 러닝 관련해서 물어본다.
- 데이터 시각화에 대해
- C/C++
- STL에 대해
- C, C++의 차이점?
- 왜 C/C++을 잘 사용하지 않는지
- 포인터를 간략하게 설명해봐라
- 비트 연산의 개념과 이를 통한 계산상의 장점 설명
- 동적 할당을 간단하게 설명하기
- Java
- 인터페이스와 추상 클래스의 차이
- 상속에 대해
- 가비지 컬렉터의 개념, 어떻게 작동하는지 간단히 설명
2. 프론트엔드, 백엔드, 통신
- 프론트엔드
- 프론트엔드 프레임워크에 대한 이해. 사용해본 프레임워크 있는지
- 프론트엔드 프레임워크들을 사용하는 이유. 각각의 장단점 -> react, vue, angular 3개 위주로 설명
- Angular, Angular.js의 차이가 뭔지 알고 있는지
- JQuery를 왜 별로라고 생각하는지
- 바벨의 개념과 이를 사용해본 경험(ES6에서 물어봄)
- 웹팩의 개념과 이를 어떻게 사용자에게 제공하는지
- HTTP, API
- 프론트와 백엔드가 어떻게 통신을 주고받는지 HTTP에 대한 설명
- GET, POST를 어떻게 사용하고 어떤 내용들이 오고 가는지(header, body 위주로 설명)
- API, REST API란 무엇인지
- http 와 https의 차이점 그리고 각각의 장단점
- 도커 관련 질문
- 도커를 사용해본 경험, 어떻게 작동하는지 설명, 왜 사용하는지
- 도커와 컨테이너의 관계, 개념
- 도커와 nginx를 사용해 배포해 본 경험이 있는지
3. 데이터베이스
-> SQL, NoSQL에 대한 비교를 위주로 물어봄. 그리고 MySQL 쿼리 많이 물어봄
- SQL
- MySQL 쿼리 문제들
- 테이블을 주고 거기서 특정 조건을 만족하는 데이터들만 가져오기
- 테이블에 데이터를 추가하거나 변경
- GROUP BY, HAVING 사용을 원했음
- MySQL 쿼리 튜닝에 대해
- SQL의 장단점
- MySQL 쿼리 문제들
- NoSQL
- NoSQL의 개념
- MongoDB에서 document의 개념
- Mongoose말고 그냥 document들 가지고 구현해본 경험 있는지
- SQL, NoSQL을 비교하고 어디에 사용하면 좋은지 설명하기
- MySQL의 경우에는 초기 구조를 좀 잘 짜야하고 MongoDB는 지속적으로 작은 데이터가 쌓이는 경우(IOT나 가벼운 서비스)에 사용한다고 대답했던 것 같다.
4. 리눅스
- 리눅스 계열
- 우분투 데스크탑 서버 차이
- 우분투를 직접 설치해본 경험
- 우분투에서 개발해본 경험 or 배포해본 경험
- 터미널에 익숙한가? -> 무슨 의도인지 잘 모르겠다.
5. 클라우드
-> 사실상 AWS 질문
- S3에 대해 설명
- EC2에 대해 설명
- Lambda에 대해 설명
- EC2, Lambda의 차이를 설명
- 서버리스의 개념, 위의 3개를 통해 어떻게 구현할 수 있는지 말해보기
6. CS 내용, 도메인 지식
-> 자료구조, 알고리즘
- 아주 기본적인 자료구조
- 큐, 스택, 힙, 트리(이진트리), 그래프, 해시, 맵
- 특히 스택 힙은 단순 개념 뿐 아니라 프로그램의 실행 과정과 연결지어 설명하길 바람
- 큐, 스택, 힙, 트리(이진트리), 그래프, 해시, 맵
- 아주 간단한 알고리즘
- DP, 정렬, 이진탐색, bfs, dfs, 유니온 파인드, 위상 정렬, 다익스트라 이런거 준비
- 이론 내용을 알고 코테 준비를 꾸준히 해주면 대응가능하다.
정리
그동안 성급하게 포트폴리오 구현에만 집중했던 것 같다.
거의 비전공자보다 못한 수준으로 기본 언어 지식, CS 내용 등에 대한 이해도가 너무 부족했다. 그리고 자기 소개나 가고 싶은 분야 등은 항상 물어보는 건데, 제대로 답을 못하고 있다.
아마 다 합격하지 못할 것이라고 생각한다. 방학 동안에는 언어랑 CS를 더 집중적으로 정리하는 기간을 가져야 할 것 같다. 특히 SQL은 아주아주 얇게 알고 있어서, 물어보면 무조건 털린다... SQL 좀 봐야겠다.
새로운 언어, 새로운 프레임워크 이런 것들을 배우기 전에 우선 기본 JS에 대해 알 필요가 있다고 생각한다. 그동안 언어를 집중적으로 공부하지 않고 그냥 MDN에서 찾아보거나 구글링했었는데, 슬슬 한계를 느끼고 있다. 다시 말해, 프론트엔드 프레임워크나 Node.js에 대해 더 익숙해지기 위해서는 기본 JS를 잘 파악하고 있어야 한다고 생각한다.
즉, 데이터베이스(특히 SQL), 네트워크, 를 다시 정리하고, JS 기본 개념부터 공부해야겠다.
지금까지 너무 얇게 대충대충 넘어간 내용들이 많았는데, 면접을 거치면서 그 문제점을 파악한 것 같다. 그 개념의 정의, 사용하는 이유, 장단점 비교, 관계 등을 정리할 필요가 있다.
'연습' 카테고리의 다른 글
[Python] 파이썬 코테 연습1 (1) | 2021.02.13 |
---|---|
채팅 서버 구현하면서 궁금한점들 2 (0) | 2021.02.08 |
[MongoDB] Mongoose Schema Statics/Method (0) | 2021.01.29 |
채팅 프로그램 구현하면서 궁금한 점 (0) | 2021.01.06 |
AWS API Gateway 사용해보기_1 (0) | 2020.12.03 |
- Total
- Today
- Yesterday
- Javascript
- Til
- 그리디
- endl을절대쓰지마
- jwt
- 프로그래머스
- 최대한 간략화하기
- django testcase
- factory_pattern
- 위상정렬
- SSL
- 힙
- 불필요한 값 무시하기
- 코딩테스트
- cipher suite
- SQL
- requests
- 우선순위큐
- 스택
- 파이썬
- 이것도모르면바보
- django test
- BOJ
- Remote
- vscode
- Python
- 삽질
- docker-compose update
- Event Sourcing
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |