공부
-
GCC 컴파일러란? GCC 컴파일러의 특징 C, C++, Objective-C, Fortran, Ada 등을 포함한 다양한 프로그래밍 언어를 위한 무료 오픈 소스 컴파일러다. Linux 및 Unix 커뮤니티에서 널리 사용되며 Windows와 같은 다른 운영 체제에서도 사용할 수 있다. 높은 수준의 최적화와 x86, ARM 및 PowerPC를 포함한 광범위한 플랫폼 및 아키텍처를 지원한다. 다양한 디버깅 및 프로파일링 도구를 지원하므로 코드의 버그를 쉽게 식별하고 수정할 수 있다. 소스 코드가 실행 파일이 되는 과정 GCC 컴파일러가 소스 코드를 실행 파일로 만들기까지 4가지 단계를 거친다. [ *.c -> (*.i) -> (*.s) -> (*.o) -> excutable ] 전처리 단계 컴파일 단계 어셈..
gcc 컴파일러란?GCC 컴파일러란? GCC 컴파일러의 특징 C, C++, Objective-C, Fortran, Ada 등을 포함한 다양한 프로그래밍 언어를 위한 무료 오픈 소스 컴파일러다. Linux 및 Unix 커뮤니티에서 널리 사용되며 Windows와 같은 다른 운영 체제에서도 사용할 수 있다. 높은 수준의 최적화와 x86, ARM 및 PowerPC를 포함한 광범위한 플랫폼 및 아키텍처를 지원한다. 다양한 디버깅 및 프로파일링 도구를 지원하므로 코드의 버그를 쉽게 식별하고 수정할 수 있다. 소스 코드가 실행 파일이 되는 과정 GCC 컴파일러가 소스 코드를 실행 파일로 만들기까지 4가지 단계를 거친다. [ *.c -> (*.i) -> (*.s) -> (*.o) -> excutable ] 전처리 단계 컴파일 단계 어셈..
2023.03.09 -
컴퓨터 메모리 구조 프로그램 실행 과정 사용자가 프로그램 실행시 운영체제에게 실행을 요청한다. 운영체제가 프로그램을 읽어드려 메모리에 적재한다. 적재된 프로그램의 코드를 통해 CPU가 명령문을 실행하고 메모리를 관리한다. 메모리 구조 1. 코드 영역 CPU가 실행할 명령을 가져오고 프로그램의 데이터가 저장되는 곳이다. 코드 영역은 프로그램 실행을 위한 기계 수준 명령 및 데이터 저장되는 곳이다. 일반적으로 텍스트 세그먼트 또는 코드 세그먼트라고도 불린다. 프로그램 실행 중 코드가 변경되면 프로그램이 오작동하거나 충돌할 수 있으므로 코드 영역은 읽기 전용 메모리(ROM) 또는 메모리(RAM) 영역 중 읽기 권한만 있는곳에 존재한다. 메모리의 코드 영역에는 프로그램에 필요한 기계 수준 명령과 프로그램에 필요..
컴퓨터 메모리 구조컴퓨터 메모리 구조 프로그램 실행 과정 사용자가 프로그램 실행시 운영체제에게 실행을 요청한다. 운영체제가 프로그램을 읽어드려 메모리에 적재한다. 적재된 프로그램의 코드를 통해 CPU가 명령문을 실행하고 메모리를 관리한다. 메모리 구조 1. 코드 영역 CPU가 실행할 명령을 가져오고 프로그램의 데이터가 저장되는 곳이다. 코드 영역은 프로그램 실행을 위한 기계 수준 명령 및 데이터 저장되는 곳이다. 일반적으로 텍스트 세그먼트 또는 코드 세그먼트라고도 불린다. 프로그램 실행 중 코드가 변경되면 프로그램이 오작동하거나 충돌할 수 있으므로 코드 영역은 읽기 전용 메모리(ROM) 또는 메모리(RAM) 영역 중 읽기 권한만 있는곳에 존재한다. 메모리의 코드 영역에는 프로그램에 필요한 기계 수준 명령과 프로그램에 필요..
2023.03.09 -
아키텍처의 정의와 종류 별 특징 아키텍처란? 컴퓨터 아키텍처는 컴퓨터 시스템의 기본 설계 및 조직 구조를 말한다. 여기에는 CPU, 메모리 및 I/O 장치와 같은 하드웨어 구성 요소의 사양과 이들이 서로 상호 작용하여 프로그램을 실행하는 방식이 포함된다. 이때 아키텍처는 명령 집합, 메모리 주소 공간, 컴퓨터의 하드웨어 및 소프트웨어 구성 요소에서 사용하는 통신 프로토콜을 정의한다. 컴퓨터 아키텍처의 목표는 성능, 비용 및 전력 소비와 같은 요소를 고려하면서 사용자의 요구를 충족하는 컴퓨터 시스템 설계를 위한 청사진을 제공하는 것이다. 현대에 일반적으로 사용되는 대표적인 몇 가지 컴퓨터 아키텍처는 다음과 같다. 아키텍처 종류 아래는 현대에서 자주 사용되는 대표적인 아키텍처의 종류다. 이중에 우리가 실생활..
아키텍처의 정의와 종류 별 특징아키텍처의 정의와 종류 별 특징 아키텍처란? 컴퓨터 아키텍처는 컴퓨터 시스템의 기본 설계 및 조직 구조를 말한다. 여기에는 CPU, 메모리 및 I/O 장치와 같은 하드웨어 구성 요소의 사양과 이들이 서로 상호 작용하여 프로그램을 실행하는 방식이 포함된다. 이때 아키텍처는 명령 집합, 메모리 주소 공간, 컴퓨터의 하드웨어 및 소프트웨어 구성 요소에서 사용하는 통신 프로토콜을 정의한다. 컴퓨터 아키텍처의 목표는 성능, 비용 및 전력 소비와 같은 요소를 고려하면서 사용자의 요구를 충족하는 컴퓨터 시스템 설계를 위한 청사진을 제공하는 것이다. 현대에 일반적으로 사용되는 대표적인 몇 가지 컴퓨터 아키텍처는 다음과 같다. 아키텍처 종류 아래는 현대에서 자주 사용되는 대표적인 아키텍처의 종류다. 이중에 우리가 실생활..
2023.03.09 -
고급언어, 저수준 언어 고급언어 고급 언어는 기본 하드웨어에서 더 높은 수준의 추상화를 제공하는 프로그래밍 언어다. 저수준 및 기계 언어보다 사람이 더 쉽게 읽을 수 있고 사용하기 쉽도록 설계되었다. 이러한 언어는 더 높은 수준의 추상화를 제공하고 개발자가 더 추상적이고 기본 하드웨어에 덜 묶인 코드를 작성할 수 있으므로 저수준 언어보다 배우고 사용하기 쉽다. 고급 언어의 예 Python Ruby JavaScript Java C++ 저수준 언어 저수준 언어는 기본 하드웨어에서 더 낮은 수준의 추상화를 제공하는 프로그래밍 언어다. 고급 언어보다 더 기계가 읽을 수 있고 효율적으로 설계되었다. 저수준 언어의 대표적인 예로는 C가 있다. 저수준 언어는 컴퓨터 하드웨어가 이해하는 언어인 기계어에 가깝다. 저수준..
고급언어, 저수준 언어고급언어, 저수준 언어 고급언어 고급 언어는 기본 하드웨어에서 더 높은 수준의 추상화를 제공하는 프로그래밍 언어다. 저수준 및 기계 언어보다 사람이 더 쉽게 읽을 수 있고 사용하기 쉽도록 설계되었다. 이러한 언어는 더 높은 수준의 추상화를 제공하고 개발자가 더 추상적이고 기본 하드웨어에 덜 묶인 코드를 작성할 수 있으므로 저수준 언어보다 배우고 사용하기 쉽다. 고급 언어의 예 Python Ruby JavaScript Java C++ 저수준 언어 저수준 언어는 기본 하드웨어에서 더 낮은 수준의 추상화를 제공하는 프로그래밍 언어다. 고급 언어보다 더 기계가 읽을 수 있고 효율적으로 설계되었다. 저수준 언어의 대표적인 예로는 C가 있다. 저수준 언어는 컴퓨터 하드웨어가 이해하는 언어인 기계어에 가깝다. 저수준..
2023.03.09 -
JVM(Java Virtual Machine) JVM(Java Virtual Machine)은 중요한 구성 요소중의 하나다. JVM은 Java 코드를 실행하고 Java 애플리케이션을 위한 플랫폼 독립적인 런타임 환경을 제공하고 다양한 장치 및 플랫폼에서 일관된 동작을 보장하고 메모리 관리 및 보안 기능을 제공한다. JVM은 컴파일된 Java 코드를 해석하고, 메모리를 관리하고, Java의 액세스 제한을 적용하여 보안을 제공하는 역할을 한다. JVM의 주요 이점 중 하나는 플랫폼 독립성이다. Java 코드는 JVM이 있는 모든 장치에서 실행할 수 있는 바이트코드라는 기계 독립적 형식으로 컴파일됩니다. 이를 통해 다양한 장치 및 플랫폼에서 실행할 수 있다. JVM은 표준 런타임 환경을 제공하여 다양한 장치 ..
JVM이란?JVM(Java Virtual Machine) JVM(Java Virtual Machine)은 중요한 구성 요소중의 하나다. JVM은 Java 코드를 실행하고 Java 애플리케이션을 위한 플랫폼 독립적인 런타임 환경을 제공하고 다양한 장치 및 플랫폼에서 일관된 동작을 보장하고 메모리 관리 및 보안 기능을 제공한다. JVM은 컴파일된 Java 코드를 해석하고, 메모리를 관리하고, Java의 액세스 제한을 적용하여 보안을 제공하는 역할을 한다. JVM의 주요 이점 중 하나는 플랫폼 독립성이다. Java 코드는 JVM이 있는 모든 장치에서 실행할 수 있는 바이트코드라는 기계 독립적 형식으로 컴파일됩니다. 이를 통해 다양한 장치 및 플랫폼에서 실행할 수 있다. JVM은 표준 런타임 환경을 제공하여 다양한 장치 ..
2023.03.09 -
Decompile이란? 디컴파일이란 컴퓨터에서 읽을 수 있는 코드를 원래 코드 기능으로 사람이 읽을 수 있는 소스 코드로 변환하는 행위다. 디컴파일은 리버스 엔지니어링의 한 방법으로, 독립적으로 창작된 컴퓨터 프로그램과 다른 프로그램과의 호환에 필요한 정보를 얻기 위해 사용될 수 있다. 디컴파일러는 디컴파일을 수행하는 컴퓨터 프로그램이다. 디컴파일은 애플리케이션의 소스 코드를 분석하고 애플리케이션의 보안 결함을 탐색하는 데 유용하게 사용될 수 있지만 원본 프로그램의 저작권을 침해하지 않도록 주의해야 한다. APK와 Decompile APK (Android PacKage) 파일은 Android 애플리케이션의 실행 파일이다. APK 파일은 리소스 및 Android Manifest 파일 및 Java 언어로 작..
Decompile이란?Decompile이란? 디컴파일이란 컴퓨터에서 읽을 수 있는 코드를 원래 코드 기능으로 사람이 읽을 수 있는 소스 코드로 변환하는 행위다. 디컴파일은 리버스 엔지니어링의 한 방법으로, 독립적으로 창작된 컴퓨터 프로그램과 다른 프로그램과의 호환에 필요한 정보를 얻기 위해 사용될 수 있다. 디컴파일러는 디컴파일을 수행하는 컴퓨터 프로그램이다. 디컴파일은 애플리케이션의 소스 코드를 분석하고 애플리케이션의 보안 결함을 탐색하는 데 유용하게 사용될 수 있지만 원본 프로그램의 저작권을 침해하지 않도록 주의해야 한다. APK와 Decompile APK (Android PacKage) 파일은 Android 애플리케이션의 실행 파일이다. APK 파일은 리소스 및 Android Manifest 파일 및 Java 언어로 작..
2023.03.09