소프트웨어 공학 CS 지식백과

소프트웨어 공학 관련 핵심 개념을 개발자 기술 면접에서 설명할 수 있도록 문서 10편으로 정리했습니다. 각 문서는 개념, 동작 원리, 시간 복잡도와 실무 선택 기준을 함께 다룹니다.

최종 업데이트 2026.09.17
  1. 애자일 (Agile)

    애자일은 2001년 애자일 소프트웨어 개발 선언에 뿌리를 둔 개발 철학으로, 계획과 문서보다 동작하는 소프트웨어와 협력을 앞세운다. 네 가지 가치와 열두 원칙, 폭포수 모델과의 차이, 흔한 오해까지 정리한다.

  2. 애자일 방법론: 스크럼과 칸반 (Scrum and Kanban)

    애자일 철학을 실천하는 대표 방법론인 스크럼과 칸반을 다룬다. 스크럼의 역할, 이벤트, 산출물과 칸반의 WIP 제한, 두 방식의 비교와 실무 적용 시 주의점을 정리한다.

  3. 클린 코드와 리팩토링 (Clean Code and Refactoring)

    클린 코드는 읽고 수정하기 쉬운 코드, 리팩토링은 동작을 바꾸지 않고 구조를 개선하는 활동이다. 코드 스멜, 대표 리팩토링 기법, 테스트 안전망을 갖춘 안전한 절차와 판단 기준을 정리한다.

  4. 클린 코드와 시큐어 코딩 (Secure Coding)

    시큐어 코딩은 구현 단계부터 보안 취약점을 막는 방법론이다. 모든 입력을 신뢰하지 않는다는 원칙, SQL 삽입과 XSS 방어, OWASP 기준 취약점 대응과 클린 코드가 보안을 돕는 이유를 정리한다.

  5. 데브옵스 (DevOps)

    데브옵스는 개발과 운영의 벽을 허물어 소프트웨어를 빠르고 안정적으로 배포하려는 문화이자 실천의 집합이다. CI/CD 파이프라인, 코드형 인프라, DORA 지표와 조직 문화까지 정리한다.

  6. 함수형 프로그래밍 (Functional Programming)

    함수형 프로그래밍은 계산을 상태 변경이 아닌 함수의 평가로 바라보는 패러다임이다. 순수 함수와 부수 효과, 불변성, 고차 함수, 명령형과의 비교, 리액트 등 실무 적용 사례를 정리한다.

  7. 마이크로서비스 아키텍처 (MSA)

    마이크로서비스 아키텍처는 애플리케이션을 비즈니스 기능 단위의 서비스로 나눠 독립적으로 개발, 배포, 확장하는 설계 방식이다. 모놀리식과의 비교, 사가 패턴과 서킷 브레이커, 도입 판단 기준을 정리한다.

  8. 객체지향 프로그래밍 (OOP)

    객체지향 프로그래밍은 데이터와 동작을 묶은 객체들의 협력으로 프로그램을 구성하는 패러다임이다. 캡슐화, 상속, 다형성, 추상화의 네 가지 특성과 SOLID 원칙, 실무 적용의 한계까지 정리한다.

  9. 테스트 주도 개발 (TDD, Test Driven Development)

    TDD는 실패하는 테스트를 먼저 작성하고 이를 통과시키는 최소한의 코드를 만든 뒤 다듬는 과정을 반복하는 개발 방법이다. 레드 그린 리팩터 사이클, 설계 효과, 장단점과 실무 함정을 정리한다.

  10. 써드 파티 (Third Party)

    써드 파티는 당사자가 아닌 제3의 주체가 만든 라이브러리, 도구, 서비스를 통칭한다. 퍼스트, 세컨드 파티와의 구분, 공급망 공격 등 위험 요소, 실무에서의 의존성 관리 방법을 정리한다.

소프트웨어 공학를 특히 많이 묻는 직군

같은 개념이라도 직군에 따라 파고드는 각도가 다릅니다. 직군별 가이드에서 어떤 질문으로 이어지는지 확인해 보세요.

다른 CS 토픽도 이어서 보기

한 주제의 원리를 익혔다면 인접한 자료구조와 운영체제, 네트워크 개념을 함께 읽어 전체 동작을 연결해 보세요.

CS 지식백과 전체 보기