프로그램 이란 ?
- 프로그램 이란 컴퓨터가 어떠한 작업을 처리해 할지 알려주기 위해 작성하는 '명령어 집합' 이라 할 수 있다.
- 프로그램은 어떤 환경에서 실행 되는가에 따라 데스크톱 애플리케이션 , 서버 애플리케이션 , 모바일 앱 등으로 구분된다. ( 카카오톡 , 유튜브 , 인스타 , 워드 , 엑셀 , 파워포인트 , 게임 등등 )
프로그램 개발
- 프로그램 개발은 고객의 요구사항을 분석하고 이러한 요구 조건을 충족시킬 수 있는 소프트웨어를 만들어 내는 과정을 말한다.
- 프로그램을 개발하기 위해 프로그래밍 언어를 습득해야 한다.
프로그램 개발자
- 문제를 해결하는 사람으로 문제 해결을 위해 도메인지식 , 프로그래밍 구현 능력 , 커뮤니케이션 능력이 요구된다.
- 프로그램 개발자는 애플리케이션 및 시스템을 개발하기 위한 전문가로서 소프트웨어 설계,개발,테스트 및 유지보수를 수행한다.
- 일반적으로 IT 기업 , 정부 기관 , 비영리 단체 등 다양한 분야에서 활동하며 , 스타트업 창업 및 프리랜서로서 독립적인 프로젝트를 수행하는 경우도 많다.
프로그래밍 언어
- 특정 목적의 프로그램을 개발하기 위해 사용하는 언어를 프로그래밍 언어라 한다.
- 개발자들은 프로그램 언어를 통해 컴퓨터와 소통할 수 있다.
프로그래밍 언어의 구성 요소
1) 데이터
- 정의 : 자료를 프로그램이 처리할 수 있는 형태로 나타낸 것
- 데이터의 분류 :
- 이진 데이터 : 이진수의 나열로 이루어진 데이터. 0과 1의 나열로써 데이터를 표현함
- 덱스트 데이터 : 문자열을 나타내는 데이터
2) 연산
- 정의 : 데이터 처리 방법. 연산 적용 후 새로운 데이터를 결과로 얻는다.
- 용어 정의
- 연산자 : 특별한 연산을 수행하는 함수
- 변수 : 연산 결과를 저장하는 이름
- 연산 표현 구조
- 수식 : 값을 나타내는 표현
- 문장 : 처리를 나타내는 표현
- 연산의 종류
- 원시연산 : 언어가 기본적으로 제공하는 연산
- 사용자 정의 연산 : 프로그래머가 추가로 정의한 연산
- 라이브러리 : 사용자가 자주 사용할만한 연산을 미리 정의해둔 것
- 라이브러리는 무조건 사용자 정의 연산인 것은 아니다. 어떤 경우는 원시연산으로 볼 수 있기도하다.
3) 명령어
- 정의 : 특정 작업을 지시하는 단어
4) 서브프로그램
- 정의 : 전체 프로그램을 이루는 작은 코드 블록
- 분류
- 함수 : 연산 수행 결과 , 값을 반환하는 서브 프로그램
- 프로시저 : 결과 값을 반환하지 않는 서브 프로그램
5) 타입
- 정의 : 데이터 집합과 연산 집합을 합친 개념. 연산의 안전성 보장을 위해 필요
- 타입 안정성 : 함수 f의 타입이 f(x):A→B 라면, 모든 a∈A에 대해 f(a)∈B여야 함
- 타입 분류
- 강타입 언어 : 타입 오류를 모두 검출하는 언어
- 약타입 언어 : 일부 타입 오류를 허용하는 언어
- 무타입 언어 : 타입 선언문도 없고 , 어떤 대상의 타입이 계속 변경될 수 있는 언어
6) 모듈
- 정의 : 독립적인 프로그램 구성 단위
- 서브 프로그램도 모듈의 일종
- 만약 서브 프로그램을 여러개 모아서 어떤 라이브러리를 만들었다면 그 라이브러리도 하나의 모듈이라 볼 수 있다.
- 특징
- 내부와 외부를 구별한다.
- 독자적인 이름 공간을 차지한다.
- 모듈 속에 있는 특정한 A라는 이름이 사용되었으면 그 모듈 안에서는 그 A를 다 똑같이 활용할 수 있어야한다.
- 변수 , 함수 , 타입 등 프로그래밍 언어에서 제공하는 거의 모든 것을 포함하는 단위