소프트웨어 엔지니어링¶
강의 설명¶
이 소프트웨어 엔지니어링 강의는 파이썬을 사용하여 소프트웨어 엔지니어링의 원리와 실제 적용을 소개한다. 이론 강의와 실습 과제를 통해 학생들은 코딩과 테스트부터 배포와 유지 보수에 이르기까지 전체 소프트웨어 개발 수명 주기를 탐험한다. 이 강의는 개별 및 팀 프로젝트를 결합하여 학생들이 협업 소프트웨어 개발에서 실제 경험을 쌓을 수 있도록 한다.
학습 목표¶
이 강의를 마치면 학생들은 다음을 수행할 수 있다.
- 소프트웨어 엔지니어링의 원리와 실천 이해하기.
- 복잡한 소프트웨어 문제를 해결하기 위해 파이썬 프로그래밍 적용하기.
- 다양한 소프트웨어 개발 방법론 및 버전 관리 시스템 사용하기.
- 소프트웨어 테스트, 디버깅 및 최적화 수행하기.
- 팀 환경에서 협력하고 소프트웨어 프로젝트 효율적으로 관리하기.
강의 개요¶
1주차: 소프트웨어 엔지니어링 소개¶
- 소프트웨어 엔지니어링 소개
- SDLC (소프트웨어 개발 수명 주기) 소개
- 고품질 소프트웨어 구축
2주차: 소프트웨어 개발 이해하기¶
- 소프트웨어 개발 방법론
- 소프트웨어 버전
- 소프트웨어 테스트
3주차: 프로그래밍 언어¶
- 해석 및 컴파일 프로그래밍 언어
- 컴파일 및 해석 프로그래밍 언어 비교
- 쿼리 및 어셈블리 프로그래밍 언어
4주차: 코드 구성 및 논리¶
- 파이썬에서 코드 구성 방법 이해하기
- 파이썬에서 분기 및 루핑 프로그래밍 논리
- 파이썬에서의 함수와 클래스
5주차: 소프트웨어 아키텍처¶
- 소프트웨어 디자인 및 모델링
- 파이썬에서 객체 지향 분석 및 설계
- 응용 프로그램 아키텍처 접근 방식
6주차: 고급 소프트웨어 아키텍처¶
- 소프트웨어에서의 아키텍처 패턴
- 응용 프로그램 배포 환경
- 생산 배포 구성 요소
7주차: 버전 관리¶
- 버전 관리를 사용하는 이유
- 버전 관리의 개별 사용
- GitHub 코드 게시
8주차: (중간시험 주)¶
- Git을 통한 다른 사람과의 협업
- 분기, 리베이스 및 병합
- 중간고사
9주차: 테스트 및 디버깅¶
- 테스트하는 이유?
- 단위 테스트, 회귀 테스트, 부정 테스트
- 모의 객체 및 디버깅 기법
10주차: 소프트웨어 프로젝트 관리¶
- 패키지로 코드 변환
- 코드 출시
- 오픈 소스 라이선스 선택
11주차: 코드 구조 및 설계¶
- 주석, 코딩 규약, 린터
- 리팩터링 기법
- 객체 지향 및 디자인 패턴
12주차: 파이썬 고급 프로그래밍 기법¶
- 파이썬 함수형 프로그래밍
- 파이썬 메타 프로그래밍
- 덕 타이핑, 예외, 연산자 오버로딩
13주차: 파이썬 속도 프로그래밍¶
- 파이썬 최적화 및 프로파일링
- 규모 법칙
- NumPy와 Cython 소개
14주차: 파이썬 파일 형식 및 구문 분석¶
- 직렬화 및 역직렬화
- 도메인 특정 언어 및 템플릿 언어
- 이진 파일 형식 및 구문 분석기
15주차: 검토 및 프로젝트 제출¶
- 모든 주제의 종합적인 검토
- 모범 사례 논의
- 학기 프로젝트 마감
성적¶
- 참여: 10%
- 중간고사: 30%
- 학기 프로젝트: 60%
강의 노트¶
강의 노트는 온라인으로 제공