TIL 2021.02.20

Kyu·2021년 2월 20일
0

TIL

목록 보기
41/322

🧐 TIL (Today I Learned)

1. 자바 컴퓨터 프로그래밍

자바 프로그래밍이라는 것은 알고 있는 자바 문법으로 절차를 구현해내는 능력을 가지는 것.

그걸 가지고 프로그램을 다 만들 수 있다. 하지만 프로그램이 동작하는 것은 같지만 구조적으로 만드느냐 객체지향적으로 만드느냐에 따라서 방법을 달리할 수 있다.

구조적으로 만들었을 때, 장점도 있지만 단점도 있어서 객체지향이 나왔다.

자바 프로그래밍을 하기위해서는 직접 우리가 쓰는 인간의 언어를 컴퓨터가 쓰는 언어인 바이너리코드로 바꿔줘야하는데 그걸 하기위해서 번역기가 필요하다. 번역기를 컴파일러라한다.

번역기는 개발할떄 사용할수있는 도구인데 번역기만 다운로드하도록 하지않고 JDK라고 통합적으로 디버거라던지 개발과 관련된 다양한 도구를 함께 다운로드 할 수 있다.

JDK 는 유료인 오라클 JDK와 무료인 OpenJDK 가 있다.

어떤 것을 사용해야하는가?

두가지 차이점은?

JDK는 오라클에서 혼자 만드는게 아니라 Java Community Process 라는 커뮤니티의 구성원들에 의해서 함께 만들어나간다.

멤버들이 모여서 기능을 누군가 제안하고 문서화되고 스펙이 만들어진다.

스펙이 만들어지면 그것을 구현하는 구현체가 있을 건데, 바로 프로토타입으로 실험해보는 곳이 OpenJDK 이다.

OpenJDK 를 가지고 각 회사멤버들이 가져다가 완성하고 업그레이드하게 되는데 그 중에 하나가 오라클이다.

오라클은 유료화했기 때문에 개인 사용자는 보통 OpenJDK 를 사용한다.

프로그램이란?

앞으로 수행할 절차를 기록한 것.

프로그램이라는 용어는 컴퓨터와 관계가 없다.
e.g. 교육 프로그램, 영화제 프로그램, 라디오 프로그램 등

공통점은 재료라고 할 수 있다

교육은?
어떤 순서로 교육을 수행할 것인가?

영화제?
영화들을 어떤 절차로 사영하게 할 것인가?

그렇다면 컴퓨터는?
컴퓨터란 여러 부품들의 집합이다. 중앙처리장치CPU (산술/논리 연산, 흐름제어), 주기억장치(Memory) (임시 저장소), 다양한 입/출장치 (데이터 소스 / 영구 저장소)

참고로 다양한 입/출장치 중에 가장 기본이 되는 모니터와 키보드를 가리켜서 기본 입출력장치라고 한다.

그래서 컴퓨터 프로그램이란?
컴퓨터를 이용한 절차를 만들어 놓은 것.

2. 번역기의 종류

컴퓨터 프로그램에 있는 실행코드들은 CPU 내의 여러가지 작업에 의해서 실행된다. 하지만 인간이 0, 1이라는 숫자를 가지고 코딩을 하기에는 어려움이 많다.

번역기가 처음에 나오게 된 이유는 이런 어려움을 극복하고자 나왔다. CPU 내에서 실행되는 코드들을 인간이 이해할 수 있는 언어로 바꾼다. 그것을 번역기를 돌리면 실행코드가 만들어지는 것다.

처음에 CPU 를 직접 조작하는 느낌의 인간의 언어로 된 이 기능코드를 어셈블리어라고 한다. 나중엔 완전히 인간의 언어와 밀접하게 코딩할 수 있는 언어가 나온다.

주로 자바에서는 C컴파일러가 약속한 문법을 사용하는데 이런 언어들을 컴파일언어라고 한다.

그래서 컴파일언어에서 어셈블리어로 번역하는 기계를 컴파일러라하고, 어셈블리어를 기계어로 바꾸는 것을 어셈블러라고 한다.

그 외에 많은 기준에 따라서 다양하게 불리어진다.

참고

profile
TIL 남기는 공간입니다

2개의 댓글

comment-user-thumbnail
2021년 2월 22일

정리 잘하셨네요👏👏 덕분에 좋은 채널도 알아갑니다ㅎㅎ

1개의 답글