Ruby를 대충보고 Rails로 넘어오다.
https://brunch.co.kr/@princox/304
Rails의 창시자의 팟캐스트를 듣고 나서 학습을 시작한 지 두 번째 글입니다.
저는 이제 막 루비 프로그래밍을 시작했습니다.
제 루비 언어 체험기의 시작은 아래에서 볼 수 있습니다.
https://brunch.co.kr/@princox/309
이번 글은 일기처럼 작성했습니다.
프로그래밍 언어를 공부할 때 주의할 점이 있다.
모든 문법을 다 익히려고 하면 안 된다는 것이다.
프로그래밍은 게임 같은 것이라서 흥미를 잃어버리면 컴퓨터 앞에 앉는 것조차 싫어진다.
그래서 나는 바로 웹 애플리케이션을 만들어보기 위해서 튜토리얼로 직행했다.
루비의 문법도 거의 간신히 익힌 채로 말이다.
Ruby on Rails에서 제공하는 Typecraft와 함께하는 레일즈 앱 만들기 영상으로 시작했다.
하나하나 프로세스를 밟아가면서 스캐폴딩도 해보고, 라우트도 경험하고 있다.
예전에 단순히 그냥 해본 것과 달리 notion에 정리하면서 보고 있다는 것이 차이점이라면 차이점이다.
이렇게 간단하게 애플리케이션을 경험하고 나도 나만의 웹 앱을 만든 다음에 이것을 기반으로 즉시 학습 튜토리얼을 만들어보려고 한다.
누군가를 가르칠 정도가 되는 것이 곧 정확히 이해하기 위한 첫걸음이라고 생각하기 때문이다.
다행인 것인지 불행인 것인지, 이 전에 설치해 두었던 루비 버전 매니저하고 충돌이 나서
루비 환경세팅을 하느라 고생이 많았다.
그 와중에 이전에 세팅해 뒀던 zshrc 파일도 전체를 날려먹는 바람에
다른 터미널 세팅도 영향을 받아서 꽤 고생했다.
그리고 서버를 켤 때도 rails s를 해야 하는 것을 node.js 할 때의 버릇이 남았는지 rails -s라고 옵션을 줘서 1시간을 헤맸다.
모든 과정을 기록하고, 어떻게 수정했는 지를 정리하고 있다.
확실히 하나씩 밟아가면서, 각 정의된 파일을 이동하면서 확인하니까
프레임워크와 조금씩 친해지고 있는 느낌이다.
루비를 먼저 익히는 것보다 제품을 먼저 만들기 위해서 프레임워크를 찾아보기를 잘한 것 같다.
새로운 프레임워크를 배운다는 것은 쉽지 않았다.
불편한 점이 꽤 있다.
일단 command + click으로 정의 부분으로 한 번에 갈 수 없는 것이 꽤 많았다.
쇼피파이에서 제공하는 ruby LSP라는 것을 설치하면 갈 수 있긴 한데,
라우트에 정의되어 있는 몇 개의 키워드와 객체에는 접근할 수 없었고,
그런 것들은 Cursor AI에게 물어보면서 하나씩 파일을 뜯어가면서 확인할 수 있었다.
그리고 전역으로 설치되어 있는 루비 패키지 매니저에 접근하면서 소스 코드를 일일이 보는 것이
쉽지는 않았다. 아예 로컬로 설치할 수 있는 방법이 있을 것 같은데, 처음 해보는 것이라서 잘 모르겠다.
node.js 기반으로 프로젝트를 익히는 것이 너무 습관이 되어있는 것 같다.
두 번째는 추상화가 너무 많이 되어있어서 어디를 어떻게 봐야 할지 모르겠다는 것이다.
너무 단순한 코드 한 두줄로 기능을 많이 수행해 버린다.
그래서 내가 어떻게 코딩을 해서 기능을 확장해야 할지 감이 잘 안 온다.
일정 규모가 될 때까지는 어느 정도 더듬더듬해가면서 익혀야 할 것 같다.
뿐만 아니라, 예전에 내가 웹 개발을 처음 배웠을 때보다 세상이 훨씬 더 좋아졌다는 것을 몸소 느끼고 있다.
질문은 Perplexity Pro 버전으로 GPT-5 기반으로 물어보면서 했고,
코드 관련된 것은 Cursor의 도움을 많이 받았다.
예전에는 책 찾아보고, API 문서보고, 그래도 안되면 StackOverFlow에 질문 올려가면서 찾았는데
이전 대비 학습 커브가 많이 줄고, 거의 학습 생산성이 20배는 좋아진 것 같다.
언어도 배우지 않았는데 대략적으로 웹 프레임워크가 어떻게 작동하는지 이해할 수 있는 것 보니,
나 자체도 많이 성장했지만 요새 툴들이 많이 좋아졌다는 것을 깨닫게 된다.
1인 개발자로서 사업을 하거나, 매출을 일으킨다는 것은 우리나라에서 극한의 난이도가 아닐까 싶다.
가끔씩 하나씩 수천만원으로 프로젝트가 터져도 그 다음이 기약이 없으면 안정적으로 살 수가 없으니까.
그래서 다들 회사를 그만두지 못하고 몰래 사이드프로젝트로나마 대박을 노려보는 게 아닐까?
예전부터 코딩을 하면서 느낀 것은
내가 재미를 느끼는 것을 먼저 만들어보고,
그 과정에서 모르겠으면 일단 외워가면서 하면 언젠가 이해가 된다는 것이다.
이해를 하려고 이것저것 뒤지면서 흥미를 잃는 것보다는
일단 눈에 보이는 것을 만들어놓고 하나씩 훑어가면서 이해하는 것이 훨씬 좋다.
사업을 하기 전에는 실행을 해야한다.
실행을 하려면 꾸준함과 내 인생이 먼저 있어야 한다.
모든 것을 이해하려고 하면 아무 것도 할 수 없다.
일단 하는 것이 더 중요하다.
아이를 키우는 것을 이해하는 것보다
우선 낳아놓고 키우는 것이 길인 것처럼.