프로그래밍 언어를 배우면서 가장 근본적인 질문은 어떻게 배워야 하는가에 대한 질문 이었습니다. 프로그래밍은 우리에게 너무나 많은 일을 할 수 있는 강력한 힘을 줍니다. 하지만 문제가 있죠. 너무 강력한 힘을 주면서 동시에 너무나도 큰 자유를 선사해준다는 점입니다. 

자유

자유... 자유는 누구나 원하는 일이지만 갑자기 주어지면 뭘 해야 할지 감이 안 옵니다. 초등학교, 중학교, 고등학교에서는 하라는 데로 하기만 하면 됩니다. 심지어 대학교 조차도 커리큘럼이 있습니다. 이러한 커리큘럼을 특정한 시간 내에 특정한 주제가 정해진 상태로 우리는 하라는 일을 하면 됩니다. 하지만 프로그래밍은 우리에게 자유를 줌과 동시에 무엇을 해야 할지 우리가 스스로 결정해서 나가야 합니다. (물론 회사에 들어간다면 해야 할 일이 주어지지만 프로그래밍을 배우는 주된 이유는 내가 원하는 것을 마음껏 펼칠 수 있기 때문입니다.)

 

그렇다면 무엇을 배워야 할지 모르는 상태에서 나름의 틀을 주는 것은 무엇일까요? 그건 책이죠. 아무것도 할 줄 모른다면 일단은 머릿속에 무언가라도 넣은 상태에서 무엇을 해야 할지 결정해야 합니다. 그것도 싫다면 자바에서 주어지는 여러 기능을 시험삼아 테스트 해봐야 합니다. 틀이 주어지건 안 주어지건 간에 우리는 주어진 기능을 시험해보고 어떻게 사용해야 하며, 쓰다보면 생기는 질문을 꼭 해결하면서 진행해야 합니다. 

 

그렇다면 오늘의 포스팅에서는 어떻게 여러 기능을 연습해볼 수 있는지 살펴보도록 하겠습니다.

1. 어떻게 테스트를 할 것인가?


우리에게 가장 처음의 프로그래밍의 시작은 Hello, World가 주어진 것은 우연이 아닙니다. 가장 기본적인 입출력 프로세스를 익히기 위함이죠. Stdout이라 하는 Standard OutPut은 프로세스에서 가장 기본적인 인터페이스이죠. 그러면 단 한 줄을 분석해보도록 합시다.

 

System.out.println("Hello, World!");

 

자바의 기본적인 API를 확인할 수 있는 곳은

docs.oracle.com/en/java/javase/15/docs/api/index.html

 

Overview (Java SE 15 & JDK 15)

This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP

docs.oracle.com

이곳에서 확인할 수 있다. 필요한 내용이 있을 때마다 Search를 활용해서 사용하도록 해야 한다.

상단에 보면 Search가 있으니 궁금한 내용을 찾아보는 습관을 들이자. 참고로 영어가 잘 안되도 우리는 할 수 있다. 네이버 파파고와 구글 번역이 있으니 전혀 무섭지 않다. 번역기를 돌리면서 영어로도 한번 읽어보자. 차분히 영어 실력도 같이 늘어가는 것을 볼 수 있다. 언제까지고 영어가 두려워서 영어 페이지가 나오는 것을 외면할 것인가! 한번 시도해보자. 당장에 하루 이틀 만에 확 늘어날 수는 없지만 꾸준히 하면 영어 페이지가 나와도 읽을 만할 정도가 될 것이다. 

 

우리는 여기서 System을 찾아볼 것이다.

많은 검색 결과가 나온다. 그 중에서 java.lang.System을 클릭해서 들어가보자. 

두 가지 정보를 바로 얻을 수 있다. Module : java.base와 Package : java.lang 모듈과 패키지를 알아볼 수 있다. 그러면 우리가 모르는 정보는 모듈과 패키지란 단어를 모른다. 다시 찾아보면 된다. 어쨋든 모듈이란 기능상 비슷한 것을 모여서 만든 작은 부품이 조립된 하나의 덩어리를 모듈이라 부른다. 

 

모듈


