콘텐츠로 이동

1. 소프트웨어 개발

공식 영역명: 기술영역 01 소프트웨어 개발 (TOPCIT ESSENCE Ver.3)

주요 학습 주제

1.1 소프트웨어 공학 개요 · 문서 보기

  • 소프트웨어 개발 생명주기 (SDLC)
  • 개발 방법론 (폭포수, 프로토타입, 나선형, 애자일)
  • 애자일 방법론 (XP, 스크럼, 칸반)
  • 소프트웨어 재사용, 역공학

1.2 자료구조와 알고리즘 · 문서 보기

  • 시간/공간 복잡도 (Big-O)
  • 정렬 알고리즘 (버블, 선택, 삽입, 퀵, 병합, 힙)
  • 탐색 알고리즘 (이진 탐색, DFS, BFS)
  • 최단 경로 (다익스트라, 벨만-포드, 플로이드-워셜)
  • 최소 신장 트리 (MST)
  • 자료구조 (스택, 큐, 트리, 그래프, 힙, 해시) · 문서 보기

1.3 소프트웨어 설계 원리

  • 응집도 (7단계: 기능적~우연적)
  • 결합도 (6단계: 자료~내용)
  • 소프트웨어 아키텍처 스타일 (MVC, 계층, 클라이언트-서버)

1.4 객체지향 설계 · 문서 보기

  • 객체지향 개념 (캡슐화, 상속, 다형성, 추상화)
  • SOLID 원칙
  • 디자인 패턴
  • UML 다이어그램 (유스케이스, 클래스, 시퀀스, 액티비티)

1.5 소프트웨어 테스팅과 리팩토링

  • 테스트 유형 (단위, 통합, 시스템, 인수, 회귀)
  • 블랙박스 vs 화이트박스 테스트
  • 리팩토링, 코드스멜

1.6 소프트웨어 요구관리 · 형상관리 · 유지관리

  • 요구사항 관리 (SRS, 추적성)
  • 형상관리 (Git, SVN)
  • 소프트웨어 유지보수 종류
  • 오픈소스 라이선스

1.7 프로그래밍 언어와 개발환경

  • 컴파일러 vs 인터프리터
  • C, Java, Python, JavaScript 특징
  • CI/CD, 소프트웨어 빌드 및 배포

1.8 연습문제 · 문서 보기