-
[정보처리기사] 4과목 프로그래밍 언어 활용 : 2장. 프로그래밍 언어 활용정보처리기사 2022. 2. 22. 16:53728x90반응형
1. 데이터 타입
2. 변수 ***
3. 연산자 ***
4. 제어문 ***
5. 반복문 ***
6. 배열과 문자열 ***
7. 포인터 ***
8. 절차적 프로그래밍 언어
9. 객체지향 프로그래밍 언어
10. 스크립트 언어
11. 선언형 언어
12. 라이브러리
13. 데이터 입출력 ***
14. 예외 처리
15. 프로토타입1. 데이터 타입
데이터 타입
- 변수에 저장될 데이터의 형식을 나타내는 것으로, 변수에 값을 저장하기 전에 문자형, 정수형, 실수형 등 어떤 형식의 값을 저장할지 데이터 타입을 지정하여 변수를 선언해야 함
- 정수 타입, 부동 소수점 타입, 문자 타입, 문자열 타입, 불린 타입, 배열 타입
C/C++의 데이터 타입 크기 및 기억 범위
1) 문자
- char: 1Byte
2) 부호없는 문자형
- unsigned char: 1Byte
3) 정수
- short: 2Byte
- int: 4Byte
- long: 4Byte
- long long: 8Byte
4) 부호없는 정수형
- unsigned short: 2Byte
- unsigned int: 4Byte
- unsigned long: 4Byte
5) 실수
- float: 4Byte
- double: 8Byte
- long double: 8Byte
JAVA의 데이터 타입 크기 및 기억 범위
1) 문자
- char: 2Byte
2) 정수
- byte: 1Byte
- short: 2Byte
- int: 4Byte
- long: 8Byte
3) 실수
- float: 4Byte
- double: 8Byte
4) 논리
- boolean: 1Byte
2. 변수 ***
변수의 개요
- 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간, 변할 수 있는 값
변수명 작성 규칙
- 영문자, 숫자, _를 사용할 수 있음
- 첫 글자는 영문자나 _로 시작해야 함
- 글자수에 제한이 없음
- 공백이나 특수문자를 사용할 수 없음
- 대소문자를 구분함
- 예약어를 변수명으로 사용할 수 없음
기억 클래스
- 변수 선언 시 메모리 내에 변수의 값을 저장하기 위한 기억영역이 할당되는데, 할당되는 기억영역에 따라 사용 범위에 제한 존재, 이러한 기억영역을 결정하는 작업
1) 자동 변수: 함수나 코드의 범위를 한정하는 블록 내에 선언되는 변수, auto
2) 외부 변수: 현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조하기 위한 변수, extern
3) 정적 변수: 함수나 블록 내에서 선언하는 내부 정적 변수와 함수 외부에서 선언하는 외부 정적 변수가 있음, static
4) 레지스터 변수: 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수, register
변수의 선언
- 자료형 변수명 = 값;
3. 연산자 ***
산술 연산자
- +, -, *, /, %, ++, --
관계 연산자
- ==, !=, >, >=, <, <=
비트 연산자
- &, ^, |, ~, <<, >>
논리 연산자
- !, &&, ||
대입 연산자
- +=, -=, *=, /=, %=, <<=, >>=
조건 연산자
- 조건 ? 수식1 : 수식2;
: 조건의 수식이 참이면 수식1을, 거짓이면 수식2를 실행함
기타 연산자
- sizeof: 자료형의 크기를 표시함
- ,: 콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나 변수를 정의하며 왼쪽에서 오른쪽으로 순서대로 수행되어 순서 연산자라고도 함
- (자료형): 사용자가 자료형을 다른 자료형으로 변환할 때 사용하는 것으로 cast 연산자라고도 함
연산자 우선순위
1) 단항 연산자: !, ~, ++, --, sizeof
2) 산술 연산자: *, /, %
3) 시프트 연산자: <<, >>
4) 관계 연산자 (1) <, <=, >, >= (2) ==, !=
5) 비트 연산자 (1) & (2) ^ (3) |
6) 논리 연산자 (1) && (2) ||
7) 조건 연산자: ? :
8) 대입 연산자: +=, -=, *=, /=, %=, <<=, >>=
9) 순서 연산자: ,
* 단항 연산자, 대입 연산자의 결합 규칙: <-
4. 제어문 ***
제어문의 개념
- 프로그램의 순서를 변경할 때 사용하는 명령문
1) 단순 if문
- 조건에 따라서 실행할 문장을 달리하는 제어문, 조건이 한 개일 때 사용하는 제어문
if(조건) 실행할 문장; if(조건) 실행할 문장; else(조건) 실행할 문장;2) 다중 if문
- 조건이 여러 개 일때 사용하는 제어문
if(조건1) 실행할 문장; else if(조건2) 실행할 문장; else if(조건3) 실행할 문장; ... else 실행할 문장;
3) switch문
- 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문
switch(수식) { case 레이블1: 실행할 문장; break; case 레이블2: 실행할 문장; break; ... default: 실행할 문장; }
4) goto문
- 프로그램 실행 중 현재 위치에서 원하는 다른 문장으로 건너뛰어 수행을 계속하기 위해 사용하는 제어문
- 원하는 문장으로 쉽게 이동할 수 있지만 많이 사용하면 프로그램의 이해와 유지 보수가 어려워져 거의 사용하지 않음
goto 레이블; 레이블: 실행할 문장5. 반복문 ***
반복문의 개요
- 제어문의 한 종류로 일정한 횟수를 반복하는 명령문
1) for문
- 초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문
for(식1; 식2; 식3) 실행할 문장;2) while문
- 조건이 참인 동안 실행할 문장을 반복 수행하는 제어문
while(조건) 실행할 문장;3) do~while문
- 조건이 참인 동안 정해진 문장을 반복 수행하다가 조건이 거짓이면 반복문을 벗어나며, 실행할 문장을 무조건 한 번 실행한 다음 조건을 판단함
do 실행할 문장; while(조건);break, continue문
- switch문이나 반복문의 실행을 제어하기 위해 사용되는 예약어
- break: switch문이나 반복문 안에서 break가 나오면 블록을 벗어남
- continue: continue 이후의 문장을 실행하지 않고 제어를 반복문의 처음으로 옮김
6. 배열과 문자열 ***
배열의 개념
- 동일한 데이터 유형을 여러 개 사용해야 할 경우 이를 손쉽게 처리하기 위해 여러 개의 변수들을 조합해서 하나의 이름으로 정의해 사용하는 것
- 하나의 이름으로 여러 기억장소를 가리키기 때문에 배열에서 개별적인 요소들의 위치는 첨자를 이용하여 지정함
- C언어에서 배열 위치를 나타내는 첨자 없이 배열 이름을 사용하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같음
1차원 배열
- 변수들을 일직선상의 개념으로 조합한 배열
- 자료형 변수명[개수];
2차원 배열
- 변수들을 평면, 즉 행과 열로 조합한 배열
- 자료형 변수명[행개수][열개수];
배열의 초기화
- 배열 선언 시 초기값을 지정할 수 있음
- 배열을 선언할 때 배열의 크기를 생략하는 경우에는 반드시 초기값을 지정해야 초기값을 지정한 개수만큼의 배열이 선언됨
배열 형태의 문자열 변수
- C언어에서는 큰따옴표로 묶인 글자는 글자 수에 관계 없이 문자열로 처리됨
- C언어에는 문자열을 저장하는 자료형이 없기 때문에 배열 또는 포인터를 이용하여 처리함
- char 배열이름[크기] = "문자열";
- 배열에 문자열을 저장하면 문자열의 끝을 알리기 위한 널 문자'\0'가 문자열 끝에 자동으로 삽입됨
- 문자열을 저장할 때는 배열 선언 시 초기값으로 지정해야 하며, 이미 선언된 배열에는 문자열을 저장할 수 없음
7. 포인터 ***
포인터와 포인터 변수
- 포인터는 변수의 주소를 말하며, C언어에서는 주소를 제어할 수 있는 기능을 제공함
- C언어에서 변수의 주소를 저장할 때 사용하는 변수를 포인터 변수라고 함
- 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자 *를 붙임 (int *a;)
- 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙임 (a = &b;)
- 실행문에서 포인터 변수에 간접 연산자 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함
- 필요에 의해 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수
포인터와 배열
- 배열을 포인터 변수에 저장한 후 포인터를 이용해 배열의 요소에 접근할 수 있음
- 배열 위치를 나타내는 첨자를 생략하고 배열의 대표명만 지정하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같음
- 배열 요소에 대한 주소를 지정할 때는 일반 변수와 동일하게 & 연산자를 사용함
8. 절차적 프로그래밍 언어
절차적 프로그래밍 언어의 개요
- 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어
- 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있음
절차적 프로그래밍 언어의 장단점
- 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠름
- 같은 코드를 복사하지 않고 다른 위치에서 호출할 수 있음
- 모듈 구성이 용이하며, 구조적인 프로그래밍이 가능함
- 프로그램을 분석하기 어려움
- 유지 보수나 코드의 수정이 어려움
절차적 프로그래밍 언어의 종류
- C, ALGOL, COBOL, FORTRAN
9. 객체지향 프로그래밍 언어
객체지향 프로그래밍 언어의 개요
- 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법
- 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법으로, 한 프로그램을 다른 프로그램에서 이용할 수 있도록 함
객체지향 프로그래밍 언어의 장단점
- 상속을 통한 재사용과 시스템의 확장이 용이함
- 코드의 재활용성이 높음
- 자연적인 모델링에 의해 분석과 설계를 쉽고 효율적으로 할 수 있음
- 사용자와 개발자 사이의 이해를 쉽게 해줌
- 대형 프로그램의 작성이 용이
- 소프트웨어 개발 및 유지보수가 용이함
- 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 없음
- 구현 시 처리 시간이 지연됨
객체지향 프로그래밍 언어의 종류
- JAVA, C++, Smalltalk
객체지향 프로그래밍 언어의 구성 요소
- 객체, 클래스, 메시지
객체지향 프로그래밍 언어의 특징
- 캡슐화, 정보 은닉, 추상화, 상속성, 다형성
10. 스크립트 언어
스크립트 언어의 개요
- HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로, 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어
- 게시판 입력, 상품 검색, 회원 가입 등과 같은 데이터베이스 처리 작업을 수행하기 위해 주로 사용함
- 클라이언트의 웹 브라우저에서 해석되어 실행되는 클라이언트용 스크립트 언어와 서버에서 해석되어 실행된 후 결과만 클라이언트로 보내는 서버용 스크립트 언어가 있음
1) 서버용 스크립트 언어: ASP, JSP, PHP, 파이썬
2) 클라이언트용 스크립트 언어: 자바 스크립트
스크립트 언어의 장단점
- 컴파일 없이 바로 실행하므로 결과를 바로 확인할 수 있음
- 배우고 코딩하기 쉬움
- 개발 시간이 짧음
- 소스 코드를 쉽고 빠르게 수정할 수 있음
- 코드를 읽고 해석해야 하므로 실행 속도가 느림
- 런타임 오류가 많이 발생함
스크립트 언어의 종류
- 자바 스크립트, ASP, JSP, PHP, 파이썬
11. 선언형 언어
선언형 언어의 개요
- 명령형 언어와 반대되는 개념의 언어로, 명령형 언어가 문제를 해결하기 위한 방법을 기술한다면 선언형 언어는 프로그램이 수행해야 할 문제를 기술하는 언어
- 목표를 명시하고 알고리즘은 명시하지 않음
1) 함수형 언어: 수학적 함수를 조합하여 문제를 해결하는 언어로, 알려진 값을 함수에 적용하는 것을 기반으로 함, LISP
2) 논리형 언어: 기호 논리학에 기반을 둔 언어로, 논리 문장을 이용하여 프로그램을 표현하고 계산을 수행함, PROLOG
선언형 언어의 장단점
- 가독성이나 재사용성이 좋음
- 작동 순서를 구체적으로 작성하지 않기 때문에 오류가 적음
- 프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있음
선언형 프로그래밍 언어의 종류
- HTML, LISP, PROLOG, XML, Haskell
12. 라이브러리
라이브러리의 개념
- 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체
- 자주 사용하는 함수들의 반복적인 코드 작성을 피하기 위해 미리 만들어 놓은 것으로, 필요할 때는 언제든지 호출하여 사용할 수 있음
1) 표준 라이브러리: 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로, 여러 종류의 모듈이나 패키지 형태
2) 외부 라이브러리: 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것으로, 외부 라이브러리를 다운받아 설치한 후 사용함
C언어의 대표적인 표준 라이브러리
(1) stdio.h
(2) math.h
(3) string.h
(4) stdlib.h
(5) time.h
JAVA언어의 대표적인 표준 라이브러리
(1) java.lang
(2) java.util
(3) java.io
(4) java.net
(5) java.awt
13. 데이터 입출력 ***
C언어의 표준 입출력 함수의 개요
- 표준 입출력 함수란 키보드로 입력받아 화면으로 출력할 때 사용하는 함수로, scanf(), getchar(), gets(), printf(), putchar(), puts() 등이 있음
scanf() 함수
- C언어의 표준 입력 함수로 키보드로 입력받아 변수에 저장하는 함수
- scanf(서식 문자열, 변수의 주소)
서식 문자열
- %d: 정수형 10진수
- %u: 부호없는 정수형 10진수
- %o: 정수형 8진수
- %x: 정수형 16진수
- %c: 문자
- %s: 문자열
- %f: 소수점을 포함하는 실수
- %e: 지수형 실수
- %ld: long형 10진수
- %lo: long형 8진수
- %lx: long형 16진수
- %p: 16진수 주소
printf() 함수
- C언어의 표준 출력 함수로, 인수로 주어진 값을 화면에 출력하는 함수
- printf(서식 문자열, 변수)
주요 제어 문자
- \n: 커서를 다음줄 앞으로 이동
- \b: 커서를 왼쪽으로 한 칸 이동
- \t: 커서를 일정 간격 띄움
- \r: 커서를 현재 줄의 처음으로 이동
- \0: 널 문자를 출력
- \': 작은 따옴표를 출력
- \": 큰 따옴표를 출력
- \a: 스피커로 벨 소리를 출력
- \\: 역슬래시를 출력
- \f: 한 페이지를 넘김
기타 표준 입출력 함수
- getchar(): 키보드로 한 문자를 입력받아 변수에 저장하는 함수
- gets(): 키보드로 문자열을 입력받아 변수에 저장하는 함수로, 엔터를 누르기 전까지를 하나의 문자열로 인식하여 저장함
- putchar(): 인수로 주어진 한 문자를 화면에 출력하는 함수
- puts(): 인수로 주어진 문자열을 화면에 출력한 후 커서를 자동으로 다음 줄 앞으로 이동하는 함수
14. 예외 처리
예외 처리의 개요
- 프로그램의 정상적인 실행을 방해하는 조건이나 상태를 예외라고 하며, 이러한 예외가 발생했을 때 프로그래머가 해당 문제에 대비해 작성해 놓은 처리 루틴을 수행하도록 하는 것
- 일반적인 처리 루틴은 프로그램을 종료시키거나 로그를 남기는 것
JAVA의 예외 처리
- JAVA는 예외를 객체로 취급하며, 예외와 관련된 클래스를 java.lang 패키지에서 제공함
- try~catch문을 이용해 예외를 처리함
try { 예외가 발생할 가능성이 있는 코드; } catch(예외객체1 매개변수) { 예외객체1에 해당하는 예외 발생 시 처리 코드; } catch(예외객체2 매개변수) { 예외객체2에 해당하는 예외 발생 시 처리 코드; } catch(Exception 매개변수) { 예외객체1~n에 해당하지 않는 예외 발생 시 처리 코드; } finally { 예외의 발생 여부와 관계없이 무조건 처리되는 코드; }JAVA의 주요 예외 객체
1) ClassNotFoundException
2) NoSuchMethodException
3) FileNotFoundException
4) InterruptedIOException
5) ArithmeticException
6) IllegalArgumentException
7) NumberFormatException
8) ArrayIndexOutOfBoundsException
9) NegativeArraySizeException
10) NullPointerException
15. 프로토타입
프로토타입의 개념
- 함수 원형이라는 의미로, 컴파일러에게 사용될 함수에 대한 정보를 미리 알리는 것
- 함수가 호출되기 전에 함수가 미리 정의되는 경우에는 프로토타입을 정의하지 않아도 됨
- 프로토타입은 본문이 없다는 점을 제외하고 함수 정의와 형태가 동일함
- 프로토타입에 정의된 반환 형식은 함수 정의에 지정된 반환 형식과 반드시 일치해야 함
C언어에서의 프로토타입 선언
- int func(int i, int j);
LIST'정보처리기사' 카테고리의 다른 글
[정보처리기사] 3과목 데이터베이스 구축 : 1장. 논리 데이터베이스 설계 (0) 2022.02.24 [정보처리기사] 4과목 프로그래밍 언어 활용 : 3장. 응용 SW 기초 기술 활용 (0) 2022.02.24 [정보처리기사] 4과목 프로그래밍 언어 활용 : 1장. 서버 프로그램 구현 (0) 2022.02.22 [정보처리기사] 5과목 정보시스템 구축 관리 : 4장. 시스템 보안 구축 (0) 2022.02.21 [정보처리기사] 5과목 정보시스템 구축 관리 : 3장. 소프트웨어 개발 보안 구축 (0) 2022.02.18