
기계어
이진수 0과 1 로만 표현되며 CPU 에 따라 코드가 다르다.
에드삭, 유니박 ... 등등 컴퓨터 마다의 전용 기계어가 존재.
어셈블리어
기계어와 사람이 알아보기 쉬운 니모닉 기호를 일대일 매칭하는 코드표를 만들었다.
기계어와 마찬가지로 CPU 에 따라 코드가 다르다. 그리고 이를 기계어로 번역해주는 어셈블러도 다르다.
C 언어
C 언어 이전까지는 같은 일을 하는 프로그램의 소스 파일을 기계의 종류만큼 만들어야 했다. 즉 멀티소스.
하지만 C 언어는 소스파일을 단 하나만 만들면 된다. 싱글 소스! → 강력한 이식성 (어셈블리어 대비)
One Source Multi Object Use Anywhere
하나의 소스 파일을 각 기계에 맞는 컴파일러로 컴파일하면 각 기계에 맞는 기계어 목적 파일들이 만들어진다.
(하지만 실제로는 하나의 소스를 각 운영체제별로 알맞게 수정하는 과정이 필요했다고 ...)
기계어와 1:1 매칭이 아닌 m:n 매칭이 가능해졌다.
프로그래밍 방법에 있어서는 함수로 대표되는 구조적 프로그래밍을 제시했다.
C++ 언어
C 언어에 객체 지향 개념을 도입했다. 하지만 객체 없는 프로그래밍도 가능, 객제 지향 지원 언어.
자바
C++ 은 객체 없는 프로그래밍도 가능하다면, 자바는 객체 (클래스) 없이 존재할 수 있는 것은 아무것도 없다.
포인터에 대한 개념 없이 프로그래밍을 가능하게 했다.
C# 과 자바는 가상머신 Virtual Machine 을 도입했다. (C# 은 CLR, 자바는 JVM)
Write Once Use Anywhere (= One Source One Object Use Anywhere)
자바의 목적파일은 단 하나, JVM 용 기계어를 생성한다.
그리고 각 컴퓨터에 해당 기종에 맞는 JRE 를 설치하면 된다.
소스 파일(.java) → 컴파일(javac) → 바이트코드 파일(.class) → JVM(java) → 기계어로 번역 및 실행
환영받지 못했던 신기술
CPU 자원과 메모리를 더 많이 필요로 했기 때문에 환영받지 못했지만, 하드웨어 기술이 발전함에 따라 문제가 해결되었다고 한다.
CBD: Component Based Development, 컴포넌트 기반 개발
애플리케이션을 의미있는 단위로 구분하고 그 단위를 하나씩 부품으로 개발한 뒤, 블록 쌓기를 하듯 이들을 결합하여 소프트웨어 제품을 완성하자는 개발 방법론
SOA: Service Oriented Architecture, 서비스 지향 구조
실제 현실의 업무 관점으로 서비스 단위를 나눠 개발하는 방법론
Spring Framework: 객체 지향 프로그래밍 프레임워크
스프링 프레임워크는 POJO(Plain Old Java Object)에 스프링 삼각형이라 불리는 IoC/DI, AOP, PSA 세 가지 개념을 더하여 만들어졌다.
*PSA: 일관성 있는 추상화
'Study > Booooooook' 카테고리의 다른 글
도메인 주도 설계 핵심 1-2장 (0) | 2024.07.19 |
---|---|
자바 객체 지향의 원리와 이해 5. SOLID (0) | 2024.05.25 |
자바 객체 지향의 원리와 이해 4. 객체 지향 (2) (0) | 2024.05.22 |
자바 객체 지향의 원리와 이해 3. 객체 지향 (1) (0) | 2024.05.18 |
자바 객체 지향의 원리와 이해 2. 메모리 (0) | 2024.05.07 |

기계어
이진수 0과 1 로만 표현되며 CPU 에 따라 코드가 다르다.
에드삭, 유니박 ... 등등 컴퓨터 마다의 전용 기계어가 존재.
어셈블리어
기계어와 사람이 알아보기 쉬운 니모닉 기호를 일대일 매칭하는 코드표를 만들었다.
기계어와 마찬가지로 CPU 에 따라 코드가 다르다. 그리고 이를 기계어로 번역해주는 어셈블러도 다르다.
C 언어
C 언어 이전까지는 같은 일을 하는 프로그램의 소스 파일을 기계의 종류만큼 만들어야 했다. 즉 멀티소스.
하지만 C 언어는 소스파일을 단 하나만 만들면 된다. 싱글 소스! → 강력한 이식성 (어셈블리어 대비)
One Source Multi Object Use Anywhere
하나의 소스 파일을 각 기계에 맞는 컴파일러로 컴파일하면 각 기계에 맞는 기계어 목적 파일들이 만들어진다.
(하지만 실제로는 하나의 소스를 각 운영체제별로 알맞게 수정하는 과정이 필요했다고 ...)
기계어와 1:1 매칭이 아닌 m:n 매칭이 가능해졌다.
프로그래밍 방법에 있어서는 함수로 대표되는 구조적 프로그래밍을 제시했다.
C++ 언어
C 언어에 객체 지향 개념을 도입했다. 하지만 객체 없는 프로그래밍도 가능, 객제 지향 지원 언어.
자바
C++ 은 객체 없는 프로그래밍도 가능하다면, 자바는 객체 (클래스) 없이 존재할 수 있는 것은 아무것도 없다.
포인터에 대한 개념 없이 프로그래밍을 가능하게 했다.
C# 과 자바는 가상머신 Virtual Machine 을 도입했다. (C# 은 CLR, 자바는 JVM)
Write Once Use Anywhere (= One Source One Object Use Anywhere)
자바의 목적파일은 단 하나, JVM 용 기계어를 생성한다.
그리고 각 컴퓨터에 해당 기종에 맞는 JRE 를 설치하면 된다.
소스 파일(.java) → 컴파일(javac) → 바이트코드 파일(.class) → JVM(java) → 기계어로 번역 및 실행
환영받지 못했던 신기술
CPU 자원과 메모리를 더 많이 필요로 했기 때문에 환영받지 못했지만, 하드웨어 기술이 발전함에 따라 문제가 해결되었다고 한다.
CBD: Component Based Development, 컴포넌트 기반 개발
애플리케이션을 의미있는 단위로 구분하고 그 단위를 하나씩 부품으로 개발한 뒤, 블록 쌓기를 하듯 이들을 결합하여 소프트웨어 제품을 완성하자는 개발 방법론
SOA: Service Oriented Architecture, 서비스 지향 구조
실제 현실의 업무 관점으로 서비스 단위를 나눠 개발하는 방법론
Spring Framework: 객체 지향 프로그래밍 프레임워크
스프링 프레임워크는 POJO(Plain Old Java Object)에 스프링 삼각형이라 불리는 IoC/DI, AOP, PSA 세 가지 개념을 더하여 만들어졌다.
*PSA: 일관성 있는 추상화
'Study > Booooooook' 카테고리의 다른 글
도메인 주도 설계 핵심 1-2장 (0) | 2024.07.19 |
---|---|
자바 객체 지향의 원리와 이해 5. SOLID (0) | 2024.05.25 |
자바 객체 지향의 원리와 이해 4. 객체 지향 (2) (0) | 2024.05.22 |
자바 객체 지향의 원리와 이해 3. 객체 지향 (1) (0) | 2024.05.18 |
자바 객체 지향의 원리와 이해 2. 메모리 (0) | 2024.05.07 |