주니어 개발자에게 기대되는 것은 실력보다도 CS지식, 그리고 본인이 쓰는 언어에 대한 이해라고 한다. 취업을 준비하며 매일 매일 5개 이상의 기술면접 관련 질문을 정리하기로 했다.
[개발자 기술면접] 테스트코드, 자료구조, AWS, 정렬 알고리즘 Q.12-15
1. 테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.
2. Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.
위의 목차를 클릭하면 해당 글로 자동 이동 합니다.
1. 테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.
나의답변: 테스트코드란 작성한 코드와 API가 정상작동하는지 확인하는 코드입니다. 프로젝트에서 Jest를 사용하여 repository, service, controller 별 단위테스트 코드를 작성했습니다.
모범답안: 테스트코드는 소프트웨어의 기능을 검증하고 품질을 보증하기 위해 사용합니다. 프로젝트에서 Jest를 사용하여 단위테스트 코드를 작성했었는데, 이를 통해 코드의 정확성을 확인했고 안정성을 향상시켰습니다.
2. Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.
나의답변: 자료구조의 종류입니다. Array는 배열로 효율적인 자료 검색에 최적화 되어있고 LinkedList는 노드끼리 연결된 형태의 자료구조로써 삽입과 삭제가 효율적인 자료구조 입니다.
모범답안: Array와 LinkedList는 자료구조 입니다. 배열은 순서대로 나열한 데이터 구조이며 데이터 탐색이 O(1)의 시간복잡도를 가지고 있으므로 탐색에 최적화 되어있습니다. 배열은 주로 리스트에 사용됩니다. 반면에 연결리스트는 노드로 연결된 형태로써 동적으로 크기를 조절할 수 있으며 삽입과 삭제가 O(1)의 시간복잡도를 가지므로 삽입삭제에 최적화 되어있습니다. 동적 Stack 및 Queue자료구조를 구현할 때 사용합니다.
3. AWS S3, EC2를 사용하는 이유와 사용 경험에 대해서 답변해주세요.
나의답변: AWS S3 와 EC2 클라우드 서비스입니다. EC2는 우리가 사용할 수 있는 서버를 빌려주는 개념인데, 사용해보니 이용한만큼 비용을 지불하면 되고 서버의 크기와 성능별로 옵션이 나누어져있어서 효율적이였습니다.
모범답안: AWS S3와 EC2 는 클라우드 컴퓨팅 서비스 입니다. S3는 대용량 데이터를 안전하게 저장하고 관리하는데 사용되며 페이스북 클론코딩 당시 공부했었으나 실제로 사용하지는 못했습니다. EC2는 가상 서버를 제공하는 서비스로서 개발한 서비스를 배포하는데 사용하였고, 필요에 따라 확장 축소가 가능하여 비용절감에 도움이 되었습니다.
4. 정렬 알고리즘에 대해서 아는대로 설명해주세요.
나의답변: 정렬 알고리즘...뭐가있지
모범답안: 정렬 알고리즘(Sorting Algorithm)은 주어진 데이터를 특정한 기준에 따라 정렬하는 알고리즘입니다. 정렬 알고리즘에는 여러가지 종류가 있는데, 대표적으로 퀵정렬, 병합정렬 등이 있습니다.
퀵정렬이란 피봇을 정한 뒤 피봇의 위치를 확정해가며 정렬하는 알고리즘 입니다. 평균 시간복잡도 O(NlogN)을 가지는 빠른 알고리즘입니다. 연산을 할 때마다 비교할 대상이 반으로 줄어든다. 처음에는 전체 학생을 봤지만 그 다음엔 50점 넘은 학생, 70점 넘은 학생, 90점 넘은학생 ...->낱개가 될때까지. 그래서 결국은 왼쪽부터 오른쪽으로 정렬~
추천글
'개발 > 개발자 취업준비' 카테고리의 다른 글
[개발자 기술면접] 자기소개 및 추가 준비 (0) | 2023.10.03 |
---|---|
[개발자 기술면접] 백엔드 개발자라면 반드시 알아야할 개발지식 모음 (1) | 2023.10.02 |
[개발자 기술면접] 프로세스와 쓰레드, 멀티프로세스와 멀티 쓰레드, 쿼리 최적화, DB로직 최소화 Q.8-11 (0) | 2023.09.22 |
[개발자 기술면접] TDD에 대해서 설명해주세요. (0) | 2023.09.19 |
[개발자 기술면접] CI/CD에 대해서 설명해주세요. (0) | 2023.09.18 |