1. 프로그램 독해
(1) 프로그램 독해
- 다른 개발자 등이 만든 프로그램 코드를 이해하여 문제 해결 목표, 개선점 등 무엇인지 알아내는 것
(2) 중요 사항
- 프로그램 입력 데이터를 파악할 수 있어야 함(자료형, 크기 등)
- 처리 과정을 짐작할 수 있어야 함(출력될 때까지 대략적인 시간 파악, 출력에 영향을 주는 코드)
- 출력 결과가 무엇인지 파악할 수 있어야 함(화면, 프린터 등 출력 장치 종류, 주 기억장치의 결과인 경우 휘발성에 대한 문제점 여부)
(3) 프로그램 구조
- 순차, 반복, 조건 분기
- 입력(I) > 처리(P) > 출력(O)
2. 프로그램 독해 방법과 좋은 코딩
- 전체 프로그램을 몇 줄 또는 함수 등의 기준을 세워 분리 후 분리된 단위로 해석함
- 의사 코드와 주석 참고
- 전문 영역의 프로그램 코드는 도메인 지식, 분야 지식이 있어야 함
- 함수 또는 클래스 이름으로 기능 추정
- 프로그램 해석의 일반화 능력이 필요
- 분야는 다양하지만 해결 문제는 비슷한 경우가 많음
- 같거나 유사한 문제를 해결하는 다양한 코드 보기
- 목표는 같지만 해결 방법은 다름
- 올바른 코드보다 좋은 코드를 지향해야 함
- 보기 좋은 구조적 코드, 주석 설명 등과 함께 작성된 코드, 강한 응집도, 약한 결합도, 좋은 알고리즘
- 비용문제가 아니라면 메모리 사용률보다 빠른 속도의 알고리즘을 지향해야 함
- 수학적 사고 방식
3. 프로그램 재사용 기법의 이해와 활용
- 상속 : 속성과 메소드(함수)를 내려 받는 것(확장하는 것)
class 부모 클래스 : ... 내용 ... class 자식 클래스 (부모 클래스) : ... 내용 ... |
- 재정의 : 부모의 메소드명을 그래도 사용하고 기능을 재정의하는 것
class 부모 클래스 : .... 내용 .... def mother_func() : ... 내용 ... |
- 다형성 : 같은 모양의 코드가 다른 동작을 하는 것
> 재정의도 다형성의 일부임
- 추상화 : 구현 내용은 없고 메소드 목록만 가지는 클래스 : 객체로 만들 수 없음
> 추상 클래스를 상속 받으면 자식 클래스는 메소드를 구현하도록 강제됨