스프링 입문을 위한 자바 객체 지향의 원리와 이해 - Chapter 01. 사람을 사랑한 기술 Ep_1

김광현·2022년 12월 25일
0

⏸️ 시작하기 전

스프링은 갑자기 툭 튀어나온 기술이 아니며, 기존 기술들을 정제하고, 새로운 기법을 더해 만들어 진것입니다.
이에, 우리는 스프링을 제대로 활용하기 위해 그 전 기술들의 일부를 먼저 복습하는 시간을 가지도록 하겠습니다.
그럼 시작하겠습니다.

기계어 - 0과 1의 행진 / 비인간적 언어

기계어는 기계가 이해하는 유일한 언어이며, 2진 숫자인 0과1로 이루어져 있습니다.

하지만 기계어 코드는 CPU에 따라 다르기 때문에 유의해야합니다.

Ex) 애드삭(EDSAC) 전용 기계어 : 1+3

01010101 00000001 00001001

Ex) 유니박(UNIVAC) 전용 기계어 : 1+3

11011100 00011000 10011000

위에서 설명했듯이 당연하게도 서로 다른 기계끼리는 호환이 되지 않습니다.

2진 숫자를 사용하여 개발을 한다면 결코 실수하는법이 절대 없으며, 심지어 빠르고 정확하기까지 할것입니다.
허나, 모든 작업을 0과 1로 하려하면 작성하는 시간 및 가독성까지 떨어지기에 업무 효율이 안나올것 입니다.

그러기에 이 불편함을 해소하고자 나온 언어가 어셈블리어 입니다.


어셈블리어 - 0과 1이 아닌 인간 지향으로 / 기계어 니모닉

2진 숫자를 사용하는 기계어는 컴퓨터, 즉 기계가 이해하는 유일한 언어지만 사람이 언어 눈높이를 그 수준까지 낮추기에는 너무 낮습니다.
어느 날 한 천재가 다음과 같은 생각을 했다고 합니다.
"기계어의 명령들을 일상 용어로 표현하고 이걸 기계가 알 수 있는 기계어로 번역하게 하면 어떨까?"

그리하여 만들어진 것이

어셈블리(기계어 명령어와 일상 용어를 일대일 매칭하는 코드표)입니다.

허나, 위에서 기술했듯이 CPU마다 기계어 코드도 달랐기에 어셈블리어 또한 CPU별로 전부 다릅니다.

Ex) Java : 화면출력

System.out.println()

Ex) Microsoft : 화면출력

Console.WriteLine()

이와 같이 회사에 따라 같은 역할을 하는 문장이어도 생김새가 다르다는것을 알수있습니다.

우선 이번 글은 여기서 마무리 짓도록 하겠습니다.

느낀점 알게된 점

이 글을 쓰면서 기계어, 어셈블리어에 대해 정의, 발현사례, 예시등을 알아볼수 있었습니다.

해당 내용은 스프링 입문을 위한 자바 객체 지향의 원리와 이해를 참고하여 작성되었습니다.

profile
대림대학교 컴퓨터정보학부

0개의 댓글