안녕하세요, 오늘은 기술면접 준비 내용과 최종프로젝트 진행상황을 정리해보았습니다.
테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.
테스트 코드(Test Code)는 소프트웨어 개발 과정에서 소프트웨어의 기능, 성능 및 안정성을 확인하기 위해 작성되는 코드입니다.
기능 검증 (Functional Testing)
- 기능 검증 테스트는 소프트웨어의 각 기능이 의도한 대로 작동하는지 확인하는 데 초점을 맞춥니다.
- 단위 테스트(Unit Testing): 함수나 메소드와 같은 가장 작은 단위의 코드를 테스트합니다. 예를 들어, 로그인 기능에서 사용자가 올바른 자격 증명을 입력했을 때 성공적으로 로그인이 되는지, 잘못된 자격 증명을 입력했을 때 적절한 오류 메시지가 표시되는지 테스트했습니다.
- 통합 테스트(Integration Testing): 여러 모듈이 함께 작동할 때 문제 없이 연동되는지 확인합니다. 예를 들어, 사용자 등록 기능이 데이터베이스와 올바르게 연동되는지 테스트했습니다.
성능 평가 (Performance Testing)
- 성능 테스트는 소프트웨어가 주어진 시간 내에 얼마나 잘 작동하는지 평가합니다.
- 로드 테스트(Load Testing): 시스템이 정해진 시간 동안 예상되는 부하를 얼마나 잘 처리하는지 테스트했습니다. 예를 들어, 웹 애플리케이션에서 다수의 사용자가 동시에 접속했을 때 응답 시간이 적절한지 확인했습니다.
- 스트레스 테스트(Stress Testing): 시스템의 한계점을 찾기 위해 정상적인 운영 범위를 넘어서 과부하를 주는 테스트를 수행했습니다. 이를 통해 병목 현상을 발견하고 성능을 최적화했습니다.
안정성 확인 (Reliability Testing)
- 안정성 테스트는 소프트웨어가 긴 시간 동안 일관되게 작동하는지 확인합니다.
- 장기 테스트(Endurance Testing): 오랜 시간 동안 소프트웨어를 실행하여 메모리 누수나 성능 저하가 발생하지 않는지 확인했습니다. 예를 들어, 서버 애플리케이션이 며칠 동안 연속적으로 작동할 때 문제가 발생하는지 모니터링했습니다.
- 회복 테스트(Recovery Testing): 시스템이 장애 상황에서 얼마나 빨리 회복되는지 테스트했습니다. 데이터베이스 연결이 끊겼을 때 애플리케이션이 어떻게 반응하고, 연결이 복구된 후 정상 작동을 재개하는지 확인했습니다.
ArrayList, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.
ArrayList는 동적 배열로, 크기가 자동으로 조정되는 배열 기반 자료구조입니다.
인덱스를 통한 빠른 요소 접근이 가능하며, 요소 추가, 수정, 삭제 시 자동으로 메모리를 관리합니다.
중간에 요소를 삽입하거나 삭제할 때 성능이 떨어질 수 있습니다.
LinkedList는 노드로 구성된 자료구조로, 각 노드는 데이터와 다음 노드를 가리키는 포인터를 포함합니다.
요소의 삽입과 삭제가 빠르지만, 인덱스로 접근할 때 처음부터 노드를 따라가야 하므로 성능이 떨어질 수 있습니다.
Java의 LinkedList는 이중 연결 리스트입니다.
최종프로젝트
다른팀 코드 감상
우리팀 코드 리스트 전달
다른팀 코드 리뷰
우리팀 리뷰 확인
튜터 질문 10선 답변
추가작업 방향 회의
CI/CD
코드최적화(Redis)
소셜로그인
동시성제어