현실 세계에서 자동차를 만들기 위해서는 수 많은 모듈이 필요하다. 모듈은 수 많은 부품으로 이루어져 있다. 이런 관점에서 보았을 때 모듈은 하나 또는 하나 이상의 기능을 하는 특정한 덩어리이며, 나사와 같은 작은 부품이 모여서 최소한의 기능을 할 수 있게 만들어주는 하나의 덩어리라고도 볼 수 있겠다. 대표적인 모듈은 ABS 모듈이다. 자동차 시스템에서 브레이크 시스템을 담당하는 녀석으로 Anti-lock Break System을 의미한다. 브레이크를 밝을 경우, 한 쪽 바퀴가 먼저 잠기는 것을 방지해서 차가 회전하는 것을 막아주는 역할을 한다.

 

ABS 모듈의 구성은 바퀴속도 감지기, ECU(전자 제어 모듈), 유압조정장치, 경고등 등이 기본적인 구성 성분이다. 여기서는 다른 모듈을 포함하기도 하는 것이 모듈이다. 소프트웨어에서도 마찬가지이다. 이러한 모듈의 크기는 천차만별인데, 모듈의 크기가 커지면 처음에 설계하기가 어려워지는 대신에, 모듈과 모듈을 합치는 과정이 편해진다. 반대로 모듈의 크기가 작아지면 처음에는 설계하기 쉽지만, 이러한 모듈들을 조립하는 단계에서 힘들어 진다. 자동차에서도 부품이 너무 많은 나머지 조립할 때, 일반인은 하지 못하는 것과 마찬가지이다. 하지만 조금 더 모듈의 크기가 큰 전자제품의 경우, 자동차 보다 조립하기는 쉬운 경향이 있다. 물론 이러한 예는 정확한 예는 아니지만 모듈에 대해 이해하기에는 충분하리라 생각한다.

 

모듈을 사용하는 이유는 사람이 다룰 수 있는 단위로 나누어서 소프트웨어를 설계하기 쉽고 유지보수 하기 쉽게 만들기 위함이다. 프로그램이 하나의 덩어리로만 이루어진다면 우리는 다음 소프트웨어 버전을 만들기 위해서 처음부터 설계해야할 것이다. 또한 특정 부분이 고장나서 고치려고 할 때, 그 소프트웨어를 다시 사야 할 것이다. 

 

지금 세상은 모듈화가 잘 이루어져 있어서 특정 예를 들긴 어렵지만, 소비자의 입장에서 예를 들어보로독 하자. 대표적인 덩어리 모듈의 예시를 들어보자면 핸드폰에서 탈착식 배터리와 일체형 배터리의 차이라 볼 수 있다. 탈착식 배터리의 장점은 배터리의 수명이 다 되어, 새 것으로 교체하고자 한다면 언제든지 교체가 가능하다. 하지만 일체형 배터리는 그렇게 하기 어렵다. 액정을 뜯어내야 하며, 그것을 다시 붙여야 한다. 이러한 과정에서 소비자가 직접 하기 힘든데다가 엔지니어에게 맡길 경우 많은 비용이 소모되는 것이다. 

 

패키지


  패키지란 Class들의 모음을 패키지라 한다. Package(패키지)란 말에서 알 수 있듯이 하나의 선물 꾸러미라 생각하면 편하겠다. 여기에 추가로 인터페이스를 같이 묶어두고 하나의 폴더에 저장해둔 것이다. 여기서 인터페이스라 하면 사용할 수 있게끔 만들어주는 장치라 보면 된다. 전자기기에서는 전기 코드가 인터페이스에 해당한다. (전기 코드 자체도 인터페이스이지만, 전자기기의 여러 버튼들 또한 인터페이스라 볼 수 있다.)Interface는 영어 단어 해석에서 보자면 [결합부], [접속기], [대면부] 등의 뜻을 가지고 있다. 특정 물체와 물체가 맞닿는 곳을 인터페이스라 할 수도 있다. 혹은 사물과 사용자가 서로 의사소통 할 수 있도록 만들어 놓은 매개체를 의미한다. 사용자와 맞닿은 인터페이스를 UI (User Interface)라 하기도 한다. 핸드폰에서 보이는 화면 대부분이 UI이기도 하다. 

  패키지를 두는 대표적인 이유 중 하나는 클래스 이름의 고유성을 보장하기 위해서이다. 프로그래밍 프로젝트가 커지면 커질 수록 패키지 이름이 겹치는 경우가 있는데, 이러한 상황에서 다른 패키지를 사용함으로써 중복을 회피할 수 있는 것이다.

  예로 들자면, A와 B는 파일 123을 저장하고 싶은 상태이다. 그런데 바탕화면에다가 저장하면 파일이 중복되서 하나의 파일이 사라질 확률이 있다. 이러한 상태에서 폴더를 따로 둠으로써 이를 피하는 것이다. A는 폴더 'A의 폴더'에 저장하고, B는 'B의 폴더'에 저장함으로써 파일 123은 유지가 되는 것이다.

  이제 불러오는 방식을 확인해보면, A의 폴더 -> 파일123B의 폴더 -> 파일123은 분명히 구분이 가능한 상태가 되었다.

 

