Java란?
Java란 1991년 제임스 고슬링(James Gosling) 을 비롯한 Sun Microsystem 연구원들이 개발한 고급 프로그래밍 언어다. 초기에는 가전제품이나 휴대용 디바이스에 사용하기 위한 언어로 개발되었으며, 현재는 앱이나 웹 어플리케이션에서 많이 사용되고 있다. Java의 특징은 아래와 같다.
1. 객체 지향 프로그래밍 언어
객체 지향 프로그래밍(OOP: Object Oriented Programming) 이란 고유의 속성과 기능을 가진 객체(object) 간의 연결로 이루어지는 프로그래밍 패러다임이다. Java는 클래스(class) 라는 문법 구조를 통해 객체를 설계하며, 필요한 시점에 동적으로 로드하여 사용한다.
2. 메모리 관리가 용이
프로그래머가 직접 객체를 관리하지 않고, 가비지 컬렉터(Garbage Collector) 가 메모리(RAM)을 자동으로 관리하기 때문에 생산성이 높다.
3. 플랫폼 독립적 : Write once, run anywhere
Java는 바이트코드(Byte code) 라는 중간 파일을 만들어둔 뒤,각 플랫폼에 설치된 자바 가상 머신(JVM) 이 최종 컴파일하여 실행한다. 즉 개발자는 플랫폼과 관계없이 일관된 프로그래밍 방식을 사용하므로 이식성과 생산성이 높다.
Java 용어
1. Java SE
Java는 다양한 환경에서 필요한 사항들을 Edition이라는 개념으로 구분한다. 그 중 SE(Standard Edition) 는 자바 개발에 필수적인 도구들이나 라이브러리를 정의하는 기본 표준이다. 이 외에는 서버 애플리케이션을 개발하기 위한 기업용 표준인 Java EE(Enterprise Edition) 나, 소규모 환경에 적합한 Java ME(Micro Edition) 등 존재한다.
2. JDK
JDK(Java Development Kit : 자바 개발 도구) 는 Java SE의 구현체로, 자바실행환경 과 컴파일러 등의 개발도구를 포함한다. Oracle 이 제공하는 공식 JDK(상업 이용 유료) 와, 전면 무료버전인 Open JDK 가 있다.
- ex) Java SE 17.0.13 (LTS) : SE의 구현체이며 주버전은 11, 개선 버전은 0이고, 총 13번의 업데이트를 거쳤으며 장기 지원 서비스(Long Term Service) 를 제공한다.
3. JRE
JRE(Java Runtime Environment : 자바 실행 환경) 은 자바가상머신 과 각종 라이브러리 를 포함하는 실행환경이다. 단순히 자바 어플리케이션을 구동하기 위해서는 JRE 만 설치하면 된다.
4. JVM
독자적인 규격에 따라 Java 바이트 코드를 실행하는 가상의 운영체제(프로그램)이다.
Java 네이밍 컨벤션
Java는 다양한 구성요소에 사용자가 직접 이름을 붙여줄 수 있으며, 이를 식별자(identifer) 라고 부른다. 식별자의 명명 규칙은 통상적으로 아래와 같다.
- 하나 이상의 단어로 이루어져야 한다.
- 첫번째 글자는 숫자가 될 수 없다.
- ‘$’, ‘_’ 외의 특수 문자는 사용할 수 없다
- Java의 예약어는 사용할 수 없다.
Java의 예약어
예약어(keyword) 란, Java에서 특정한 용도로 사용하기 위해 정의된 단어들을 의미한다.
분류 | 종류 |
제어문관련 | if, else, switch, case, default, while, do, for, break, continue, return, yield … |
접근제한자 | public, protected, private … |
클래스선언 | class, interface, enum, extends, implements, package, import … |
인스턴스관련 | new, this, super … |
예외처리 | try, catch, finally, throw, throws … |
기타 | static, final, abstract, native, synchronized, strictfp, transient, volatile, assert, instanceof … |
Java 소스파일 구조
/**
API 주석 : 이 문서는 기본적인 자바 구조를 설명합니다.
*/
public class Hello {
public static void main(String[] args) {
/*
여러줄 주석 : 메인함수
*/
System.out.println("Hello, Java!"); // 주석
}
}
Java 소스파일(source file) 은 .java 확장자를 사용하며, 객체를 생성할 수 있는 문법(class, interface ...)을 기본으로 한다. 대부분의 IDE는 소스파일을 프로젝트 내의 src(source의 약자) 폴더에 보관하고 관리한다. 위의 예시 코드를 바탕으로 Java 소스파일의 기본적인 구조에 대해 간단하게 살펴보도록 하자.
1. 클래스 선언
클래스(class) 는 Java 프로그램을 구성하는 기본단위이자 객체의 설계도이다. 1개의 소스파일 내에는 일반적으로 소스파일과 이름이 같은 public class가 1개 존재한다.
2. main 메서드
클래스 내부에서 객체의 기능을 담당하는 함수를 메서드(method) 라고 부르며, 그 중 main 메서드 는 진입점(entry point) 역할을 하며 Java 애플리케이션 실행시 JVM에 의해 가장 먼저 실행된다. 따라서 프로젝트 내에는 최소 1개의 main 메서드가 존재해야 한다.
3. 주석(comment)
주석은 컴파일 시에 제외되는 코드로 개발자의 가독성을 높이기 위해 사용된다. 주석은 코드 어디에나 사용 가능하지만, 문자열 중간에는 사용할 수 없다.
종류 | 형태 | 설명 |
한줄 주석 | // ~ | 한줄로 이루어진 주석으로, 간단한 설명을 작성할 때 사용한다. |
여러줄 주석 | /* ~ */ | 여러줄로 이루어진 주석으로 긴 설명을 작성하거나, 일부 코드를 임시 비활성화 시킬 때 사용한다. |
API 주석 | /** ~ */ | 해당 코드의 필드, 메서드, 사용법 등을 정리한 JavaDoc 만들 때 사용한다. |
4. 출력문
Java는 문자열을 출력하기 위한 다양한 기능을 제공하는데, 기본적으로는 System.out.println() 메서드를 사용한다. 이 메서드는 끝에 자동으로 개행을 해주는데, 개행이 필요하지않다면 System.out.print() 메서드를 사용하면 된다.
Java 컴파일 및 실행
일반적으로 Java 애플리케이션 개발은 IDE에서 이루어지며, 컴파일부터 실행까지의 과정이 자동으로 이루어지므로 아래와 같은 콘솔 명령어를 직접적인 쓸 일은 많지 않다.
1. 환경변수 설정(윈도우)
윈도우의 cmd에서 Java 명령어를 사용하기 위해선 환경설정에서 아래와 같은 환경변수를 설정해야 한다.
- JAVA_HOME : 주 사용 JDK의 설치 경로
- Path : 자바 컴파일러나 실행도구의 경로 (%JAVA_HOME%\bin)
- CLASSPATH : 자바 클래스와 라이브러리의 경로 (%JAVA_HOME%\lib)
이후 javac -version / java -version 으로 설치된 컴파일러 / JVM 버전을 확인해서 제대로 출력되는 것을 확인한다.
2. 소스파일 컴파일
javac Hello.java
// 한글이 있을경우 javac -encoding UTF-8 Hello.java
자바 컴파일러(javac.exe)로 소스파일을 컴파일한다. 이 때, 한글파일이 있다면 chcp 65001을 입력하여 콘솔 인코딩을 변경하거나, 인코딩 옵션을 추가한다. 위의 예시의 경우, 컴파일 후 Hello.class 라는 바이트코드 파일이 형성된다.
3. 파일 실행
java Hello
JVM (java.exe)로 클래스파일을 실행한다. 컴파일과는 달리 확장자를 명시하지 않음에 주의하자.
'Java.Language > Basic' 카테고리의 다른 글
[Java] 기본 문법 : 07. 제네릭 (0) | 2023.02.05 |
---|---|
[Java] 기본 문법 : 06. 입출력 (0) | 2023.02.05 |
[Java] 기본 문법 : 05. 예외 (0) | 2023.02.05 |
[Java] OOP : 05. 인터페이스 (0) | 2023.02.05 |
[Java] OOP : 04. 클래스(2) (0) | 2023.02.05 |