27. 테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.
- 작성 이유:
- 개발 단계 초기에서 문제를 발견할 수 있음
- 코드를 리팩토링하거나 라이브러리 업그레이드 시 기존 기능이 잘 작동하는지 확인 가능
- 기능에 대한 불확실성 감소
- 단위테스와 통합테스트 등이 있습니다.
- 황용 경험
- Mockito 프레임워크를 이용하여 가짜 객체인 Mock을 만들어 단위 테스트를 진행한 경험이 있습니다.
- Spring 웹 어플리케이션 개발시 여러 객체들 간의 의존성이 존재하기 때문에, 이를 해결하기 위해 가짜 객체(Mock)을 주입시켰습니다.
- AssertThat 메서드를 이용하여 기대하는 값이 실제 출력 값과 같은지 비교하는 테스트를 진행했다
28. Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.
- Array는 index로 빠르게 값을 찾는 것이 가능합니다. 하지만 처음 선언할 때 데이터 크기와 타입을 지정하기 때문에 중간에 테이블을 삽입하거나 삭제하는데 매우 비효율 적이니다.
- List는 array처럼 크기를 정해주지 않아도 됩니다. 크기가 정해져 있지 않아, 데이터를 추가하거나 삭제할 수 있으며, index로 검색도 빠릅니다. 하지만 중간에 테이블을 추가 및 삭제할 때 오래 걸린다는 단점이 있습니다.
- LinkedList는 단일, 다중 등 여러가지가 존재합니다. 한 노드에 연결될 노드의 포인터 위치를 가리키는 방식으로 되어 있습니다. 이런 방식을 활용해서, 데이터의 중간에 삽입 및 삭제가 빠르게 가능합니다. 하지만 index가 없어, n번째 값을 찾을 경우, 처음부터 순차적으로 검색해야 하기 때문에 시간이 오래걸린다는 특징이 있습니다.
- 출처: https://gyoogle.dev/blog/computer-science/data-structure/Array%20vs%20ArrayList%20vs%20LinkedList.html
'기술면접' 카테고리의 다른 글
[TIL] 240325 (0) | 2024.03.25 |
---|---|
[기술 면접] 240202 AWS S3, EC2, 정렬 알고리즘 (2) | 2024.02.02 |
[기술면접] 230123 쿼리 최적화, DB 로직 최소화 (0) | 2024.01.23 |
[기술면접] 240117 세션기반 인증과 토큰기반 인증, JWT, Refresh, Access Token (0) | 2024.01.17 |
[기술면접] 240116 GET, POST의 개념과 데이터 흐름, OSI 7계층 (0) | 2024.01.16 |