2022 Masters Course/CS 10 Course

2022 마스터즈 코스(백엔드) 4일차 회고(2022. 1. 6.) - "마침내 접하게 된 리눅스 운영체제"

ikjo 2022. 1. 6. 21:59

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)

 

수강 회고

오전에 그룹 스크럼을 진행하면서 어제 알고리즘 문제를 풀면서 어려웠던 점들을 얘기했다. 나 같은 경우 수학적 사고가 많이 필요로 하는 문제들을 어려웠는데, 다른 소그룹원들도 마찬가지였던 것 같다. 또한 각자 자신들이 이용하고 괜찮았던 알고리즘 강의들을 공유했었는데 듣고싶은 강의들도 많았지만 한편으로 앞으로 코드스쿼드 과정 중에 이러한 강의들을 들을 여유가 생길지 걱정이 들었다. 그동안 독학하면서 시간을 체계적으로 사용하지 못했었는데, 앞으로 6개월간 시간 관리를 철저히 해야겠다는 생각이 들었다.

 

오전에 오늘의 CS 미션이 발표되었는데 그동안 (언젠가) 공부 해야지, 해야지하고 하지 않았었던 리눅스에 관련된 미션이었다.(생각해보니, 웹 백엔드 마스터 호눅스가 왜 호"눅스"인지 오늘 알았다.) 늘 해야지 하다가 막상 당장 리눅스를 해야한다고 하니 막막하기도 했지만, 이번 기회에 한 번 도전함으로써 시작을 끊어야 겠다는 생각이 들었다. 그동안 무엇이든 새로운 것에 대한 막연한 두려움이 있었지만, 이 두려움을 극복하고 막상 시작해보면 또 해볼만 했었던 일들이 많았던 것 같다.

 

 

학습 회고

  • 가상머신 리눅스 설치, 연결, 접속 등 학습
    • Java 웹 백엔드 클래스 내 소모임원들과 zoom 회의실에서 학습

 

오늘은 한번도 공부해보지 않았던(들어보기는 많이 들어봤던) 리눅스를 설치, 연결, 접속 등의 학습을 진행했다. 예전에 읽었던 "비전공자를 위한 이해할 수 있는 IT 지식"이라는 책에서 우분투(Ubuntu)에 대한 설명이 있었는데, 덕분에 학습 전에 "우분투가 뭐지?"하고 덜 당황했던 것 같다.

우분투(Ubuntu)는 '리누스 토발스'가 개발한 운영체제 '리눅스'의 유명한 버전들 중 하나이다. 일반적으로 서버 프로그램을 리눅스 위에서 돌리는데(365일 24시간), 그 이유는 리눅스가 기본적으로 '무료'이기 때문이다. 리눅스의 또 다른 유명한 버전으로는 레드햇(Red hat)이 있다. 다만 레드햇은 리눅스를 개량해서 유료로 판매하는 회사인데, 대신 해당 운영체제의 사후관리 서비스를 제공해준다. 리눅스의 또 다른 유명한 개량 버전으로 안드로이드가 있다. 안드로이드는 구글이 리눅스를 모바일 운영체제 형태로 개량해서 발전시킨 운영체제이다.

 

참고자료 : 비전공자를 위한 이해할 수 있는 IT 지식

 

우선 나의 운영체제(Windows 10) 버전의 가상 머신(Virtual Box)서버용 리눅스(우분투) 운영체제 그리고 가상 머신과의 SSU 원격 접속을 위한 putty 프로그램을 설치하고 환경 설정(포트 포워딩 등)을 진행했다. 이때 리눅스(우분투) 운영체제의 경우 가상머신이라는 프로그램 위에서 동작하는데, 가상머신이 없었을 때는 마치 윈도우나 맥 OS처럼 데스크탑에 직접 설치해야했거나 멀티 OS(듀얼부팅)로 운영했어야 했다고 한다. 또한 서버용 말고 데스크탑용도 있는데, 서버용과의 가장 큰 차이점은 GUI의 유무라고 한다.

 

