프로그래밍 기초

프로그래밍 기초

NiceKHJ 2024. 7. 15. 14:30

 프로그램 이란 ? 

  • 프로그램 이란 컴퓨터가 어떠한 작업을 처리해 할지 알려주기 위해 작성하는 '명령어 집합' 이라 할 수 있다.
  • 프로그램은 어떤 환경에서 실행 되는가에 따라 데스크톱 애플리케이션 , 서버 애플리케이션 , 모바일 앱 등으로 구분된다.   ( 카카오톡 , 유튜브 , 인스타 , 워드 , 엑셀 , 파워포인트 , 게임 등등 )

 프로그램 개발 

  • 프로그램 개발은 고객의 요구사항을 분석하고 이러한 요구 조건을 충족시킬 수 있는 소프트웨어를 만들어 내는 과정을 말한다.
  • 프로그램을 개발하기 위해 프로그래밍 언어를 습득해야 한다.

 프로그램 개발자 

  • 문제를 해결하는 사람으로 문제 해결을 위해 도메인지식 , 프로그래밍 구현 능력 , 커뮤니케이션 능력이 요구된다.
  • 프로그램 개발자는 애플리케이션 및 시스템을 개발하기 위한 전문가로서 소프트웨어 설계,개발,테스트 및 유지보수를 수행한다.
  • 일반적으로 IT 기업 , 정부 기관 , 비영리 단체 등 다양한 분야에서 활동하며 , 스타트업 창업 및 프리랜서로서 독립적인 프로젝트를 수행하는 경우도 많다.

 프로그래밍 언어 

  • 특정 목적의 프로그램을 개발하기 위해 사용하는 언어를 프로그래밍 언어라 한다.
  • 개발자들은 프로그램 언어를 통해 컴퓨터와 소통할 수 있다.

 프로그래밍 언어의 구성 요소 

 

1) 데이터

  • 정의 : 자료를 프로그램이 처리할 수 있는 형태로 나타낸 것
  • 데이터의 분류 : 
    1. 이진 데이터 : 이진수의 나열로 이루어진 데이터. 0과 1의 나열로써 데이터를 표현함
    2. 덱스트 데이터 : 문자열을 나타내는 데이터

2) 연산

  • 정의 : 데이터 처리 방법. 연산 적용 후 새로운 데이터를 결과로 얻는다.
  • 용어 정의
    1. 연산자 : 특별한 연산을 수행하는 함수
    2. 변수 : 연산 결과를 저장하는 이름
  • 연산 표현 구조
    1. 수식 : 값을 나타내는 표현
    2. 문장 : 처리를 나타내는 표현
  • 연산의 종류
    1. 원시연산 : 언어가 기본적으로 제공하는 연산
    2. 사용자 정의 연산 : 프로그래머가 추가로 정의한 연산
    3. 라이브러리 : 사용자가 자주 사용할만한 연산을 미리 정의해둔 것
      • 라이브러리는 무조건 사용자 정의 연산인 것은 아니다. 어떤 경우는 원시연산으로 볼 수 있기도하다.

3) 명령어

  • 정의 : 특정 작업을 지시하는 단어

4) 서브프로그램

  • 정의 : 전체 프로그램을 이루는 작은 코드 블록
  • 분류
    1. 함수 : 연산 수행 결과 , 값을 반환하는 서브 프로그램
    2. 프로시저 : 결과 값을 반환하지 않는 서브 프로그램

5) 타입

  • 정의 : 데이터 집합과 연산 집합을 합친 개념. 연산의 안전성 보장을 위해 필요
  • 타입 안정성 : 함수 f의 타입이 f(x):A→B 라면, 모든 a∈A에 대해 f(a)∈B여야 함
  • 타입 분류
    1. 강타입 언어 : 타입 오류를 모두 검출하는 언어
    2. 약타입 언어 : 일부 타입 오류를 허용하는 언어
    3. 무타입 언어 : 타입 선언문도 없고 , 어떤 대상의 타입이 계속 변경될 수 있는 언어

6) 모듈

  • 정의 : 독립적인 프로그램 구성 단위
    • 서브 프로그램도 모듈의 일종
    • 만약 서브 프로그램을 여러개 모아서 어떤 라이브러리를 만들었다면 그 라이브러리도 하나의 모듈이라 볼 수 있다.
  • 특징 
    1. 내부와 외부를 구별한다.
    2. 독자적인 이름 공간을 차지한다.
      • 모듈 속에 있는 특정한 A라는 이름이 사용되었으면 그 모듈 안에서는 그 A를 다 똑같이 활용할 수 있어야한다.
      • 변수 , 함수 , 타입 등 프로그래밍 언어에서 제공하는 거의 모든 것을 포함하는 단위