프로그래밍(Web)/공부일기

[바미] 백엔드 개발자로 이직하며 접했던 면접 질문들

Bami 2023. 9. 25. 16:20
728x90
반응형

안녕하세요. 3년차 백엔드 포지션 개발자로 이직하며 접했던 면접 질문들을 공유합니다.

저는 Node.js, Go를 사용하는 회사를 주로 지원했기 때문에 Spring개발과 관련된 질문은 없다는 점 양해 바랍니다.

 

많은 도움이 되셨길 바랍니다.


백엔드 관련

더보기

REST API에 대해 설명해주시고, REST API의 장, 단점을 말씀해주세요

 

[바미] REST API에 대하여

안녕하세요. 오늘은 REST API에 대해 알아보고자 합니다. REST? 흔히 개발을 하셨던 분들이라면 'REST하다.' 라는 표현을 접해보셨을 겁니다. 개발하면서 흔히 접했지만 정확히 얘기하지 못하는 부분

codesk.tistory.com

REST API의 메소드들을 아시는대로 말씀해주세요.

 

[바미] REST API에 대하여

안녕하세요. 오늘은 REST API에 대해 알아보고자 합니다. REST? 흔히 개발을 하셨던 분들이라면 'REST하다.' 라는 표현을 접해보셨을 겁니다. 개발하면서 흔히 접했지만 정확히 얘기하지 못하는 부분

codesk.tistory.com

Redis를 사용하셨는데 Redis의 기능들 설명해주세요.

 

Commands

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker

redis.io

MySQL에서 트랜잭션 락에 대해 말씀해주세요.

 

MySQL 트랜잭션과 락 - InnoDB 락, 이렇게 동작한다!

트랜잭션과 락(Transaction, Lock) 트랜잭션과 락 트랜잭션 : 논리적인 작업 단위로 전부 처리되거나 처리되지 않는 (commit/rollback) 원자성을 보장하기 위한 기능이다. 락 : 서로 다른 작업에서 같은 자

codesk.tistory.com

Kafka의 구성요소가 무엇인지 말씀해주시고, 그 구성요소들을 설명해주세요.

 

실전 아파치 카프카 - 카프카의 구성요소

카프카의 구성요소 프로듀서 : 데이터 생산자이며 브로커에 메시지를 보내는 애플리케이션 메시지 : 카프카에서 데이터를 다루는 최소 단위 브로커 : 데이터 수신 및 전달하는 서비스 컨슈머 :

codesk.tistory.com

Node.js의 장, 단점에 대해 말씀해주세요.

 

[바미] Node 그리고 장, 단점.

Node.js 란? Node.js는 위키백과에 아래와 같이 정의되어 있습니다. Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크

codesk.tistory.com

Node.js의 실행 구조에 대해 말씀해주세요.

 

Node.js 동작 원리

Node.JS? JavaScript를 브라우저 외부에서 실행하는 런타임입니다. Node.js는 싱글 스레드, 논블로킹 모델을 사용합니다. 이 모델은 비동기 I/O 작업을 통해 여러 요청을 동시에 처리하며, 클러스터링을

codesk.tistory.com

Go 언어의 가비지 컬렉터는 어디서 동작하는 지 말씀해주세요.

 

Go - GC에 대해 알아봅시다.

GC란 가비지 컬렉션(Garbage Collection, GC)은 프로그래밍 언어가 자동으로 메모리 관리를 수행하는 메커니즘을 말합니다. 프로그램이 실행되는 동안 동적으로 할당된 메모리 중에서 더 이상 사용되

codesk.tistory.com

HTTP response status codes에 대해 말씀해주시고, 어떤 코드인지도 말씀해주세요.

 

[바미] HTTP status code

HTTP에서 클라이언트 요청에 대한 서버의 응답 코드에 관한 포스팅 입니다. HTTP 상태 코드란? 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를

codesk.tistory.com

