소프트웨어 엔지니어 지망생을 위한 기술 면접 질문

게시 됨: 2021-10-16

기술 인터뷰는 지식과 기술 적용을 평가합니다. 문제 해결 능력을 평가하고 특정 작업 상황에 접근하는 방법을 평가하도록 설계되었습니다.

이제 막 졸업했거나 업계에 대한 노출이 제한된 신규 이민자에게는 배치 과정을 준비하는 것이 어려울 수 있습니다. 이 블로그에서는 이 여정에서 도움이 될 수 있도록 가장 많이 묻는 기술 면접 질문에 대해 설명합니다!

목차

주요 기술 면접 질문 및 답변

기술 직무에 대한 채용 프로세스는 주제 지식과 실무 능력을 테스트하기 위한 표준 질문 목록을 포함하여 잘 구성되어 있습니다. 다음은 사전에 준비하려는 소프트웨어 엔지니어, 개발자 및 기타 IT 전문가를 위한 몇 가지 Q&A입니다.

1. 컴퓨터 소프트웨어란 무엇입니까?

컴퓨터 소프트웨어는 소프트웨어 프로그램, 해당 문서 및 사용 설명서가 포함된 패키지를 말합니다. 컴퓨터가 작동하는 방법을 알려주는 일련의 지침과 데이터입니다.

2. 컴퓨터 프로그램과 소프트웨어의 주요 차이점은 무엇입니까?

컴퓨터 프로그램은 특정 프로그래밍 언어로 작성된 코드 조각입니다. 특정 작업을 수행하기 위해 실행할 수 있습니다. 사용자가 출력을 필요로 할 때마다 컴파일됩니다(예: Google Chrome, Firefox, Safari 등과 같은 웹 브라우저).

반면 소프트웨어는 프로그램, 라이브러리 및 관련 데이터의 집합입니다. 일반적으로 기본 데이터 구조, 특정 알고리즘(계산용) 및 Microsoft Windows, Linux, MS Word, Excel, VLC Media, Adobe Photoshop 등과 같은 사용자 인터페이스가 있습니다.

3. 소프트웨어의 다른 유형은 무엇입니까?

소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 나눌 수 있습니다. 전자가 시스템 리소스를 관리하는 동안 후자는 소프트웨어가 설계된 특정 기능을 수행합니다. 시스템 소프트웨어는 저수준 어셈블리 언어로 개발되는 반면 응용 소프트웨어는 C++, Java, .NET 등을 사용합니다.

현대 기술 세계에서 임베디드 소프트웨어, 웹 애플리케이션 및 인공 지능 소프트웨어와 같은 다른 소프트웨어 솔루션을 관찰할 수 있습니다.

  • 펌웨어라고도 하는 임베디드 소프트웨어는 기계, 장치 또는 특수 하드웨어를 제어합니다. 예를 들어 자동차, 디지털 시계, 로봇 및 심장 박동기의 전자 제품을 위해 설계된 소프트웨어입니다.
  • 웹 응용 프로그램은 활성 네트워크 연결이 있는 웹 브라우저에서 실행됩니다. 이메일, 인스턴트 메시징 서비스 및 전자 상거래 플랫폼이 몇 가지 인기 있는 예입니다.
  • 인공 지능 소프트웨어는 추론, 데이터 패턴 학습, 통찰력 분석의 인간 행동을 모방합니다. 이러한 솔루션에는 기계 학습, 음성 인식, 이미지 처리 등과 같은 기능이 탑재되어 있습니다. Google Assistant, Cortana, Alexa, IBM Watson, Salesforce Einstein, Infosys Nia가 대표적인 표본입니다.

4. 소프트웨어 개발 프로세스를 설명합니다.

