/* 이 포스팅은 PC 크롬 또는 파이어폭스 환경에 가독성이 맞춰져 있습니다. 모바일 환경에서는 문단 구분이나 줄 바꿈이 부자연 스러울 수도 있음을 양해 부탁드립니다. */
얼마전에 코딩을 하다가 TinyML의 예제 실행이 안되서 고민끝에 노트북에 우분투 리눅스를 깔았다.
가상환경으로 돌리는 사람들도 많겠지만, 가상환경 옵션도 그렇고 나중에 라이센스가 어쩌고 저쩌고 하면 많이 귀찮을 것 같아서 그냥 노트북에 듀얼부팅으로 설치하는걸로 결정. 리눅스의 최대 장점이 꽁쨔라는 건데 리눅스를 깔기 위한 가상환경 설치 프로그램이 유료라고? ㅅ발 이건 못참ㅈ...
처음 머신러닝 공부 시작할 때는 도커나 VM도 썼었다. 도커의 경우는 컨테이너가 혁신적인 컨셉이라 오오미 오오미 하면서 썼지만, 수년 정도 지나고나니 내가 뭐 개발이 직업도 아니고 돈 받고 하는 일도 아닌지라 남한테 배포할 일이 저언혀 없다는 점..... 그리고 가상환경 쓸 때 바이오스에서 가상환경 옵션 켜주는거 때문에 블루스택 쓰기가 매우 불편했다는 점..... +) 시작하고 2년 지나니깐 굳이 파이썬 코드를 리눅스 환경에서 실행할 이유가 없었다는 것이다.
-__-.... 그렇지..
근데 TinyML은 리눅스를 사용할 이유가 명확하다. TinyML은 머신러닝 모델을 경량화해서 라즈베리파이 같은 SBC나 아두이노 혹은 다른 임베디드 디바이스에서의 실행을 목적을 둔 프레임 워크인지라 기본적으로 임베디드 개발에 특화되어 있는 리눅스가 특장점을 발휘한다.
예제에 있는 포팅에 관련된 대부분의 툴들이 리눅스 혹은 그 이전 유닉스 등에서 돌아가는 걸 보면
리눅스의 역사와 임베디드 개발의 역사는 궤를 같이 하고 있는게 아닌가 싶다. 구글 코랩을 존ㄴ나게 싫어하는 본인은 독학을 위한 텍스트북의 대부분의 예제들이 구글 코랩기반으로 설명하고 있는 점에서(구글 코랩은 리눅스 기반임), 이걸 윈도우에서 VSCODE 깔아서 따라하다보면 은근히 빡칠 때가 한두가지가 아니다... 콘다 가상환경은 설치 OS를 따라가서 리눅스 명령어 백날 입력해봐야 안돌아가고...
온오프 라인 강의 중 대부분의 코스들이 개발환경 셋업하는데만 첫날을 다 소비하는 데에 비해 구글 코랩은 그럴 필요가 없다는게 장점이긴 하지만. (어차피 코랩에서도 세세하게 뭐 만지려면 다 리눅스 터미널 명령어 쳐서 넣음) ㅈ같은 커널 초기화 때문에 코랩 개싫어함.
물론 리눅스가 좀 불친절한 건 있지만. 막상 우분투 깔아서 이것저것 실행해보니 윈도우에 비해서 크게 불편한 점은 없는 것 같다. 우분투로 리눅스 명령어 체계나 작동방식에 좀 익숙해지면, 다른 리눅스 시스템도 사용해볼까 싶다. 여러 리눅스 OS들은 각각의 개발 목적에 특화되어 있는 체계를 가지고 있는 듯하니.. 언젠간 필요할 일이 오지 않을까. 라고 생각하고 있던 찰나에, 매번 구글링해서 명령어 찾기도 좀 그렇고
여기에 리눅스 관련 명령어나 자주 사용하는 것들을 포스팅해둘까 하고 카테고리를 새로 만들었다.
처음 Vim 에디터로 시스템 Config 수정하다가 10만원짜리 마우스 던져버릴 뻔 했는데 잘 참고 여기까지 왔으니깐 앞으로는 좀 정리해서 익숙해질 필요가 있겠다.
끝.