나만의 서비스를 만드는 경우 기술 선택은?

2014-10-10 12:41

제가 직접 개발해서 사용하고 싶은 서비스가 하나 있는데요. 어떤 기술을 사용하는 것이 좋을까 고민하다가 다른 분들은 어떻게 생각할까 궁금해서 질문하나 남겨 봅니다.

이 서비스는 일단 제가 필요해서 만드는 간단한 서비스이고요. 제가 사용하다가 기능이 추가되고 나름 사용성이 괜찮다는 생각이 들면 다른 사용자에게도 공개할까 생각 중입니다. 이 서비스에 SNS 기능이 포함될 가능성이 높고요. 사용자는 많이 사용해봤자 몇 만명이 되면 좋은 서비스가 될 가능성이 높아요. 그냥 제가 저를 위해 재미삼아 만들어 보려고 합니다.

이런 상황에서 고민입니다. 지금 slipp처럼 그냥 제가 지금까지 익숙한 기술로 접근할 것인가? 즉, java 기반에 spring + spring data jpa 정도 붙여서 만들 수 있고요. 그런데 지금까지 너무 오랜 시간 동안 이 기능만 사용하다보니 좀 재미가 없는 것도 있네요.

최근에 스터디에서 node.js + express 기반으로 학습한 내용도 있기는 한데 아직 익숙하지 않아서 무한 삽질을 해야 한다는.. 그런데 이 방식으로 진행하는 건 서비스를 만드는 것에 집중하는 것이 아니라 개발자의 기술 욕심이 앞서는 것은 아닌가라는 생각이 들기도 하고요. 빠른 개발을 원한다면 ruby on rails에 대한 경험도 약간은 있는지라 ruby on rails로 시작하는 것도 하나의 방법일 수 있겠다는 생각이 들고요.

여러분은 어떤 선택을 하실 거 같으신가요? 내가 관심가는 기술을 우선시 할 것이냐? 일단 익숙한 기술을 사용할 것이냐? 새로운 기술에 집중하면 개인적인 발전이 있기 때문에 좋은 점은 있지만 아무래도 서비스에 대해 집중하는 시간은 줄어들 듯 하고요. 그렇다고 서비스에만 집중하자니 기술적으로는 새로운 도전꺼리가 없어서 재미 없을 듯 하고요.

제가 사용하고 싶은 서비스를 만드는 것인데 개발자로서 기술을 선택할 때 항상 기로에 놓이게 되네요.

0개의 의견 from FB

7개의 의견 from SLiPP

2014-10-10 13:00

안녕하세요. 제 경험적인 의견을 드립니다.

저도 최근에 비슷한 생각을 해서 접근을 했습니다. 저는 익숙한 기술에서 관심있는 기술로 넘어갈 것 같습니다.

범위로는 모바일 백엔드 서비스 프레임웍->플랫폼으로 생각하고 있습니다. 공유용과 교육용이 목적입니다.

저도 주로 엔터프라이즈 환경을 경험한지라 서비스환경에서 경험이 없기 때문에 우선은 해봤던 것부터 접근하고 있습니다.

그래서 프레임웍으로 잡은 구조가 Spring Boot (Integration+Data+Batch)로 접근했고요. 여기에 간단한 Workflow와 Rule Engine을 HTML5 기반의 디자인툴로 구현해볼 생각입니다.

우선은 REST로 처리하다가 다른 기술 트렌드를 붙어 볼려고 합니다. 그러기 위해서는 확장적인 아키텍처를 구성해야겠지요.

플랫폼이 되면 NoSQL나 MQ를 연결하여 부하분산을 해 볼 생각입니다.

Apache Spark도 적용해서 분석/예측을 통한 새로운 데이터도 출력해 볼 생각입니다.

Horizontal scalable deployment를 위한 UX도 포인트로 잡고 있습니다.

최종 목적은 BaaS(Back-End as a Service)로 생각하고 있습니다.

2014-10-10 13:30

안녕하세요. 저는 아직 진행중이지만 hnki0104과 비슷한 의견입니다.

익숙한 기술로 서비스 로직을 확립한 다음에 하고싶은 기술을 만들어가는 것 자기자신이 쓸거라는 생각에 서비스에 대한 정의가 왔다갔다하더라구요.

일단 익숙한 것으로 빠르게 개발하다보면 서비스에 대한 정의가 확립되고, 그 다음에 하고 싶었던 기술로 바꾸어서 만들면 삽질도 줄이고, 기술과 서비스 두마리 토끼도 확~~

