-
<프로그래밍 공부 시작하기-3> 자바 공부 시작하기 <컴파일, compile>프로그래밍 2020. 3. 25. 10:26
아무런 지식 없이 자바 신입개발자로 입사하게 된 나는 그렇게 책을 보며 자바 공부를 시작하게 되었다.
그 당시엔, (그 당시라고 쓰니까 뭔가 라떼는.. 이라고 말하는 것 같네요)
여튼 그 당시엔 유튜브가 많이 활성화된 시기가 아니었다. 강의에 대한 정보도 별로 없었고, 인터넷을 통해 강의를 찾아봐도 전부 '유료' 라는 타이틀이 걸려 있었다. 결국 나에게 주어진 건 인터넷이라는 정보와 내 자바기본서, 옆자리 멘토선배님이었다.
자바 책을 처음 펼치니 컴파일이라는 개념이 나왔다.
처음 보는 것에 대한 이해력이 좋지 않은 편이라 읽고 바로 이해할 수 없었다. 이해를 돕기 위해 인터넷에 '컴파일', '자바 컴파일', 'compile' 이라는 키워드들로 검색을 시작하였다.
일단 거의 대부분의 문서는 자바 컴파일하는 방법에 대한 문서였다. 방법을 알기 이전에 컴파일이란 무엇인지 궁금했다. 위키백과에 '컴파일러' 라는 이름으로 다음과 같이 말하고 있다.
https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC
컴파일러 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 컴파일은 여기로 연결됩니다. 일본의 기업에 대해서는 컴파일 (기업) 문서를 참조하십시오. 일반적인 다중 언어, 다중 대상 컴파일러의 동작 모습. 컴파일러(compiler, 순화 용어: 해석기, 번역기)는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다. 원래의 문서를 소스 코드 혹은 원시 코드라고 부르고, 출력된 문서를 목적 코드라고 부른다. 목적 코드는 주로 다른 프로그램이나 하
ko.wikipedia.org
컴파일러(compiler, 순화 용어: 해석기, 번역기)는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다. 원래의 문서를 소스 코드 혹은 원시 코드라고 부르고, 출력된 문서를 목적 코드라고 부른다. 목적 코드는 주로 다른 프로그램이나 하드웨어가 처리하기에 용이한 형태로 출력되지만 사람이 읽을 수 있는 문서 파일이나 그림 파일 등으로 옮기는 경우도 있다. 원시 코드에서 목적 코드로 옮기는 과정을 컴파일(compile, 순화 용어: 옮김, 번역, 문화어: 콤파일)이라고 한다.
내 수준에서는 이해가 하나도 안되었다. 그래서 나는 내가 이해할 수 있는 선에서 컴파일이라는 것을 정의하고 일단은 다음 스텝으로 넘어가자고 생각하게 되었다.
'컴파일은 프로그래밍 언어가 컴퓨터가 알아들을 수 있는 언어로 통역해주는 과정이다.'
이렇게만 이해하기로 했다. 그렇게 생각하니까 내가 자바라는 언어를 공부하는데 첫번째로 컴파일이 왜 나왔는지도 납득이 되었다. 자바라는 언어를 내가 배워서 작성을 하면 컴파일이라는 통역을 통해 컴퓨터에게 전달한다. 부끄럽긴 하지만 그림을 그려서 모니터 아래 붙여두었다. 기억이 확실히 나진 않지만 아래와 같은 그림이었던 걸로 기억한다.

지금 생각하면 아예 말이 안되는 그림이기도 하다. 사실 컴파일을 하는 주체도 컴퓨터이기 때문에 이렇게 설명한다면 컴퓨터가 아닌 무언가를 통해 컴파일을 해서 컴퓨터에 입력해야만 하는건가? 라는 혼동을 줄 수도 있다.
하지만 프로그래밍을 처음 학습 단계에서는 이 정도로만 알고 넘어가도 괜찮다. 궁금한 사람은 더 찾아봐도 좋고 궁금하지 않는다면 무심코 다음 스텝으로 넘어가도 좋다. 비유가 맞을 진 모르겠지만 자동차 운전을 배울 때 엔진의 동작 과정까지 자세히 알지 못해도 운전은 할 수 있다.
나 역시도 그때는 무심코 다음 스텝으로 넘어가면서 컴파일을 간단하게만 인지하고 넘어갔다. 컴파일이 무엇인가를 이정도까지만 이해하기로 하고 넘어가니 그 다음은 컴파일을 어떻게 하는가에 대한 내용이 나왔다.
자바라는 언어에서 컴파일을 하는 방법은 굉장히 간단하다. 책에도 굉장히 간단하게 나와있다.
javac <컴파일하고자 하는 파일>이라고 입력하면 된단다. 물음표 89개가 머릿 속에 떠올랐다.
왜? 어디서? 어떻게? 입력을 하는거지? 컴파일하고자 하는 파일은 뭔데?
이런 생각을 하고 컴파일을 해보기 위해 책에 나온 기본 세팅하는 법을 그대로 따라해보고 책과 맞지 않는 부분들을 인터넷에서 찾아서 적용해보느라고 상당히 많은 시간을 투자하였다.
개인의 생각 차이가 있겠지만, 지금의 나로서는 이 부분은 프로그래밍을 학습하는 단계에서 쿨하게 넘어가라고 하고 싶다. 컴파일이 무엇인지만 알면 되었다. 그 방법은 좀 더 뒤의 스텝으로 넘겨도 된다. 이 글을 쭉 읽으면 자연스럽게 내가 컴파일하는 방식을 과정 중에 녹여서 이야기할 것이고 나중에 궁금한 사람은 더 찾아보면 될 것 같다.
반응형'프로그래밍' 카테고리의 다른 글
<프로그래밍 공부 시작하기-5> 자바 공부 시작하기 <가장 간단한 프로그램, hello world> (0) 2020.03.27 <프로그래밍 공부 시작하기-4> 자바 공부 시작하기 <자바 기본서를 읽기 전에> (0) 2020.03.26 <프로그래밍 공부 시작하기-2> 어떤 언어를 공부해야 하나요 (0) 2020.03.24 <프로그래밍 공부 시작하기-1> 프로그래밍 공부 얼마나 걸려요? (0) 2020.03.23 HTTP, HTTPS, SSL, TLS (0) 2020.03.11