> 프로그래밍이란 무엇일까??
프로그래밍(programming, 문화어: 프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다.
이렇게 읽으니까 머리에 와닿지가 않는다...
그래서 프로그래밍이 뭐라고???
로또를 예를 한번 들어보자. 로또를 하게 되면 직접 번호를 선택해서 구매를 할 수 있지만, "자동이요~" 말씀을 드리면 로또번호를 랜덤으로 뽑아준다
만약에 로또번호뽑기 프로그램을 만든다면
추상 알고리즘을 구현 -> 로또 번호 뽑기
프로그래밍 언어를 이용 -> python, java, c, c++.....
이렇게 얘기할 수 있다
> 자바 프로그래밍 과정
프로그램을 만드는 과정을 한번 살펴보자
처음에 우리가 어떤 프로그램을 만들어야한다고 생각을 한다면
사람의 언어로 먼저 얘기 할 수 있을것이다. 로또번호자동으로 6개 뽑아줘!
위에서 프로그래밍 언어로 python, java, c, c++등이 있다고 했는데
현재 저는 자바를 배우고 있기 때문에 자바 코드를 한 번 보시겠습니다
프로그래밍 언어를 배워서 이렇게 코드를 작성합니다
저희가 프로그래밍 언어로 작성 한 파일은
src폴더안에 들어가시면
이렇게 .java라는 파일로 저장이 됩니다.
이렇게 사람이 읽을 수 있는 프로그래밍언어로 작성한 파일을 소스코드라고 합니다
이렇게 작성한 코드로 프로그램이 동작하는줄 알았는데, 컴퓨터는 이 코드를 알아듣지 못한다고 합니다.
위에서 작성한 소스코드를 컴파일러를 통해서 컴파일 해주어야 비로서 컴퓨터가 읽을 수 있는 상태가 됩니다.
그래서 컴파일이 뭔데??
위에서 src폴더 말고 bin폴더로 한번 들어가봅니다
이번에는 동일한 파일명의 .java 파일이 아니라 .class 파일이 있습니다
편집기를 통해서 한번 열어보았습니다
알 수 없는 언어들로 적혀있습니다.
이렇게 소스코드를 컴퓨터가 알아들을 수 있도록 번역해주는 것을 컴파일 한다라고 합니다. 이렇게 만들어진 파일을 바이트코드라고 부릅니다.
하지만 이또한 완벽한 실행 파일은 아닙니다.
바이트 코드를 실행하려면 운영체제에 맞는 자바 가상 머신이 필요합니다
바이트 코드를 사용하려면
윈도우, 리눅스 등등 다양한 운영체제에 맞게 실행을 해야합니다.
이 때, 사용하게 되는게 운영체제에 맞는 자바 가상 머신을 사용하게 됩니다.
소스코드 작성 -> 컴파일 -> 바이트 코드 -> 윈도우 자바 가상 머신-> 윈도우 실행
-> 리눅스 자바 가상 머신-> 리눅스 실행
이렇게 소스코드를 작성하고 한번 컴파일 하게 된다면
운영체제에 맞는 가상 머신만 사용하게 되면 각각의 운영체제에서 실행이 가능합니다
이와 다르게 C언어를 살펴보게 되면
소스코드 작성 -> 윈도우 컴파일러 -> 윈도우 실행 파일 -> 윈도우 실행
-> 리눅스 컴파일러 -> 리눅스 실행 파일 -> 리눅스 실행
각 운영체제와 맞는 실행 파일을 새로 컴파일 해줘야 하는 차이점이 있습니다.