* 이곳에서는 패키지의 사용법이 아닌 패키지가 무엇인지만 보도록 하고 나중에 패키지를 사용하는 방법에 대해 자세히 다루도록 하자.

 

 

자바에서 둘 사이의 차이점? 패키지와 모듈


그렇다면 모듈과의 차이점은 무엇인가? 패키지는 클래스와 인터페이스를 묶어놓은 하나의 폴더를 의미한다. 모듈은 이러한 패키지를 포함해서 특정 필요한 리소스를 모아놓은 하나의 컨테이너이다. 패키지보다는 모듈이 조금 더 상위 개념이라 볼 수 있지만, 그렇다고 패키지 위에 모듈이 있다고는 볼 수 없다. 실행가능하도록 최소한의 것들을 모아놓은 것이라 생각할 수 있다. 그래서 하드웨어적 성능이 떨어지는 IoT 기기 상에서도 응용 프로그램을 실행가능하다. 

 

 

다시 System.out.println으로 돌아가자.

여기서 System은 System class를 의미하고 있으며, 여러 class와 메소드를 포함하고 있는 것이다. 

module에서는 java.base, Package java.lang에 들어있다. 

여기에서는 PrintStream에서 out 필드임을 확인할 수 있다. out은 표준 출력 스트림을 의미한다. 여기서

 

스트림이란? 


  마우스와 키보드 같은 입력 장치와 모니터, 프린터기 같은 출력 장치에서 보낸 신호와 컴퓨터에서 보낸 신호는 컴퓨터 상에서 알아서 처리해준다. 우리는 하드웨어적인 부분을 신경쓸 필요가 없다. 이러한 작업을 해주는 것이 스트림이다. 

 

  스트림은 방향에 따라 두 가지로 나뉘어지는데, 컴퓨터 쪽으로 들어오는 스트림을 입력 스트림이며, 컴퓨터 쪽에서 사용자 방향으로 나가는 스트림을 출력 스트림이라 한다. 

 

여기까지만 공부해도 충분하다. 여기서 더 파고 들어서 그 원리까지 알면 좋겠지만, 마음이 허락 안할 수 있기에 이해력과 마음이 허락하는 한 파고들면 된다. 

 

 

스트림에 이어서 println


println은 특정 값을 입력받은 뒤에 사용자가 볼 수 있도록 출력해주는 역할을 한다. 하지만 println은 하나만 정의된 것이 아니다.

다양한 형태의 println이 정의되어 있다. 이렇게 하는 이유는 사용자가 어떤 값을 입력할지 모르기 때문이다. 우리가 앞서 보았듯이 컴퓨터는 한정된 형태의 데이터를 인식할 수 있다. 정수면 정수, 실수면 실수, 문자면 문자로 인식하는 것이다. 사람이야 각 형태를 따로 따로 자동으로 인식되지만 컴퓨터는 그러지 못하다. 그러므로 이를 모두 인식할 수 있도록 도와주는 것이 다양한 형태로 정의해두는 것이다. 우리는 이러한 형태를 자바의 다형성이라 불리며 실제 구현 방식 중 하나인 오버로딩(Overloading)방식이라 한다. 

 

같은 이름의 함수를 여러 개 정의하고, 매개변수와 그에 따른 유형 그리고 개수를 다르게 함으로써 사용자의 다양한 호출에 반응하기 위함이다. 그래야지 사용자가 숫자를 호출하건, 문자를 호출하건 다양하게 대응할 수 있는 것이다. 

우리는 프로그래밍 언어를 배우게 되면 가장 먼저 출력해보는 단어들인 Hello, World를 출력해보도록 하자. 기본적인 출력을 해봄으로써 프로그래밍이 어떠한 과정으로 진행되는지 살펴보자라는 의미를 가지고 있다. 프로그래밍 세계로의 첫 걸음인 것이다. 중요하면서도 동시에 무섭기까지 하다.

 