DB Deadlock 원인을 말씀해주시고, 어떻게 해결해야 하는지 말씀해주세요.

 

트랜잭션 데드락(Transaction DeadLock)

Transaction 트랜잭션은 하나의 작업을 수행하는데 필요한 데이터베이스의 연산을 모아놓은 것으로 데이터베이스 작업의 단위라고 생각하면 됩니다. 일반적으로 데이터베이스의 연산은 SQL문으로

codesk.tistory.com

Deadlock에 대해 말씀해주세요.

 

트랜잭션 데드락(Transaction DeadLock)

Transaction 트랜잭션은 하나의 작업을 수행하는데 필요한 데이터베이스의 연산을 모아놓은 것으로 데이터베이스 작업의 단위라고 생각하면 됩니다. 일반적으로 데이터베이스의 연산은 SQL문으로

codesk.tistory.com

DB에서 Join을 사용했을 때 on과 where의 차이에 대해 말씀해주세요.

 

[바미] Join 시 on과 where의 차이

요약 on : join 전에 조건을 필터링 where : join 후에 조건을 필터링 INNER JOIN 에서의 ON vs WHERE INNER JOIN + ON 조건절 + ON 조건절 SELECT * FROM a INNER JOIN b ON a.key = b.key AND a.key2 = b.key2 EQUI JOIN + WHERE 조건절 SELE

codesk.tistory.com

Websocket과 Socket.io의 차이에 대해 말씀해주세요.

 

[바미] WebSocket과 Socket.io차이는 무엇일까?

들어가기전에.. Socket.io와 WebSocket 모두 실시간 양방향 통신을 가능하게 하는 기술인데요. 지금 다니는 회사에서는 Socket.io를 주로 사용하고 있어요. 처음 Socket.io를 공부할 때 WebSocket에 대해 먼저

codesk.tistory.com

API가 무엇인가요?

 

API란 무엇인가요? - 애플리케이션 프로그래밍 인터페이스 설명 - AWS

GraphQL은 API용으로 특별히 개발된 쿼리 언어로서, 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 합니다. 또한 API를 빠르고 유연하며 개발자 친화적으로 만들도록 설계되었습니다. RES

aws.amazon.com

Node.js에선 sync, await, async가 있습니다. 각각 어떤 것이고, 어떤 상황에서 사용하는 지 말씀해주세요.

 

[바미] Promise와 async/await

안녕하세요. 회사에서 저에게 자바스크립트에서 async, await사용시 블락되는 구간에 대해 질문을 받게 되었습니다. 먼저 제 블로그에 그러한 글이 있는지 찾아보았지만 Promise와 async에 관련된 글

codesk.tistory.com

MySQL 인덱스에 대해 말씀해주시고, 인덱스의 장,단점에 대해서도 설명해주세요.

 

MySQL 인덱스에 대해서

안녕하세요. 오늘은 인덱스에 대한 정리를 해볼까 합니다. 인덱스라는 단어는 DB를 다루시거나 공부해보신 분들이라면 한 번쯤은 들어보셨을거라 생각됩니다. 하지만 인덱스가 무엇인가요? 라

codesk.tistory.com

프론드엔드와는 무엇으로 통신하셨나요?
자신이 프로젝트에서 사용했던 통신방식(Ajax, Axios)을 말씀해주시면 됩니다.

AWS를 다뤄보셨나요? AWS의 기능들 설명해주시겠어요?

사용하셨던 AWS 기능들을 말씀하시면 됩니다.

개발 이론

더보기

DNS가 무엇인가요?

 

DNS란 무엇입니까? – DNS 소개 - AWS

12개월 동안 AWS 프리 티어에 액세스하고 연중무휴 24시간 고객 서비스, 지원 포럼 등을 비롯한 AWS Basic Support의 기능을 사용할 수 있습니다. 현재 Amazon Route 53는 AWS 프리 티어에서 제공되지 않는다

aws.amazon.com

