실기 10장 프로그래밍 언어 활용
Updated:
데이터 입•출력의 개요
데이터 입•출력은 키보드로부터 데이터를 입력받아 화면이나 파일로 출력하는 것을 의미한다.
- 헝가리안 표기법: 변수 작성 시 변수명에 자료형을 암시하는 문자를 덧붙여 작성하는 표기법이다.
- C언어의 입•출력 함수: scanf, printf
- JAVA의 입•출력 함수: Scanner, nextInt, print, printf, println
제어문
제어문은 서술된 순서에 따라 무조건 위에서 아래로 실행되는 프로그램의 순서를 변경할 때 사용하는 명령문이다.
- if, switch, for, while
포인터
C언어에서는 변수의 주소를 포인터라고 하고, 포인터를 저장할 수 있는 변수를 포인터 변수라고 한다. 변수의 주소인 포인터는 출력할 수도 있고 포인터가 가리키는 곳에 값을 저장하거나 읽어 오는 등 다양한 조작이 가능하다. 이런 기능 때문에 C언어는 주소를 제어할 수 있는 기능이 있다고 말한다.
구조체
배열이 자료의 형과 크기가 동일한 변수의 모임이라면 구조체는 자료의 종류가 다른 변수의 모임이라고 할 수 있다.
구조체를 정의한다는 것은 int나 char같은 자료형을 하나 만드는 것을 말한다. 예를 들면 다음과 같다.
struct sawon {
char name[10];
char jikwi[10];
int pay;
};
구조체 변수를 사용하려면 먼저 정의한 구조체에 대한 변수를 선언해야 한다. 예를 들면 다음과 같다.
struct sawon ansan, *seoul
구조체 맴버는 모든 요소들이 개별적인 이름을 가지고 있으므로 구조체 맴버를 지정할 때는 구조제 변수와 함께 멤버 이름을 지정해야 한다.
- ’.’의 의한 지정: 구조체 일반 변수를 이용해 구조체 멤버를 지정할 때
- ’->’에 의한 지정: 구조체 포인터 변수를 이용해 구조체 멤버를 지정할 때
- 구조체의 포인터 변수는 일반 포인터 변수처럼 *를 사용하여 멤버를 지정할 수도 있다.
ansam.name = "김한국";
seoul -> name = "홍길동";
(*seoul).name = "홍길동";
사용자 정의 함수
사용자 정의 함수는 사용자가 직접 만들어 사용하는 함수이다.
Java의 클래스
클래스는 객체 생성을 위한 필드(속성)와 메소드(함수)를 정의하는 실계도로, Java는 아무리 작은 프로그램이라도 클래스를 사용해야 한다.
클래스를 만들어 사용하는 순서는 다음과 같다.
- 클래스 이름을 정하고 객체 생성을 위한 필드와 메소드를 정의한다. 이때 사용하는 명령이 class이다.
- 객체를 생성한다. 이때 사용하는 명령이 new이다.
- 생성된 객체들을 이용하여 프로그램을 코딩하면 된다.
Java의 활용
추상 메소드는 자식 클래스에서 재정의해야만 사용할 수 있는 메소드를 의미하며, 이런 메소드를 하나 이상 포함하는 클래스를 추상 클래스라고 한다. 그리고 이렇게 재정의한 메소드를 부모 클래스의 객체 변수를 통해 사용하려면 부모 클래스의 객체 변수를 선언할 때 자식 클래스의 생성자를 이용해야 하는데, 이것을 클래스의 형 변환이라고 한다.
Pythone의 활용
Python은 객체지형 기능을 지원하는 스크립트 언어로, 다른 언어에 비해 문법이 간단하다.
- 변수의 자료형에 대한 선언이 없다.
- 문자와 문자열을 작은따옴표, 큰따옴표로 구분 없이 사용할 수 있으며, 3개의 작은, 큰따옴표로도 묶어 표현할 수 있다.
- 문장의 끝을 의미하는 세미클론을 사용할 필요가 없다.
-
if나 for과 같이 코드 블록을 표현하는 명령문을 작성할 때 중괄호 대신 클론과 여백으로 구분한다.
- print(a[1][-3:]): a[1]에 저장된 문자열의 -3위치부터 마지막 요소까지 추출한다.
절차적 프로그래밍 언어
절차적 프로그래밍 언어는 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술하는 언어이다. 프로그램이 실행되는 절차를 중요시 한다. 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있다. 자연어에 가까운 단어와 문장으로 구성되고 과학 계산이나 하드웨어 제어에 주로 사용된다.
- C
- 시스템 프로그래밍 언어로 널리 사용됨
- 고급 프로그래밍 언어이면서 저급 프로그래밍 언어의 특징을 모두 갖춤
- 이식성이 좋아 컴퓨터 기종에 관계없이 프로그램을 작성할 수 있음
- ALGOL
- 수치 계산이나 논리 연산을 위한 과학 기술 계산용 언어
- PASCAL과 C 언어의 모체가 됨
- COBOL
- 사무 처리용 언어
- 영어 문장 형식으로 구성되어 있어 이해와 사용이 쉬움
- 4개의 DIVISION으로 구성됨
- FORTRAN
- 과학 기술 계산용 언어
- 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 할 수 있음
객체지향 프로그래밍 언어
객체지향 프로그래밍 언어는 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 기계의 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성하는 기법이다. 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법이다. 한 프로그램을 다른 프로그램에서 이용할 수 있도록 한다.
객체지향 프로그래밍 언어의 종류는 다음과 같다.
- JAVA
- 분산 네트워크 환경에 적용이 가능함
- 멀티스레드 기능을 제공하므로 여러 작업을 동시에 처리할 수 있음
- 운영체제 및 하드웨어에 독립적이며, 이식성이 강함
- C++
- C 언어에 객체지향 개념을 적용한 언어임
- 모든 문자를 객체로 모델링하여 표현함
- Smalltalk
- 1세대 객체지향 프로그래밍 언어로, 순수한 객체지향 프로그래밍 언어임
- 최초로 GUI를 제공하였음
스크립트 언어
스크립터 언어(Script Language)는 HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 언어로, 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작한다. 게시판 입력 등과 같읕 데이터베이스 처리 작업을 수행하기 위해 주로 사용한다.
스크립트 언어는 다음과 같이 분류된다.
- 서버용 스크립터 언어
- 서버에서 해석되어 실행된 후 결과만 클라이언트로 보냄
- ASP, JSP, PHP, 파이썬
- 클라이언트용 스크립트 언어
- 클라이언트의 웹 브라우저에서 해석되어 실행됨
- 자바 스크립트, VB 스크립트
스크립트 언어의 종류는 다음과 같다.
- 자바스크립트(Javascript)
- 웹 페이지의 동작을 제어하는 데 사용되는 클라이언트용 스크립트 언어이다.
- 클래스가 존재하지 않으며 변수 선언도 필요 없다.
- 서버에서 데이터를 전송할 때 아이디, 비밀번호, 수량 등의 입력 사항을 확인하기 위한 용도로 많이 사용된다.
- VB 스크립트(Visual Basic Script)
- 마이크로소프트 사에서 자바 스크립트에 대응하기 위해 제작한 언어이다.
- Active X를 사용하여 마이크로소프트사 사의 애플리케이션들을 컨트롤할 수 있다.
- ASP(Active Server Page)
- 서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어이다.
- 마이크로소프트 사에서 제작하였고 Windows 계열에서만 수행 가능하다.
- JSP(Java Server Page)
- JAVA로 만들어진 서버용 스크립트 언어이다.
- 다양한 운영체제에서 사용 가능하다.
- PHP(Professional Hypertext Preprocessor)
- 서버용 스크립트 언어로, Linus, Unix, Windows 운영체제에서 사용 가능하다.
- C, Java 등과 문법이 유사하므로 배우기 쉬워 웹 페이지 제작에 많이 사용된다.
- 파이썬(Python)
- 객체지향 기능을 지원하고 플랫폼에 독립적이며 문법이 간단하여 배우기 쉽다.
- 쉘 스크립트
- 유닉스/리눅스 계열이 쉘(Shell)에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어이다.
- 컴파일 단계가 없어 실행 속도가 빠르다.
- 저장 시 확장로 ‘.sh’가 붙는다.
- 쉘의 종류: Bash Shell, Bourne Shell, C Shell, Korn Shell 등
- 쉘 스크립트에서 사용되는 제어문: if, cas, for, while, until
- Basic
- 절차지향 기능을 지원하는 대화형 인터프리터 언어로, 초보자도 쉽게 사용할 수 있는 문법 구조를 갖는다.
라이브러리
라이브러리는 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체이다. 자주 사용하는 함수들의 반복적인 코드 작성을 피하기 위해 미리 만들어 놓은 것으로, 필요할 때는 언제든지 호출하여 사용할 수 있다. 라이브러리에는 표준 라이브러리와 외부 라이브러리가 있다.
- 표준 라이브러리: 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로, 여러 종류의 모듈이나 패키지 형태이다.
- 외부 라이브러리: 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것으로, 외부 라이브러리를 다운받아 설치한 후 사용한다.
C언어는 라이브러리를 헤더 파일로 제공한다.
- stdio.h: 데이터의 입출력에 사용되는 기능들을 제공한다.
- math.h: 수학 함수들을 제공한다.
- string.h: 문자열 처리에 사용되는 기능들을 제공한다.
- stdlib.h: 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공한다.
- time.h: 시간 처리에 사용되는 기능들을 제공한다.
Java는 라이브러리를 패키지에 포함하여 제공한다.
- java.lang: 자바에 기본적으로 필요한 인터페이스로, 자료형, 예외 처리 등에 관련된 기능을 제공한다. import문 없이도 사용할 수 있다.
- java.util: 날자 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능을 제공한다.
- java.io: 파일 입출력과 관련된 기능 및 프로토콜을 제공한다.
- java.net: 네트워크와 관련된 기능을 제공한다.
- java.awt: 사용자 인터페이스(UI)와 관련된 기능을 제공한다.
Python에서 제공하는 라이브러리는 다음과 같다.
- 내장 함수: Python에 기본적인 인터페이스로, import문이나 클래스명 없이도 사용할 수 있음
- os: 운영체제와 상호 작용하기 위한 기능을 제공함
- re: 고급 문자열 처리를 위한 기능을 제공함
- math: 복잡한 수학 연산을 위한 기능을 제공함
- random: 무작위 선택을 위한 기능을 제공함
- statistics: 통계값 산출을 위한 기능을 제공함
- datetime: 날짜와 시간 조작을 위한 기능을 제공함
예외 처리
프로그램의 정상적인 실행을 방해하는 조건이나 상태를 예외(Exception)라고 하며, 이러한 예외가 발생했을 때 프로그래머가 해당 문제에 대비해 작성해 놓은 처리 루틴을 수행하도록 하는 것을 예외 처리(Exception Handling)라고 한다.
- 예외가 발생했을 때 일반적인 처리 루틴은 프로그램을 종료시키거나 로그를 남기도록 하는 것이다.
- C++, Ada, JAVA, JS와 같은 언어에는 예외 처리 기능이 내장되어 있으며, 그 외의 언어에서는 필요할 경우 조건문을 이용해 예외 처리 루틴을 작성한다.
- 예외의 원인에는 컴퓨터 하드웨어 문제, 운영체제의 설정 실수, 라이브러리 손상, 사용자의 입력 실수, 받아들일 수 없는 연산, 할당하지 못하는 기억장치 접근 등 다양하다.
JAVA는 잘못된 동작이나 결과에 영향을 줄 수 있는 예외를 객체로 취급하며, 예외와 관련된 클래스르 java.lang 패키지에서 제공한다.
- JAVA는 try ~ catch 문을 이용해 예외를 처리한다.
- try 블록 코드를 수행하다 예외가 발생하면 예외를 처리하는 catch 블록으로 이동하여 예외 처리 코드를 수행하므로 예외가 발생한 이후의 코드는 실행되지 않는다.
댓글남기기