소프트웨어 개발 프로세스에는 다음 단계가 포함됩니다.

  • 계획: 프로젝트 범위 정의, 비용 추정, 일정 및 요구 사항 설정.
  • 요구 사항: 주제 전문가를 모아 소프트웨어 요구 사항을 나열하고 사양을 문서화합니다.
  • 아키텍처: 소프트웨어 요소를 구성하고 요소 간의 관계를 설정하고 요소와 관계의 속성과 진화를 결정합니다.
  • 구현: 문서화된 패턴 및 아키텍처를 사용하여 구성 요소를 설계하고 기능 소프트웨어용 코드를 생성합니다(프로토타이핑 단계).
  • 테스트: 소프트웨어의 코드 품질, 기능, 통합, 성능 및 보안을 평가합니다.
  • 배포: 소프트웨어를 프로덕션 환경에 릴리스합니다.
  • 문서: 소프트웨어 작동 방식 및 사용 방법 설명.
  • 교육: 조직의 사람들이 소프트웨어 사용 및 역할과 관련된 방식을 이해하도록 지원합니다.
  • 유지 관리: 변화하는 고객 요구 사항에 따라 소프트웨어를 수정하고 업데이트합니다.

5. 일부 SDLC 모델을 나열할 수 있습니까?

SDLC는 소프트웨어 개발 수명 주기를 나타냅니다. 현재 Waterfall, V-Shaped, Big-Bag, Spiral, Iterative 및 Agile을 포함한 여러 SDLC 모델을 사용할 수 있습니다.

6. 검증 및 검증이란 무엇을 의미합니까?

검증과 검증 모두 특정 목적을 위해 수행되는 일련의 활동을 포함합니다. 검증은 소프트웨어가 특정 기능을 구현하는지 확인하는 것입니다. 검증에는 소프트웨어가 클라이언트의 요구 사항을 충족하는지 확인하는 작업이 포함됩니다.

7. 코딩 시 안전과 속도를 어떻게 보장합니까?

가장 좋은 방법은 보안 테스트를 소프트웨어 개발 프로세스에 통합하고, 요구 사항을 작성하고, 설계 단계에서 아키텍처 위험 분석을 수행하는 것입니다. 소프트웨어가 느린 경우 시간 복잡성의 원인을 식별해야 합니다. 지속적인 통합, 자동화된 테스트 및 애자일 방법론은 SDLC의 속도를 높이는 몇 가지 방법입니다.

8. 소프트웨어 요구 사항은 무엇입니까? 어떻게 우선순위를 지정하고 추적할 수 있습니까?

소프트웨어 요구 사항은 제안된 또는 대상 소프트웨어 시스템의 기능과 특징을 설명합니다.

요구 사항의 우선 순위를 지정하려면 먼저 데이터 구조를 평가한 다음 이를 지원하는 코드 구조를 설계해야 합니다. 다음 단계는 SRS(소프트웨어 요구 사항 사양) 문서를 만드는 것입니다.

요구 사항, 유형, 종속성, 우선 순위 등에 대한 입력이 있는 표준 Excel 시트는 추적에 가장 적합합니다.

9. 프로그래밍 알고리즘을 작성할 때 어떤 언어를 사용하시겠습니까?

소프트웨어 개발자는 자신의 기술과 필요에 따라 프로그래밍 언어를 선택할 수 있습니다. 그러나 본질적으로 동적이기 때문에 C 및 C++와 같은 고급 언어를 사용하는 것을 선호해야 합니다.

10. 프로그래밍의 다른 유형은 무엇입니까?

함수형 프로그래밍, 인터페이스 프로그래밍, 객체 지향 프로그래밍 및 측면 지향 프로그래밍은 잘 정립된 유형 중 하나입니다.

11. 소프트웨어 범위란 무엇입니까?

소프트웨어 범위는 소프트웨어 제품을 개발하고 제공하는 데 필요한 모든 활동을 설계합니다. 다음과 같은 문제를 해결합니다.

  • 소프트웨어는 무엇을 할 것인가?
  • 프로젝트의 일부가 아닌 것은 무엇입니까?
  • 적절하게 마무리하기 위한 예상 시간과 비용은 얼마입니까?

12. CASE 도구란 무엇입니까?

CASE는 Computer Aided Software Engineering의 약어입니다. SDLC 활동을 지원하고 강화하기 위해 자동화된 응용 프로그램을 사용하는 것을 말합니다.

