1. 라이브러리 

라이브러리의 개념
라이브러리는 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체이다.
라이브러리의 분류
- 표준 라이브러리: 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로 여러 종류의 모듈이나 패키지 형태
- 외부 라이브러리: 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것으로, 외부 라이브러리를 다운받아 설치한 후 사용
라이브러리의 특징
- 효율적인 개발: 자주 사용하는 함수들의 반복적인 코드 작성을 피하기 위함
- 재사용성: 필요할 때는 언제든지 호출 가능
- 공유성: 여러 개발자들이 공통으로 사용할 수 있는 기능 제공
모듈과 패키지의 개념
- 모듈(Module): 관련된 함수나 클래스들을 하나의 파일로 묶어 놓은 것
- 패키지(Package): 여러 모듈들을 디렉토리 구조로 묶어 놓은 것
💡 팁: 라이브러리를 활용하면 개발 시간을 단축하고 코드의 품질을 향상시킬 수 있습니다! 🚀
C언어의 주요 표준 라이브러리
C언어는 라이브러리를 헤더 파일로 제공한다.
각 헤더 파일에는 응용 프로그램 개발에 필요한 함수들이 정리되어 있다.
C언어에서 헤더 파일을 사용하려면 #include
C언어 주요 헤더 파일
헤더 파일 | 기능 | 주요 함수 |
---|---|---|
stdio.h | 데이터의 입출력에 사용되는 기능들 | printf(), scanf(), fprintf(), fclose(), fopen() 등 |
math.h | 수학 함수들을 제공 | sqrt(), pow(), abs(), log() 등 |
string.h | 문자열 처리에 사용되는 기능들을 제공 | strlen(), strcpy(), strcmp() 등 |
stdlib.h | 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공 | atoi(), atof(), srand(), rand(), malloc(), free() 등 |
time.h | 시간 처리에 사용되는 기능 | time(), clock() 등 |
💡 팁: C언어는 헤더 파일을 통해 라이브러리를 제공하며, #include로 선언 후 사용합니다! 📚
Java의 주요 표준 라이브러리
Java는 라이브러리를 패키지에 포함하여 제공한다.
각 패키지에는 Java 응용 프로그램 개발에 필요한 모든 메소드들이 클래스로 정리되어 있다.
Java에서 패키지 사용하려면 import java.util과 같이 import 문을 이용한다.
import로 선언된 패키지 안에 있는 클래스의 메소드를 사용할 때는 클래스와 메소드를 마침표로 구분하여 Math.sqrt()와 같이 사용한다.
Java 주요 패키지
패키지 | 기능 | 주요 클래스 |
---|---|---|
java.lang | 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능 제공, import문 없이 사용 가능 | String, System, Process, Runtime, Math, Error 등 |
java.util | 날짜 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능 제공 | Date, Calendar, Random, StringTokenizer 등 |
java.io | 파일 입출력과 관련된 기능 및 프로토콜을 제공 | InputStream, OutputStream, Writer 등 |
java.net | 네트워크 관련된 기능 제공 | Socket, URL, InetAddress 등 |
java.awt | 사용자 인터페이스(UI)와 관련된 기능 제공 | Frame, Panel, Dialog, Button, Checkbox 등 |
Java 주요 메소드
클래스 | 주요 메소드 | 기능 |
---|---|---|
String | A.compareTo(B) | 숫자로된 문자열 A와 B를 비교하여 같으면 0, A가 크면 1, B가 크면 -1을 반환 |
A.equals(B) | 문자열 A와 B가 같은지 비교 (대소문자 구분) | |
A.equalsIgnoreCase(B) | 문자열 A와 B가 같은지 비교 (대소문자 무시) | |
toLowerCase(문자열) | 문자열을 소문자로 변환 | |
toUpperCase(문자열) | 문자열을 대문자로 변환 | |
split(구분자) | 문자열을 구분자로 분리 | |
replaceAll(변환 대상, 변환할 문자) | 문자열에서 특정 문자를 다른 문자로 변환 | |
StringTokenizer | countTokens() | 토큰의 개수를 반환 |
hasMoreTokens() | 다음 토큰이 있는지 확인 | |
nextToken() | 다음 토큰을 반환 |
💡 팁: Java는 패키지 단위로 라이브러리를 제공하며, import로 선언 후 클래스.메소드() 형태로 사용합니다! ☕
Python의 주요 표준 라이브러리
Python은 Java와 동일하게 라이브러리를 패키지로 제공한다.
Python에서 라이브러리를 사용하려면 import random과 같이 선언한다.
사용할 때는 마침표로 구분하여 random.choice()와 같이 사용한다.
Python 주요 모듈
모듈 | 기능 | 주요 함수 |
---|---|---|
내장 함수 | Python에 기본적인 인터페이스로, import문이나 클래스명 없이도 사용 | abs(), slice(), pow(), print() 등 |
os | 운영체제와 상호 작용하기 위한 기능 제공 | getcwd(), chdir(), system() 등 |
re | 고급 문자열 처리를 위한 기능 제공 | findall(), sub() 등 |
math | 복잡한 수학 연산을 위한 기능 제공 | cos(), log() 등 |
random | 무작위 선택을 위한 기능을 제공 | choice(), sample(), random(), randrange() 등 |
statistics | 통계값 산출을 위한 기능을 제공 | mean(), median(), variance() 등 |
datetime | 날짜와 시간 조작을 위한 기능을 제공 | today(), date(), strftime() 등 |
💡 팁: Python은 모듈 단위로 라이브러리를 제공하며, import로 선언 후 모듈.함수() 형태로 사용합니다! 🐍
주요 수학 함수 (C, Java, Python 공통)
함수명 | 기능 | 사용 예시 |
---|---|---|
pow(x, y) | x의 y제곱을 계산 | pow(2, 3) = 8 |
sqrt(x) | x의 제곱근을 계산 | sqrt(16) = 4 |
abs(x) | x의 절댓값을 계산 | abs(-5) = 5 |
log(x) | x의 자연로그를 계산 | log(e) = 1 |
log10(x) | x의 상용로그를 계산 | log10(100) = 2 |
ceil(x) | x보다 크거나 같은 가장 작은 정수 | ceil(3.2) = 4 |
💡 팁: 수학 함수는 대부분의 프로그래밍 언어에서 공통으로 제공되며, 수학적 계산에 필수적입니다! 🧮
난수 발생 함수
언어 | 함수명 | 기능 | 사용 예시 |
---|---|---|---|
C | rand() | 0부터 RAND_MAX까지의 난수 생성 | rand() % 100 (0~99) |
Java | random() | 0.0부터 1.0까지의 실수 난수 생성 | Math.random() * 100 |
Python | random() | 0.0부터 1.0까지의 실수 난수 생성 | random.random() * 100 |
언어별 난수 발생 특징
- C: 정수형 난수 생성, 시드 설정 필요 (srand())
- Java: 실수형 난수 생성, Random 클래스 사용
- Python: 실수형 난수 생성, 다양한 난수 함수 제공
💡 팁: 난수 발생 함수는 게임, 시뮬레이션, 암호화 등에서 많이 사용되며, 언어별로 사용법이 다릅니다! 🎲
2. 객체지향 프로그래밍 언어
객체지향 프로그래밍 언어의 개념
객체지향 프로그래밍 언어는 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 조립하여 제품을 만들 듯 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램 작성하는 언어이다.
객체지향 프로그래밍의 특징
- 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법
- 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법
- 한 프로그램을 다른 프로그램에서 이용 가능
객체지향 프로그래밍 언어의 종류
언어 | 특징 |
---|---|
Java | 분산 네트워크 환경에 적용 가능, 멀티스레드 기능을 제공하여 여러 작업을 동시에 처리 가능, 운영체제 및 하드웨어에 독립적이며, 이식성이 강함 |
C++ | C언어에 객체지향 개념을 도입, 모든 문제를 객체로 모델링하여 표현 |
Smalltalk | 1세대 객체지향 프로그래밍 언어, 최초의 GUI 제공 |
💡 팁: 객체지향 프로그래밍은 코드의 재사용성과 유지보수성을 높여주는 현대적인 프로그래밍 패러다임입니다! 🎯
3. 스크립트 언어 
스크립트 언어는 HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 언어이다.
- 기계어로 컴파일되지 않고 별도의 번역기가 소스를 분석하여 동작
- 게시판 입력, 상품 검색, 회원 가입 등과 같은 데이터베이스 처리 작업을 수행하기 위해 주로 사용
스크립트 언어의 분류
분류 | 내용 | 종류 |
---|---|---|
서버용 | 서버에서 해석되어 실행된 후 결과만 클라이언트로 보냄 | ASP, JSP, PHP, 파이썬 |
클라이언트용 | 클라이언트의 웹 브라우저에서 해석되어 실행됨 | 자바 스크립트, VB 스크립트 |
스크립트 언어의 종류
언어 | 특징 |
---|---|
자바 스크립트 | 웹 페이지의 동작을 제어하는 데 사용되는 클라이언트용 스크립트 |
VB 스크립트 | 마이크로소프트 사에서 자바 스크립트에 대응하기 위해 제작한 언어, Active X를 사용하여 마이크로소프트 사의 애플리케이션 컨트롤 |
ASP | 서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어, 마이크로소프트 사에서 제작, Windows 계열에서만 수행 가능 |
JSP | Java로 만들어진 서버용 스크립트 언어, 다양한 운영체제에서 사용 가능 |
PHP | Linux, Unix, Windows 운영체제에서 사용 가능한 서버용 스크립트 언어, C, Java 등과 문법이 유사하여 배우기 쉬움 |
파이썬 | 객체지향 기능을 지원하는 대화형 인터프리터 언어, 플랫폼 독립적이고 문법이 간단함 |
쉘 스크립트 | 유닉스/리눅스 계열의 쉘에서 사용되는 명령어들의 조합으로 구성 |
Basic | 절차지향 기능을 지원하는 대화형 인터프리터 언어, 초보자도 쉽게 배움 |
XML, JSON, AJAX
XML (eXtensible Markup Language)
- 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어
- 웹 페이지의 기본 형식인 HTML의 문법이 각 웹 브라우저에서 상호 호환적이지 못하다는 문제와 SGML의 복잡함을 해결하기 위하여 개발
JSON (JavaScript Object Notation)
- 속성-값 쌍으로 이루어진 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
- 비동기 처리에 사용되는 AJAX에서 XML을 대체하여 사용되고 있음
AJAX (Asynchronous JavaScript and XML)
- 자바 스크립트 등을 이용하여 클라이언트와 서버 간에 XML 데이터를 교환 및 제어함으로써 이용자가 웹 페이지와 자유롭게 상호 작용할 수 있도록 하는 비동기 통신 기술
💡 팁: 스크립트 언어는 웹 개발의 핵심이며, 서버용과 클라이언트용으로 구분하여 사용됩니다! 🌐