우리는 Java IDE를 사용하도록 할 것이다. 다만, 유명한 이클립스를 사용하진 않을 것이다. 이유는 안 이뻐서다. (가장 중요한 이유다.) 그렇다면 무엇을 사용할 것인가? IntelliJ IDEA를 사용할 것이다.

 

이유는? 역시 이뻐서다. 그냥 필자의 마음에 들어서다. 처음에 뭐가 좋나 뭐가 좋나 고민할 필요가 없다. 이쁘고 무료로 지원되냐? 가 중요하다.

 

두 가지 다운로드 옵션이 존재한다. 하나는 Ultimate, 하나는 Community이다. 커뮤니티는 무료 버전이다. 하지만! 만약 학생이라면 학교 이메일을 통해 인증하고, 1년 간 무료로 사용해보도록 하자. 정말 편하다. 물론 우리에게는 더욱 강력한 VSCode도 있긴 하지만, 처음부터 사용하기엔 부담스럽다. 그냥 알아서 해주는 IntelliJ를 사용하도록 하겠다.

 

www.jetbrains.com/ko-kr/idea/

 

IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE

Enterprise Java, Scala, Kotlin 등을 지원하며 강력한 기능을 제공하고 인체 공학적으로 설계된 Java IDE

www.jetbrains.com

공식 홈페이지이다. 간단하게 뭐가 우수한지 말하자면, 쓰다보면 가끔 언어를 이해하고 내게 필요한 것을 추천해줄 때 편안함을 느낀다. 물론 더 다양한 이유가 많지만, 그런건 처음에는 보이지도 않는다. 누차 이야기하지만 편하고 이뻐서다!

[학생 인증이 되시면 반드시 Ultimate을 사용하도록 하세요.]

 

 

둘의 차이는 아직 우리가 못 느낀다.

 

그러나 프로그래밍을 하면 할 수록, 알아가면 알아갈수록 필요한 기능들이 보이기 시작할 것이다. 

물론 다른 IDE도 있다.

 

code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

추천한다. 무료다! 강력하다! 이쁜걸로 쓰면 되지만 VSCode는 직접 하나하나 만들어가야 한다. (플러그인을 잘 설치해야 한다.) 좋고 나쁜건 없다. 그냥 아무거나 써도 된다. 사용자가 중요하다. 전동 드릴을 사야하는데 어떤 브랜드를 써야 하나요? 삼대장 같은게 있으니 그것 중에 아무거나 골라서 쓰면 된다.

노트북은? LG, 삼성, 애플과 비슷한 이미지다. 

 

인텔리제이 설치와 더불어 초기 설정에 알고 싶다면, goddaehee.tistory.com/195

여기에 추가로 플러그인 설치를 통해 한글화를 진행하면 된다. 

 


프로젝트까지 완료되면 우리는 Hello World를 볼 수 있다.

 

class Main {
    public static void main(String[] args){
        System.out.println("Hello, Name!");
    }
}

을 치고서 실행하면 된다. 

실행하면 

이런 느낌으로 나오는 것을 확인할 수 있다.

 

 


웹 컴파일러 사용하기


IDE는 편안함을 제공한다는 점에서 아주 좋다. 하지만 설치가 번거롭고 초기 셋팅을 하기까지 귀찮을 수 있다. 게다가 많은 기능이 필요없는 사람의 입장에서 설치는 정말 하기 싫은 작업 중 하나이다. 그러므로 설치하지 않고 인터넷 웹 페이지 상에서 사용할 수 있는 웹 컴파일러를 소개하고자 한다. 많이 사용되기도 하는 웹 컴파일러 중 하나는 이곳이다.

ideone.com/

 

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

ideone.com

컴퓨터가 느리거나 설치가 싫은 사람은 웹 컴파일러를 꼭 써보기 바란다. 추가로 위에 사이트가 접속이 안 될 경우에는 웹 컴파일러라고 구글에 치면 많은 종류가 나오니 취사선택해서 사용해보는 것도 좋다.

 

이런 느낌으로 나온다.

1. 자바란 무엇인가?


