Linux & Linux 공부 road map


서버로 많이 쓰이는 운영체제 Unix&Linux

리눅스

  • 다중 사용자, 다중 작업(멀티 태스킹), 다중 스레드 지원 네트워크 운영체제(NOS).
  • 여러 사람이 하나의 리눅스 시스템에 접속, 다수의 프로그램을 동시에 실행할 수 있다.
  • 무료

-> 때문에 서버로 사용하기 딱 알맞다.
(다수의 사용자에 대한 접근 통제, 권한 관리 등의 보안수칙도 지켜져야
원활한 서비스가 가능하다.)

  • GNU
  • Copyleft



유닉스

  • 유료
  • 독점적, 폐쇄적 운영으로 인한 안정성 보장
    (버그 발생시 벤더에서 해결해주기 전까진 해결하기 어려움)
  • 전체적인 점유율이 떨어짐
  • But, 금융권&대기업은 유닉스를 많이 사용함.
    (오래전부터 안정적으로 운영해온 전산망인데
    리스크를 떠안고 리눅스 운영체제로 마이그레이션 하기 위험함)





내가 Linux를 공부하기 위해 세운 마일스톤

0. 사용하는 리눅스 OS의 CLI 명령어들을 익히는 것.

리눅스로 프로젝트를 관리하거나

서버로 리눅스를 사용한다면

당장 회사의 프로젝트에서 자주 쓰이는 명령어들을 위주로 익혀놓자.


EX)

기본 시스템 명령어 + 패키지의 명령어들로

이미지를 배포, 수정함으로써 CI/CD를 수행한다.

IaC가 도입된 프로젝트 및 회사라면 관련 서비스의 IaC 문서 명세를 알아두자.


  • Apache, NginX, DBMS(postgre, mysql 등), JDK를 설치하여 WAR 로 배포
  • 또는 docker 이미지로 배포
  • APM(Apache-Php-mysql )구축하거나 MERN같은
    필요 기술스택에 맞게 똑같이 구성한 뒤 배포해보자.

    회사에서 쓰고 있는 프레임웍을 vm에 centOS나 ubuntu 설치하고
    똑같이 클론코딩 해보면 좋을듯.


EX)

기능 개발을 중심으로 하는 직무의 경우

딱히 생각나는 브랜치 관리 전략이 없을 경우

Git-flow나 Gitlab flow 등의 전략들을 차용한 뒤 수정할 것.

  • Git, 소스트리를 통한 코드 관리 전략


1. 시스템 관리법

1.1 리눅스에 TOMCAT, MYSQL, JDK 등 설치해서 WAR배포할 수 있는 노하우.

1.2 로그보는 법, 

- tail 걸어놓고 보기

- vi 에디터 명령어

- 파일다루는 명령어

1.3 프로세스 찾기, 포트 열렸나 확인하기, 프로세스 죽이기, 파일찾기
     프로세스 권한에 대한 이해, 디스크 마운트시의 권한

1.4 ftp서버 설치하기

1.5 개발서버로 세팅하기.(svn, git, 이중화 구성, 로드벨런싱, 배포스크립트 등)

1.6 cron tab을 이용한 배치 프로세스 등록

1.7 메일서버 세팅

1.8 외부 해킹 방어하기, 내부 권한 설정(사용자 권한, 그룹 권한 설정)

1.9 방화벽 설정하기, DNS 설정.

위 내용은 리눅스는 어떻게 공부해야되나요? Okky 개발자 커뮤니티 글을 참고했습니다.


2. 리눅스 커널 공부

https://github.com/torvalds/linux

https://github.com/wikibook/linux-kernel

하드웨어위에서 응용프로그램이 돌아가게 컨트롤하는 것은 OS이며
커널은 하드웨어와 프로세스를 잇는 핵심 인터페이스이다.


리눅스 자체를 알아가기 위해서는 하드웨어 지식도 필요하며,
여러 교재의 Aid 및 가이드라인을 참조해야할 것 같다.

일반적인 프로그래밍 언어 Library의 class들을 이해하는 것과는 차원이 다른 난이도다.

이 링크에 리눅스 커널 개발에 대한 안내서가 나와 있다.

https://01.org/linuxgraphics/gfx-docs/drm/translations/ko_KR/howto.html

  




댓글

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

노마드코더 개발자북클럽 Clean code TIL 6 : 6장. 객체와 자료구조

백엔드 개발자가 Djnago fullstack 사이드 프로젝트를하며 ( html, css, vanillaJS 그리고 JS프레임워크 )