13. 소프트웨어 프로젝트 관리자는 어떤 일을 하나요?

소프트웨어 프로젝트 관리자는 소프트웨어 개발 프로세스 관리에 관심이 있습니다. 그들은 프로젝트 계획, 커뮤니케이션 및 진행 상황 모니터링을 담당합니다. 그들은 자원을 조직하고, 비용과 일정을 확인하고, 위험을 평가하고, 고객의 요구에 따라 고품질 소프트웨어 제품을 제공합니다.

14. 프로젝트 관리 도구의 몇 가지 예를 언급할 수 있습니까?

프로젝트 관리 도구의 선택은 소프트웨어 프로젝트의 특성에 따라 다릅니다. Gantt 차트, 리소스 히스토그램, 상태 보고서 및 Pert 차트는 널리 사용되는 옵션 중 일부입니다.

15. 프로젝트 실행을 어떻게 측정합니까?

소프트웨어 프로젝트 관리자는 상태 보고서, 이정표 체크리스트 및 활동 모니터링 시트를 사용하여 진행 상황을 추적하고 개발이 제대로 진행되고 있는지 확인합니다. 또한 초기에 위험 신호를 식별하고 구현이 진행됨에 따라 조정하는 데 도움이 됩니다.

16. 소프트웨어 제품의 크기는 어떻게 알 수 있습니까?

(i) 전달된 코드와 (ii) 기능 포인트의 행을 계산하면 소프트웨어 제품의 크기를 알 수 있습니다.

17. 사용 가능한 가장 표준적인 소프트웨어 추정 기술을 나열하십시오.

소프트웨어 평가는 소프트웨어 제품을 개발하고 유지 관리하는 데 필요한 실제적인 노력의 근사치로 구성됩니다.

분해 기술은 프로젝트를 크기, 기능, 활동, 비용 등으로 세분화하여 '분할 정복' 접근 방식을 따릅니다.

경험적 기술은 이전 프로젝트의 데이터를 가져와 현재 소프트웨어 프로젝트에 대한 추정치를 추측하고 가정합니다.

18. 소프트웨어 분석 및 설계에 사용할 수 있는 도구는 무엇입니까?

소프트웨어 분석 및 설계 단계에서는 요구 사항 사양을 실제 코드로 변환합니다. 이 과정에서 사용되는 몇 가지 인기 있는 도구는 다음과 같습니다.

  • 데이터 흐름도
  • 구조화된 차트
  • 계층적 입력 프로세스 출력 다이어그램
  • 데이터 사전
  • 엔터티 관계 다이어그램
  • 의사결정 테이블

19. 소프트웨어 구성 관리는 무엇을 수반합니까?

구성 관리에는 변경 사항에 대한 탭을 유지하고 이를 제어하는 ​​작업이 포함됩니다. 조직의 규칙 및 규정에 따라 제품이 생성되도록 함으로써 소프트웨어 시스템에 일관성과 신뢰성을 제공합니다.

20. 프로젝트의 타당성을 어떻게 알 수 있습니까?

경제적, 기술적, 운영적 실행 가능성에 대한 타당성 조사는 대안을 좁히고 프로젝트 아이디어를 검증하는 데 필수적입니다.

  • 경제성은 프로젝트 이익에 대한 교육, 추가 도구 등의 비용을 측정합니다.
  • 기술적 타당성은 프로젝트에 사용할 수 있는 기계, 운영 체제 및 소프트웨어 개발 도구의 적합성을 포함합니다.
  • 운영 타당성은 조직이 비용 및 기타 제약 조건 내에서 프로젝트에서 요구하는 변경 사항에 적응할지 여부를 평가합니다.

21. 품질 보증과 품질 관리의 차이점은 무엇입니까?

품질 보증은 적절한 소프트웨어 개발 프로세스의 채택을 확인하는 기술 직원으로 구성됩니다. 품질 관리는 소프트웨어 제품의 품질을 유지하는 유지 관리 활동을 다룹니다.

22. 모듈화와 응집력을 설명하십시오.