Java는 범용 프로그래밍 언어로 썬 마이크로 시스템즈(Sun Microsystems)에서 개발한 언어이다. 현재는 오라클(Oracle)에서 소유권을 가지고 있으며 유료화가 진행된 상태이다. 자바의 가장 큰 특징 중 하나는 플랫폼에 귀속되지 않는 다는 점이다. 코딩을 한번 하고 어떤 플랫폼이던지 간에 사용할 수 있게 만들어졌다. 이는 JVM이라 하는 자바가상머신을 이용해서 플랫폼에 관계 없이 사용할 수 있다. 이러한 특징으로 인해 자바는 많은 인기를 얻게 되었는데, 이는 프로그래밍 언어 순위 차트를 다루는 TIOBE에 가서 확인해도 높은 순위에 있는 것을 확인할 수 있다. 

 

1순위는 C언어, 2순위는 Java, 3순위는 Python이다. 만약에 프로그래밍이 처음이라면 개인적으로 Python을 추천한다. (아니 왜 방금 전까지 Java짱짱맨 해놓고선 Python이라뇨? 정말로 프로그래밍 자체가 처음이라면 순위보다는 일단 입문을 python으로 시작하라는 것이다. 비교적 쉬운 python을 통해 접근해보고 난이도를 낮춘 뒤에 다시 Java를 접근하는 것을 추천한다. 내가 필요한 건 모래성 쌓기인데, 갑자기 중장비 끌고 와서 고층 빌딩을 지을 순 없지 않겠는가? 그렇기에 프로그래밍 경험이 전무하다면 차라리 Python이 낫다는 것이다. 물론 읽는 것을 좋아하며, 수학을 좋아하고 딱딱한 이과감성을 사랑하는 사람이라면 Java, C, C++을 추천한다. 그렇지 않다면 일단은 Python을 통해 경험한 뒤에 들어와도 늦지 않다. 어차피 프로그래밍으로 입문해서 전문가까지 가려는 사람이라면 모든 언어는 다 써봐야 한다. 직업으로 일하려면 상황에 맞는 언어를 사용해야 하므로 언제나 다양한 언어가 필요한 것이다. 고로 결론. 시작은 Python을 추천한다.)

 

C/C++에서 Java로 넘어오면서 아주아주아주 편해진 점 중 하나는 메모리 관리의 자유로움이었다. C/C++가 개발자에게 많은 자유를 주는 만큼 주의해야 할 점이 많았는데, 대표적으로 메모리 관리이다. 그래서 C/C++는 초보자가 진입하기 어려운 장벽이 생겨버렸지만, 그만큼 성능 좋은 코드를 짤 수 있게 되었다. 하지만 현대의 하드웨는 이미 끝을 달리고 있다. 그러므로 우리는 하드웨어를 신경쓸 것이 아니라 내 생각을 구현하는게 더 중요해졌다. 그래서 자동으로 메모리 관리를 해주는 프로그래밍 언어를 쓸 필요성이 있는 것이다. Java와 파이썬은 그러하다.

 

2. 자바의 기본 로고


자바의 기본 로고는 이렇게 생겼다. 커피에 있는 자바인가? 그렇다. 필자도 대학교에서 C/C++를 하고 Java를 처음으로 선택했다. 이유는 로고가 그럴싸해서이다. 현재 자바는 오라클이 소유하고 있으며 유료화가 진행됬다. 그렇다고 무조건 유료는 아니다. 오픈소스가 존재한다. 우리는 오픈소스를 활용해서 진행하려고 한다. 

 

 

3. 설치 및 실행


jdk.java.net/15/

 

JDK 15.0.2 GA Release

JDK 15.0.2 General-Availability Release This page provides production-ready open-source builds of the Java Development Kit, version 15, an implementation of the Java SE 15 Platform under the GNU General Public License, version 2, with the Classpath Exce

jdk.java.net

이곳을 통해서 Java를 받으면 된다. JDK15를 기준으로 진행할 예정이므로 우리도 JDK 15를 받아주면 된다. 

대부분은 윈도우를 사용하고 있으므로 윈도우로 다운로드 받으면 된다. (참고로 여기는 Zip파일이다. 우리가 평소에 받던 exe파일이 아니라 자동 설치따윈 없다. ) 다운로드 받은 뒤에 원하는 장소에 압축을 풀어준다.

필자는 C를 사랑하는 사람이므로 C에다가 Java폴더를 만들어준 뒤에 압축을 풀어주었다. (정확한 이유는 D는 하드드라이브이기 때문에 SSD인 C에다가 풀어주었다.)

 

다 풀고 나면 C:\java\jdk-15.0.2 이러한 형태로 나오게 된다. 

