본문으로 바로가기

변수

 - 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로 변할 수 있는 값을 의미


변수명 작성 규칙

 - 영문자, 숫자, _(under bar)를 사용할 수 있음

 - 첫 글자는 영문자나 _(under bar)로 시작해야 하며, 숫자는 올 수 없음

 - 글자 수에 제한이 없음

 - 공백이나 *, +, -, / 등의 특수문자를 사용할 수 없음

 - 대소문자를 구분

 - 예약어를 변수명으로 사용할 수 없음

 - 변수 선언 시 문장 끝에 반드시 세미콜론(;)을 붙어야 함

구분 예약어
제어문 반복 do, for, while
선택 case, default, else, if, switch
분기 break, continue, goto, return
자료형 char, double, enum, float, int, long, short, signed, struct, typedef, union, unsigned, void
기억 클래스 auto, extern, register, static
기타 const, sizeof, volatile

연산자

 - 연산을 수행하는 기호를 의미


산술 연산자

 - 가, 감, 승, 제 등의 산술 계산에 사용되는 연산자를 말함

연산자 의미 비고
+ 덧셈  
- 뺄셈  
* 곱셈  
/ 나눗셈  
% 나머지  
++ 증가 연산자 - 전치 : 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감 시킨 후 변수를 연산에 사용
- 후치 : 변수 뒤에 증감 연산자가 오는 형태로 먼저 변수를 연산에 사용한 후 변수의 값을 증감 시킴
-- 감소 연산자

관계 연산자

 - 두 수의 관계를 비교하여 참 또는 거짓을 결과로 얻는 연산자

연산자 의미
== 같다
!= 같지 않다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

비트 연산자

 - 비트별(0,1)로 연산하여 결과를 얻는 연산자

연산자 의미 비고
& and 모든 비트가 1일 때만 1
^ xor 모든 비트가 같으면 0, 하나라도 다르면 1
| or 모든 비트 중 한 비트라도 1이면 1
~ not 각 비트의 부정, 0이면 1, 1이면 0
<< 왼쪽 시프트 비트를 왼쪽으로 이동
>> 오른쪽 시프트 비트를 오른쪽으로 이동

논리 연산자

 - 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자

연산자 의미 비고
! not 부정
&& and 모두 참이면 참
|| or 하나라도 참이면 참

대입 연산자

 - 연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입 연산자를 제공함

연산자 의미
+= a += 1 a = a + 1
-= a -= 1 a = a - 1
*= a *= 1 a = a * 1
/= a /= 1 a = a / 1
%= a %= 1 a = % 1
<<= a <<= 1 a = a << 1
>>= a >>= 1 a = a >> 1

배열

 - 동일한 데이터 유형을 여러 개 사용해야 할 경우 이를 손쉽게 처리하기 위해 여러 개의 변수들을 조합해서 하나의 이름으로 정의해 사용하는 것을 말함

 - 배열은 하나의 이름으로 여러 기억장소를 가리키기 때문에 배열에서 개별적인 요소들의 위치는 첨자를 이용하여 지정

 - 배열은 변수명 뒤에 대괄호 []를 붙이고 그 안에 사용할 개수를 지정

 - C언어에서 배열의 위치는 0부터 시작

 - 배열은 행 우선으로 데이터가 기억장소에 할당

 - C언어에서 배열 위치를 나타내는 첨자 없이 배열 이름을 사용하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같음


포인터와 포인터 변수

 - 포인터는 변수의 주소를 말하며 C언어에서는 주소를 제어할 수 있는 기능을 제공

 - C언어에서 변수의 주소를 저장할 때 사용하는 변수를 포인터 변수라 함

 - 포인터 변수는 필요에 의해 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수

 - 포인터 변수의 용도

    - 연결된 자료 구조를 구성하기 위해 사용함

    - 동적으로 할당된 자료 구조를 지정하기 위해 사용

    - 배열을 인수로 전달하기 위해 사용

    - 문자열을 표현하기 위해 사용

    - 커다란 배열에서 요소를 효율적으로 저장하기 위해 사용

    - 메모리에 직접 접근하기 위해 사용


절자척 프로그래밍 언어

 - 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어

 - 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있음

 - 자연어에 가까운 단어와 문장으로 구성


절차적 프로그래밍 언어의 장·단점

 - 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름

 - 같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용할 수 있음

 - 모듈 구성이 용이하며 구조적인 프로그래밍이 가능

 - 프로그램을 분석하기 어려움

 - 유지 보수나 코드의 수정이 어려움


절차적 프로그래밍 언어의 종류

 - C

 - ALGOL

 - COBOL

 - FORTRAN


객체지향 프로그래밍 언어

 - 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법


객체지향 프로그래밍 언어의 장·단점

 - 상속을 통한 재사용과 시스템 확장이 용이

 - 코드의 재활용성이 높음

 - 자연적인 모델리에 의해 분석과 설계를 쉽고 효율적으로 할 수 있ㅇ므

 - 사용자와 개발자 사이의 이해를 쉽게 해줌

 - 대형 프로그램의 작성이 용이

 - 소프트웨어 개발 및 유지보수가 용이

 - 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 없음

 - 구현 시 처리 시간이 지연

 

 


객체지향 프로그래밍 언어의 구성 요소

 - 객체

 - 클래스

 - 메시지

※ 참고 자료


객체지향 프로그래밍 언어의 특징

 - 캡슐화

 - 정보 은닉

 - 추상화

 - 상속성

 - 다형성

※ 참고 자료


객체지향 프로그래밍 언어의 종류

 - JAVA

 - C++

 - Smalltalk


스크립트 언어

 - HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어

 - 서버용 스크립트 언어 : ASP, JSP, PHP, 파이썬

 - 클라이언트용 스크립트 언어 : 자바 스크립트(JAVA Script)


스크립트 언어의 장·단점

 - 컴파일 없이 바로 실행하므로 결과를 바로 확인할 수 있음

 - 배우고 코딩하기 쉬움

 - 개발 시간이 짧음

 - 소스 코드를 쉽고 빠르게 수정할 수 있음

 - 코드를 읽고 해석해야 하므로 실행 속도가 느림

 - 런타임 오류가 많이 발생


스크립트 언어의 종류

 - 자바 스크립트

 - ASP

 - JSP

 - PHP

 - 파이썬


선언형 언어

 - 명령형 언어와 반대되는 개념의 언어로 명령형 언어가 문제를 해결하기 위한 방법을 기술한다면 선언형 언어는 프로그램이 수행해야 하는 문제를 기술하는 언어


선언형 언어의 장·단점

 - 가독성이나 재사용성이 좋음

 - 작동 순서를 구체적으로 작성하지 않기 때문에 오류가 적음

 - 프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있음


선언형 프로그래밍 언어 종류

 - HTML

 - LISP

 - PROLOG

 - XML

 - Haskell


 

라이브러리

 - 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체

 - 자주 사용하는 함수들의 반복적인 코드 작성을 피하기 위해 미리 만들어 놓은 것으로 필요할 때는 언제든지 호출하여 사용

 - 표준 라이브러리 : 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로 여러 종류의 모듈이나 패키지 형태

 - 외부 라이브러리 : 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것으로 외부 라이브러리를 다운받아 설치한 후 사용