모듈화는 소프트웨어 시스템을 독립적으로 작업을 수행할 수 있는 개별 모듈로 나누는 것을 말합니다. 응집력은 모듈 요소 간의 기능적 관계를 측정한 것입니다. 모든 요소를 ​​단일 작업으로 안내하는 것은 통합 접착제입니다.

23. EXE와 DLL의 주요 차이점을 나열하십시오.

EXE는 실행 가능한 프로그램의 약자이고 DLL은 프로그램을 통해 로드하고 실행할 수 있는 파일입니다.

24. 스택과 큐는 어떻게 다른가요?

스택과 큐는 모두 소프트웨어 엔지니어링에서 데이터 구조 또는 개체의 컨테이너입니다. 그들은 주로 삽입 및 제거 원칙이 다릅니다.

  • 스택은 후입선출입니다.
  • 대기열은 선입 선출입니다.

25. 이 문제를 해결하세요: 어두운 방에 두 종류의 장갑 스무 켤레가 있습니다. 일치하는 쌍을 얻기 위해 필요한 최소 장갑 수는 얼마입니까?

전체의 50%를 차지하더라도 하나는 단일 유형의 장갑으로 끝날 수 있습니다. 양말을 하나 더 가져 가면 다른 유형의 장갑을 하나 이상 얻을 수 있습니다. 따라서 암실에서 최소 11개의 장갑을 가져와서 일치하는 쌍을 얻는 것이 가장 좋습니다.

이를 통해 세부 사항에 대한 관심을 보여주고 강력한 인상을 남기는 데 도움이 되는 25가지 주요 기술 인터뷰 질문과 답변을 다루었습니다.

더 자세한 안내가 필요하시면 산업별 인증 프로그램을 확인하실 수 있습니다. upGrad의 소프트웨어 엔지니어링 직업 연계 PG 자격증은 처음 구직자를 위해 고안되었습니다. 포트폴리오에 대한 실습 프로젝트를 구현하고, 전문가와 상호 작용하고, 강력한 동료 네트워크를 구축할 수 있습니다. 배치 준비 및 직업 지원 세션은 소프트웨어 영역에서 0-2년의 경험을 가진 최종 학년 학생 및 초기 직업 개인에게 적합합니다.

기술 면접 질문을 지배하는 주제는 무엇입니까?

고용 관리자는 개념적 명확성과 문제 해결 기술을 테스트하는 방법으로 기술 인터뷰를 사용합니다. 소프트웨어 엔지니어 및 풀스택 개발자와 같은 직책의 경우 인터뷰 라운드에는 소프트웨어 개발 프로세스, 소프트웨어 요구 사항, 설계 도구, CASE 도구, SDLC 모델, 프로젝트 관리 기본 사항 등에 대한 질문이 포함됩니다.

소프트웨어 엔지니어링 작업에 가장 필요한 기술은 무엇입니까?

소프트웨어 엔지니어링 작업에는 컴퓨터 프로그래밍, 코딩, 테스트 및 디버깅에 능숙한 전문가가 필요합니다. 이러한 어려운 기술 외에도 고용주는 우수한 문제 해결, 의사 소통 및 멀티 태스킹 능력을 갖춘 후보자를 선호합니다. 따라서 지망자로서 귀하의 프로필은 기술 적성과 효과적인 솔루션 개발에 대한 비판적 사고 및 창의성을 보여주어야 합니다.

기술 면접을 준비하는 데 온라인 과정이 어떻게 도움이 됩니까?

온라인 과정은 전문 분야에서 관련 기술을 구축할 수 있는 훌륭한 방법입니다. 이를 통해 산업 요구 사항에 맞게 유연하게 학습할 수 있습니다. 예를 들어, upGrad의 소프트웨어 엔지니어링 PG 인증은 학생들이 전문가로부터 배우고, 프로젝트를 수행하고, 다른 실무자와 네트워크를 형성하고, 현대 직업 시장에 진입하기 위한 진로 지도를 받을 수 있도록 하는 직업 연계 프로그램입니다.