중앙처리장치 - 프로그래밍 언어와 실행
패스트캠퍼스에서 컴퓨터 구조 강의 를 듣고 스스로 공부한 내용을 정리하고 있습니다.
프로그래밍의 구현 architecture
프로그램이 만들어지는 과정을 보자.
인간인 개발자가 고급 언어 프로그램 high level language 을 작성한다. -> 문제중심
개발자가 작성한 프로그램은 에셈블리어 프로그램 assembly language 으로 변환되고 -> 처리중심
변환된 에셈블리어 프로그램은 다시 기계어 프로그램 machine language 으로 변환되어 컴퓨터에 의해 처리된다. -> 처리중심
소프트웨어 개발 패러다임
소프트웨어 개발 패러다임은 다음과 같이 변해왔다.
1960-1970 에 소프트웨어의 위기현상이 발생한다.
기존까지는 구조적 기법으로 프로그램을 작성했었다.
구조적기법에서는 데이터와 함수를 분리하여 작성했었고 이 함수들의 모음으로 프로그램을 작성했었다.
하지만, 이 기법은 개발과 유지보수에 많은 비용이 든다는 문제점이 있었다. -> 소프트웨어의 위기!
객체지향 기법
캡슐화 : 객체(Object) 에 데이터와 처리기능(매소드)를 단위화하고
다형성(polymorphism) : 각 기능의 상속(inheritance)으로 기능을 재사용 가능하게 한다.
대표적으로 C++, Java 와 같은 언어들이 있다.
컴포넌트 기법
컴포넌트 기법에서는 외부 인터페이스를 통해서 동작을 구현한다.
시스템의 단순성을 높인다.
집약성이 높은 프로그램 덩어리를 조합해서 더 큰 프로그램을 만든다.
분산객체 프레임워크
다른종류의 분산된 환경에서 여러 종류의 어플리케이션을 쉽게 통합하기 위한 통합방식이다.
컴퓨터 네트워크 환경
Wireshark 를 이용해서 패킷 분석
인터넷 웹 브라우저인 explorer 가 운영체제의 한 축을 담당하게 된 순간부터 컴퓨터는 이미 통신기계로 분류되고 있다.
통신기계로서 hexadecimal 표현은 더욱 더 그 진가를 발휘하고 있음!
고급언어로 작성된 소스 -> 에셈블리어 번역 과정 확인하기
참고
1. 고급 프로그래밍 언어로 두 수 더하는 프로그램 작성하기
C 언어로 두 수를 더하는 프로그램을 작성한다.
프로그램을 실행하면 컴파일 되어 원본 코드의 실행파일이 생성된다.
2. 실행파일 내부 살펴보기
x64dbg 프로그램을 설치 후, 실행파일을 연다.
에셈블리어로 번역된 내용을 확인한다.
3. wireshark 로 패킷 내부 살펴보기
NO : 패킷 수집 순번
Time : 패킷 수집 시간
Source : 패킷의 출발지
Destination : 패킷의 도착지
Last updated