이클립스 (eclipse)
기본적으로 자바 프로그램을 개발하기 위해 프로그램이 필요하다.
이클립스(프로그램)에서는 플러그인(plugin)을 설치하면 웹 애플리케이션, C, C++ 개발까지 다양한 개발 환경을 구축할 수 있어 이클립스를 사용한다.
이클립스는 무료 오픈 소스 통합 개발 환경(IDE: Integrated Development Environment)를 제공한다.
IDE는 프로젝트 생성, 자동 코드 완성, 디버깅등과 같이 개발에 필요한 여러 가지 기능을 통합적으로 제공해주는 틀을 말한다.
- 이클립스 사용 용어
워크스페이스 : 이클립스 실행과 관련된 메타 데이터와 프로젝트 폴더가 저장되는 폴더
뷰 : 이클립스 내부에서 사용되는 작은 창
퍼스펙티브(perspective): 프로젝트를 개발할 때 사용할 수 있는 뷰들을 미리 묶어 이름을 붙여 놓은 것
ex) java, svn 등
인코딩
코드화, 암호화를 의미하는 단어를 인코딩이라고 한다. 쉽게 이야기 해 컴퓨터가 이해할 수 있는 형태로 바꿔준다는 뜻이다.
반대의 말은 디코딩(복호화)라고 한다.
자바에서는 주로 인코딩을 UTF-8로 선언한다. UTF-8은 가변 방식을 사용하며 이때 이야기 하는 가변 방식은 글자마다 byte크기가 다른 것을 말한다.
이클립스를 처음 설치할 시 기본 설정이 UTF-8이 아닌 관계로 인코딩 설정을 적용해 주어야 한다.
바이트 코드 파일과 자바 가상 기계
자바 프로그램은 바이트 코드 파일(.class)로 구성된다.
바이트 코드 파일은 운영체제(os)에서 바로 실행할 수 없기에 컴파일이라는 과정을 거져 완전한 기계어로 변경해줘야 한다. 기계어로 변환하는 과정을 매번 할 수 없어 만들어진 것이 자바 가상 기계(JVM)이다.
바이트 코드 파일 : 자바 소스 파일을 javac 명령어로 컴파일한 파일
기계어 : 컴퓨터가 이해하고 실행할 수 있는 0과 1로 이루어진 코드
자바 가상 기계(JVM) : Java Virtual Machine이라고 하며 완전한 기계어로 변역하고 실행해줌
프로그래밍 언어 : C, C++, 자바, 파이썬 등
소스 파일 : 프로그래밍 언어로 작성된 파일
컴파일 : 소스 파일을 기계어로 번역하는 것. 컴파일을 담당하는 소프트웨어는 컴파일러라고 함
JDK : 자바 개발 도구의 줄임말. 자바로 프로그램을 개발할 수 있는 실행 환경(JVM)과 개발도구(컴파일러) 제공.
환경 변수 : 운영체제가 실행하는 데 필요한정보를 제공해주는 변수. JDK 설치 후 사용하려면 환경변수의 JAVA_HOME 환경변수를 등록하고 Path 환경 변수를 수정해야 함.
자바 소스 파일 구성
자바 소스 파일은 클래스 선언부와 클래스 블록으로 구성된다.
클래스 선언부는 클래스의 모양을 정의 하는 걸 뜻한다.
class 키워드와 클래스의 이름을 선언하거나, 멤버 변수를 선언, 초기화 한다.
main() 메소드, 주석, 실행문으로 구성되어 있다.
main() 메소드는 코드 파일을 실행할 때 가장 먼저 실행되는 메소드(함수)이다. main() 메소드를 프로그램 실행 진입점이라고 부른다.
주석은 프로그램의 실행과는 상관없이 코드에 설명을 붙인 것을 말한다. 컴파일 과정에서 무시되며 실행문만 바이트 코드로 번역된다.
실행문은 변수 선언, 값 저장, 메소드 호출에 해당하는 코드를 말한다. 실행문의 끝에는 세미콜론(;)을 필수로 붙여야 한다.
막간의 상식
1. Java에서 사용하는 패키지는 코드 정리를 효율적으로 하기 위한 일종의 폴더와 같다.
2. 자바 사용 주석은 총 3가지로 한 줄씩 주석, 여러 줄 주석, 도큐먼트 주석이 있다.
ex)
// 한 줄씩 주석 : 주석된 줄은 컴퓨터에서 컴파일 하지 않.
/*
* 여러 줄 주석
* : 안에 있는 모든 내용을 주석 처리함.
*/
/**
* 도큐먼트 주석 : 외부에서 주석을 볼 수 있음.
*/
3. 자바는 객체 지향 프로그래밍이다.
객체 지향적이란 작은 부품을 먼저 만들고 만들어진 객체들을 모아 하나의 프로그램을 완성하는 걸 뜻한다.
프로그래밍 방법론 중 하나다.
'자바' 카테고리의 다른 글
[Java 초급] 4.5장 테스트 (2) | 2023.12.06 |
---|---|
[Java 초급] 4장 Scanner 이용과 타입 변환 (0) | 2023.12.05 |
[Java 초급] 3.5장 테스트 (0) | 2023.12.05 |
[Java 초급] 3장 타입들의 종류 (0) | 2023.12.05 |
[Java 초급] 2장 변수 선언 및 변수 초기화 (0) | 2023.12.03 |