1. 자바
1.1.Java : 자바는 1995년 SUN Microsystems 회사의 제임스 고슬링(James Gosling)이 다른 연구원들과 함께 개발한 객체지향 프로그래밍 언어(OOP)이다. 자바라는 이름은 인도네시아 자바 섬에서 생산한 커피의 이름에서 따왔다. 자바의 로고는 커피잔이고, 마스코트는 듀크(Duke)이다. 2010년 SUN 마이크로시스템즈 회사가 오라클에 인수되면서, 자바도 오라클 회사로 넘어갔다. JSP는 자바 언어로 만든 웹용 스크립트 언어이다. 자바스크립트(JavaScript)는 자바와 이름은 비슷하지만 기능상 아무런 관련이 없다.
1.2.JSP : JavaServer Pages의 약자로서 HTML 페이지 안에 자바(Java) 코드를 직접 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저가 표현할 수 있도록 전달해 주는 스크립트 프로그래밍 언어이다. 미국 썬 마이크로시스템즈사가 처음 개발했고, 2010년 Oracle사에 인수되었다. HTML 문서 안에 <%... %> 기호를 쓰고 그 안에 자바 코드를 삽입하는 방식으로 사용한다. Servlet은 자바 소스 코드 안에 HTML을 삽입하지만, JSP는 반대로 HTML 문서 안에 자바 코드를 삽입한다. 한편 JavaScript는 사용자의 개인 PC에 설치된 웹 브라우저에서 실행되지만, JSP는 웹 서버에서 실행되어 그 결괏값만 사용자의 웹 브라우저에 전달된다는 차이점이 있다.
1.3.JavaScript : 자바스크립트는 미국 넷스케이프(Netscape)사의 브렌던 아이크(Brendan Eich)가 만든 스크립트 프로그래밍 언어이다. 약칭 JS라고도 쓴다. 썬 마이크로시스템즈 회사의 제임스 고슬링(James Gosling)이 개발한 자바(Java) 언어와 이름은 비슷해도, 기능상 아무런 관련이 없다. 자바스크립트는 표준 HTML 문서 내에 삽입되어 사용되며, 인터랙티브 한 웹 페이지를 만들 수 있게 한다. JSP는 웹 서버에서 실행되어 그 결괏값만 사용자의 웹 브라우저에 전달되지만, JavaScript는 사용자의 개인 PC에 설치된 웹 브라우저에서 실행된다는 차이점이 있다. 자바스크립트 라이브러리인 jQuery, 자바스크립트로 서버 측 응용 프로그램을 제어하는 node.js, 데이터 연계를 위한 JSON 등 다양하게 활용되고 있다.
1.4.Servlet : 서블릿이란 웹에서 사용 가능한 응용 프로그램을 만들기 위해 자바 코드로 작성한 웹서버용 클래스이다. JSP는 HTML 문서 안에 자바 코드를 삽입하지만, Servlet은 자바 소스 코드 안에 HTML을 삽입한다.
1.5.Java SE : Java Platform, Standard Edition의 약자이다. 예전에는 J2SE라고 불렀다. PC 및 서버 등에 자바가상머신(JVM)을 설치한 표준 Java 플랫폼이다.
1.6.Java EE : Java Platform, Enterprise Edition의 약자이다. 예전에는 J2EE라고 불렀다. Java 언어를 이용하여 서버 측 개발을 진행하기 위한 플랫폼이다. Java SE를 설치한 후 추가로 Java EE를 설치한다.
1.7.Java ME : Java Platform, Micro Edition의 약자이다. 예전에는 J2ME라고 불렀다. 스마트폰, PDA, 셋톱박스 등에 Java 언어를 지원하기 위해 만들어진 플랫폼이다.
2. 자바 가상머신
2.1.JVM : Java Virtual Machine의 약자로서 자바가상머신이라고 한다. 컴파일된 자바코드와 플랫폼 사이에서 매개 역할을 하는 가상머신 프로그램이다.
2.2.Virtual Machine : 가상머신이란 소프트웨어를 이용하여 특정한 컴퓨터 시스템을 에뮬레이션에뮬레이션 한 것을 말한다. 가상머신 기술을 이용하면 하나의 물리적 H/W 시스템 위에 다수의 가상 환경을 구성하여, 복수의 OS나 시스템을 운영할 수 있다. 자바 가상머신을 JVM(=Java Virtual Machine)이라고 한다.
Source Code : 소스 코드란 컴파일되어 기계어로 번역되기 전의 원래 프로그램 코드를 말한다. 약칭 소스(Source)라고도 한다.
2.3. Compile : 컴파일이란 C, Java 등 인간이 이해할 수 있는 고급 언어로 작성된 프로그램 소스 코드를 컴퓨터가 이해할 수 있는 기계 언어 또는 바이트코드로 번역해 주는 것을 말한다. 반면 스크립트 언어인 JavaScript, jQuery, PHP, ASP, JSP 등은 컴파일 과정이 필요 없이 바로 실행될 수 있다.
2.4.Bytecode : 바이트코드란 특정한 하드웨어가 아니라 자바가상머신(JVM)과 같은 가상의 컴퓨터에서 작동하도록 만든 이진 코드이다. 프로그램 소스 코드를 컴파일하여 바이트코드를 생성한다. 반대로 바이트코드를 역컴파일(逆compile)하면 주석을 제외한 소스 코드의 대부분을 복원할 수 있다.
3. 자바 명령
3.1.Command : 명령어란 프로그램 실행을 위해 사용자가 입력하는 언어를 말한다. 리눅스(Linux) 명령어, 도스(DOS) 명령어, 유닉스(UNIX) 명령어, C 명령어, Java 명령어 등이 있다.
3.2.print : 프로그래밍 언어에서 처리 결과를 화면에 출력하기 위해 사용하는 명령어이다. ‘프린트’라고 읽는다. Java 언어의 경우 System.out.print();처럼 사용한다.
3.3.println : Java 언어에서 처리 결과를 화면에 출력하기 위해 사용하는 명령어이다. ‘프린트엘엔’이라고 읽는다. print 뒤에 있는 ‘ln’은 line의 약자로서 출력 후 한 줄 바꾸라는 뜻(즉, ‘Enter’ 또는 ‘\n’)이다. System.out.println();처럼 사용한다.
3.4.Operator : 연산자(演算子)란 어떠한 기능을 수행하는 기호를 말한다. 대표적인 연산자인 더하기(+), 빼기(-), 곱하기(×), 나누기(÷)를 사칙연산자라고 한다. 더하기 기호를 두 번 사용한 ++ 연산자는 자기 자신의 값을 1 증가시키라는 뜻이다. 즉, i++;라고 쓴 것은 i=i+1;처럼 쓴 것과 결과 값이 같다. 마찬가지로 i--;는 i=i-1;과 같다. 등호(=)는 변수에 값을 대입하라는 뜻이다. 예를 들어, a=3;이라고 쓰면, a라는 변수에 3이라는 값을 할당하라는 뜻이다. 두 값이 같은지 비교하려면 등호 두 개(==)를 사용한다. 두 값이 다른지 비교하려면 (!=)를 사용한다.
3.5.Loop : 루프란 반복문(反復文)을 말한다. for 또는 while 등을 사용한다. 루프에서 벗어나기 위해서 break 또는 return 명령어를 사용한다. 영원히 벗어나지 못하고 무한히 반복되는 반복문을 무한 루프라고 한다. 프로그램 개발 시 무한 루프에 빠지지 않도록 주의해야 한다.
3.6.for : 반복문(反復文, Loop)에 사용하는 명령어이다. ‘포어’라고 읽는다. 예를 들어, for (int i=0; i <10; i++) { … }라는 문장은 “…” 부분을 총 10번 반복하여 실행한다. 반복문을 벗어나기 위해 break; 명령어를 사용한다. 반복문에 while을 쓰기도 한다.
3.7.while : 반복문(反復文, Loop)에 사용하는 명령어이다. ‘와일’이라고 읽는다. 예를 들어, int i=1; while (i<=10) { System.out.println(i); i++; }라는 문장은 1부터 10까지 차례대로 출력해 주는 프로그램이다. 반복문을 벗어나기 위해 break; 명령어를 사용한다. 반복문에 for를 쓰기도 한다.
3.8.break : 브레이크는 프로그래밍 언어에서 for 또는 while 등의 반복문(Loop)을 벗어날 때 사용하는 명령어이다. 조건문인 switch문에서 벗어날 때도 사용한다. return문이 결과값을 반환하는 반면, break문은 어떤 결과값도 반환하지 않는다.
3.9.return : 리턴이란 현재 실행 중인 메서드(Method)를(Method) 종료하고 결괏값을 되돌려주라는 명령어이다. 결과값을 리턴값(return value)이라고도 한다. return문이 결과값을 반환하는 반면, break문은 어떤 결과값도 반환하지 않는다.
3.10.if : 조건문(條件文)에 사용하는 명령어이다. ‘이프’라고 읽는다. if A … else ~ 처럼 사용한다. 만약 A가 참이면 “…”를 실행하고, 그렇지 않으면 “~” 부분을 실행하라는 뜻이다. if문 안에 또 다른 if문을 넣어서 중첩 if문을 만들 수 있다. 복잡한 조건문은 switch문을 사용한다.
3.11.switch : 조건문(條件文)에 사용하는 명령어이다. ‘스위치’라고 읽는다. 예를 들어, switch ( ) { case A : ~ break; case B : ~ break; case C : ~ break; default : ~ }처럼 사용한다. 만약 A 경우이면 “~”를 실행하고, B 경우이면 “~”를 실행하고, C 경우이면 “~”를 실행하고, 아무것에도 해당하지 않으면 default ~ 부분을 실행하라는 뜻이다. break;는 switch문을 벗어나기 위해 사용하는 명령어이다. 단순한 조건문은 if를 사용한다.
4.변수와 메서드
4.1.Member : 멤버란 객체 지향 프로그래밍(OOP)에서 하나의 클래스를 구성하는 개별적인 구성 요소를 말한다. 클래스의 멤버에는 변수(Variable)와 메서드(Method)(Method) 및 다른 클래스(Class)가 있다. 하나의 클래스는 다른 클래스를 자신의 멤버로 포함(Composite)할 수 있다. 이때 다른 클래스에 포함되는 작은 클래스를 내부 클래스(Inner Class)라고 하고, 다른 클래스를 포함하는 큰 클래스를 외부 클래스(Outer Class)라고 한다.
4.2.Constant : 상수(常數)란 항상 일정한 값을 가지는 수를 말한다. 프로그램 개발 시 처음 한 번 값을 정해주면 이후에 값을 변경할 수 없다. 반대말은 변수(Variable)이다.
4.3.Variable : 변수(變數)란 컴퓨터 프로그램에서 그 값이 일정하지 않고 상황에 따라 변경되는 값을 말한다. 실제 값을 가진 변수와 값이 들어가 있는 주소를 가리키는 참조변수(Reference Variable)가 있다. 반대말은 상수(Constant)이다.
4.4.Reference Variable : 참조변수(參照變數)란 실제 값을 가진 변수가 아니라, 값이 들어가 있는 주소를 가지고 있는 변수를 말한다.
4.5.Parameter : 파라미터란 두 개 이상의 변수 사이의 함수 관계를 표시하는 매개변수(媒介變數)를 말한다. 예를 들어, y=ax;에서 a는 변수 x와 y 사이의 관계를 나타내는 매개변수이다. ‘파라미터’가파라메터’ 아니라 ‘파라미터’가 올바른 표기법이다.
4.6.Method : 메서드란 객체 지향 프로그래밍(OOP)에서 클래스(Class) 내부에 정의된 함수(函數, Function)를 말한다. 멤버 함수라고도 한다. ‘메서드’라고도 쓴다. 메서드는 클래스 내부에서 특정한 작업을 처리하는 역할을 한다. 입력값이 있을 경우 그 값을 받아서 처리한 후 결괏값이 있으면 되돌려준다. 예를 들어, int add(int a, int b) { int c=a+b; return c; }라는 메서드를 사용하여 a와 b의 합계를 구할 수 있다. 일반적으로 객체에서 속성(Attribute)은 데이터 값을 표시하기 위해 사용하고, 메서드는 특정한 동작을 수행하기 위해 사용한다. 메서드와 관련된 중요한 개념으로 오버로딩(Overloading)과 오버라이딩(Overriding)이 있다.
4.7.Function : 함수(函數)란 프로그래밍 언어에서 입력값을 받아 연산을 수행하거나 특정한 기능을 수행한 후 결괏값을 반환해 주는 명령어의 집합을 말한다. Java 언어에서는 메서드(Method)라고(Method) 한다. 함수를 사용함으로써 동일한 기능을 수행하는 프로그램 소스 코드를 반복하여 사용하지 않고 한 번만 작성한 뒤 불러와서 재사용할 수 있다. 이를 통해 구조적 프로그래밍이 가능하다.
4.8.Attribute : 속성(屬性)이란 개체가 가지고 있는 고유한 특성을 말한다. 예를 들어 ‘회원’이라는 개체는 “성명=홍길동”, “성별=남자”라는 속성을 가질 수 있다.
4.9.Constructor : 생성자(生成子)란 객체 지향 프로그래밍(OOP)에서 인스턴스(Instance)를 처음 생성할 때 호출하는 초기화 메서드(Method)이다.(Method)이다. 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
5. 자료형
5.1.Data Type : 데이터 타입이란 컴퓨터 프로그램에서 데이터가 가질 수 있는 값의 유형을 말한다. 보통 자료형(資料形)이라고 한다. 자료형에는 불린(Boolean), 정수(int), 문자(char), 문자열(String), 부동소수점(Floating Point) 등이 있다. 자료형이 정해지지 않은 경우 void를 사용한다.
5.2.Boolean : 불링이란 컴퓨터 프로그램에서 참 또는 거짓 중 하나의 값을 가지는 자료형을 말한다. 참은 1, T, True로 표시하고, 거짓은 0, F, False로 표시한다.
5.3.int : Integer의 약자로서 정수 값을 가지는 자료형을 말한다. 컴퓨터에서 정수는 –231에서 231-1 사이의 값을 가진다. 보통 int는 32비트 정수형을 말하고, short는 16비트 정수형, long은 64비트 정수형을 말한다.
5.4.char : Character의 약자로서 문자로 된 자료형을 말한다.
5.5.String : 스트링이란 컴퓨터 프로그램에서 문자들이 나열된 수열, 즉 문자열로 된 자료형을 말한다.
5.6.void : 프로그래밍 언어에서 특정한 자료형(Data Type)이 정해지지 않은 경우에 사용하는 단어이다. 영어로 void는 ““아무것도 없는”, “진공의”라는 뜻이다. ‘보이드’라고 읽는다.
6. 객체지향
6.1.OOP : Object-Oriented Programming의 약자로서 객체 지향 프로그래밍이라고 한다. OOP는 컴퓨터 프로그램을 여러 명령어(Command)의 목록으로 보지 않고 여러 개의 독립된 객체(Object)들의 집합으로 파악하는 프로그래밍 기법이다. 최초의 객체 지향 프로그래밍 언어는 시뮬라(Simula)이다. 시뮬라를 기반으로 스몰토크(Smalltalk)와 C++ 언어가 생겼다. 이후 Perl, Python, PHP, Java, Ruby, C# 등 다양한 객체 지향 언어가 만들어졌다.
6.2.Object : 오브젝트 또는 객체(客體)란 객체 지향 프로그래밍(OOP)에서 클래스(Class)가 실제로 구현된 인스턴스(Instance)를 말한다. 즉, 객체란 클래스를 인스턴스화한 것이다. 절차적 프로그래밍과 달리 OOP에서는 하나의 객체가 데이터와 동작을 모두 포함할 수 있다. 객체의 데이터 부분은 속성(Attribute)으로 나타내고, 객체의 동작 부분은 메서드(Method)를(Method) 사용하여 구현한다.
6.3.Class : 클래스란 객체 지향 프로그래밍(OOP)에서 새로운 객체(Object)를 만들기 위한 템플릿을 말한다. 클래스를 사용하여 인스턴스(Instance)를 생성함으로써 객체를 만들 수 있다. 파일 확장자는. class이다..class이다. 클래스는 변수와 메소드 등을 자신의 멤버로 가지고 있다. 하나의 클래스는 다른 클래스를 자신의 멤버로 포함(Composite)할 수 있다. 이러한 성질을 이용해 작은 기능을 수행하는 여러 개의 클래스를 만든 후, 이들을 조립하여 커다란 클래스를 만들 수 있다.
6.4.Instance : 인스턴스란 객체 지향 프로그래밍(OOP)에서 클래스(Class)에 소속된 개별적인 객체를 말한다. 예를 들어, 사용자(user)라는 클래스를 정의하고 홍길동(hong)이라는 객체를 생성할 경우, hong이라는 객체는 user라는 클래스의 인스턴스가 된다. 하나의 클래스를 사용하여 유사한 성질을 가진 수많은 인스턴스를 생성할 수 있다.
7. 상속
7.1.Inheritance : 상속이란 객체 지향 프로그래밍(OOP)에서 자손 클래스가 조상 클래스의 기능을 그대로 이어받아서 재사용하는 것을 말한다. 자손 클래스는 조상 클래스로부터 받은 내용에 새로운 내용을 오버라이딩(Overriding)함으로써 상속받은 내용을 변경할 수 있다. 이러한 기능을 통해 조상 클래스는 공통부분을 관리하고, 자손 클래스는 개별적인 내용을 관리할 수 있다.
7.2.Overloading : 오버로딩이란 하나의 클래스(Class)에 같은 이름을 가진 메서드(Method)를(Method) 여러 개 정의하는 것을 말한다. 예를 들어, println(int x)를 정의한 후 다시 println(char x)를 추가함으로써, 정수(int)와 문자(char)를 모두 출력할 수 있다.
7.3.Overriding : 오버라이딩이란 조상 클래스로부터 상속받은 메서드(Method)의(Method) 내용을 자손 클래스에 맞게 변경하는 것을 말한다. 오버로딩은 기존 메서드에 새로운 내용이 추가되지만, 오버라이딩은 기존 메소드 중 중복되는 내용이 새로운 내용으로 변경된다.
7.4.Polymorphism : 폴리모피즘 또는 다형성(多形性)은 객체 지향 프로그래밍(OOP)에서 하나의 변수나 메소드메서드가 상황에 따라 다른 의미로 해석될 수 있는 성질을 말한다. 다형성에 의해 하나의 참조변수로 여러 타입의 객체를 참조할 수 있다.
8. 패키지
8.1.Package : 패키지란 객체 지향 프로그래밍(OOP)에서 서로 관련된 클래스(Class) 등을 하나로 묶어서 만든 폴더(Folder)를 말한다. 하나의 패키지는 하위에 서브 패키지를 가질 수 있으며, 점(.)으로 구분한다. 예를 들어, java.lang.String 클래스는 /java 폴더 밑에 /lang 폴더 밑에 String.class 파일로 존재하게 된다.
8.2.Import : 임포트는 객체 지향 프로그래밍(OOP)에서 사용할 클래스가 속한 패키지(=폴더)를 지정하기 위해 사용하는 명령어이다. Import 문을 사용하면, 클래스를 사용할 때 길고 복잡한 패키지명(=폴더명)을 생략할 수 있어서 편리하다. Import 문은 컴파일 시에 처리되므로 프로그램의 성능에 아무런 영향을 미치지 않는다.
8.3.JAR : Java Archive의 약자로서 여러 개의 자바 클래스 파일과 관련된 텍스트 및 이미지 파일 등을 하나의 패키지로 압축한 파일이다. 파일 확장자는. jar이다..jar이다.
9. 제어
9.1.Modifier : 제어자(制御子)란 객체 지향 프로그래밍(OOP)에서 변수나 메소드 또는 클래스의 선언부에 사용되어 부가적인 의미를 부여하는 말이다. private, default, protected, public의 접근 제어자와 static, final, abstract 등의 기타 제어자가 있다.
9.2.private : 객체 지향 프로그래밍(OOP)에서 같은 클래스 내에서만 접근 가능하도록 허용하는 제어자이다.
9.3.default : 디폴트는 객체 지향 프로그래밍(OOP)에서 같은 패키지 내에서만 접근 가능하도록 허용하는 제어자이다.
9.4.protected : 객체 지향 프로그래밍(OOP)에서 같은 패키지 내에서 그리고 다른 패키지의 자손 클래스에서만 접근 가능하도록 허용하는 제어자이다.
9.5.public : 객체 지향 프로그래밍(OOP)에서 접근 제한이 전혀 없이 어디에서나 접근 가능하도록 허용하는 제어자이다. 예를 들어, public int getHour() { … } }처럼 사용한다.
9.6.static : 객체 지향 프로그래밍(OOP)에서 모든 인스턴스에서 공통적으로 사용할 수 있는 클래스 변수 또는 클래스 메소드메서드에 사용하는 제어자이다. ‘스태틱’이라고 읽는다. 영어로 static은 ‘정적인’, ‘정지 상태의’라는 뜻이다.
9.7.final : 객체 지향 프로그래밍(OOP)에서 더 이상 확장하거나 변경할 수 없는 마지막 단계의 클래스나 메서드 또는 변수에 사용하는 제어자이다. ‘파이널’이라고 읽는다. final class는 마지막 단계의 클래스로서 더 이상 상속할 수 없으며 다른 클래스의 조상이 될 수 없다. final method는 더 이상 오버라이딩을 할 수 없는 메서드이다. final variable은 더 이상 값을 변경할 수 없는 변수, 즉 상수가 된다.
9.8.abstract : 객체 지향 프로그래밍(OOP)에서 추상 메서드나추상 클래스임을 알리기 위해 사용하는 제어자이다. 영어로 abstract는 ‘추상적인’이라는 뜻이다.
10. 인터페이스
10.1.Abstract Method : 추상 메서드는 선언부만 작성하고 구현부는 작성하지 않은 메소드메서드를 말한다.
10.2.Abstract Class : 추상 클래스는 1개 이상의 추상 메서드를멤버로 가지고 있는 클래스를 말한다. 추상 클래스 중에서 오직 추상 메서드와 상수만을 멤버로 가지고 있는 것을 인터페이스(Interface)라고 한다.
10.3 Interface : 인터페이스란 객체 지향 프로그래밍(OOP)에서 선언부만 작성하고 구현부는 작성하지 않은 추상 메서드와상수만을 자신의 멤버로 가지고 있는 추상 클래스를 말한다. 실제 구현된 것이 전혀 없는 기본 설계도에 해당한다. 일반 클래스와 달리 인스턴스를 생성할 수 없지만, 클래스 작성에 도움을 주고 개발 표준을 제시하기 위해 사용한다. 인터페이스는 두 객체 간의 연결을 돕는 중간 역할을 함으로써, 설계와 구현을 분리하는 것을 가능하게 한다.
'인터넷' 카테고리의 다른 글
DATABASE, 자료구조, 테이블, 쿼리, 명령어, 트랜잭션 정리 (0) | 2023.02.26 |
---|---|
시스템 환경, 소프트웨어, 운영체제, 웹서버, WAS, DBMS 정리 (2) | 2023.02.25 |
프로그램 언어 및 개발 환경 안내 (2) | 2023.02.23 |
개발방법론, 아키텍쳐, 아키텍트, 시스템 연계 개념 정리 (0) | 2023.02.22 |
취약점 및 성능 테스트, 보안, 취약점 용어정리 (0) | 2023.02.21 |