자 이제 안타깝게도 자바를 사용하려면 바로 쓸 수 없다. 물론 바로 사용은 가능하다. 하지만 명령프롬프트를 사용해서 직접 실행파일이 있는 곳으로 끌고 가야 한다. 그래도 한번 해보자.

 

명령프롬프트를 사용하려면 

 

시작버튼 옆에 검색라인에 cmd라 타이핑하자. 그러면 명령프롬프트가 나온다. 명령프롬프트에다가 다음을 입력해보자.

 

cd.. 은 폴더의 하위 폴더로 가게 해준다. 그리고 아까 압축해제한 폴더에서 C:\java\jdk-15.0.2\bin를 찾아둔다. 그리고 cd C:\java\jdk-15.0.2\bin을입력하면 위에 상황과 같이 된다. 

 

여기에 두 가지 명령어를 입력해볼 수 있는데, java -version과 javac이다.

javac는 java의 컴파일러로 우리가 코딩을 해놓은 소스코드를 실행가능한 파일로 바꿔주는 역할을 한다. java 명령어는 바꿔놓은 파일을 java를 통해 실행할 수 있게끔 한다. (일반적으로 윈도우 환경에서 IDE를 사용하게 되면 이러한 내용은 몰라도 상관없다. 하지만 서버환경에서나 IDE가 없는 경우는 이렇게 컴파일하고 실행해야 한다. 그래서 한번은 이렇게라도 진행해보는 것이 중요하다. ) 

* IDE는 통합개발툴인데, 비주얼 스튜디오, 비주얼 스튜디오 코드, 인텔리제이와 같은 것을 의미한다.

 

자 그렇다면 매번 이렇게 귀찮게 실행해야 하는가 싶지만 그렇지 않다. 우리는 환경변수를 활용해서 자바가 설치된 폴더까지 안 가더라도 언제 어디서든 사용할 수 있도록 만들어 줄 것이다. 일반적으로 환경변수는 PATH를 설정해준다고 하는데, 컴퓨터한테 자바가 어디에 설치되어 있는지 알려주는 이정표 역할을 해주는 것이다. 

 

4. 자바 환경변수 설정하기


자바 환경변수 설정에는 명령프롬프트를 활용하는 방법과 시스템 환경설정을 통해서 하는 방법이 있는데, 명령프롬프트를 이용한 방법은 명령프롬프트가 꺼지면 초기화된, 시스템 환경설정을 이용해서 진행하도록 한다.

 

제어판 -> 시스템 정보 -> 고급 시스템 설정을 클릭한다.  [혹은 내 컴퓨터(내 PC) -> 오른쪽 클릭 -> 속성]

 

고급 시스템 설정을 클릭한 뒤에 -> 환경변수를 눌러준다. 

그 뒤에 새로 만들기를 눌러준다.

 

 

시스템 변수 편집에서 변수 이름에는 JAVA_HOME을 적어주고 변수 값에는 Java가 설치된 공간을 넣어주면 된다. 컴퓨터에게 자바가 여기에 설치되어 있다고 알려주는 것이다. 경로에 대한 변수를 할당하며, 그 변수는 JAVA_HOME이다. 대부분의 Java IDE 가 JAVA_HOME을 쓰고 있으므로 우리도 그에 따라 맞춰서 저장한다.

 

그 다음으로 Path를 입력할 것이다. 

Path를 눌러주고 편집을 누르자.

 

그러면 이렇게 나오게되는데, 

여기서 %JAVA_HOME%bin 을 입력해주자. 이것은 아까 저장한 JAVA_HOME이라는 변수에는 자바가 어디에 설치되어 있는지 알려주는 경로가 들어있다. 그곳에서 bin폴더가 있는 곳을 알려주는 것이다. (여기서 bin의 의미는 binary의 bin이다. 일반적으로 실행파일의 의미를 가지고 있다. 그래서 실행파일의 위치는 여기에 있다. 라고 알려준 것이다.)

 

여기까지만 해도 충분히1. 자바란 무엇인가?

