일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 엘라스틱서치
- 네트워크
- 자바
- 스프링부트
- 캐시
- springboot
- 백엔드
- C
- 리눅스
- IT
- 쿠버네티스
- Spring
- Linux
- 카카오
- docker
- 프로그래머스
- 알고리즘
- 도커
- 개발자
- Java
- DPDK
- Kakao
- Python
- 스프링
- 운영체제
- programmers
- Elasticsearch
- 코딩테스트
- 파이썬
- 프로그래머스 #카카오 #IT #코딩테스트
- Today
- Total
저고데
[Linux] 0. Linux 왜 배워야 하는가? 본문
들어가며
이건 필자가 컴퓨터과학을 처음 접할 때의 이야기이다.
"Windows, Mac OS는 들어봤는데 Linux는 도대체 뭔데?"
펭귄 모양의 아이콘이 상당히 귀여워서 첫인상은 호감이었지만, 시간이 지날수록 점점 마음이 아파오기 시작했다.
바로 이전까지 사용하던 Windows와는 상당히 달랐고, 무엇보다 마우스를 사용할 수 없어서 불편함을 겪었기 때문이다.
이것이 Linux의 큰 특징 중 하나이다.
바로 마우스를 사용할 수 없다는 것(물론 문서와 같은 데이터를 읽을 때, 드래그 같은 간단한 기능은 가능하지만, 대부분의 작업은 명령어를 통해 이루어진다.)
컴퓨터의 탄생 배경을 살펴보면, 초기 컴퓨터의 상용화를 목표로 하지 않았다.
오로지 복잡한 계산을 수행하기 위한 학문적인 도구였다.
따라서, 사용자에게 친절할 필요도 없었으며, 프로그래밍을 할 줄 아는 극소수의 전문가들이나 사용할 수 있었다.
이들은 명령어를 통해 컴퓨터를 작동시켰고, 이는 Linux와 같은 운영체제에서도 마찬가지였다.
이처럼 사용자가 키보드를 통해 명령어를 입력하여 작동하는 운영체제 방식을 CLI(Command Line Interface)라고 한다.
이제 본격적으로 Linux에 대해서 알아보자.
Linux란 무엇인가?
Linux를 이해하려면, 먼저 그 이전에 존재했던 Unix라는 운영체제를 알아야 한다.
Unix는 성능이 뛰어나다는 장점이 있었지만, 사용하기 위해서는 막대한 비용을 지불해야 했고, 업데이트 주기도 들쑥날쑥했기에 사용자들의 요구를 빠르게 반영하지는 못했다.
이러한 단점들을 보완하고, 누구나 무료로 사용할 수 있으며, 함께 개발할 수 있는 운영체제를 만들고자 한 사람이 있었으니 ...
그 사람이 바로, 'Linus Torvalds'이다.
Linus Torvalds는 1991년에 처음으로 Linux를 세상에 공개했다.
그것도 누구나 소스 코드를 볼 수 있는 상태로 말이다.
소스 코드를 자유롭게 볼 수 있고, 수정할 수 있다는 것이 Linux가 오늘날까지 널리 사랑받는 이유 중 하나다.
이처럼 누구나 소스 코드를 보고 수정할 수 있는 것을 '오픈 소스'라고 한다.
전 세계의 개발자들이 참여해 발전시킨 덕분에, Linux는 안정성, 보안성, 유연성이 뛰어난 운영체제가 되었다.
그리고 지금도 계속해서 발전하고 있다.
그래서 이거 왜 배워야하는데?
"Linux가 그렇게 좋다면 사람들이 많이 사용해야 하는데, 나는 주변에서 Linux를 쓰는 사람을 본 적이 없어!"
라고 생각한다면, 그건 Linux가 무엇인지 제대로 이해하지 못했기 때문일 것이다. (아마 당신은 바보 대장임에 틀림없을 것이다.)
앞서 말했듯이, 초기 컴퓨터는 상용화가 아닌 학문적인 목적으로 만들어졌고, Linux도 이와 비슷한 배경을 가지고 있다.
Linux는 기본적으로 개발자를 위해 탄생한 운영체제다. (물론 현재는 GUI를 지원하고 사용자 친화적인 인터페이스를 제공하지만, 초기에는 그렇지 않았다.)
따라서, 이글을 보는 당신이 개발자라면 무조건 알고 있어야 한다고 강조하고 싶다. (필자의 주관적인 생각이에염)
서버에서 Linux를 사용하는 이유
그 이유는 바로 Linux가 서버와 클라우드 환경에서 차지하는 비중이 매우 높기 때문이다.
현대 IT 환경에서 서버와 클라우드는 대부분 Linux 기반이다.
엥 ? 서버를 Windows로 개설한다면 배포도 쉽고 용이할텐데, 도대체 왜 Linux로 사용하는 걸까?
서버와 클라우드 환경에서 Linux의 비중이 높은 이유는 여러 가지가 있지만, 가장 중요한 이유 중 하나는 Linux의 경량성 때문이다.
Windows는 사용자를 위해 친절하게 만들어진 운영체제이기 때문에, 일상적인 사용에서는 큰 불편함이 없다.
그러나 사용자 편의를 위한 기능들이 추가되면서 운영체제가 무거워지는 단점이 있다.
하드웨어 자원이 한정된 서버 환경에서는 이러한 무거운 프로그램이 큰 부담이 될 수 있다.
Linux는 이러한 문제를 해결해 준다. 불필요한 기능이 적고, 서버의 성능을 최대한 활용할 수 있도록 경량화되어 있다.
따라서 서버의 효율적인 자원 사용을 위해 Linux가 더 적합한 선택이 된다.
개발자가 Linux를 잘 이해하고 활용할 수 있다면, 서버 배포, 관리, 문제 해결, 성능 최적화 등 서버 운영에 필요한 기술을 자연스럽게 익힐 수 있다.
즉, 서버 관리에서 Linux는 필수적인 도구다.
마치며
오늘은 이렇게 Linux의 탄생 배경과 배워야하는 이유에 대해서 간략하게 알아보았다.
Linux는 단순한 운영체제를 넘어 개발자와 서버 관리자를 위한 필수 도구로 자리 잡았다.
경량성, 유연성, 그리고 강력한 커뮤니티 지원 덕분에, Linux는 서버와 클라우드 환경에서 압도적인 지배력을 가지고 있다.
따라서, 개발자로서 Linux를 깊이 이해하고 활용할 줄 안다면, 더 나은 개발 환경을 구축하고 서버 관리에 있어 뛰어난 역량을 발휘할 수 있을 것이다. (연봉도 같이 발휘할 수 있을 거에욧)
무튼무튼, 다음 시간부터 본격적으로 Linux의 상세한 특징에 대해서 알아보겠다 !
'Linux' 카테고리의 다른 글
[Linux] apt 명령어에 대해서 알아보자 (2) | 2024.12.11 |
---|---|
[Linux] service와 systemd에 대해서 알아보자 (1) | 2024.11.06 |
[Linux] DPDK 라이브러리에서 Cuckoo Hash Table 사용하기 (0) | 2024.09.17 |
[Linux] DPDK가 무엇인지 알아보고 직접 설치해보자 (2) | 2024.09.16 |
[Linux] 1. Linux 부팅 과정에 대해서 알아보자 (4) | 2024.08.28 |