티스토리 뷰

개발을 배우면서 가장 처음 접한 단어는 컴파일이었던 것 같다.


내 머릿속의 있는 컴파일의 정의는 `컴퓨터가 이해하는 기계어로 변환시키는 작업` 정도인데


나는 나의 기억력을 완전히 신뢰할 수 없기에 오브젝트 파일에 대해 알아보면서 추가로

한번 확인차 정리하려 한다.



컴파일(compile)?

어릴 때 봤던 애니메이션 중에 `디지몬 어드벤처`의 내용 중

컴퓨터는 0과 1로 이루어져 있다는 내용이 나온 적이 있다.



대충 저런 건데 내가 봤던 당시 이미지를 찾기가 어려워 다른 것으로 가져왔다.


어째 됐던 그렇게 나는 java를 처음 접한 뒤에 가끔 생각했던 것이

프로그래밍 언어가 나오기 전에는 그럼 다 0과 1로 프로그램을 만든 건가?

그거 가능한 거 맞음?

이었다.


근데 알아보니 자카드식 문직기라고 방법이 있더라.



그만 알아보기로 했다.



다시 본론으로 돌아가 컴파일의 정의를 정리해보자면

'개발자가 작성한 소스 코드를 바이너리 코드로 변환하는 과정'

이다.


즉 개발할 때 과거 방식으로 프로그램을 만들기 힘드니

사람이 보고 쉽게 작성할 수 있는 프로그래밍 언어를 만들어서 코드를 만들고

그걸 컴퓨터가 읽을 수 있는 0과 1의 2진수로 되어있는 바이너리 코드로 변환해준다는 것이다.


그렇게 '컴파일 혹은 어셈블러 프로그램을 통해 변환된 파일을 오브젝트 파일(object file)' 이라고 한다.

오브젝트 파일 외에도 목적 파일이라고도 불리기도 한다.


그리고 오브젝트 파일은 3가지 형태로 나뉘는데

java에서도 적용되는 것인지 잘 알 수 없어서 나중에 내용을 추가하도록 하겠다.



자, 이제 남은 것은 링킹이다.

이것까지 하면 빌드가 뭐하는 놈인지 대략 알 수 있을 것이고,

나는 탈주 후 다른 개념을 공부하게 될 것이다.

아마도...

'읽고 쓰고 씹고 즐기고 > CS' 카테고리의 다른 글

링킹(Linking)  (0) 2019.03.17
jar과 war  (0) 2019.03.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함