- 컴파일 방식 프로그래밍 경험
- GCC 컴파일러(MinGW) 설치
- hello.c 소스 작성
- 컴파일 및 실행
- 인터프리터 방식 프로그래밍 경험
- Nodejs 설치
- Hello.js 소스 작성
맥의 경우
brew install node 설치
node -v 설치확인 및 버전확인
- 인터프리터 실행
- JDK와 JRE, JavaSE, JavaEE, JavaME 소개
- Hello.java 소스 작성
- 컴파일 및 JVM 실행
- JDK 및 Eclipse IDE 설치 및 설정
학습 목표 달성 확인 목록
- [] 컴파일 방식과, 인터프리터 방식, 하이브리드 방식의 특징을 설명할 수 있는가?
컴파일 방식:전체적으로 문법검사를 하며 작성중에 오타나 틀린 문법을 체크할수 있는 장점이 있지만 그만큼 번역하는 속도가 걸린다는 단점이 있다.대표적으로는 c언어가 있다.
인터프리터 방식:컴파일 방식과는 반대로 한줄씩 문법을 검사하여 번역속도는 빠르다.하지만 초반에 오타율을 잡을수 없으며
실행속도는 매번 번역하기때문에 실행속도가 느리다.대표적으로는 node가 있다.
하이브리드 방식:이 위의 둘을 합친것이 하이브리드방식이며 컴파일을 하게되면 바이트코드로 반기계어로 번역이 되며
이것을 JVM으로 바이트코드 인터프리터를 작동시켜서 실행시킨다.하이브리드인만큼 컴파일의 장점과 인터프리터의 장점을 합친것이다.
대표적으로는 우리가 배우게 될 자바가 있다.
- [] 컴파일/인터프리터/하이브리드 방식의 예제를 작성하고 실행시킬 수 있는가?(순차적으로 설명)

- [] GUI와 CLI가 무엇인지 알고 있다.
GUI:그래픽 유저 인터페이스의 약자로 사용자가 편리하게 사용할 수 있도록 입출력이 보이는 그래픽방식의 인터페이스이다.
대부분의 운영체제에서 지원하는 서비스이다.
CLI:커맨드 라인 인터페이스의 약자로 가상 터미널을 통해 사용자와 컴퓨터가 상호작용을 할수 있는 방식을 말한다.
말그대로 텍스트로 서로 상호작용을 한다.
- [] OS에서 shell 과 Shell Script 의 관계를 이해한다.(참조)
쉘은 운영체제에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다.
좀더 자세히 말하면 셀은 커널과 사용자간의 다리역할을 한다.
셀은 껍데기라는 의미로 사용자와 운영 체제의 내부 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다.
- [] 윈도우 OS에서 ‘명령프롬프트’와 ‘파워쉘’의 차이점을 이해한다.
명령프롬포트인 cmd는 Commend의 준말로 명령어이다.
이 명령어는 윈도우 NT계열에서 만들어졌으며 다양한 방법으로 쓰이며 절차방식이다.
파워셀은 cmd와 다르게 .NET FramWork라는 객체들을 사용한다.그래서 모든 결과들이 객체로 표현한다는 점이다.
그래서 이둘은 c언어와 java의 차이로 보면된다
- [] 해시 값/디지털 지문이 무엇인지 알고 있다.
해시값은 생활속에서 쉽게 찾을수 있다 그게 바로 공인인증서이다
사용자가 본인확인을 요청하면 사용자의 해당 코드를 서버와 확인을한다(이때 특정 알고리즘을 사용한다)
그래서 사용자의 코드와 서버의 코드를 대조하여 맞으면 인증완료를 하게된다.
톰캣같은 사이트에서 보면

pgp,sha512방식이 있다.
zip파일 옆에 pgp,sha512라는 방식이 있다.이건 바로 서버에 있는 해쉬값인것이다.
해쉬값이 있는 이유는 해커가 도중에 잘못된 파일을 삽입할 수 있기 때문에(바이러스)
서버와 사용자의 파일과 대조해보라는 것이다.
터미널을 통해 해쉬값을 확인할수 있으며 macOS에서는 해당 코드로 확인할 수 있다.
- [] 알고리즘의 뜻을 말할 수 있다.
알고리즘은 수학과 컴퓨터 과학,언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 절차나 방법을 공식화한 형태로 표현한 것이다.주로 연산과 머신러닝에 사용된다.
- [] MD5, SHA-1, SHA256, SHA512, PGP 등이 무엇을 의미하는지 알고 있다.
위에 설명하였듯이 일종의 해쉬값을 얻기위한 알고리즘의 종류들이다.
- [] Windows/macOS 에서 명령어를 사용하여 해시 코드를 알아 낼 수 있다.(sha512 기준)
윈도우10 파워셀:get-filehash 파일경로
맥:openssl dgst -sha512 <파일의 위치>
- [] JDK를 설치하고 환경 변수(JAVA_HOME, PATH)를 설정할 수 있는가?
환경변수(맥 zsh기준)
터미널에서
vi ~/.zshrc 입력
export JAVA_HOME=`/usr/libexec/java_home -v 11`
export PATH=${JAVA_HOME}/bin:$PATH
입력후
crl+o(저장) 입력 후 엔터
crl+z로 나와주면 된다

- [] Java IDE(Integrated Development Environment, 예: Eclipse)를 설치하고 설정할 수 있는가?
graalVM(VM은 무료인 graal로 사용한다)
이클립스 초기설정방법

폰트설정
폰트는 github.com/naver/d2codingfont/releases/tag/VER1.3.2
[Release D2Coding Ver 1.3.2 · naver/d2codingfont
D2Coding 1.3.2 버전을 릴리즈 합니다. ligature 관련 이슈를 수정하여, ligature 적용/미적용 폰트를 구분하여 배포합니다. 기존 버전은 반드시 삭제후 설치 바랍니다. 개선 내용 IntelliJ 에서 18pt에서 i 자
github.com](https://github.com/naver/d2codingfont/releases/tag/VER1.3.2)
에서 다운받아 설치후 폰트설정을 해준다.

텍스트 에디터설정


국제 통용으로 바꿔준다
그리고
https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml
[google/styleguide
Style guides for Google-originated open-source projects - google/styleguide
github.com](https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml)
에서

raw를 누르고 해당 파일을 cmd+s를 눌러서 저장한다
그다음에

import를 눌러서 아까 다운받은 xml확장자의 파일을 삽입한다,


installed JREs에서 graalVM이 안보인다면 해당사진처럼 추가해준다(맥의 경우에는 JVM폴더에 접근하여 graalVM의 home까지 접근해야지 완료가 가능하다)



세개의 사진처럼 css jsp html의 인코딩 방식을 utf-8로 바꿔준다