기계어 - 0과 1의 행진 / 너무나 비인간적인 언어
- 개요
- 기계어는 컴퓨터 이해할 수 있는 유일한 언어로서, 0 과 1 의 이진수로 이루어져있다
- 초기의 프로그래머들은 전구와 전선만을 사용하면서도 해당 기계어를 이해하고 작성했다
- 인간과 컴퓨터의 차이점
- 인간
- 10진법 등의 다양한 진법을 이해하고 사용할 수 있음
- 컴퓨터
- 오직~ 2진법만을 이해하고 사용할 수 있습니다.
- 하지만, 빠르고 정확합니다!
- 인간
- 기계어
- 에드삭, 유니박
- 기계어의 호환성
- CPU 에 따라 기계어의 코드가 달라서, 이기종 간에 호환이 불가능합니다.
어셈블리어에 대한 이해
- 개요
- 어셈블리어는 기계와 인간의 언어 사이에서 연결고리로 사용됨.
- 0과 1만으로 사용하는 기계어는 인간에게 이해하기 어려운 언어라는 문제가 있기에, 이를 해결하기 위해 어셈블리어가 등장하였습니다.
- 니모닉과 기계어
- 어셈블리어의 경우 기계어의 명령을 일상 용어로 표현하고,
- 이를 기계가 이해할 수 있는 기계어로 번역하였다.
⇒ 이런식으로
1 : 1 매칭하는 코드표
를 만든 것이니모닉
- 어셈블러
- 어셈블리어를 기계어로 번역해주는 소프트웨어를 어셈블러라고 한다.
- CPU 별의 어셈블리어
- 각 CPU 마다 더하기 연산의 표현이 달랐음
- 애드삭 ⇒ ADD
- 유니박 ⇒ PLUS
- 한계점
- 서로 다른 CPU 와 시스템에서의 호환성 문제떄문에, 어셈블리어 프로그래머는 이직이 어려웠음.
- 숫자 표기법 등의 차이가 있어서 새로 배워야하는 어려움이 존재.
C언어 - 강력한 이식성 / One Source Multi Object Use Anywhere
- 개요
- 기계어와 어셈블리어에 비해 강력한 이식성을 제공
- One Source Multi Object Use Anywhere
- 하나의 소스로 여러 컴퓨터에서 실행이 가능함.
- 특징
- 이식성
- 하나의 C 소스 파일의 작성
- 기계의 종류에 상관없이 하나의 소스 파일을 사용가능합니다.
- 기종별 기계어 목적 파일 생성
- 각 기계에 맞는 컴파일러로 컴파일함.
- 모든 컴퓨터 실행 가능
- 같은 소스를 다양한 컴퓨터에서 실행가능
- 하나의 C 소스 파일의 작성
- 어셈블리어와의 차이점
- 어셈블리어
- 기계별로 하나씩 소스파일을 만들어야 했음
- C
- 하나의 소스 파일로 모든 기계에 대응 가능함
- 어셈블리어
- 이식성
- 어셈블리어와 C언어
- C 언어의
k = a + b;
라는 간단한 코드는 어셈블리어에서 매우 복잡하게 표현된다.
인텔 80X CPU 어셈블리어 --- load 레지스터, 110번지 load 레지스터2, 114 번지 add 레지스터2 save 106 빈지, 레지스터1 ---
- C 언어의
C ++ 언어 - 정말 인간적인 프로그래밍 방법론, 객체 지향
- 개요
C 언어에서 객체 지향 개념이 도입되어 발전한 언어입니다.
OOP 설계 패러다임은 개발자의 작업을 쉽게 만들어주었습니다.
- OOP
- 개발자를 위한 인간 친화적인 프로그래밍 방식입니다.
실생활과 유사하지만 실상은 실생활과 조금 다른 프로그래밍 패러다임인 것 같다. 개인적으로 완전하게 인간친화적인 아닌듯..
Java - 조금더 인간친화적인 객체지향 언어
- 개요
진정한 객체지향 언어
- 객체 지향성
- C++
- 순수 객체 지향 개념에 충실하나, 객체가 없는 프로그래밍도 가능합니다.
- Java
- 클래스 없이 존재할 수 있는 것이 없습니다.
- 모든 것이 클래스 내부에 존재합니다.
- C++
- 객체 지향성
- Write Once Use Anywhere
- C언어와 자바
- C ⇒ “One Source Multi Object Use Anywhere”
- 소스파일 ( one source ) → 목적 파일(multi object) → 실행 ( 기종별로 컴파일러가 필요합니다 )
- JAVA ⇒ “Write Once Use Anywhere”
- Write Once ( one source ) ⇒ One object ⇒ Use anywhere ( 기종별 컴파일러가 필요하지 않다 )
- C ⇒ “One Source Multi Object Use Anywhere”
- 자바의 VM
- 다른 기종의 컴퓨터에서 오브젝트 파일만 가져가면 실행이 가능함
- 하지만, 기종별 JRE 가 설치가 필요합니다.
JRE (Java Runtime Environment) 자바로 만들어진 프로그램을 실행시키는데 필요한 라이브러리, JVM 등이 포함되어있음.
- C언어와 자바
마지막 - 결론
- 언어의 발전사
- 기계어 : 최초의 프로그래밍 언어, 직접적으로 기계에 명령을 내릴 수 있게 해주었습니다
- 어셈블리어 : 기계어에 비해 약간 더 고수준
- C : 프로시저와 구조적 프로그래밍의 개념 도입
- C++ : OOP 등장
- 자바 : 플래폼 독립성 + OOP 물아일체
- 스프링 FW 등장
- IoC/DI , AOP , PSA 등의 객체 지향의 베스트 프랙티스 기반
- 이전 기술들의 장점을 합쳐, 거대한 프로그램도 쉽게 구현가능
- 기술의 발전..
- 모든 신기술이 환영받은 것이 아니다. 자바도 배척받았았던 과거가 있음.
- 신기술을 관찰해보면 이전 기술 위에서 발전함.
Uploaded by N2T
'자바 > 스프링입문객체지향' 카테고리의 다른 글
자바에 존재 하는 절차적 구조적/프로그래밍의 유산 (0) | 2023.08.17 |
---|---|
자바 프로그램의 개발과 구동 (0) | 2023.08.17 |
번외. 스프링프레임워크 (0) | 2023.08.17 |
UML , CBD +SOA , 객체지향 4대 특성 (0) | 2023.08.17 |
신기술은 이전 기술의 어깨를 딛고 (0) | 2023.08.17 |