CS 19

[운영체제] 리눅스 패키지(내가 맨날 헷갈린 apt쓸 때와 yum을 쓸 때)

(패키지라는 것이 무엇인지 알고 보는게 편하다. 이전 포스트를 보고오자. 리눅스에서는 리눅스 패키지라는 것이 존재한다. 리눅스 패키지란 리눅스 시스템에서 소프트웨어를 실행하는데 필요한 파일들(실행 파일, 설정 파일, 라이브러리 등)이 담겨 있는 설치 파일 묶음이다. 리눅스는 배포판에 따라 다른 패키지 형식을 지원한다. 여기에서 yum을 사용하는 경우와 apt를 사용하는 경우가 달라지게 된다. debian : ec2에서 사용하던 apt가 들어있다. 패키지는 .deb파일로 되어있다. 레드헷 : yum이 들어있다. 패키지는 .rpm파일로 되어있다. openSUSE : zypper이 들어있다고 한다. openSUSE를 위해 특별히 빌드된 패키지 형식이다. .rpm파일로 되어있다. if(rpm(레드헷) === r..

CS/운영 체제 2024.04.03

[운영체제] 패키지(리눅스 배포 패키지, npm)

개발을 하는 우리는 항상 리눅스를 사용한다. 그런데, 사람들의 블로그 포스팅을 보면 항상 이해되지 않는 한 가지가 존재했다. 왜 어떤 사람은 yum을 쓰고 어떤 사람은 apt를 쓸까? 이 질문에서 패키지라는 것을 학습해봐야겠다는 생각이 들었다. What is Package? 패키지는 소스코드 패키지, 바이너리 패키지로 분류된다. (저급언어/고급언어에 대해 안다면 이해가 쉬울 것 같다) 소스 패키지는 소스 코드로 이루어져 있는 패키지이다. 이를 읽고 실제로 컴퓨터에 적용시키려면 컴파일을 한 후 바이너리 코드를 컴퓨터에서 실행시켜야 한다. 그래서 설치가 더 오래걸린다는 단점이 존재한다. 또한, 하드웨어의 더 많은 저장공간을 차지한다고 한다. 그리고, 컴파일 에러가 발생할 수 있다는 단점이 있다. 바이너리 패..

CS/운영 체제 2024.04.03

[운영체제] 컴퓨터 구조 간단하게 정리해보기(부제. 왜 스왑 메모리가 느렸을까?)

컴퓨터 구조부터 시작해서 점점 깊이있게 파보려고 한다. 기본적으로 컴퓨터의 구조를 이야기해보라고 하면 넓게 CPU, 주기억장치, 보조기억장치, 입출력장치, 메인보드로 분류를 한다고 한다. CPU에서 연산과 명령들이 나오고 이걸 주기억 장치에 담아두거나 데이터를 가져오고, 보조기억장치에는 데이터를 저장, 삭제등을 진행하고 입출력 장치로 키보드 뚜따뚜따(?)하거나 마우스 딸깍하거나(그래서 내가하던 마비X기라는 게임에서 딸각충이라는 말들이 많았다. 키보드 안쓰고 마우스만 한번 누르면 된다고..) 해서 입력하고 모니터로 보거나 스피커등으로 듣는 입출력 장치가 있고 조립식 컴퓨터 사면 맨날 뭐 하나 잘못꽂아넣는 메인보드가 있다. 이정도는 나도 대충은 들어봤었다. 그렇다면 이들은 실질적으로 어떻게 맞물릴까? 내가 ..

CS/운영 체제 2024.03.15

[운영체제] 주소지정 방식!(이거만 하고 진짜 컴퓨터구조와 운영체제를 봅시다)

서론 실질적 하드웨어를 다루기 전에, 마지막으로 명령어와 주소지정방식에 대해서 정리해봐야겠다는 생각이 들었다. 이후의 기본 구조를 공부할 때 이 부분이 이해가 더욱 잘 되는 것도 있었고, 컴퓨터 구조의 기본을 공부할 때 오히려 이 부분을 알고보니 "아 이래서 이렇구나?"라는 생각이 더 공부하기 재밌었다고 느꼈기 때문이다. 또한, 이전의 소스코드의 어셈블리어의 파생내용이라고 생각했다. 0과 1로는 우리가 명령어를 다 외울 수 없다. 그렇다면 어셈블리어는 어떻게 쓰는걸까? 소스코드에서도 0과 1로 우리가 애플리케이션, 프로그램을 만드는 것은 너무 어렵다. 컴퓨터의 명령어도 마찬가지다. 우리가 학습하고, 필요에 따라 활용하기에는 어셈블리어가 더 이해가 쉽다. 이러한 어셈블리어는 어떻게 생겼고, 우리는 어떻게 ..

CS/운영 체제 2024.03.11

[운영체제] 소스코드 찍어먹기(부제 : 프로그래머스에서 js가 java보다 느린 이유?)

운영체제에서 무엇을 먼저 포스팅해볼까를 모르겠었다. 그래도, 개발하면서 제일 익숙한 코드와 관련된 부분부터 간단하게 정리하고 지나가는 것이 좋다고 생각했다. 일단 언어는 무엇이 있을까? 개발 트렌드에 있는 자바, 자바스크립트, 파이썬등이 있고, 컴퓨터 관련 전공 대학교 1학년들이 듣는(나때는 그랫어!) C언어가 있다. 확실히 배워보면 안다. 1학년때 C언어를 배우던 나는, 코딩이 이렇게 재미 없는건가 싶었다. 도대체 왜 공부하나 싶다. 그런데, 자바나 자바스크립트로 웹을 만들어보면 참 재밌다는 생각이 들었다. 둘의 가장 큰 차이가 뭘까? 사람이 쓰기 편하냐였다. 저급언어, 고급언어 저급언어와 고급언어가 가지는 차이점이 여기에서 보여진다. 저급언어는 컴퓨터가 직접 이해하고 실행할 수 있는 언어라면, 고급언..

CS/운영 체제 2024.03.06

[Network] 짧은 상식, MAC와 IP 주소값은 어떻게 만들어질까?

네트워크 관련 공부를 하면서, 물리적인 장치의 주소는 MAC주소로, 논리적인 주소는 IP로 담는다는 것을 알게 되었다. 그렇다면, 이 MAC 주소와 IP 주소는 어떻게 생겼을까? 그리고 무슨 규칙성을 가지게 될까? 이 부분에 대해서 정리해야겠다는 생각이 들었다. MAC MAC 주소가 만들어지는 원리는 생각보다 단순하다. 주소는 물리적 장치의 주소이며, 이는 Network Interface Card(NIC)라는 하드웨어 장치가 6바이트 주소를 가지고 있게 한다. 이 주소를 통해 물리적 장치의 고유 식별번호가 생기는 것이다. 맥 주소는 하드웨어를 생산할 때 해당 제조사에서 직접 부여하는 방식으로 진행된다(마치 태어나서 주민등록번호를 받고 평생 같이사는 우리같다) 맥 주소는 총 6바이트로 이루어져 있으며, 일..

CS/네트워크 2024.01.25

[Network] TCP/IP를 제대로 풀어봐요 1. TCP/IP를 쓰는 이유 & 네트워크 인터페이스 계층의 프로토콜들

이전 포스트는 https://jangsarchive.tistory.com/158 여기를 참고해주세요! 서론 네트워크를 하나씩 딥하게 찾아보기 이전에, OSI 7계층이 아닌, TCP/IP를 풀어보려고 하는 이유가 뭘까? 웹 개발자로서, 그리고 인터넷 통신에 대해서 조금더 학습하기 위해서 TCP/IP를 풀어보려고 한다. 그렇다면 OSI 7계층과 TCP/IP의 근본적인 차이가 무엇일까? 이를 위해서는 TCP/IP가 무엇인지 자세하게 생각해볼 필요가 있다. 웹 개발에 핵심적인 웹 프로토콜이라는 것이 존재한다. 여기에서 말하는 프로토콜이란, 간단히 '규칙'이라고 하는데, 이는 OSI 7계층 중 응용 계층의 HTTP 프로토콜로 동작하며, 전송 계층의 TCP(HTTP 3/0에서는 UDP로 되어있긴 하다) 프로토콜을 ..

CS/네트워크 2024.01.17

[Network] OSI 7계층 1차 찍먹하기(부제 : 홍대에서 술먹고온 이장희)

분명 나는 학교에서 이 분야에 대해서 학습을 했었다. OSI 7계층에 관한 이야기는 나의 학습이라기 보단, 지금까지 배운 것들을 다시 정리해보기 위한 포스팅일것 같다. 정리를 하고 후에 학습하려했던 본론을 또 정리해봐야겠다. 정리를 위한 나의 예시(실제는 아니다)를 들어서 정리해보았다. 태초엔 0과 1이 존재했다. -> Physical Layer 우리의 컴퓨터가 지금 보았을 때 어떤 화면을 하고있건, 결국 모든 컴퓨터의 데이터는 0과 1로 되어있다. 0과 1이 넘어가면서 원하는 형식의 문자열이 되기도, 특정 신호가 되기도 한다. 그렇다면 이 0과 1을 어떻게 주고받을까? 초등학교/중학교 시절에 결국 모든 전기 신호는 0과 1로, 껐다가 키는 것으로 분류된다고 이야기한다. 이러한 0과 1을 랜선을, 와이파..

CS/네트워크 2024.01.16

[데이터베이스] DB replication 한번 구경해보기

사건의 발단은 곰터뷰에서 우리의 쿼리깎기와, 이전 멘토님의 코멘트중에 있었다. DB를 더 빠르게 할 수 없을까? 데이터베이스 서버가 꺼졌다면, 우리는 어떻게 대응해야할까? 상태확인만으로 괜찮을까? 당시에는 이걸 그냥 상태확인으로 넘기고, 다른 생각을 해보지 못했었다. 이번 기회에, 이걸 어떻게 해결하는게 좋은지 생각을 하려고 했다. 일단 현 상황부터 확인을 해야헀다. 우리의 DB는 단 하나의 서버로 동작한다. 해당 서버가 터져버리거나, 불의의 사고로 소실되었을 때, 우리는 대처할 수 없다. 그렇다면? 간단하게 데이터베이스를 여려 개 두어서 동기화를 시키거나, DB의 값들을 로컬에 따로 저장했다가, 로컬 스토리지의 데이터를 활용하는 방법 정도가 생각났다. 그런데, 로컬이라는 것도 결국에는 애플리케이션의 수..

[OS] 파일 시스템 (부제 : 익숙함에 속아 소중함을 잊지 말자)

파일 시스템이 무엇일까? 우리가 흔하게 쓰는 폴더 안에 폴더 안에 파일 몇개, 그리고 폴더 몇개, 그 폴더 안에 파일 몇개 폴더 몇개.... 끝도없이 구조를 만들 수 있다. 이런 구조를 어떻게 생각해냈고, 어떻게 접근하는걸까? 이거에 대해서 간단하게 공부해보았다. 일단, 폴더를 '디렉토리' 라는 명칭으로 파일 시스템이 이루어져 있다. 폴더는, 파일 시스템에서 부르는 디렉토리, 그 이상의 의미를 가진다. 파일 시스템에서, 파일들을 담으면서, 파일의 경로를 알려주는 디렉토리 이상으로 폴더는 역할을 가지고 있다. 폴더는 파일 시스템에서 다루지 않는 네트워크 환경등을 담고 있기 때문이다. 이를 알고, 디렉토리 & 파일로 파일 시스템을 이해해 보자. 파일 시스템은 디렉토리가 계층적으로 구조를 가지고 있다. 쉽게 ..

CS/운영 체제 2023.08.08