본문 바로가기

프로그래밍38

소프트웨어 종류 및 동작 원리, 운영체제, 커널, 프로세스와 스레드 ■ 소프트웨어(Software)소프트웨어란 컴퓨터를 비롯한 시스템에서 특정 작업을 수행하게 하는 프로그램의 집합으로 그 수행에 필요한 절차, 규칙, 문서 등의 총칭을 말한다.출처 : 한국정보통신기술협회소프트웨어는 하드웨어에서 구동되는 논리적인 무형물로, 사용자의 명령을 하드웨어에게 전달해주는 시스템 구성 요소 중 하나이다.​하드웨어가 없으면 애초에 소프트웨어를 설치할 수 없고, 소프트웨어가 없는 하드웨어는 빈 껍데기나 다름없다. 서로 반대되는 개념보다는 각자 역할을 갖고 시스템을 이루는 상호 보완적 관계라고 보면 된다.​하드웨어가 쇠붙이, 전자공학적인 부품 그리고 회로 등으로 구성되어 있다면, 소프트웨어는 프로그램으로 구성되어 있다. 프로그램이란 큰 의미에서 소프트웨어가 수행하는 모든 일들을 통칭하는데,.. 2024. 6. 23.
펌웨어(Firmware) ■ 펌웨어펌웨어는 컴퓨팅과 공학 분야에서 특정 하드웨어 장치에 포함된 소프트웨어로, 소프트웨어를 읽어 실행하거나 수정하는 것도 가능한 영구적 소프트웨어를 뜻한다.출처 : 위키백과 펌웨어는 하드웨어의 기본적인 구동 및 제어를 담당하는 특수 용도의 소프트웨어를 말한다. 소프트웨어라고 하지만 보통 하드웨어 엔지니어가 도맡아 지원한다.​■ 펌웨어와 소프트웨어위키백과에서 펌웨어는 소프트웨어라고 정의했다. 여기서 처음 들었던 의문점은 "소프트웨어면 소프트웨어지 왜 굳이 펌웨어라는 명칭을 사용할까" 였다.일반적인 소프트웨어(OS, Application 등)는 RAM에서 구동된다.펌웨어는 영구적인 명령어와 데이터로 이루어져 있으므로, 제조단계에서 ROM(혹은 PROM)에 기록된다.즉, 내용이 날아가면 안되고 사용자가 .. 2024. 6. 23.
[개발용어] C, C++, C# 언어의 차이점 언어유형개발연도주요용도특징C절차 지향 언어1972시스템 프로그래밍, 임베디드 시스템저수준 메모리 조작, 속도, 효율성C++객체 지향 언어1983게임 과학 시뮬레이션, 운영체제, 블록체인클래스, 상속, 다형성, 탬플릿C#객체 지향 언어2000Windows 데스크톱 애플리케이션, 게임, 웹 애플리케이션가비지 수집, 유형 안전성, 사용하기 쉬운 구문■ C언어C언어는 위 세가지 언어 중 가장 기본이 되는 언어이다. 가장 오래되고, 가장 널리 사용되고 있으며, 운영체제나 언어 처리계 등의 시스템 기술에 적합한 프로그래밍 언어이다.​C언어는 절차 지향 언어(procedure oriented language)이다. 즉, 함수를 이용해서 프로그램을 만들어 순차적으로 실행되는 언어라고 할 수 있다. 코드를 짠 순서대로 .. 2024. 6. 23.
[개발용어] 컴파일, 디버깅, 빌드, 배포 ■ 컴파일컴파일 언어는 코드가 실행되기 전 컴파일러를 거쳐 기계어로 모두 변환되어 실행되는 프로그래밍 언어이다.출처 : 위키백과 쉽게 말해서 컴파일(compile)이란 개발자들이 특정한 프로그래밍 언어(C, C++, Java, Python 등)을 사용해서 컴퓨터가 이해할 수 있는 기계어 코드로 변환하는 작업을 일컫는다. 즉, 컴퓨터와 그 컴퓨터에 설치된 운영체제가 이해할 수 있는 기계어 코드로 변환하는 과정 또는 일이다.■ 링크컴파일이 끝나면 나눠져 있는 Object 파일들이나 다른 파일들을 엮어주는 작업이 필요한데, 이 작업을 링킹이라고 한다.​사실 우리가 일반적으로 프로그래밍을 하면서 모든 작업들을 프로그래밍하지는 않는다. 예를 들어 키보드 입력에 대한 Scanner를 쓰지만 어떻게 키보드가 입력되고.. 2024. 6. 23.
[개발용어] 기계어, 어셈블리어, 고급언어 ■ 기계어기계어는 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 통틀어 일컫는다. 기계어는 프로그램을 나타내는 가장 낮은 단계의 개념이다.출처 : 위키백과 기계어는 쉽게 말해 컴퓨터의 언어이다. CPU가 별 다른 컴파일 없이 직접 해독하고 실행할 수 있는 0과 1로 이루어진 비트 단위의 언어이다. 여기서 0과 1은 엄밀히 따지면 숫자(데이터)는 아니다. 있다, 없다 그리고 양극과 음극 정도의 개념이다.​기계어는 CPU가 해독할 수 있는 유일한 언어이기 때문에 모든 프로그래밍 언어는 결국 기계어로 번역이 되어 CPU에게 전달된다.위와 같은 기계어는 가독성이 현저히 떨어져 보통의 사람들에게는 단순히 0과 1의 반복된 난해한 언어로 보인다. 따라서 기계어로 프로그래밍을 짜는 사람은 거.. 2024. 6. 23.
CR / LF / CRLF 에 대한 이해 ■ CR, LFCR과 LF는 타자기에서 유래된 단어이다. 타자기로 문서를 작성할 때 한 줄에 글자를 다 입력했으면 아래 줄로 이동시켜줘야한다. 아래 줄로 이동하는 것이 Line Feed(LF)이고, 왼쪽 끝으로 밀어 주는 것이 Carrige Return(CR)이다. ■ CRCarriage Return (\r)현재 커서를 줄 올림 없이 가장 앞으로 옮기는 동작■ LF​Line Feed (\n)커서는 그 자리에 그대로 둔 상황에서 종이만 한 줄 올려 줄을 바꾸는 동작■ CRLFCRLF = CR + LF커서를 아랫줄로 보내고 맨 앞으로 보내는 동작EOL이란 End Of Line 의 줄임말로 CRLF와 같은 의미를 지닌 말이다■ 운영체제 별 CR, LFWindows : CRLF(\r\n)Unix/Linux : .. 2024. 6. 23.