관리 메뉴

나구리의 개발공부기록

2장 - 프로그래밍 언어 활용 | 섹션15. 스크립트 언어, 섹션16. 라이브러리, 섹션17. 예외 처리 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 4강 - 프로그래밍 언어 활용

2장 - 프로그래밍 언어 활용 | 섹션15. 스크립트 언어, 섹션16. 라이브러리, 섹션17. 예외 처리

소소한나구리 2024. 5. 10. 13:56

2024년도 시나공 필기 책 내용 정리 


섹션15. 스크립트 언어

 

1. 스크립트 언어(Script Language)

 

  • HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어
  • 게시판 입력, 상품 검색, 회원 가입 등과 같은 데이터베이스 처리 작업을 수행하기 위해 주로 사용함
  • 클라이언트의 웹 브라우저에서 해석되어 실행되는 클라이언트용 언어와 서버에서 실행된 후 클라이언트로 보내는 서버용 언어가 있음
  • 서버용 스크립트 언어 : ASP, JSP, PHP, 파이썬
  • 클라이언트용 스크립트 언어 : 자바 스크립트(javascript), VA스크립트(Visual Basic Script)

2. 스크립트 언어의 장/단점

 

  • 컴파일 없이 바로 실행하므로 결과를 바로 확인할 수 있음
  • 배우고 코딩하기 쉬움
  • 개발 시간이 짧음
  • 소스 코드를 쉽고 빠르게 수정할 수 있음
  • 코드를 읽고 해석해야 하므로 실행 속도가 느림
  • 런타임 오류가 많이 발생함
자바스크립트
(Javascript)
웹 페이지의 동작을 제어하는 데 사용되는 클라이언트용 스크립트 언어
클래스 기반의 객체 상속을 지원하여 객체지향 프로그래밍 언어의 성격도 갖고 있음
Prototype Link와 Prototype Object를 통해 프로토타입 개념을 활용 할 수 있음

Prototype Link,Object : 자바스크립트에서 포로토타입을 구현하기 위해 사용하는 개념, 객체가 생성될 때 생성된 객체의 원형을 Prototype Object라 하고 생성된 객체와 원형을 연결하는 링크를 Prototype Link라고 함
VB 스크립트
(Visual Basic Script)
마이크로소프트사에서 자바 스크립트에 대응하기 위해 제작한 언어로 Active X를 사용하여 마이크로소프트사의 애플리케이션들을 컨트롤 할 수 있음

Active X : 마이크로소프트사에서 Windows환경의 응용 프로그램을 웹과 연결하기 위해 개발한 프로그램 기술, 동적인 콘텐츠와 응용 프로그램 제작이 편리함
ASP
(Active Server Page)
서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어로 마이크로소프트사에서 제작하였음
Windows 계열에서만 수행 가능한 프로그래밍 언어
JSP
(Java Server Page)
JAVA로 만들어진 서버용 스크립트, 다양한 운영체제에서 사용이 가능함
PHP
(Professional
Hypertext
Preprocessor)
서버용 스크립트 언어로 Linux, Unix, Windows 운영체제에서 사용 가능함
C, Java 등과 문법이 유사하므로 배우기 쉬워 웹 페이지 제작에 많이 사용됨
파이썬(Python) 귀도 반 로섬(Guido van Rossum)이 발표한 대화형 인터프리터 언어
객체지향 기능을 지원하고 플랫폼에 독립적이며 문법이 간단하여 배우기 쉬움

인터프리터 언어 : 원시 프로그램을 줄 단위로 번역하여 바로 실행해 주는 언어
쉘 스크립트 유닉스/리눅스 계열의 쉘(Shell)에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어
컴파일 단계가 없어 실행 속도가 빠름
저장 시 확장자로 .sh가 붙음
쉘의 종류 : Bash Shell, Bourne Shell, C Shell, Korn Shell 등
쉘 스크립트에서 사용되는 제어문
 - 선택형 : if, case
 - 반복형 : for, while, until
Basic 절차지향 기능을 지원하는 대화형 인터프리터 언어, 초보자도 쉽게 사용할 수 있는 문법 구조가 특징

섹션16. 라이브러리

 

1. 라이브러리의 개념

 

  • 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체,
  • 자주 사용하는 함수들의 반복적인 코드 작성을 피하기 위해 미리 만들어 놓은 것으로 필요할 때 호출하여 사용
  • 프로그래밍 언어에 따라 일반적으로 도움말, 설치 파일, 샘플 코드 등을 제공
  • 라이브러리는 모듈과 패키지 모두를 의미함
    (모듈 : 하나의 기능이 한개의 파일로 구현된 형태,
    패키지 : 하나의 패키지 폴더 안에 여러 개의 모듈을 모아놓은 형태)
  • 표준 라이브러리 : 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로외부 라 여러 종류의 모듈이나 패키지 형태임
  • 외부 라이브러리 : 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것으로 외부 라이브러리를 다운받아 설치한 후 사용

2. C 언어의 대표적인 표준 라이브러리

 

  • C언어는 라이브러리를 헤더 파일로 제공하는데, 각 헤더 파일에는 응용 프로그램 개발에 필요한 함수들이 정리 되어있음
  • 헤더파일 사용 시 #include <stdio.h> 와 같이 include문을 이용해 선언한 후 사용해야 함