서버 사이드 렌더링, 클라이언트 사이드 렌더링에 대해 말씀해주세요.

 

SSR과 CSR

브라우저 렌더링 먼저 브라우저 랜더링이란 브라우저가 서버로부터 요청해 받은 내용을 브라우저 화면에 표시해주는 작업을 말합니다. 브라우저가 서버로부터 HTML, CSS, JS 문서를 전달받아 브라

codesk.tistory.com

멀티 쓰레드, 멀티 프로세스에 대해 말씀해주세요.

 

[바미] 프로세스와 스레드 (Process vs Tread)

안녕하세요. 오늘은 프로세스와 스레드에 대해 이야기를 포스팅 해보려 합니다. 프로세스와 스레드에 대해 많이 들었지만 뒤돌아서면 까먹기 쉬운 CS 지식이 아닐까? 생각이 들어 저도 리마인드

codesk.tistory.com

스레드와 프로세스의 차이는 무엇인가요?

 

[바미] 프로세스와 스레드 (Process vs Tread)

안녕하세요. 오늘은 프로세스와 스레드에 대해 이야기를 포스팅 해보려 합니다. 프로세스와 스레드에 대해 많이 들었지만 뒤돌아서면 까먹기 쉬운 CS 지식이 아닐까? 생각이 들어 저도 리마인드

codesk.tistory.com

쿠키와 세션의 차이에 대해 말씀해주세요.

 

[바미] 쿠키, 세션이란?

웹의 기초중 하나인 쿠키와 세션에 대해 알아봅니다. 쿠키와 세션에 대해 알아보기전, HTTP의 특징을 알아보고 쿠키와 세션이 필요한 이유를 알아봅시다. HTTP의 특징 HTTP 통신의 특징은 Connectionles

codesk.tistory.com

클린 코드와 리팩토링의 차이점에 대해 말씀해주세요.

 

[바미] 코드 리펙토링(Code Refactoring)에 대해서

소프트웨어 공학에서 리팩토링(refactoring)은 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻합니다. 더 정확히 얘기하면 주로 가독성을 높이고 유지보수를 편하게 하는 것. 버그를 없애거나 새

codesk.tistory.com

OSI 7계층 중에서 보안쪽과 관련된 부분은 어느 쪽인가요?

물리 계층 (Physical Layer)
보안 관련된 직접적인 기능은 없지만, 물리적 접근 제어와 관련된 보안 대책이 필요합니다. 예를 들어, 서버실의 접근을 통제하거나 케이블 도청을 방지하는 등의 물리적 보안이 포함됩니다.

데이터 링크 계층 (Data Link Layer)
MAC 주소 필터링, 스위치 포트 보안, VLAN 설정 등이 데이터 링크 계층에서 이루어지는 보안 관련 작업입니다.

네트워크 계층 (Network Layer):

IPsec와 같은 프로토콜을 통해 네트워크 계층에서 보안을 강화합니다. 라우터 설정을 통한 ACL(Access Control List) 등도 이 계층에서 이루어집니다.

전송 계층 (Transport Layer):

SSL/TLS 프로토콜을 통해 전송 계층에서 데이터의 기밀성과 무결성을 보장합니다. 포트 스캐닝 방지와 같은 보안 조치도 이 계층에서 다룹니다.

세션 계층 (Session Layer):

세션 계층에서는 세션의 설정, 유지, 종료 과정에서 보안 기능을 적용할 수 있습니다. 예를 들어, 세션 토큰을 통한 인증이 있습니다.

프레젠테이션 계층 (Presentation Layer):

데이터 암호화와 복호화, 데이터 압축 등의 기능을 통해 보안을 강화합니다. 이 계층에서 암호화 프로토콜이 사용됩니다.

응용 계층 (Application Layer):

HTTPS, SFTP 등 응용 계층 프로토콜에서 보안 기능을 직접 제공합니다. 사용자 인증, 데이터 암호화, 접근 제어 등의 보안 기능이 포함됩니다. 결론적으로, 네트워크 보안은 특정 계층에만 국한되지 않고, OSI 모델의 여러 계층에서 다양한 보안 기능과 대책을 적용하여 종합적으로 이루어집니다.

 

