# 프로그래밍 언어

● JAVA → 서버가 리눅스 일 때 적합 (개발은 개인 컴퓨터 운영체제에서.. 실행은 리눅스 서버를 통해..?)

  C → 프로그래밍 언어 교육, 하드웨어 제어

  C++ → 기타 언어들보다 속도가 빠르기 때문에(컴파일이 빠르다) 하드웨어 제어에 적합하다.

  C# → 서버가 Window일 때 적합

  Python → '머신러닝', 'AI' 분야에 쓰인다. (Python 프로그래밍 언어가 저 분야에 적합하다기 보다 오랜시간 Python언어로 연구하고 기록했기 때문이라 생각..)

 

# Java

1. 모든 운영체제에서 실행

- 자바로 작성된 프로그램은 운영체제에 상관없이 모두 실행할 수 있는 독립적 장점이 있다.

 

2. 객체 지향 프로그래밍

- 먼저 객체(부품)를 만들고, 이 객체들을 서로 연결하여 더 큰 프로그램을 완성시키는 기법에서 java는 최적의 언어이다.

 

3. 메모리 자동 정리

- java는 메모리(RAM)를 자동 관리하여 개발자는 메모리 관리에 신경을 덜 쓸 수 있어 핵심 기능 작성에 집중할 수 있다.

 

4. 무료 라이브러리 풍부

- 무료 다운로드하여 사용할 수 있는 오픈 소스 라이브러리가 풍부하기 때문에 프로그램 개발 기간을 단축시켜준다.

 

※ JDK (Java Development Kit : 자바 개발 도구) 를 버전에 맞게 설치하여 프로젝트를 진행해야한다.

Open JDK는 무료 (교육용으로 내가 사용할 것)

Oracle JDK는 유료 (Open JDK보다 안정성과 응답성, JVM 성능이 상대적으로 뛰어나 연간 결제를 해야한다)

 

JDK LTS(Long Term Support) 버전장기간 기술 지원을 받을 수 있기 때문에 다른 버전보다는 안정적으로 사용할 수 있다. JDK 8(=JDK 1.8), JDK 11, JDK 17이 LTS버전이다.

이번 공부에서 Open JDK 17 버전을 사용하여 공부할 것이다. (최신 tool과 기능들을 이용해보기 위해)

 

  Oracle 사이트에서 각 운영체제에 맞는 JDK 다운로드

cf) 설치 파일명에 대한 이해.

- x64는 윈도우 64비트 운영체제에 적합한 파일이라는 뜻이다.

- x86은 윈도우 32비트 운영체제. 현 시점에서 32비트 운영체제는 거의 없기 때문에 x86 설치파일의 제공도 없어졌다.

- 'x'는 '인텔 cpu'를 뜻하는 것이며 Window 운영체제에 적합하다는 의미이다.

-> jdk-8u401-window-x64.exe 에서 8은 JDK 버전, u는 update, 401은 업데이트 횟수를 뜻한다.

-> jdk-11.0.22_windows-x64_bin.exe 에서 11은 JDK 버전, 0은 다운로드 서버, 22는 업데이트 횟수이다.

= 결과적으로 각 운영체제에 적합한 JDK(개발도구 + JVM(==JRE))를 다운로드하여 사용해야 한다.

 

※ 실제 업무에서 굉장히 오래된 프로젝트를 진행하게 될 경우 JDK 8이나 JDK 1.7을 사용해야 될 수 있다.

다른 버전의 JDK를 사용하여 작업하게 된다면 기존의 프로젝트를 상당히 많은 부분 바꾸어야 할 수 있기 때문이다.

따라서 '고객사'에 맞춰 개발을 진행해야 한다. 프로젝트 시작시 JDK 버전을 정해놓고 시작하게 된다.

 

# 윈도우 환경 변수 설정하기

운영체제는 프로그램들이 실행하면서 사용할 수 있는 값들을 환경 변수 이름으로 관리한다.

JDK를 설치하고 나면 프로그램들이 JDK를 이용할 수 있도록 JAVA_HOME 환경 변수를 생성하고,

Path 환경 변수를 수정하는 것이 좋다.

 

1) [시스템 환경 변수 편집] 으로 들어가 [환경 변수] 속성에 들어간다.

2) [시스템 변수] 에서 'JAVA_HOME'이라는 변수 이름을 만들어주고, 다운로드 받은 jdk 버전의 경로를 변수 값에 넣어준다.

    cf) jdk-17 폴더 안에는 bin(binary)폴더가 있는데, 그 안에 '개발도구'들이 들어가 있다.

