주차별로 했던 활동들을 간단하게 회고하고 전체적인 느낀점을 써보고자 한다.
[1주차]
노트북, Mac, NUC, 라즈베리파이, wsl2, virtualbox 등의 다양한 선택지를 두고 어떤 것을 기반으로 이 프로젝트를 시작할 지 많은 고민을 거듭했던 시기였다.
기존에 남아도는 노트북은 당연히 없었고 라즈베리파이, NUC 또한 만져본적은 있었지만 현재에 없었던 상황이었다.
WSL2를 이용하여 linux를 윈도우위에 올리는 것이 상당히 괜찮은 성능을 낸다는 소리를 듣고, WSL2을 이용해 다양한 프로그램을 찍먹해보기로 결정했다.
[2주차]
Linux로 개발하기 위한 기본적인 개발 환경을 갖추는 쪽으로 시작하면 제일 좋은 시작이 될 듯 하여,
oh my zsh를 통해 테마, 폰트, 자동 완성, 색상등을 입맛에 맛게 설정해주었다.
솔직히 전체 설치했던 것들 중에서도 제일 유용하게 앞으로도 계속 쓰일 것 같다.
[3주차]
수업시간에 배우기도 하며, 이미 전 세계에 자리잡은 컨테이너 기술을 대표하는 Docker이기도 하여 한번 쯤 사용해보고 싶었다.
정말 간단하게 설치하고 이미지 파일, 컨테이너 생성에 멈출까 싶다가 그래도 이러한 컨테이너 환경으로 관리하는 것의 이점을 느껴보고 싶어 간단한 유튜브 실습을 진행하였다. 내 컴퓨터에 node.js가 깔려있지 않아도 쓸 수 있는 것을 몸소 체험하고서는 좀 컨테이너 기술이 얼마나 혁신적이고 개발에 있어 편리함을 가져다주게 되었는지 몸소 체감할 수 있었다.
[4주차]
사실 Jenkins를 한번 시도해야겠다고 생각했던 주차였는데, 생각보다 너무 어렵게 다가왔다.
그리고 CLI환경에서만 프로그램을 돌려보는 것에도 한계를 슬슬 느끼기 시작해 GUI환경을 구축하고자 열심히 알아보았다. 기존에 사용했었던 virtualbox이외의 다른 것을 한번 사용해보고 싶었고, 검색해서 나온 것이 xrdp + xfce4조합이었다.
원격 데스크톱 연결 과정에서 컴퓨터네트워크에서 배운 port넘버도 확인할 수 있었으나, 중간에 많은 시행착오를 겪으면서 마음이 꺾일 뻔했다. 어찌저찌 세팅은 완료했지만 인터페이스가 전혀 마음에 들지 않아서 이후 hyper-v로 갈아타게 된다..
[5주차]
항상 프로그램을 깔때마다 나에게 유용하고 실제로 도움이 되는 것이여야 한다는 생각을 기반으로 선정하였는데, vscode도 그러한 점에서 고르게 되었다.
어차피 윈도우 환경에서 보통 지내는데, linux에 vscode를 깔아봐야 뭐하겠어.. 싶어 vscode와 내가 구축해놓은 wsl2 환경을 연동하는 쪽으로 진행하였다.
이대로 끝내기에는 아쉬운 점이 있어, 어차피 앞으로 자주 사용하게 될 기초적인 linux의 프로세스 명령어들을 스스로 학습해나가면서 의미를 더했다.
[6주차]
가장 큰 전환점이라고 볼 수 있는 주차이다.
hyper-v라는 나름 강력한 type-1 hypervisor 가상 머신이 윈도우에 있는 줄 처음엔 몰랐다. 알았으면 이걸로 시작했을지도 모르겠다. 윈도우 정품을 산 것을 잘했다고 생각하게 해준 몇 안되는 일이기도 했다.
설치과정이 복잡하진 않았지만 정말 오래걸렸고, iso 이미지 파일을 hyper-v 가상머신의 guest os로 설치시키는 과정에서 약간 헤맸다.. 여튼 잘 설치하고 나서 정말 오랫만에(4~5년) 우분투 화면을 맞이하게 되었는데, 생각보다 많은 것들이 바뀌어 있어서 놀랐다. 특히 소프트웨어를 설치하기 편하도록 스토어에 들어가서 다양한 개발 툴들을 확인해보며 윈도우/mac에서만 돌아가는 프로그램은 더 이상 없구나.. 라는 생각을 하게 되었다.
[7주차]
게임을 정말 좋아하는 나로써는 한 주 정도 우분투 스토어에 있는 게임들을 플레이해보지 않을 수 없었다.
솔직히 그래픽, 재미적인 부분에서 윈도우 기반에서 돌아가는 다양한 스팀 게임이라든지, 롤, 피파 등에 비교하기엔 아직
좀 이른 감이 있지만 소소한 인디게임정도로 즐기기엔 충분한 재미였다.
[8주차]
수업에서 배운 내용을 직접 확인해보며 지식을 견고하게 하는 개인적으로 제일 재미있고 의미있는 주차였다.
wireshark라는 네트워크 관련 지식을 직접 확인해보기 좋은 소프트웨어가 이 세상에 있다는 것이 감사할 지경이었다.
패킷이라는 것이 어떠한 식으로 저장되는지, 어떠한 순서로 클라이언트와 서버가 주고받는지 등을 실제로 확인할 수 있었다.
[9주차]
솔직히 날먹인 것은 알지만, 정말로 필요해서 설치한 것은 맞았다. 했던 활동을 레포트로 정리하는 과정이나, 인터넷의 자료를 한글로 검색한 것을 활용하려면 코드를 옮기는 과정이 번거롭게 필요했기에 그냥 한글을 설치했다.
[10주차]
같은 학기에 데이터베이스 수업을 듣고 있는 입장이지만, 전통적인 RDB, SQL에 초점을 두고 수업을 하기에 NoSQL은 가볍게 언급만 하고 넘어간다. 따라서 가만히 있어도 심심찮게 듣게 되는 MongoDB라는 데이터베이스를 한번 사용해보고자 마음먹었다.
솔직히 어려운 기술이기에 가볍게 맛만 보는 과정에서 엄청나게 많은 것을 얻진 못했지만, json파일 구조로 관리되는 것, MongoDB의 장단점을 공부할 수 있었고 따라서 그 의미는 충분하다고 생각된다.
[11주차]
정말 무엇을 해야하나 고민을 많이했다. 실제로 시도했던 Kubernetes는 단순히 설치하는 것뿐이라면 어려울 것은 없었지만, 조금이라도 의미있는 것을 진행해보고자 하는 단계에서 어려움을 느끼고 다른 것으로 선회하게 되었다(추후에 마이크로서비스프로그래밍을 꼭 들어야겠다고 마음먹은 계기이기도 하다)
수업시간에 배웠던 내용 중에서 교수님이 협업시에 agile방식의 scrum 툴을 활용하여 진행해보는 것을 추천하였기에, 이를 편하게 해주는 Jira라는 하나의 툴을 설치하고 가볍게 사용예시를 접해보았다. 프로그램의 사용이 어렵진 않았고, 설치과정이 오히려 조금 복잡했다. 그치만 Jira를 깔아 협업시 유용한 툴을 온전히 체험해볼 수 있었다는 점에서 전혀 시간은 아깝지 않았던 것 같다.
[12주차]
드디어 마무리 소감을 적어볼 시간이 되었다.
솔직히 처음에 과제를 받았을 때는 매주 하나의 프로그램을 설치하고 레포트를 2개씩 써보는 것이 굉장히 부담으로 다가왔다. 그렇지만 말로만 하면 절대 안할 것을 알기에 강제로라도 Linux환경에 친해질 수 있도록 하는 교수님의 깊은 뜻을 알게 되는 데에는 그리 오랜 시간이 걸리지는 않았다. 확실히 Linux는 개발에 있어서 대세라고 할 수 있다. Linux Foundation에 속한 프로젝트들을 잠깐 보기만 해도, 현대 세상에서 빠르게 발전하고 있는 기술중에서 Linux가 관련되지 않은 기술을 찾는 것이 더 어려울 것이라는 생각이 절로 들기 때문이다..
나처럼 변화를 두려워하고 게임을 좋아해서 대학생 1학년때 윈도우가 깔리는 게이밍 노트북을 산 사람에게는 정말 좋은 경험을 가져다주는 유익한 과제였다.(변화를 두려워 하는 것이 개발자에게는 좋지 않지만 타고난 성향이 그러한 것을 어떡하하나.. 조금씩 바꿔나가야지)
전반적으로 각 주차마다 하면서 느꼈던 점이나 끝나고 돌이켜보니 어떠했더라.. 라는 점은 위에 다 정리해놨기에 딱히 더할 내용은 없고, 다만 과제를 하면서 항상 어떤 프로그램을 깔아보고 만져보는 것이 내게 도움이 될지 끊임없이 고민했던 것이 할 때는 조금 괴롭기도 했지만, 돌이켜보면 그나마 단순히 학점을 받기 위한 레포트가 아니라 스스로에게 의미를 가져다 주는 결정적인 요소로 결국 탈바꿈되었다고 생각한다.
다음 학기에 풀스택 + 마이크로서비스 2개를 수강신청할 계획인데, Linux 환경에서 혼자서 삽질했던 시간들이 조금이라도 밑거름이 되어 도움이 되었으면 하는 작은 바람이 있다.(미래의 자신에게 화이팅..)
'CS > 리눅스로 한 학기 살기' 카테고리의 다른 글
| [11주차] Ubuntu 22.04에 Jira 설치하기 (0) | 2023.05.24 |
|---|---|
| [10주차] Ubuntu 22.04에 MongoDB, MongoDB Shell & Compass 설치하고 사용해보기 (0) | 2023.05.23 |
| [9주차] Fcitx를 이용한 우분투 한글 설치 (0) | 2023.05.21 |
| [8주차] wireshark를 통해 패킷 뜯어보기(컴네 시험 공부를 곁들인) (0) | 2023.05.17 |
| [7주차] - 우분투 게임 맛보기 (0) | 2023.05.16 |