[바미] OSI 7계층에 대해

안녕하세요. 많은 분들이 의외로 OSI 7계층에 대해 이해를 못하고 있는 것을 확인하게 되었고, 때 마침 제 블로그엔 OSI 7계층에 대해 다루는 글이 없어 (있는 줄 알았습니다.) 겸사겸사 개발 커뮤

codesk.tistory.com

 

OSI 7계층 구성 요소들을 말씀해주세요.

물리 계층, 데이터 링크 계층, 네트워크 계층, 전송계층, 세션 계층, 표현 계층, 응용 계층을 말씀드렸습니다.

 

[바미] OSI 7계층에 대해

안녕하세요. 많은 분들이 의외로 OSI 7계층에 대해 이해를 못하고 있는 것을 확인하게 되었고, 때 마침 제 블로그엔 OSI 7계층에 대해 다루는 글이 없어 (있는 줄 알았습니다.) 겸사겸사 개발 커뮤

codesk.tistory.com

 

가비지 컬렉터에 대해 말씀해주세요

 

[바미] Java - Garbage Collection

들어가기전에.. 안녕하세요. 하루 최소 600만건의 데이터를 처리해주는 서버를 Java(Maven)으로 개발하여 운영하고 있습니다. 서버 메모리가 점진적으로 0.1%씩 올라가는 것을 목격하게 되었고, 이를

codesk.tistory.com

 

Go - GC에 대해 알아봅시다.

GC란 가비지 컬렉션(Garbage Collection, GC)은 프로그래밍 언어가 자동으로 메모리 관리를 수행하는 메커니즘을 말합니다. 프로그램이 실행되는 동안 동적으로 할당된 메모리 중에서 더 이상 사용되

codesk.tistory.com

지금 Node 개발자로 지원해주셨는데 만약 다른언어 개발을 요구하면 어떻게 하실건가요?

본인의 생각을 자유롭게 표현하면 됩니다. 저의 경우 전 회사에서 너무 다양한 언어를 접하다보니 한, 두 가지언어의 깊은 전문성을 기르고 싶다 말씀드렸습니다. (실제로 경력 이직을 시도하기 위해 채용 시장을 보았을 때 한 언어를 깊게 쓴 사람을 뽑으려는 회사들이 많았습니다.)

 

백엔드 개발을 선택하신 이유가 있을까요?

자신이 왜 백엔드 개발자로 선택하셨는지 이유를 말씀해주시면 됩니다.

 

현재 다니시는 회사에서 진행하셨던 프로젝트들을 말씀해주세요.

경력의 경우 자신이 회사에서 진행했던 프로젝트들 중 자신이 맡았던 부분들을 나열하며 말씀해주시면 되고, 신입의 경우 졸업 프로젝트, 등에서 자신이 맡았던 부분들을 말씀해주시면 됩니다.

IPC가 무엇인지 말씀해주세요.

 

[바미] IPC

IPC? 프로세스 간에 통신하여 프로세스 간에 데이터를 주고받는 방식을 말합니다. 프로세스끼리 직접적으로 '대화'하는 방법은 없습니다. 왜 그렇냐면 프로세스들이 서로 공간을 쉽게 접근하면

codesk.tistory.com

IPC 중 알고 계시는 시그널 코드들에 대해 말씀해주세요.

 

[바미] IPC

IPC? 프로세스 간에 통신하여 프로세스 간에 데이터를 주고받는 방식을 말합니다. 프로세스끼리 직접적으로 '대화'하는 방법은 없습니다. 왜 그렇냐면 프로세스들이 서로 공간을 쉽게 접근하면

codesk.tistory.com

공통(비개발)

더보기

퇴사/이직 사유는 어떻게 되시시나요? 그리고 우리 회사에 왜 지원하셨는지 말씀해주세요.