오늘 리눅스를 설치하는 데 있어서는 유튜브 양주종의 코딩스쿨 "우분투(Ubuntu) 리눅스(Linux) 설치 20.04 DeskTop, Server / VirtualBox" 강의가 도움이 많이 되었다. 생각해보면 지금은 듣고 싶은 강의가 있으면 유튜브, 인터넷 강의 등 찾아볼 수 있는 매체들이 많지만 예전에는 이런 것들을 거의 책에 의존하면서 공부했었다는 게 놀랍다.

 

설치 및 환경 설정 그리고 사용자 계정으로 로그인까지 완료한 이후에는 명령어를 통해 디렉토리를 생성하거나 현재시간을 출력하는 등의 작업을 진행했다. 그 중 가장 흥미(?)로웠던게 것은 특정 파일이나 디렉토리에 대해 접근 권한을 변경하는 작업이었다. 우선 ls -al 명령어를 입력해보면 현재 디렉토리 내 모든 파일/디렉토리의 상세정보를 출력해주는데, 이때 맨 앞에 drwxrwxrwx 같은 10자리 문자가 있는데 이것이 해당 파일/디렉토리의 권한 속성을 나타내 주는 것이다.

 

이 문자열의 맨 앞은 'd' 또는 '-' 또는 'l' 문자가 올 수 있는데, 'd'는 디렉토리, '-'는 파일, 'l'은 링크를 의미한다고 한다. 이후 2~4번째 문자는 파일의 소유자 권한을 의미하고, 5~7번째 문자는 소유 그룹의 권한을 의미하고, 8~10번째 문자는 그 외의 유저들의 권한을 의미한다. 

 

주체별로 3개의 문자로 구성되는데 이는 순서대로 각각 r(읽기), w(쓰기), x(실행)에 대한 접근 권한을 부여할 수 있다. 예를 들면 위에서 예시를 들었던 drwxrwxrwx 같은 경우는 파일의 소유자와 소유 그룹 그리고 그 외의 모든 사용자들까지 해당 디렉토리에 대해 읽기, 쓰기, 실행 모든 권한을 부여한다는 의미이다. 반대로 d---------라면 모든 소유자, 사용자에 어떠한 권한도 부여하지 않겠다는 의미이다.

 

또한 r, w, x는 각각 4, 2, 1의 퍼미션 값으로 나타낼 수 있다. 만약 퍼미션 값이 7이면 r, w, x가 모두 해당된다.(4+2+1=7) 이러한 사항들을 모두 고려하고 최종적으로 chmod [변경 될 퍼미션 값] [변경 할 디렉토리 또는 파일 이름] 명령어를 통해 특정 디렉토리나 파일에 권한을 부여할 수 있다.

 

이후 추가적인 명령어들을 공부해보며 쉘 스크립트문을 작성해보았는데, 이 과정에서 유튜브 생활코딩의 Linux - Shell 강의가 많은 도움이 되었다. 5년 전 강의인데도 지금 봐도 퀄리티가 좋았다. 매번 프로그래밍 공부를 할 때면 생활코딩 채널의 도움을 받을 때가 많은 것 같다.

 

 

좋았던 점

  • 맨날 해봐야지 해봐야지 생각만 하고 항상 뒷전으로 미루어 두었던 리눅스의 학습 스타트를 끊을 수 있어서 나름 의미있는 날이었다.

 

 

아쉬웠던 점

  • 어제는 잠이 일찍 왔으나 어제 다 못 풀었던 알고리즘 문제(물병)를 풀고자느라 잠을 참고 또 늦게 자버렸다. 그 여파로 오늘 아침에 늦게 일어난데다가 하루종일 피곤함에 시달렸다..💦

 

참고자료

  • https://ponyozzang.tistory.com/585
  • https://commin.tistory.com/85