2014-10-10 13:43

안녕하세요. 교수님! 페북(서버사이드아키텍처 그룹)에서 보고 넘어왔습니다.. ㅋㅋ 이제 꼬꼬마 개발자(1년차?ㅋㅋ)지만 저도 의견 하나 남겨보면.. 오히려 기술 학습이 목표가 아니라 서비스 중심인 프로토타이핑이면 node + express 가 어떨까 싶습니다. 최근 1년 동안 3개월 씩 java-guice, python-django, node-express 의 3가지 형태로 SNS 서비스 프로토타이핑을 개발했는데요, node-express와, node community, open-source library 의 조합은 엄청난 생산성을 보여주더군요. 안전성과 고가용성은 아직 잘 모르겠습니다. 현재 서비스에 수만명의 대규모 사용자가 없어서 경험이 없네요ㅎㅎ;;

가장 마음에 드는 점은 front-end와 back-end가 양쪽 모두 javascript 로 개발되니 머리속의 context switching이 없어서 생산성 향상에 한 몫 하는 것 같구요.

혹시 node + express 선택하신다면 제가 삽질을 좀 줄여드릴수도 있을 것 같습니다! (그러나 무한에서 상수를 빼도 무한이라는게 함정!!)

2014-10-10 14:02

안녕하세요, 페이스북에서 보고 저도 의견 하나 남겨 봅니다-

혼자서 개발하실 예정이시라면 개인적으로는 http://www.parse.com/ 를 추천드립니다. BaaS(Backend as a Service)로서 서비스 구성에 필요한 기본 API들을 클라이언트별 SDK로 제공하기 때문에 서버사이드 구현에 비용을 많이 들이지 않아도 되고, 커스터마이징이 필요한 부분이 있다면 node.js 코드로 추가구현이 가능하기 때문에 확장성도 좋다고 생각합니다. 초당 30번의 요청까지는 무료로 사용할 수 있는 장점도 있구요. 내부적으로는 express + mongodb로 구성되어 있다고 하네요.

단점이라면 외국 서비스라서 국내에서는 응답 속도가 약간 느릴 수도 있는데요, 클라이언트 캐시나 국내 CDN사용등을 통해서 해결할 수 있을 거라고 생각합니다-

직접 베이스부터 모두 구현하는 방법에 비해 자유도가 낮을 수 있고, 추후 다른 플랫폼으로의 전환을 하고자 할 때 비용이 들어가겠지만, 초기에 빠르게 개발하여 결과물을 만들어 내는 데는 아주 좋은 선택지라고 여겨집니다.

2014-10-10 14:22

저도 지나가다 의견 하나 남겨 봅니다. ㅎㅎ

분명 새로 학습해보고자 하는 기술들로 구성하면 배울것도 많고 좋겠지만, 목표했던 것들 다 만들기까지 제일 중요한 것이 배제되어버릴 수 있으므로 중간선을 찾는게 제일 좋은 것 같습니다.

그래서.. 일부만 학습이 필요한 신규 기술을 가져다 써보는 게 어떨까 합니다. 예를 들면 spring+mysql 구성으로 하다가 rails+mongodb 로 옮겨가면 개발 중에 문제가 발생하면 디버깅을 하기가 넘넘 괴롭습니다. 이럴땐 mongodb 또는 rails 하나만 골라서 먼저 옮겨보는게 좋습니다. 작은 단위로 프레임웍만 바꿔볼 수도 있습니다. sinatra -> rails 또는 play!->spring 도 가능하겠죠.. 그러고 나서, 이후 포팅에서도 학습할 기회가 있으니 그 때를 이용하자 는 생각입니다. 첨부터 욕심 너무 많이 내면 학습 효과야 물론 있겠지만 초기 목표 달성에 실패할 수도 있으니까요.

2014-10-12 00:56

만약 팀 ( 여기서 말하는 팀은 회사팀이 아닌 해당 프로젝트를 함께 진행할 인원을 뜻합니다) 이라면 팀 전체의 언어 선호도나 프레임워크 이해도로 결정 할 것 같고요.

혼자라면 가장 해보고 싶었던것 설령 잘 모르더라도 일단 부딪히더라도 즐겁게 할 수 있는것을 선택할듯해요.

2015-01-15 13:57

내가 필요에 의해 쓸 어플리케이션을 만드는 거라면, 아무래도

관심가고 재미난 기술을 선택하지 않을까 싶네요.

회사에서는 아무래도 제약사항이 많잖아요

의견 추가하기