공부를 하는 현 시점은 22년도 2월.
.
사용하는 교재는 <쉽게 풀어쓴 C언어 Express>
1. 프로그래밍 언어
1) 기계어
: 컴퓨터가 바로 알아들을 수 있는 언어
- 0과 1로 만들어진 언어
- 특정 CPU에 의존적
2) 어셈블리어
: 기계어의 명령을 상징적 단어인 니모닉 기호로 1:1 대응시킨 언어
3) 고급 언어
: CPU에 독립적으로 프로그램을 작성할 수 있는 언어
- 프로그래밍을 함에 있어서 프로그래머가 다루게 되는 언어
- C, C++, JAVA, PYTHON 등이 고급언어의 예
- 컴파일러: 고급 언어 문장을 기계어로 변환하는 프로그램
4) 자연어
: 인간의 언어
2. 알고리즘
: 문제를 해결하는 절차, 방법과 같은 것
1) 요리와의 비유
- 재료 : 데이터
- 재료 보관 : 자료구조
- 요리하는 과정 : 알고리즘
- 자료구조 + 알고리즘 = 프로그램
2) 알고리즘의 기술 방법
i) 자연어
: 인간이 사용하는 언어로, 명확한 정의가 필요
ii) 순서도
: 논리 순서 또는 작업 순서를 그림으로 표현하는 방법
- 수행의 시작/종료
ex) '시작', '전구가 동작하지 않는다.', '끝'
- 처리
ex) '전구를 꽂는다', '전구를 바꾼다', '전구를 수리한다'
- 판단
ex) '전구가 꽂혀있는가?', '전구가 탔는가?'
- 입출력
ex) '온도를 입력받는다', '온도를 출력한다'
- 연결자
: 흐름도가 너무 커서 한 페이지에 나타낼 수 없을 때 다른 곳으로 이동하라는 표시로 사용
iii) 의사코드
: 자연어보다 체계적이나 프로그래밍 언어보다 덜 엄격한 표현법
이산수학에 프로그래밍 과정을 기술할 때 사용
3. 프로그램 개발 과정
1) 요구사항 분석
: 어떤 목적의 프로그램을 만들 것인지 결정
2) 설계
: 알고리즘을 설계
- 순서도와 의사 코드를 도구로 사용
- 프로그래밍 언어와는 무관하게, 결과를 위한 단계에 집중
3) 구현
: 개발도구를 사용해 소스코드를 작성
- 알고리즘을 프로그래밍 언어의 문법에 맞게 기술하는 것
- 에디터 > 소스파일 > 컴파일러 > 오브젝트 파일 > 링커 > 실행파일 > 실행
- 에디터: 텍스트 에디터 및 통합개발환경(IDE) 이용
- 소스파일: 프로그래밍 언어에 맞춰 작성된 파일
- 컴파일러: 문법 확인하는 과정 (컴파일 오류=문법오류)
- 오브젝트 파일: 이진수로 구성
- 링커: 라이브러리(이미 작성된 자주 사용되는 기능들)와 연결된 프로그램
- 실행 및 디버깅: 실행시간 에러, 논리 에러, 컴파일 시간 에러의 오류들을 잡는 과정
4) 테스팅
: 여러 경우에 대해 프로그램을 실행
5) 유지보수
: 필요한 수정사항을 반영