일단 작성하고 있는 본인에 대한 이해가 필요하지 않을까?
스스로가 뭘 하고 싶은 건지 어떻게 하고싶은 건지, 또 어떻게 했었는지 정리하는 과정이 필요하다고 느껴서 퇴근 후나, 출근 하지 않을 때 틈틈히 정리해 둘 필요성을 느꼈다.
지금 하고 싶은 건 크게 3가지 정도가 있는데
리눅스 홈서버 환경을 구축하고 필요한 서비스를 컨테이너에서 올리는 것
구체적으로는 가상머신이 아닌 물리적 환경에서 Rocky Linux 서버를 올리고, 필요한 서비스를 Podman 컨테이너 위에 하나씩 올리고 컨테이너간 통신을 구축하는 것
가상머신을 사용하지 않고 물리적 환경에서 구축하는 것은 '연습용'이 아니라 '실사용'목적 이기 때문에 지속적인 서비스 제공을 위해 필요해서, 그리고 가지고 있는 자원을 효율적으로 활용하기 위해서 그렇게 구성하기로 하였다.
Rocky Linux는 원래 CentOS를 사용하려고 하였으나, 2020년 12월 9일자로 CentOS의 정책이 변경되어 안정적인 서버의 역할로 사용이 어렵다고 판단하여, 같은 역할을 하는 Rocky Linux로 변경하였다.
컨테이너를 사용하여 서비스를 구축하는 것은 호스트의 자원을 손실없이 사용하면서, 서비스 단위로 격리하고, 재구축이 용이한 장점 때문에 선택하게 되었다.
도커를 사용하지 않고 Podman을 사용하는 것은 도커의 컨테이너는 도커데몬에 종속되어 있어서 도커데몬에 이상이 발생하면 서비스가 안정적이지 않고,
도커는 일반사용자가 컨테이너를 만드는 것이 어렵다고 생각했기 때문이다.
C/C++ 을 대체하는 역할로 Rust, 파이썬을 대체하는 역할로 Golang을 공부하여 프로그래밍 스킬을 더 올리고 싶다.
물론 한동안 개발의 ㄱ도 하지 않아서 거의 처음부터 개념을 잡아야 할 것 같긴 하지만 프로그래밍 언어 스킬을 향상하고 싶다.
시스템 프로그래밍 언어로는 아직 C/C++ 만한 것이 거의 없지만 Rust는 C/C++ 만큼 빠르고, C/C++ 보다 안정적이라고 생각하여 선택하게 되었다.
파이썬은 문법이 단순해서 빠른 개발에는 용이하지만, 인터프리터 언어의 한계로 실사용 프로그램 보다는 프로토타입 작성에 적합하다고 생각하고, Golang은 문법이 단순한 편인 데다가, 컴파일 언어라서 파이썬보다 훨씬 빠르고 안정적인 언어라고 생각하여 실사용에 더 적합하다고 생각하여 선택하게 되었다.
첫번째 하고 싶은 리눅스 서버환경 구축과 연결되는 이야기이지만 채팅앱을 구축하고 싶다.
지금 하고 있는 업무에서도 충분히 활용할 수 있을 것이고, 자체적으로 구축하게 되면 비용절감과 보안성의 확보라는 이점을 챙길 수 있을 것 같다.
위 3가지 이외에도 하고싶은 것은 많지만 당장 정리가 필요한 것은 위 3가지라 일단 3가지만 정리하였다.