Java는 범용 프로그래밍 언어로 썬 마이크로 시스템즈(Sun Microsystems)에서 개발한 언어이다. 현재는 오라클(Oracle)에서 소유권을 가지고 있으며 유료화가 진행된 상태이다. 자바의 가장 큰 특징 중 하나는 플랫폼에 귀속되지 않는 다는 점이다. 코딩을 한번 하고 어떤 플랫폼이던지 간에 사용할 수 있게 만들어졌다. 이는 JVM이라 하는 자바가상머신을 이용해서 플랫폼에 관계 없이 사용할 수 있다. 이러한 특징으로 인해 자바는 많은 인기를 얻게 되었는데, 이는 프로그래밍 언어 순위 차트를 다루는 TIOBE에 가서 확인해도 높은 순위에 있는 것을 확인할 수 있다. 

 

 

 

1순위는 C언어, 2순위는 Java, 3순위는 Python이다. 만약에 프로그래밍이 처음이라면 개인적으로 Python을 추천한다. (아니 왜 방금 전까지 Java짱짱맨 해놓고선 Python이라뇨? 정말로 프로그래밍 자체가 처음이라면 순위보다는 일단 입문을 python으로 시작하라는 것이다. 비교적 쉬운 python을 통해 접근해보고 난이도를 낮춘 뒤에 다시 Java를 접근하는 것을 추천한다. 내가 필요한 건 모래성 쌓기인데, 갑자기 중장비 끌고 와서 고층 빌딩을 지을 순 없지 않겠는가? 그렇기에 프로그래밍 경험이 전무하다면 차라리 Python이 낫다는 것이다. 물론 읽는 것을 좋아하며, 수학을 좋아하고 딱딱한 이과감성을 사랑하는 사람이라면 Java, C, C++을 추천한다. 그렇지 않다면 일단은 Python을 통해 경험한 뒤에 들어와도 늦지 않다. 어차피 프로그래밍으로 입문해서 전문가까지 가려는 사람이라면 모든 언어는 다 써봐야 한다. 직업으로 일하려면 상황에 맞는 언어를 사용해야 하므로 언제나 다양한 언어가 필요한 것이다. 고로 결론. 시작은 Python을 추천한다.)

 

 

 

2. 자바의 기본 로고

 

자바의 기본 로고는 이렇게 생겼다. 커피에 있는 자바인가? 그렇다. 필자도 대학교에서 C/C++를 하고 Java를 처음으로 선택했다. 이유는 로고가 그럴싸해서이다. 현재 자바는 오라클이 소유하고 있으며 유료화가 진행됬다. 그렇다고 무조건 유료는 아니다. 오픈소스가 존재한다. 우리는 오픈소스를 활용해서 진행하려고 한다. 

 

 

 

 

 

3. 설치 및 실행

jdk.java.net/15/

 

JDK 15.0.2 GA Release

 

JDK 15.0.2 General-Availability Release This page provides production-ready open-source builds of the Java Development Kit, version 15, an implementation of the Java SE 15 Platform under the GNU General Public License, version 2, with the Classpath Exce

 

jdk.java.net

이곳을 통해서 Java를 받으면 된다. JDK15를 기준으로 진행할 예정이므로 우리도 JDK 15를 받아주면 된다. 

 

 

대부분은 윈도우를 사용하고 있으므로 윈도우로 다운로드 받으면 된다. (참고로 여기는 Zip파일이다. 우리가 평소에 받던 exe파일이 아니라 자동 설치따윈 없다. ) 다운로드 받은 뒤에 원하는 장소에 압축을 풀어준다.

 

필자는 C를 사랑하는 사람이므로 C에다가 Java폴더를 만들어준 뒤에 압축을 풀어주었다. (정확한 이유는 D는 하드드라이브이기 때문에 SSD인 C에다가 풀어주었다.)

 

 

 

다 풀고 나면 C:\java\jdk-15.0.2 이러한 형태로 나오게 된다. 

 

자 이제 안타깝게도 자바를 사용하려면 바로 쓸 수 없다. 물론 바로 사용은 가능하다. 하지만 명령프롬프트를 사용해서 직접 실행파일이 있는 곳으로 끌고 가야 한다. 그래도 한번 해보자.

 

 

 

명령프롬프트를 사용하려면 

 

시작버튼 옆에 검색라인에 cmd라 타이핑하자. 그러면 명령프롬프트가 나온다. 명령프롬프트에다가 다음을 입력해보자.

 

 

cd.. 은 폴더의 하위 폴더로 가게 해준다. 그리고 아까 압축해제한 폴더에서 C:\java\jdk-15.0.2\bin를 찾아둔다. 그리고 cd C:\java\jdk-15.0.2\bin을입력하면 위에 상황과 같이 된다. 

