프로그래밍 개요
프로그래밍 의미
•
학문적 정의 : 특정 결과를 달성하기 위해 실행 가능한 컴퓨터 프로그램을 설계 및 구축하는 프로세스
•
간단한 정의
◦
프로그램을 만드는 행위자체
◦
컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션
◦
0과 1 밖에 알지 못하는 기계가 실행할 수 있는 정도로 정확하고 상세하게 요구사항을 설명하는 작업
프로그래밍 vs 코딩
•
코딩 : 알고리즘을 선정한 프로그래밍 언어의 명령으로 변환하여 작성하는 것
•
프로그래밍 : 프로그램 작성 방법의 결정, 코딩, 에러수정 따위의 작업
프로그래밍이 코딩의 상위 개념이다
프로그래밍 시 고려사항
•
기능 적합성 : 요구되는 기능을 만족 시키는 능력
•
성능 효율성 : 적절한 자원의 사용 및 적정한 반응시간 정도
•
호환성 : 다른 시스템과 상호 연동 능력
•
사용성 : 사용자가 이해하고 배우기 쉬운 정도
•
신뢰성 : 규정된 호나경에서 결함 없이 의도된 기능 및 작업을 수행하는 능력
•
유지보수성 : 소프트웨어의 수정 및 변경의 용이성
•
보안성 : 정보 및 데이터를 보호하는 능력
•
이식성 : 지원하는 다양한 환경에서 운영될 수 있는 능력
소스 코드 가독성
•
프로그램 개발자가 목적, 제어 흐름 및 소스 코드 작동을 쉽게 이해할 수 있도록 구성
알고리즘의 복잡성
•
실행 시간, 메모리 소비 등의 리소스 사용에 영향을 미치며, 복잡성이 낮을수록 효율적인 알고리즘
•
점근 표기법
◦
최상 : 오메가 표기법
◦
평균 : 세타 표기법
◦
최악 : 빅오 표기법
프로그래밍 방법론
•
소프트웨어 개발 생명 주기 (SDLC : Software Development Life Cycle)
◦
각 단계에서 작업 방법과 문서 작성 형식 등을 규정
◦
요구 명세화 - 분석 - 설계 - 개발 - 시험 - 유지보수
•
개발 방법론 종류
◦
구조적 방법론, 객체지향 방법론, CBD 방법론