전체 글
-
Git에서 변경사항 확인과 되돌리기: git diff, git checkout, git add, git resetCS 공부/Git 2024. 12. 3. 22:30
Git을 사용할 때 변경사항을 확인하고, 스테이징하거나 되돌리는 과정은 기본 중의 기본이다. 하지만 이를 효율적으로 활용하려면 명령어의 역할과 연관성을 잘 이해해야 한다. 이번 글에서는 변경사항 확인 및 되돌리기와 스테이징 및 취소의 두 가지 흐름으로 나누어 명령어들을 정리하려고 한다.1. 변경사항 확인 및 되돌리기변경사항을 확인하고, 필요에 따라 되돌리는 작업은 작업 중간에 자주 하게 되는 일이다. git diff로 변경사항을 확인하고, git checkout으로 필요 없는 변경사항을 되돌릴 수 있다.1-1) git diff: 변경사항 확인git diff 명령어는 수정된 파일의 변경 내용을 확인할 때 사용한다. 주로 스테이징되지 않은 변경사항을 확인하는 데 유용하다.git diff 스테이징된 파일의 변..
-
리눅스에서 커널 버전 확인 및 디폴트 커널 설정 방법CS 공부/기본CS 2024. 11. 19. 23:15
리눅스 운영 체제에서 커널 버전을 확인하고, 원하는 커널을 기본으로 설정하여 부팅할 수 있는 방법에 대해 설명하겠습니다. 이번 글에서는 uname 명령어로 커널 버전을 확인하는 방법과, 디폴트 커널 설정을 통해 시스템 부팅 시 원하는 커널로 시작할 수 있는 방법을 구체적으로 알아보겠습니다.1. uname 명령어로 커널 버전 확인하기리눅스에서 현재 실행 중인 커널의 버전은 uname -r 명령어를 사용해 확인할 수 있습니다. 이 명령어는 실행 중인 커널의 버전을 출력하며, 커널 버전 정보는 시스템 내의 특정 파일에서 가져옵니다.$ uname -runame -r 명령어는 커널 소스 디렉토리(kernel source directory) 내 include/generated/utsrelease.h 파일에 정의된 ..
-
리눅스 커널 빌드 과정과 커널-모듈의 차이CS 공부/기본CS 2024. 11. 18. 23:22
Linux 운영체제의 핵심 부분인 커널은 하드웨어와 소프트웨어 사이에서 중요한 인터페이스 역할을 합니다. 이번 글에서는 리눅스 커널을 빌드하는 과정과, 커널의 확장 기능인 모듈에 대해 알아보겠습니다.1. 커널 빌드 과정리눅스 커널을 빌드할 때는 커널 설정부터 빌드, 설치까지의 여러 단계를 거치게 됩니다. 아래는 주요 명령어와 각 명령어의 역할을 설명한 과정입니다.make menuconfig: 커널 빌드 설정 파일을 만드는 명령어로, 사용자 인터페이스를 통해 커널에서 사용할 기능과 모듈을 설정합니다. 이 설정은 .config 파일에 저장되며, 이후 빌드 과정에서 적용됩니다.make -j16: 커널을 빌드하는 명령어로, -j16 옵션을 통해 동시에 16개의 프로세스를 생성하여 빌드를 병렬로 진행하게 합니다...
-
SW 빌드 과정의 단계 : 컴파일, 링크, 패키징CS 공부/기본CS 2024. 11. 17. 14:18
소프트웨어 빌드는 소스 코드를 실행 파일로 변환하는 과정입니다. 빌드 과정은 일반적으로 컴파일(Compilation), 링크(Linking), 그리고 패키징(Packaging)의 단계로 이루어져 있습니다. 각 단계는 소스 코드가 최종 실행 파일로 변환되는 데 필수적인 역할을 합니다. 이 글에서는 빌드 과정의 각 단계와 그 역할에 대해 자세히 설명하겠습니다.1. 컴파일 (Compilation)컴파일은 개발자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 기계어(바이너리 코드)로 변환하는 과정입니다. 이 단계에서, 사람이 읽을 수 있는 고수준 프로그래밍 언어(예: C, C++, Java)로 작성된 코드가 컴파일러에 의해 저수준 언어인 중간 코드(인터미디어트 코드)나 객체 코드(Object Code)로 변환됩..
-
소스 코드 배포에서 .config 파일의 역할2: SW, HW 모두 고려한 최적화CS 공부/기본CS 2024. 11. 17. 14:12
.config 파일은 보통 하드웨어 환경과 설치할 소프트웨어의 특성 모두를 고려하여 설정됩니다. 두 가지 측면을 모두 반영하는 이유는 최적의 성능과 안정성을 확보하기 위해서입니다. 아래에서 이 두 가지 측면이 왜 중요한지 자세히 설명드리겠습니다.1. 하드웨어 환경 고려.config 파일 설정에서 하드웨어 환경은 중요한 요소입니다. 각 시스템마다 CPU 아키텍처, 메모리 용량, 저장소 크기 등이 다르기 때문에, 하드웨어에 맞는 최적화가 필요합니다. .config 파일에서 CPU 아키텍처에 맞춘 최적화 옵션을 지정하거나, 메모리와 저장소 제한을 설정하면 해당 시스템에서 성능이 향상될 수 있습니다. 예시: ARM 기반 CPU와 x86 기반 CPU는 서로 다른 아키텍처를 가지고 있습니다. .config 파일에서..
-
소스 코드 배포에서 .config 파일의 역할: 최적화와 환경 설정의 핵심CS 공부/기본CS 2024. 11. 17. 14:05
소프트웨어를 소스 코드 형태로 배포할 때 .config 파일은 빌드 과정에서 필수적인 역할을 합니다. .config 파일은 사용자에게 맞춤형 설정을 가능하게 하여, 다양한 환경에서 소프트웨어를 최적화하고 실행할 수 있도록 돕습니다. 이 글에서는 .config 파일이 빌드와 소프트웨어 설정에서 수행하는 핵심 역할을 알아보겠습니다.1. 환경에 맞는 최적화 설정소스 코드를 다양한 환경에 맞게 최적화하려면 빌드 과정에서 시스템 환경에 맞는 설정이 필요합니다. .config 파일은 빌드 과정에서 컴파일러 설정, CPU 아키텍처, 운영 체제 관련 최적화 옵션 등을 적용하여 사용자의 시스템에 맞는 최적의 소프트웨어 성능을 이끌어낼 수 있게 해줍니다. 예시: 리눅스 커널을 빌드할 때 .config 파일에서 특정 CPU..
-
빌드된 파일 대신 소스 코드를 배포하는 이유: 다양한 환경과 최적화의 필요성CS 공부/기본CS 2024. 11. 17. 13:48
소프트웨어를 배포할 때, 이미 빌드된 실행 파일 대신 소스 코드를 배포하는 경우가 많습니다. 이렇게 소스 코드 형태로 배포하는 것은 이식성, 최적화, 보안 및 커스터마이징이라는 여러 가지 이유에서 유리합니다. 이번 글에서는 소스 코드 배포의 장점과 그 이유에 대해 알아보겠습니다.1. 환경 호환성 문제 해결모든 컴퓨터 환경이 동일하지 않기 때문에, 미리 빌드된 실행 파일이 다양한 운영 체제와 하드웨어에서 호환되지 않을 가능성이 큽니다. 소스 코드를 배포하면 사용자가 자신의 환경에 맞게 직접 빌드할 수 있으므로, 다양한 운영 체제와 하드웨어에서도 소프트웨어가 정상적으로 작동할 수 있습니다. • 예시: Linux, macOS, Windows 등 서로 다른 운영 체제에서 동일한 소프트웨어를 사용하기 위해 ..
-
빌드와 설치의 차이점: 소프트웨어 실행 준비 과정 이해하기CS 공부/기본CS 2024. 11. 17. 13:40
소프트웨어를 실행할 준비를 하는 과정에서 자주 등장하는 용어가 빌드(Build)와 설치(Install) 입니다. 이 두 과정은 각각 소프트웨어를 준비하고 시스템에 적용하는 역할을 합니다. 비슷해 보이지만, 빌드와 설치는 목적과 과정에서 큰 차이를 가지고 있습니다. 1. 빌드(Build)란?빌드는 소스 코드를 컴퓨터가 실행할 수 있는 형태로 변환하는 과정입니다. 소프트웨어 개발자는 프로그램을 작성할 때 소스 코드라는 텍스트 형식의 코드로 작성하며, 이 코드는 사람이 이해하기 쉬운 형태로 구성됩니다. 그러나 컴퓨터가 프로그램을 실행하려면 이 소스 코드를 컴퓨터가 이해할 수 있는 기계어(바이너리 코드) 로 변환해야 합니다. 빌드는 바로 이 변환 과정입니다.빌드는 컴파일(Compile), 링크(Link), 그리..