⚡️기초 지식 1: 리눅스란 운영체제
리눅스란 윈도우나 MacOS 같은 컴퓨터의 운영체제(Operating System)이다. 운영체제란 간단히 말하면 컴퓨터 하드웨어를 구동하고 사용자의 요청을 받아 여러가지 응용프로그램을 실행시키는 프로그램을 말한다. 크롬 아이콘을 눌러서 크롬을 킬때, 운영체제가 요청을 알아듣고 브라우저를 가동하는 것이다. 우리가 pc를 사용할때 가장 밑바닥부터 일하는 고인물이라고 할까...
⚡️기초 지식 2: 리눅스의 다른맛들 디스트로
리눅스는 오픈소스(Open Source), 다시 말해 소스가 대중들에게 오픈되어 있다. (MacOS나 Window는 클로즈드 소스) 때문에 대중들은 소스가 무엇을 하는건지 들여다볼 수 있고, 그렇게 많은 사람들이 참여해서 개선하고 새롭게 배포할 수 있다.
이렇게 오픈소스인 리눅스를 활용해서 새로운 버전을 배포할 때에는, 리눅스에서는 없어서는 안되는 핵심 프로그램인 커널과 컴파일러 등 유틸리티에 더해서, (이것들을 활용해서) 사용자들의 목적에 따라 배포판(Disturibution)을 만든다. 이 배포판을 줄여서 디스트로(distro)라고 한다. 이 디스트로의 종류로는 우분투, 레드햇, 페도라, 칼리 등이 있다.
⚡️기초 지식 3: 우분투 엄마는 데비안, 할머니는 리눅스, 종족은 유닉스
요즘 많이들 쓰는 리눅스의 디스트로 중 하나인 우분투! 우분투는 데비안 계열의 리눅스이다. 데비안은 Arch,Red Hat과 더불어 리눅스의 초기 가장 큰 배포판중 하나이다. 다시말해 다른 배포판에서 또 가지치기로 나온 배포판이 아니라는 말이다! 그리고 우분투는 이런 데비안의 인프라를 기초로 가지치기한 녀석인 것이다.
우분투는 데비안에서 설치의 편리성, 지원 플랫폼 다양성, 소프트웨어의 가용성과 신선도등을 개선하여 나온것이다. 게다가 사용자가 많아서 정보도 많고 커뮤니티도 발달해 있어서 초보자도 시도해볼만 하다. 그렇지만 데비안이 안정성이 좋아서 (진입 장벽은 높지만) 여전히 사용자가 있는 모양이다.
그리고 추가로, 리눅스는 유닉스 계열(Unix-like)라고 하는데, 이는 유닉스가 아님에도 기능적으로 유닉스 규격에 호환되어 유닉스의 대체품으로 쓸 수 있는, 유닉스와 비슷한 운영 체제를 말한다.
⚡️기초 지식 5: 리눅스는 주로 서버를 구축하기 위해서 사용한다.
보통 기기를 구입하면 윈도우든, 안드로이드든, MacOS든 뭐든 이미 깔려 있을텐데, 리눅스는 그럼 언제 왜 쓰는걸까?이 주된 이유는 서버 구축이다. 그리고 본인이 직접 서버를 구축하지 않는다고 하더라도 많은 클라우드 서비스에서 대부분 리눅스를 기본 서버로 사용한다. 그리고 이 리눅스 서버에는 웹서비스만 있는게 아니라 게임,채팅,크롤링 등 온갖 종류의 서버 프로그램을 만들 수 있다.
⚡️기초 지식 6: 우분투는 데스크탑용으로 많이들 사용한다.
우분투는 GUI를 입맛대로 화려하게 커스텀할 수 있어서 이거 꾸미는 맛에 하는 분들도 있다고 한다. 참고로 레드햇은 기업용 유료 디스트로, 칼리 디스트로는 인터넷 보안과 해킹 테스트할 때에 사용한다고 한다.
💡궁금증 해결: 왜 개발하는데 MacOS나 우분투를 사용하라고 할까?
코드스테이츠 부트캠프에서 맥북을 쓰지 않고 윈도우를 사용한다면 우분투를 깔라고 한다. 근데 이과정에서 많은 오류와 예상치 못한 힘겨움을 겪게 되는 것을 보고 궁금해졌다.
일단 Window와는 다르게 리눅스나 Mac은 Unix계열 OS이다. 맥북이 있다면 iOS, MacOS 개발할 수 있고, 많이들 사용하는 클라우딩 컴퓨팅 서비스 aws(Amazon Web Services)역시 대부분 Unix 기반 OS로 구성이 되어있다. 코드스테이츠 부트캠프 후반부에 aws를 사용한다고 알고 있는데 여기까지 생각한다면 맥북을 권하는 것이 이해가 갔다.
또한 프론트앤드 개발에 주로 사용하는 자바스크립트를 윈도우에서 사용할 경우 여러가지 문제가 발생할 수 있다고 한다. 일단 프론트앤드 생태계의 큰손 리액트 개발진 부터 한명도 빠짐없이 맥북을 쓰고 있다고 한다고 하니 말다했지. 그정도로 미국에서부터 생태계가 MacOS를 활용해서 돌아가다 보니, MacOS가 아니라 윈도우를 사용한다면.. nvm 지원이 안되거나, 시스템환경변수 사용이 안되거나, git 개행문자 처리에서 차이가 발생한다거나... 너무 자잘한 문제들이 쏟아지는 것이다.(피곤..) 맥북을 사용하면 트러블 슈팅이 아주 쉬어져, 그로 인해 정신을 온전히 챙길 수 있다.
그렇지만 그럼에도 불구하고 당장 맥북을 사기에 부담스러우면 우분투를 사용하기를 권하는데, 말했다시피, 여러가지 문제상황이 발생해도 우분투가 사용자가 많아 비교적 트러블 슈팅이 쉽다는 이유도 큰 몫을 한다는 점. 게다가 우분투는 리눅스의 디스트로이고, 리눅스는 유닉스계열이기 때문에, 유닉스 계열인 aws와 호환이 잘 되는 것이고! 그래서 맥북이 없다면 우분투를 설치하기를 권하는 것이다.
비전공자로서 개발을 배우다보면 생판 모르는 구멍난 지식들을 흐린눈으로 못본척하며🤦🏻♀️ 지나가기가 쉽다. 적어도 나는 그랬다...ㅜㅜ ㅎㅎ 하지만 그런 구멍난 지식들이 모이다보면 어느새 뭐하는지, 왜 하는지도 모르고 따라가는 좀비가 되기도 하고, 또 조금만 예외가 발생해도 크게 당황하게 된다. 비록 직접적으로 실무에 쓰이는 지식은 아니지만 정리하고 넘어가길 잘했다 싶다.
'개념 > 기초지식' 카테고리의 다른 글
[HTTP/네트워크] 기초개념 - IP, PORT(포트) (0) | 2022.08.04 |
---|---|
[HTTP/네트워크] 기초개념 - URL/URI (0) | 2022.08.04 |
[HTTP/네트워크] 기초개념 - 클라이언트,서버, 프로토콜, API (0) | 2022.08.04 |
[Git]SSH란? SSH Key 만들고 깃헙에 등록하기 (0) | 2022.07.11 |
macOS 터미널로 개발 시작하기 (0) | 2022.07.07 |