여기에 두 가지 명령어를 입력해볼 수 있는데, java -version과 javac이다.

 

javac는 java의 컴파일러로 우리가 코딩을 해놓은 소스코드를 실행가능한 파일로 바꿔주는 역할을 한다. java 명령어는 바꿔놓은 파일을 java를 통해 실행할 수 있게끔 한다. (일반적으로 윈도우 환경에서 IDE를 사용하게 되면 이러한 내용은 몰라도 상관없다. 하지만 서버환경에서나 IDE가 없는 경우는 이렇게 컴파일하고 실행해야 한다. 그래서 한번은 이렇게라도 진행해보는 것이 중요하다. ) 

 

* IDE는 통합개발툴인데, 비주얼 스튜디오, 비주얼 스튜디오 코드, 인텔리제이와 같은 것을 의미한다.

 

 

 

자 그렇다면 매번 이렇게 귀찮게 실행해야 하는가 싶지만 그렇지 않다. 우리는 환경변수를 활용해서 자바가 설치된 폴더까지 안 가더라도 언제 어디서든 사용할 수 있도록 만들어 줄 것이다. 일반적으로 환경변수는 PATH를 설정해준다고 하는데, 컴퓨터한테 자바가 어디에 설치되어 있는지 알려주는 이정표 역할을 해주는 것이다. 

 

 

 

4. 자바 환경변수 설정하기


자바 환경변수 설정에는 명령프롬프트를 활용하는 방법과 시스템 환경설정을 통해서 하는 방법이 있는데, 명령프롬프트를 이용한 방법은 명령프롬프트가 꺼지면 초기화된, 시스템 환경설정을 이용해서 진행하도록 한다.

 

제어판 -> 시스템 정보 -> 고급 시스템 설정을 클릭한다. [혹은 내 컴퓨터(내 PC) -> 오른쪽 클릭 -> 속성]

 

고급 시스템 설정을 클릭한 뒤에 -> 환경변수를 눌러준다. 

 

 

그 뒤에 새로 만들기를 눌러준다.

 

 

 

시스템 변수 편집에서 변수 이름에는 JAVA_HOME을 적어주고 변수 값에는 Java가 설치된 공간을 넣어주면 된다. 컴퓨터에게 자바가 여기에 설치되어 있다고 알려주는 것이다. 경로에 대한 변수를 할당하며, 그 변수는 JAVA_HOME이다. 대부분의 Java IDE 가 JAVA_HOME을 쓰고 있으므로 우리도 그에 따라 맞춰서 저장한다.

 

 

 

그 다음으로 Path를 입력할 것이다. 

Path를 눌러주고 편집을 누르자.

 

그러면 이렇게 나오게되는데, 

 

여기서 %JAVA_HOME%bin 을 입력해주자. 이것은 아까 저장한 JAVA_HOME이라는 변수에는 자바가 어디에 설치되어 있는지 알려주는 경로가 들어있다. 그곳에서 bin폴더가 있는 곳을 알려주는 것이다. (여기서 bin의 의미는 binary의 bin이다. 일반적으로 실행파일의 의미를 가지고 있다. 그래서 실행파일의 위치는 여기에 있다. 라고 알려준 것이다.)

 

여기까지만 해도 java는 실행이 되지만 추가적으로 classpath가 들어있다. 클래스 파일의 경로를 알려주는 것으로 환경변수로 마찬가지로 관리한다. 자동으로 등록되기도 하지만, 환경변수로 등록해보도록 하자.

 

다시 한번 새로 만들기를 누르고

CLASSPATH와 %JAVA_HOME%\lib를 등록해주자.

'\' 이 문자는 Enter 위에 존재한다. 자주 쓰이므로 잘 기억해두도록 하자.

 

자 이제 등록이 끝났다.

잘 되었는지 확인하려면 아까와 같이 명령프롬프트를 켜고! javac 혹은 java -version을 입력하면 된다. 그리고서 정상 메시지가 출력되면 설정은 완료된 것이다. 

 

자바가 설치되어 있는 곳까지 가지 않더라도 같은 메시지가 나오는 것을 확인할 수 있을 것이다.

이런식으로 D폴더에 위치하고 있어도 잘 나오는 것을 확인할 수 있다. 컴퓨터에게 경로를 잘 알려주고 있는 것이다. 

 

+ Recent posts