자신의 퇴사, 이직 사유와 지원동기에 대해 말씀해주시면 됩니다.

퇴사/이직사유와 지원 동기가 이어지게 말씀해 주시면 좋습니다.

 

가장 자신있는 개발언어가 무엇인가요? 그 이유도 말씀해주세요.

근거에 의한 이유를 말씀해주셔야 합니다.

저의 경우 회사에서 실제 A ~ Z까지 개발하며 실제 고객들이 사용하는 운영 페이지를 만든 경험과

토이프로젝트에서 개발한 경험들을 말씀드렸습니다.

 

프론트, 백엔드 개발을 해오셨는데 그 중에서 가장 자신있는 포지션은 어디인가요?

마찬가지로 근거에 의한 이유를 말씀해주셔야 합니다. 

 

일하시면서 무엇 때문에 힘들었나요?

자신이 힘들었지만 그 일을 해결 or 극복했던 경험들을 말씀해주시면 좋습니다.

 

취미가 어떻게 되시나요?

자신의 취미를 말씀해주시면 됩니다.

 

직장 동료나 상사와의 갈등이 있었던 경험에 대해 말씀해주세요.

갈등 사례를 말씀하시되 갈등을 해결한 사례가 있는 것을 말씀해주시면 좋습니다.

 

어떤 동료와 일하고 싶으신가요?

자신이 원하는 동료를 말씀하시면 됩니다.

 

피하고 싶은 동료가 있다면 어떤 동료일까요?

마찬가지로 어떤 동료를 피하고 싶은지 말씀하시면 됩니다. 저의 경우 같이 일하고 싶은 동료의 반대되는 사람을 얘기했습니다.

 

저희는 단기간내에 빠르게 결과를 만들어내는 성격을 가진 회사입니다. 지원자님이 지금까지 하셨던 업무들과는 성격이 다른데 적응 하실 수 있으신가요?

저의 경우 전 회사가 서비스를 제공하는 회사였기 때문에 하나를 만들면 고도화 작업을 자연스레 하는 회사였고,

위의 질문을 했던 회사의 경우 에이전시 형태의 회사였기에 받은 질문이였습니다.

 

회사마다 개발하는 성향이 다르다는 것을 알아 거기에 맞출 수 있고, 서비스를 개발하다보면 단기간에 빠르게 결과를 만들어내야 하는 프로젝트가 있었기에 큰 문제가 없었다 말씀드렸습니다.

 

지원자님께서는 연봉, 사람, 거리, 커리어 중에 가장 중요도가 높은건 무엇인가요?

자신이 생각하는 중요도에 대해 말씀하시면 됩니다.

저는 성장에 대해 말씀드렸습니다. 그 때 당시 개인 성장이 퇴사, 이직사유였기 때문에 면접의 대답을 '성장'이라는 키워드 하나로 묶어 얘기하고 싶었기 때문이였습니다. 그러면서 그 성장에 필요한 커리어와 사람이 가장 중요하게 생각한다. 라고 말씀드렸습니다.

 

프로젝트마다 하나의 언어로만 하신게 아니라 다양한 언어로 개발하셨는데  다른 그 이유가 있을까요?

다양한 프로젝트를 진행했지만 다양한 언어로 개발하셨다면 듣게 되는 질문입니다. 현실은 위에서 시키니까 하는 거지만 상사의 의견과 내 의견은 어떠했는지 말씀드리고, 그 상황에서 가장 적합한 선택이 무엇이였는지 말씀드리면 됩니다. 여기서 핵심포인트는 '나는 위에서 시켜서 한게 아니라 이런 저런 의견을 냈고, 들었는데 이런 의견이 좋아서 쓴거다!' 라는 것을 말씀해주셔야 한다는 겁니다.

도움이 되셨다면 공감버튼 꾸욱! 눌러주시면 감사하겠습니다 :)

728x90
반응형