블로그 목적 :
컴파일과정및 자바프로그램개발단계에 대해서 공부및 정리후 나만의 노하우와 지식을 공유한다.
→ 블로그 요약
· 컴파일과정에 대해서 알아본다.
· 컴파일러방식과 인터프리터방식에 대해서 알아본다.
→ 블로그 상세 내용
우선,컴파일 과정을 알아보면 아래와 같다.
하나, 개발자가 .java 파일을 생성한다.
둘, java 컴파일러를 통해서 컴파일및 빌드를 수행한다.
셋, java 컴파일러의 javac의 명령어를 통해서 bytecode(.class)를 생성함.
넷, class loader 를 통해서 JVM내로 로드함.
다섯, 실행엔진을 통해서 컴퓨터가 읽을 수 있는 기계어로 해석되고, Runtime 데이터지역에 배치함
참고로 용어를 정리해보면 아래와 같다.
- 컴파일 (Complie) : 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말함.
- 링크(Link) : 여러개로 분리된 소스파일들을 컴파일한 결과물들에서 최종 실행가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해주는 작업을 말함.
- 참고로, 링크는 정적링크(static link)와 동적링크(dynamic link)가 존재함.
- 정적링크란 컴파일된 소스파일을 연결해서 실행가능한 파일을 만드는 것을 말함.
- 동적링크란 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 작업을 말함.
- 빌드(Build) : 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말함.
- 빌드툴(Build Tool) : 전처리(preprocessing) / 컴파일(Compile) / 패키징(packaging) / 테스팅(testing)/배포(distribution)
ex) Ant / Maven / Gradle 등등이 존재함.
그리고, 명령어 도구들을 정리하면 아래와 같다.
Tool | Desc |
appletviewer | 웹 브라우저 없이 애플릿을 실행하고 디버그하는 도구 |
extcheck | jar 파일을 체크하는 도구 |
apt | 어노테이션 처리 도구 |
jar | 자바압축파일을 생성하고 관리하는 도구 |
java | 가상기계프로그램 |
javac | Java 컴파일러 |
javadoc | 문서 생성기, 자바소스안에 /** */ 로 주석을 만들면, 해당 주석을 추출해서 문서로 만들어 줌. |
javah | C언어로 된 네이티브 메소드를 작성할 때 사용되는 C헤더 파일과 stub 생성기 |
javap | 클래스 파일 디어셈블러 |
jdb | 자바 debugger |
컴파일러(complier)와 인터프리터(interpreter) 대해서 정리하면 아래와 같다.
- 컴파일러 : 고급 언어로 작성된 프로그램을 목적 프로그램으로 번역 후 링킹 작업을 통해 실행 프로그램을 생성하는 역할을 함.
- 인터프리터 : 고급 언어로 작성된 프로그램을 한줄씩 번역해서 OS에서 인식하는 기계어로 변역하는 역할을 함.
참고로, 자바는 javac로 컴파일 하고 java로 실행 시 중간언어(클래스 파일)을 한줄씩 자바 인터프리터가 번역하기에 컴파일 언어 이면서 인터프리터 언어의 특징을 지니고 있음.
오늘도 마지막까지 제 글을 끝까지 읽어주셔서 진심으로 감사드리고, 제 글이 조금이라도 여러분의 각자의 삶을 살아가시는데 도움이 되셨길 기원합니다.
앞으로도 더욱 좋은 블로그를 남기는 제가 되도록 노력하겠습니다.
그리고, 제 글을 읽으시면 말이 됩니다.
항상 말에는 반드시 삶을 움직이는 힘이 있습니다.
제가 열심히 정성스럽게 정리한 저만의 지식과 1일 1블로그하는 제 블로그에 담긴 글들을 통해서,
여러분들의 삶과 운명을 반드시 조각하고 움직이시길 기원합니다.
이상입니다. 감사합니다.
'좋아하는 것_매직IT > 100.면접준비' 카테고리의 다른 글
Java 와 spring 관련 면접 깔끔 정리 (0) | 2023.08.22 |
---|---|
SpringBoot 관련 백엔드 기술 면접 질문및 답변 깔끔 정리 (0) | 2023.03.17 |
Java관련 백엔드 기술 면접 질문및 답변 깔끔 정리 (0) | 2023.03.17 |
SQL 튜닝이란? (0) | 2022.05.05 |