요즘 사이트를 계속 꾸준히 만들고 있는중 입니다.
만들다 보니 삽질을 많이 하게 되어서
먼가 흔적을 남겨보고 싶어서 글을 써봅니다.
우선 개발환경은 Ruby On Rails 로 루비는 3버전대, 레일스는 7 버전대 입니다.
제가 2004년에 루비 1.8 버전대와 레일스 2버전대 를 사용했던 기억이 새록 새록 하네요
맨땅에 헤딩한다고 당시 국내에서 구입할수 있는 모든 루비책은 다 구해본것 같습니다. 빨간책 부터 곡갱이 책 까지...
우선 루비온 레일스로 그동안 제가 삽질하면서 만들어온 것들이
여러분의 기억속에서 살아 있을지... 아니면... 영원히 잊혀졌을지 모를...
아이디스틱 이라는 서비스가 있었습니다.
인터넷에서 겨우 이미지 찾았네요 ㅋㅋㅋ 아직도 글이 남아있군요 이게 아마 2008년 인가 2009년 인가 그럴겁니다.
그다음에
만든 서비스가...
루비패스라고 있었는데...
요걸... 사업화 해보겠다고 법인 설립하고
이름도 거창하게 "패스뱅크" 라고 이름 지었었네요
언제나 그러하듯...
투자 이야기가 활발했는데... 그냥 흐지부지 흘러가고...
친한 동생을 대표로 앉혔었는데... (저는 개발에 전념하기위해) 최초 투자자분과 지분 문제로 트러블 생기고...
그리고 나서 그냥 공중 폭파 되어버렸네요...
이외에도 자잘하게 루비로 많이 만들었었는데...
위에 건 이미 사라진 서비스라 홍보가 아니라 막 올려도 되는데 최근에 만든건 아직 살아 있는 서비스라
알리기 머하네요
일단 작년에 AI 그림 그리기가 핫하길래 냉큼 4090 그래픽 카드 사서 그림그리는 사이트 하나 만들어서 거진 1년째 돌리고 있는데 수익은 당근 0원이고 지출만 월 30만원 정도네요 (우하하하핫 전기요금 끝내 줍니다. 하루종일 4090을 풀로 돌린다고 생각해보세요)
뭐 구글에서는 이상한 사이트라고 애드센스 절대 못붙히게 하고... 뭐 그렇다고 회원수가 몇백명대라면 그냥 접고 말겠는데 그래도 만명 가까워서 접을수도 없는... 이상한 서비스가 되었습니다 ㅋㅋㅋ
그냥 전기요금 열심히 내고 있어요... 그리고 수익구조는... 뭐 굳이 만들생각이 없어서 그냥... 회원분들끼리 노시라고 방치 중인데... 커뮤니티의 기능은 상실하고 다들 열심히 그림만 그리시네요...
암튼...
홍보 아닙니다. 홍보하면 저만 손해에요... 수익구조도 없고 돈만 나가는 사이트라...
암튼
이 사이트 만들때 처음엔 그누보드로 시작했다가 시작한지 일주일만에 바로 접고
루비온레일스로 개발을 시작했습니다.
그리고...
이건 그냥 심심해서 만든건데
테슬라스파이라고... 테슬라 애프터블로우를 해주는 도커 이미지인데...
잘 동작했는데 ㅠㅠ 테슬라에서 공식 api 가 나오면서 구 API 는 막아버려서... 아예 새로 개발 해야 하는데
안하고 있네요 크흣
이거는 웹페이지 (관리자 페이지) 는 루비온 레일스로 되어있고
테슬라와 통신하는 부분은 파이썬으로 되어있습니다. (TeslaPy 라이브러리 사용)
암튼... 거의 1년 가까이 잘 써먹다가... 이제는 새로 만들어야 하는데... 귀찮아서...못하고 있네요...
암튼...
최근에는
위에 언급한 AI 그림 그리기 사이트의 소스로... 커뮤니티 사이트를 하나 개발 중입니다.
현재 기본적인 기능은 다 개발이 완료되어있고...
개발자 입장에서 기능을 소개하자면
루비온 레일스의 액션 케이블 (소켓 프로그램) 을 이용해서
접속한 회원 각자에게 소켓을 열어주고... 이벤트가 발생하면 실시간으로 알림을 띄웁니다.
예를 들면 쪽지가 왔다던가 혹은 메세지가 왔다던가...
메세지가 와서 메세지 함으로 들어가면 그때부터는 소켓을 이용한 실시간 채팅이 됩니다!
크흣... 원래 이 기능은...
AI 이미지 생성할때...
이미지서버에서 이미지 생성률을 받아올때 그걸 화면에 뿌려주기 위해 구현한건데 (각 회원별로)
생각해보니이 액션 케이블의 기분은 실시간 채팅 아니것습니까?
당장 신규 커뮤니티에 적용했습니다 ㅎㅎ
그리고...
당근 AI 이미지 생성 기능은 포함이고요
아참...
아이폰에서 파일을 업로드할때 먼가 이상하게 안올라간다 했는데... 보니까 HEIC 포멧이 문제더라고요
구글에서는 제대로 보이지도 않고...
carrierwave라는 젬을 업로드 용으로 쓰고 있는데...
오늘 그냥 하루종일 삽질하고 하루종일 chat gpt 괴롭히고...
거의 반나절만에 겨우...
HEIC 파일이 업로드되면 jpg 로 변환하고 썸네일 만들게 만들었는데
썸네일 만드는게 진짜 힘들었네요 ㅠㅠ 그냥 일반 이미지들은 잘 만들어 졌는데...
이상하게 HEIC 이미지는 JPG 컨버팅 까진 성공했는데 썸네일이... 마임이 HEIC 로 남아있...
이걸 몰랐어서 반나절 고생했네요
아니... 맥에서는 잘보이는데
브라우저에서는 안보이고...
크흣 엄청 고생 했습니다.
그리고 뭐 더 특별한 기능이랄게 있나 모르겠네요
암튼... 결론은
루비온레일스는... 혼자서 북치고 장구치기 진짜 좋은 프레임 워크 입니다.
왜 인기가 없는지 ㅠㅠ 이해가 안가네요 ㅠㅠ
외국에서는 많이들 쓰는데 ㅠㅠ 슬픕니다.
ROR로 넘어오면서 개발에 대한 간결함과 프레임워크란 이런거구나...라고 제대로 배웠던 시간이었습니다.
저희 회사 서비스가 ROR로 되어 있고 ROR을 백엔드로 쓰고 프론트는 nuxtjs로 되어 있는데,
백엔드 로직을 빠르고 간결하게 할 수 있는 장점이 있죠.
개발자 구하기가 어려워서 단점입니다만.... 그래도 ROR로 개발하는게 스트레스가 없어서 좋습니다 ㅎㅎ
글쓰신분의 생각과 미국의 stripe에서 ROR을 쓰는 이유와 일맥상통하네요.
외국은 ROR된 큰 서비스가 많죠
stripe, github, gitlab, airbnb, kickstarter, groupon, soundcloud, Dribble.. 엄청 많습니다...
우리나라도 꽤 있긴한데..
당장 기억나는건 왓챠, 당근(피벗중), 업비트 정도인거 같아요.
ROR따라한건 php로 된 프레임워크 가장 많았었는데 요즘은 라라벨이고 옛날엔 cakephp가 인기가 있었던거 같습니다. 다만 라라벨은 굉장히 간결하고 가벼운데 cakephp는 엄청 무거워서 codeigniter로 피벗해버렸어요...
그렇게 사용자가 많은 github이나 soundcloud도 ROR로 잘 버티고 있죠.
트위터는 아키텍쳐(전세계의 메시지의 동기화)상 루비로 스케일업하기 어려웠기 때문이었는데... 일반적인 웹 서비스로는 보기 힘들지요. 요새는 전부 캐시로 발라버리던데.. 레일즈도 캐시로 바르라고 하더군요 ㅎㅎ
solidcache라고 DB(disk cache)를 사용한 캐시 모듈도 최근에 제공하구요.
아주 옛날 시절엔 Thread.current(thread safe인 경우에만)에 cache처리를 했었죠 ㅋㅋㅋ
다만 프론트 단이 고도화 되어야 하는 프로젝트에서 리액트가 메인이 되면서 헤들리스 api 를 쉽게 구축할 수 있는 노드js 부상할 때 살짝 타이밍을 놓친 느낌 입니다
우리에게 문법의 차이는 크게 중요하지 않습니다. 언어의 발전가능성이 크게 작용한다고 봅니다.
그래서 우리는 한템포 늦어요. 루비가 우리나라에서 클려면 해외에서 존재를 증명해야 합니다.
언어로서의 존재가 아니라 상업적 언어로서의 존재라고나 할까요?
2010년대 한때 여러 주요사이트들의 개발체계로 쓰여서 주류로 올라설만하다가 지금은 잘모르겠습니다.
그 프레임웍은 다른 것들로 대체되었구요. 실제 최근 언어 마케쉐어를 보아도 10위권 밖입니다.
1등 Python 28.2%
7등 Php 4.5%
10등 Obje-c 2.3%
최근 우리나라 개발자들은 인기높으면서 깊게 파면 돈이 될만한 것들에 좀 더 집중하는 것 같아요.
안타깝죠.
2024년엔 딱 10위네요
1. Javascript
2. Python
3. Go
4. Java
5. Kotlin
6. PHP
7. C#
8. Swift
9. R
10. Ruby
11. C and C++
12. Matlab
13. TypeScript
14. Scala
15. SQL
16. HTML
17. CSS
18. NoSQL
19. Rust
20. Perl
당장 RoR로 플랫폼 구축을 했다고 했을 때 개발자 구하려고 생각해본다면... 어휴 깝깝하네요
저도 몇년전에 처음 접하고 신선한 충격을 받았네요
생산성 높고 개발자가 가지고 놀기 좋은 언어중 하나인건 확실한거 같습니다
Ruby, which was out of developers' interest during the last decade, started to gain popularity 3 years ago and doesn’t seem to stop. Probably it’s happened due to its slight similarity to Python. Being an intricate item-arranged programming language, powerfully composed and deciphered, Ruby is a valuable programming tool for professionals.
Coding in Ruby is 3-4 times faster in comparison with Java, it is cross-platform and compatible with numerous OS, which makes it a preferable choice for giants like Amazon, Airbnb, and Github. It’s not only growing in popularity and community, according to Daxx.com this year it has become the highest-paid programming language in the world.
크흣 검색하니 이런 글이 나오네요
RoR에서 성능 이슈를 겪는 경우는 RoR을 잘못 쓴 경우였다(부하나 확장을 염두하지 않은 설계 사용) 라는 것도 알게되었습니다. Java spring의 경우에서는 unit testing하려면 이리저리 wiring 하기 위해 기반 코드 만드느라 시간 다 보내는데.... RoR은 몇줄이면 바로 test db에 붙여서 테스트하고 UI 테스트도 바로바로 가능한걸 보면서... 말 그대로 어이가 없더군요. (아니.. 이걸 이렇게 빠르게 테스트할수 있다고?)
ORM도 django의 반쪽짜리 느낌도 아니고 Java의 굳이? 같은 느낌도 아닌, Ruby 문법 덕분에 마치 원래있던 것처럼 다루는 것을 보고.. 아 이런게 루비를 쓴다는 것이구나 했습니다.
아마도.. 저도 개인 플젝이나 사업화를 한다면 무조건 RoR로 할 것 같습니다.
그 사이 최신 유행하는 언어와 프레임워크들을 많이 접했지만, Rails만큼 빠르고 편리하게 개발할 수 있는건 없었습니다.
윗분들이 전부 언급해주셨던 장점들인데, 귀찮게 세팅하거나 연결할 것 없이 그냥 바로바로 하면 되는 것이 Rails의 최대 장점인 것 같습니다.
아직도 Rails를 메인으로 개발을 하고 있고, 지금 회사도 백엔드는 레일즈인데 역시나 채용에는 문제가 많습니다 ㅎㅎ
막상 가르쳐주면 편하다는걸 다들 인정하고 받아들이는 것 같네요.
국내는 라라벨 적긴한데 루비온레일즈보다는 많은듯여