3) [시스템 변수] 에 기존에 있던 Path를 편집한다. Path 안에 새로 내가 사용할 jdk-버전/bin 폴더 경로를 추가하여 최상단으로 올려준다. (Path 환경 변수에 등록된 순서대로 명령어를 찾기 때문)

 

tip) '%' 사이의 값은 변수가 들어갈 수 있다. 따라서 폴더 경로를 %JAVA_HOME%\bin으로 수정한다면 사용할 JDK-버전을 바꾸기위해 2번과 3번처럼 2번 변경할 필요없이 2번의 단계에서 변수 값(경로)만 변경해줄 수 있는 것이다.

(나중에 헷갈리다면, 책에도 필기를 하였으니 보고 따라해보자)

 

이 후 환경 변수가 올바르게 설정되었는지 cmd(명령 프롬프트)를 실행하여 확인한다. ex) javac.exe -version (.exe는 기계어로 이루어져 바로 실행할 수 있는 실행파일이란 뜻이므로 생략해도 된다.)

tip) '명령 프롬프트'는 실행 당시의 정보를 토대로 상태를 보여주기 때문에 환경 변수를 다시 바꾼다면 재시작하여 명령어를 입력해야 한다.

 

# Java를 이용하여 프로그래밍하는 과정 이해하기

1. 사람이 프로그램 언어로 소스(*.java) 파일 작성

2. 자바 컴파일러(javac.exe)를 이용하여 소스 코드를 컴파일한다. (아직 완벽한 기계어로 컴파일된 것이 아니다!)

컴파일 된 파일(*.class)(=바이트코드 파일)이 생성된다.

 

※ 완전한 기계어로 컴파일 되면 안되는 이유

만약 완전한 기계어로 이루어진 파일이 된다면, 현재 작업한 운영체제에만 사용가능한 파일이 된다는 것이다.

따라서 JVM에 올리기 전 1차적 컴파일이 된 파일이여야 하고, 추후 이 파일을 각각의 운영체제(다른 컴퓨터)에 맞게 설치된 JVM으로 구동하면 프로그램이 정상적으로 실행된다. (이런 이유 때문에 어떠한 운영체제에서도 독립적이라 말할 수 있는 것이다)

 

---- 여기까지가 '개발자'가 하는 역할이라고 이해하면 된다. ----

 

3. 바이트코드 파일(*.class)를 java.exe(자바 명령어라고도 함)를 이용하여 각 운영체제에 맞게 JVM(자바 가상 머신)을 구동시켜 프로그램을 만든다.

※ (2번에서 1차 컴파일한 바이트코드를 각 운영체제에 맞게 설치한 JDK를 이용하여 그 운영체제에 맞는 기계어로 한번 더 번역(컴파일) 후 실행되는 것이다)

 

# VScode 다운로드하여 실행해보기

default 다운로드인 user installer 말고, system installer 로 다운받아 사용하자 (사용자 계정마다 다운받을 필요가 없어진다)

1. C드라이브에 temp폴더 생성

2. temp폴더 내에 src폴더와 bin폴더 생성

○ src : 소스 파일이 저장되는 디렉토리

○ bin : 바이트코드 파일이 저장되는 디렉토리

3. src폴더 내에 ch01폴더 생성, ch01폴더 내에 sec06폴더 생성 후 Hello.java 파일을 만들고 테스트 코딩

4. VScode 안의 터미널(명령 프롬프트)을 이용하여 Hello.java 컴파일 진행

명령어 : javac -d bin src/ch01/sec06/Hello.java (사용법 : javac -d [바이트코드파일저장위치] [소스경로/*.java])

명령어 : java -cp bin ch01.sec06.Hello (사용법 : java -cp [바이트코드파일위치] [패키지.클래스명])

 

♣  결론

극초반 기본적인 개념과 프로그래밍, 실행과정 등이다. 암기하려 에너지를 쏟지말고, 이해하고 넘어가다보면 나중에 또 공부하면서 익히게 된다.

'JAVA' 카테고리의 다른 글

14일차 2024 - 3 - 15  (0) 2024.03.14
13일차 2024 - 3 - 14  (0) 2024.03.14
12일차 2024 - 3 - 13  (0) 2024.03.13
3일차 2024 - 2 - 28  (0) 2024.02.28
2일차 2024 - 2 - 27  (0) 2024.02.28

+ Recent posts