설치 -> 실행 -> 제어문 -> 메소드 -> 객체지향 -> 상속 -> 예외
다음과 같은 과정 중에서 많은 학습자가 많이 공부를 했는데도 완주하지 못하면 포기한듯한 느낌을 받는다. (나야 나.. 나야 나...😥😥)
java는 진입장벽이 크다. 따라서 전체적인 수업을 빠르게 완주하는 게 중요하다. 학습은 신속하고 기민하게 끝내고 실습은 천천히! 제일 먼저 숲을 먼저 보자.
Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다.
JDK(Java Development Kit)는 Java SE의 표준안에 따라서 만들어진 구체적인 소프트웨어다. Java 개발자라면 JDK를 다운받아서 설치해야 한다. 여기에는 Java 프로그램을 실행하면 Java 코드를 컴파일하는 컴파일러와 개발에 필요한 각종 도구 그리고 JRE가 포함되어 있다. 즉 개발자를 위한 자바 버전이다.
JRE(Java Runtime Environment)는 자바가 실제로 동작하는 데 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다. 자바로 만들어진 프로그램을 구동하려고 한다면 이것을 설치한다. 일반인을 위한 자바 버전이라고 할 수 있다.
JVM(Java Virtual Machine) JVM은 자바가 실제도 구동하는 환경이다. 자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서 해결한다. 즉 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할이라고 할 수 있다.
jdk와 jre는 포함관계에 있다.
자바의 개발환경인 JDK에는 3가지가 있다. 이 중에 가장 중요한 JDK는 Java SE다. Java SE는 Java EE나 Java ME의 기반 환경이기도 하므로 무엇을 하든 간에 Java SE를 JDK를 설치해야 한다. 우리 수업은 Java SE를 다룬다.
우선 코드에 대해서 알아보자. 코드(code) 혹은 소스(source)는 프로그램이 어떤 모습이고, 어떻게 동작해야 하는가를 표현한 일종의 설계도라고 할 수 있다. 그런데 컴퓨터 프로그래밍에서의 설계도는 설계도 이상의 의미가 있다. 설계도를 컴퓨터에게 제출하는 순간 컴퓨터는 그 설계도에서 요구하는 프로그램을 마법처럼 만들어주기 때문이다. 그래서 프로그래밍에서의 설계도는 그 프로그램 자체라고도 할 수 있다. 코드는 자바의 문법에 맞게 만들어진 텍스트 파일이고, 이 파일의 확장자는 .java를 사용한다.
코드 자체를 바로 실행할 수는 없다. 자바의 문법은 사람만이 이해할 수 있는 형식으로 되어 있기 때문이다. 이 코드를 컴퓨터가 이해할 수 있는 상태로 변환해주는 과정이 필요한데 이것을 컴파일(compile)이라고 하고, 이 작업을 하는 소프트웨어를 컴파일러(compiler)라고 부른다
javac Helloworld.java를 입력하면 Helloworld.clss가 생긴다. 이게 바로 vm이 이해할 수 있는 Byte Code로 이루어져있는 클래스 파일이다. 이 파일을 vm에게 제춣해서 vm 클래스 파일에 적혀있는대로 실행될 수 있도록 해야 한다. 그때 사용하는 명령어가 java이다.
도구의 효용과 함께 기억해야 할 것이 있다. 효용에는 대가가 따른다. 삽질을 배우는 데는 10분밖에 걸리지 않는다. 하지만 포크레인을 다루기 위해서는 그보다 훨씬 긴 학습의 시간이 필요하다. 도구가 강력할수록 그 도구를 숙지하기 위해서 더 많은 시간이 필요하다. 하지만 사람들은 도구의 효용에만 관심을 가진 나머지 너무 적은 시간을 도구의 학습에 할당하곤 한다. 도구를 익힐 때는 충분한 시간을 할당해야 한다는 점을 기억하자.
이클립스(Eclipse)는 가장 대표적인 자바의 개발도구다. 통상 IDE라고 불리는 소프트웨어로 분류된다. IDE는 Integrated Development Environment로 한국어로는 통합 개발 환경 정도로 번역할 수 있다. IDE는 개발에 필요한 다양한 도구들이 결합되어 있는 소프트웨어로 소스 편집기는 기본이고, 컴파일러, 디버거, 유닛테스트와 같은 도구들이 결합되어 있는 거대 소프트웨어를 포괄적으로 의미한다.
이클립스를 켜면 보이는 페이지들은 view로 구성되어있습니다. 이 view 페이지들은 사용자가 자유롭게 편집할수 있으며 간단하게 몇가지 기능을 살펴보면
Package Explorer : 패키지를 관리합니다.
Outline : 제작한 소스코드를 시각적으로 표현해 일목요연하게 만듭니다.
Problems : 소스코드의 문제들을 알려줍니다.
Console : 제작한 소스코드가 실행되면 나오는 결과를 출력해줍니다.
Perspective : 우측 상단에서 자바 개발 / 디버그 화면을 전환할수있습니다.
(나는 일단 sts를 이용해서 진행함😶😶😶)
bin은 binary의 약자, src는 source의 약자
sts를 통해 작성된 java 코드는 src 안에 저장, sts를 통해 컴파일된 파일들은 bin에 저장된다.
Package Explorer에서 org.opentutorials.javatutorials.eclipse 같이 패키지 이름을 입력하면 해당하는 디렉토리(폴더)들을 제작합니다.보통 도메인을 사용한다 .
class를 만든다 = 소스코드를 만든다와 같은 뜻. 소스코드를 저장시 자동으로 실행파일 class까지 제작해준다.
실제 sts 내에서 java 소스코드를 저장하였더니 bin 폴더 내 자동으로 class 파일이 생성되었다.
이클립스는 굉장히 방대한 프로그램이기 때문에 이 외에도 수없이 기능이 많다. 시중의 서적이나 영상물을 통해 이클립스를 공부하면 생산성을 늘릴수 있다.
이 글은 생활코딩의 자바 강좌를 바탕으로 정리한 내용입니다.