헤더 파일 기능
stdio.h 데이터의 입/출력에 사용되는 기능들을 제공
주요함수 : printf, scanf, fprintf, fscanf, fclose, fopen 등
math.h 수학 함수들을 제공
주요 함수 : sqrt, pow, abs 등
string.h 문자열 처리에 사용되는 기능들을 제공
주요 함수 : strlen, strcpy, strcmp 등
stdlib.h 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공
주요 함수 : atoi, atof, srand, rand, malloc, free 등
time.h 시간 처리에 사용되는 기능들을 제공
주요 함수 : time, clock등

3. JAVA의 대표적인 표준 라이브러리

 

  • JAVA는 라이브러리를 패키지에 포함하여 제공하는데, 각 패키지에는 JAVA 응용프로그램 개발에 필요한 메소드들이 클래스로 정리되어 있음
  • JAVA 에서 패키지를 사용하려면 import java.util 과 같이 import문을 이용해 선언 후 사용해야 함
  • import로 선언된 패키지 안에 있는 클래스의 메소드를 사용할 때는 클래스와 메소드를 마침표로 구분하여 Math.abs()와 같이 사용함
패키지 기능
java.lang 자바에 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능을 제공
import문 없이도 사용 가능함
주요 클래스 : String, System, Process, Runtime, Math, Error 등
java.util 날짜 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능을 제공
주요 클래스 : Data, Calender, Random, StringTokenizer 등
java.io 파일 입/출력과 관련된 기능 및 프로토콜을 제공함
주요 클래스 : InputStream, OutputStream, Reader, Writer 등
java.net 네트워크와 관련된 기능을 제공
주요 클래스 : Socket, URL, InetAddress 등
java.awt 사용자 인터페이스(UI)와 관련된 기능을 제공
주요 클래스 : Frame, Panel, Dialog, Button, Checkbox 등

섹션17. 예외 처리

 

1. 예외 처리 개요

 

  • 프로그램의 정상적인 실행을 방해하는 조건이나 상태를 예외(Exception)이라고 하며, 이러한 예외가 발생했을 때 프로그래머가 해당 문제에 대비해 작성해 놓은 처리 루틴을 수행하는 것
  • 예외가 발생했을 때 일반적인 처리 루틴은 프로그램을 종료시키거나 로그를 남기도록 하는 것
  • C++, Ada, JAVA, 자바스크립트와 같은 언어에는 예외 처리 기능이 내장되어 있으며, 그 외의 언어에서는 필요한 경우 조건문을 이용해 예외 처리 루틴을 작성함
  • 예외의 원인에는 컴퓨터 하드웨어 문제, 운영체제의 설정 실수, 라이브러리 손상, 사용자의 입력 실수, 받아들일 수 없는 연산, 할당하지 못하는 기억장치 접근 등 다양함

2. JAVA의 예외 처리

 

  • JAVA는 잘못된 동작이나 결과에 영향을 줄 수 있는 예외를 객체로 취급하며, 예외와 관련된 클래스를 java.lang 패키지에서 제공함
  • try ~ catch문을 이용해 예외를 처리함
  • try 블록 코드를 수행하다 예외가 발생하면 예외를 처리하는 catch 블록으로 이동하여 예외 처리 코드를 수행하므로 예외가 발생한 이후의 코드는 실행되지 않음
  • catch 블록에서 선언한 변수는 해당 catch 블록에서만 유효함
  • try ~ catch 안에서 또다른 try ~ catch 문을 포함할 수 있음
  • try ~ catch 문 안에서는 실행 코드가 한줄이라도 중괄호{}를 생략할 수 없음
try {
    예외가 발생할 가능성이 있는 코드;
} catch (예외객체1 매개변수) {
    예외객체1에 해당하는 예외 발생 시 처리 코드;
} catch (예외객체2 매개변수) {
    예외객체2에 해당하는 예외 발생 시 처리 코드;
} catch (예외객체n 매개변수) {
    예외객체n에 해당하는 예외 발생 시 처리 코드;
} catch (Exception 매개변수) {
    예외객체 1, 2, n에 해당하지 않는 예외 발생 시 처리코드;
} finally {
    예외의 발생 여부와 관계없이 무조건 처리되는 코드
}
// Exception = 모든 예외의 최고 조상이며, 하위 예외 객체가 Exception보다 위의 catch문에 올 수 없음

3. JAVA의 주요 예외 객체

예외 객체 발생 원인
ClassNotFoundException 클래스를 찾지 못한 경우
NosuchMethodException 메소드를 찾지 못한 경우
FileNotFoundException 파일을 찾지 못한 경우
InterruptedIOException 입/출력 처리가 중단된 경우
ArithmeticException 0으로 나누는 등의 산술 연산에 대한 예외가 발생한 경우
IllegalArgumentException 잘못된 인자를 전달한 경우
NumberFormatException 숫자 형식으로변환할 수 없는 문자열을 숫자 형식으로 변환한 경우
ArrayIndexOutOfBoundsException 배열의 범위를 벗어난 접근을 시도한 경우
NegativeArraySizeException 0보다 작은 값으로 배열의 크기를 지정한 경우
NullPointerException 존재하지 않는 객체를 참조한 경우