여러분은 어떻게 개인 프로젝트를 수행하시는지요?

S/W 개발은 다른 산업에서의 개발과 달리 컴퓨터 한대만 있으면 거의 다 해결이 됩니다. 비교적 투자금이 저렴하다고 알려져 있습니다. 또한 이 블로그를 방문하시는 분들은 개발에 관심이 있고, 현업이 프로그래머이실겁니다. 요새 iPhone과 iPad로 인해서, 개인 개발자들도 얼마든지 기회를 만들고 많은 경제적 이득을 얻을 수있다고 합니다. 물론 점점 개인 개발자들이 설 자리는 좁아져가고 있지만, 아이디어가 좋다면 얼마든지 승산이 있다고 생각합니다. 그래서 저나 여러분이나 집에서 이런 저런 아이디어를 내고 S/W 프로그램을 만들어 보려고 할 것입니다.

지금 이 글을 쓰는 이유는, 이런 상황에서 어떻게 효율적으로 아이디어를 내고 개발을 하는 것이 좋을런지 같이 생각해보고 의견을 교환해 보고자 함입니다.

저 같은 경우는 아이디어가 안 나올때는 무척 안나오다가 어느 덧 갑자기 여러개가 나옵니다. 하나 하나 아이디어를 테스트 해보면 개발을 해야 하는데, 여러개를 하다보니, 집중이 안됩니다. 그리고 마음만 급해지죠. 또한 회사 일하고 집에 오면 그냥 집에서는 웹 브라우징하다가 끝나기도 하고, 주말엔 회사일을 하기도 합니다.
제가 지금 회사에서 한 5~6 사람 분을 맡아서 일하고, 또한 xxx의 사려깊지 못한 요구로 그냥 시간만 낭비하는 경우도 많습니다. 그러다보니, 집에 오면 녹초가 되기도 합니다

그리고 어떤 아이디어를 이렇게 하면 되겠다 싶으면, 그 다음엔 별로 하고 싶은 생각이 들지 않기도 합니다.

여러분은 어떻게 자신의 프로젝트를 시작하고 관리하는지요?
함께 생각해 보지 않으시렵니까?

참고로 처음 답변을 남기시면 제가 인증을 할때까지는 포스팅이 안됩니다.
일단 인증되면, 바로 바로 뜰겁니다.

12 responses to this post.

  1. Posted by Tuna on May 30, 2010 at 6:13 AM

    I think organizing a team is a good way to complete your goal. In my case, I only imagined about building my own application and selling on the net for four years. But after I built my team that includes three programmers up, it took only a year to achieve it. My small application is for Mac, and is being sold in Japan only now. Apple japan selected it as Staff’s recommend and two major magazines on Mac in japan introduced or reviewed the application.

    Now we are preparing for our next product while building iPhone version of the application.

    Reply

    • Posted by jongampark on June 7, 2010 at 7:20 PM

      How are you doing? I didn’t check my blog for a while. I’m sorry for late reply.
      Did you establish a company? I wish you are doing well.

      Reply

  2. 안녕하세요. 개발 7년차되는 직장인입니다.
    저도 같은 고민을 많이 해왔고, 비슷한 이유로 아직 한번도 개인 프로젝트를 진행해 보지 못했습니다.
    저는 지금까지 연구 개발쪽 업무를 맡아왔고, 제가 머리가 나빠서인지, 항상 한계에 도달할 때까지 머리를 혹사시키니, 당연히 집에 오면 코드는 절대 보고 싶지 않고, 집에 와서까지 개발을 하면 정말 바보가 될 것 같아 하지 못했었습니다.
    그래도 여전히 개인 프로젝트를 하고 싶다는 생각은 강해서 여러모로 생각했었는데 쉽지가 않네요. 일단 제가 지금 고민하고 있는 개인 프로젝트에 대한 문제는
    * 혼자 할 것인가? 같이 할 것인가? – 혼자 할때의 문제점은 생각이 다양해지지 못하고, 넓게 바라보지 못한다는 문제점이 있음. 같이 할때의 문제점은 같이 하는 사람들이 모두 자신과 동일한 능력과 열정을 갖추어야 함.
    * 아이디어에 중점을 둘 것인가? 기술력에 중점을 둘 것인가? – 아이디어에 중점을 둔다면 블루오션 및 서비스의 차별화 정책을 위주로 살길을 찾아야 하며, 기술력에 중점을 둔다면 세계의 동향을 잘 파악하여 돈이 될만한 기술에 중점적으로 시간을 투자해야 하며, 얼마나 많은 기업들이 그 기술에 관심을 보이는지를 알아야 함. 다 만들기도 전에 이미 다른 곳에서 만들어버리면 쓸모 없기 때문에…
    * 개발자만으로 할 수 없는 일은 어떻게 할 것인가? – 예를 들면, 디자인.. s/w를 아무리 잘 만들어도 소비자의 관심을 끌어야 돈이 되기때문…

    등등 다른 여러 생각들도 있는데 다 쓰면 포스트 내용보다 더 길어질 것 같아서…ㅋ 어쨌든 이런 생각들을 하게 되니 쉽게 개인 프로젝트를 할 생각을 못하고 있네요…

    Reply

    • Posted by jongampark on June 7, 2010 at 7:18 PM

      이렇게 답변을 남겨주셔서 감사하고, 반갑습니다.

      저랑 같은 고민을 가지고 계시는군요. 어떤 면에선 확실하게 뭘 만드는 사람들을 보면, 그 시간관리와 열정관리가 제일 부러운 부분입니다.

      디자인에 대한 부분을 보면, Mac 개발자들은 대개 디자인 능력들이 좋더라는 것입니다. 단지 그 시각적인 부분만 아니라 그들의 소스 코드를 보면, 그 정리 또한 깔끔하게 하더군요.
      열정들도 대단들 하구요. 요새는 돈에 motivation이 되는 경향을 많이 보입니다만, 예전엔 확실히 컴퓨터 자체를 좋아하는 사람들이 주를 이루었습니다.
      그런데 이런 면도 보이더군요. 때때로 디자인이 좋은 프로그램들을 보면, 기능에선 그다지 특별난 것이 안보이고, 그냥 API 조립으로서의 개발과 같은 모양이 보입니다.
      아무래도 개인이 하다보니, 한쪽에 신경을 쓰다보면 다른 쪽엔 힘이 빠져서 그만큼 신경을 못쓰게 되기 때문이 아닌가 합니다.

      제일 좋은 방법은, 마음이 맞는 사람들과 모임을 간혹 가지면서 서로 자극하고 응원하는 것 같습니다. WWDC를 갔을 때 제일 좋은 점은, 참석하게 되면 뭔가 자극을 받는 다는 것입니다. 그런 기회를 종종 갖는게 좋은 것 같습니다. 그리고 모임에 나가서 서로 코드를 보여주면서 이런 저런 이야기도 하는 것도 그렇습니다.

      현재 NSCoder Night나 Cocoa Heads같은 모임이 그런 성격이 있습니다만, 한국 사람들의 모임도 있으면 좋겠다는 생각도 듭니다.

      Reply

      • 소프트웨어 디자인에 대한 부분은 저도 동감입니다.
        지금까지 많은 프로젝트를 진행하면서 느낀 점도, 좋은 s/w 설계는 개발자에게 더 많은 시간을 주어서, 좀 더 창조적인 개발자가 될 수 있게 해주는 것 같습니다.
        따라서 성능 + 설계를 만족시켜 주는 template meta programming에 꽤 심취해 왔으며, 덕분에 코드의 재사용성을 크게 증대시키고 유지보수에 대한 비용을 크게 줄여서 효율적이었던 것 같습니다. 특히 andrei alexanderescu의 modern c++ design 책에서 나오는 unit programming의 개념의 이상적인 부분을 현실적으로 100% 만들 수 있다면 유지보수 비용 0, 새로운 어플의 개발에 들어가는 코드는 단지 ui정도… 가 가능할 수도 있을 것 같다는 생각이 드네요.
        그런데 문제는 역시 사람에 있는 것 같습니다. 일부 개발자들은 template에 대해서 부정적인 견해를 가지고 있으며, 그러한 부정적인 견해에 대해서 이해가 가기때문에 설득하고 싶은 마음은 없으며, 따라서 생각이 다른 사람과 같이 일하는 것은 누구하나가 자신의 생각을 포기하기 전까지는 뜻을 같이하기 어렵기때문에 힘든 것 같습니다.
        그리고 objective-c언어를 공부하기 위해, 애플의 objective-c programming language document와 objective-c runtime document를 읽었는데, 위에서 말씀하셨듯이 애플에서는 소프트웨어 디자인에 대해서 상당히 신경을 많이 쓴 흔적들이 보였습니다. 단, 약간 걱정되는 것은 성능이 c, c++코드를 따라올 수 있을까…가 걱정이 되네요.
        어쨌든 이러한 s/w 설계도 많은 사람들이 같이 개발할 때, 더욱 효과를 보이는 것인데, 혼자 개발할 때도 이렇게 설계에 많은 시간을 들여야 하는지도 잘 모르겠네요…

        Reply

        • Posted by jongampark on June 8, 2010 at 6:38 AM

          네.. meta programming을 잘 사용하고 절제되게 사용한다면 참 좋은 개념이죠. 그런데 이걸 너무 중독되어서 사용할 경우에, 유지 보수에 문제를 일으키는 것도 보았습니다.
          C++의 기능들이 그렇죠. 흡사 점점 PL1의 개념을 닮아가는 것도 같고.
          필요해서, 있으면 좋게다해서 들어간 기능들인데, 그 유용성을 알고 쓰면 참 좋지만, 그렇지 않고, “나 이거 안다”라는 식으로 쓸때, 참.. 난감한 경우를 꽤 봤습니다.
          사람과의 문제는 마음이 열린 사람들과는 괜찮은거 같습니다.
          저번 NScoder night 모임에서 저희들이 이야기를 하고 있는데, Windows Mobile 폰을 사용하는 사람이 다른 테이블에 앉아 있다가, 이 모임 뭐하는 데냐고 물으면서 이런 저런 질문을 던지더군요. 보니까, 프로그래머는 아닌데, Windows Mobile 폰용 프로그램을 제작하는 회사에서 일하는 사람 같았습니다. 그래서 관심있으면 우리 테이블에 와서 같이 이야기하자고 했더니, 자기는 Windows쪽이라.. 이러더라구요. 그래서 제가 나도 낮에는 Windows 개발자다 (혹은 여름에는) 그랬더니, 신기해하더군요. 좋은 이야기와 아이디어를 나누는데 무슨 Windows개발자가 따로 있고, Mac개발자가 따로 있겠습니까.
          서로를 이해하는 바탕위에서 논쟁을 한다면 그다지 문제는 없겠습니다.
          근데 현실 속에서 그런 사람 (특히 회사내에서) 찾기는 힘들겠죠.

          제가 Modern C++ Design은 cover to cover로 읽지 않아서 잘 모르겠는데, 얼핏봐서 제가 개발하는 방식을 의미하는 것 같더군요. 저는 C++을 “주어” 위주의 언어로 보기때문에, C++로 개발할때는, 우선 필요한 객체를 먼저 파악하고, 그 단위로 생각한 후에, 그 사이의 연결관계를 나중에 생각합니다. 그러다보니, 굉장히 모듈화된 프로그램을 만들게 되더군요. 확장성도 좋아지구요.

          참고로 제가 시작한 프로젝트 (Mac/Windows)는 유지 보수 비용이 그다지 들어가지 않고 있습니다. 회사에서 버그 리스트를 봐도, 거의 없다시피하구요. 근데 이건 프로그래머의 능력뿐 아니라, 매니저와 기타 테스트 인원들과의 소통도 영향을 미치더군요. 적절한 요구와 적절한 scope를 제시하고 공감할때, 버그와 확장성의 문제가 줄어들더군요.
          하지만 궁극적으로 유지 보수 비용이 안들어갈 수는 없겠죠.
          문제는 들어가더라도, 얼마나 유연하게 대처할 수있겠는가, 그것을 코드 베이스가 용인을 하는가..

          음.. 퍼포먼스 면에서는 C/C++과의 상대 속도문제는 걱정하지 않으셔도 됩니다. 구조적으로나 개인적인 경험으로나 차이가 없습니다.
          dynamic typing을 많이 쓰신다면 유연성은 증대하고 속도는 감소할 수있지만, 제 경우는 그다지 dynamic typing은 사용하지 않습니다. 그건 꼭 필요할 때만 써야지요. compile time에 에러를 내 주는 것이 여러 모로 편리하기도 하구요.
          Obj-C의 속도를 감소시키는 요인이라면, 주로 dynamic typing과 garbage collection문제인데요, 요샌 유지 보수 측면에서 이 둘을 미는 부분도 있죠. C++/CLI만하더라도 그렇구요, C#은 당연하구요. 오히려 C++/CLI와 Objective-C를 비교해 보시면, 훨씬 간단하면서도 우아하게 그리고 그다지 컴파일러에 기능을 추가하지 않고도 Objective-C는 C++/CLI가 하는 것을 훨씬 잘 처리하고 있음도 보이죠.

          물론 특정 구현을 놓고, Obj-C가 빠르네, C++이 빠르네 할 수도 있지만 그건 논외거리죠.
          막짠 C코드 보다, 잘 짠 Pascal 코드가 더 빠른 경우도 많이 보지 않았습니까?
          구조적으로 어떤 언어가 성능이 더 좋을 수 있습니다만, C language family들이야 뭐 엎치락 뒤치락하는거죠. 그리고 valid C 코드는 valid Obj-C 코드기 때문에, C와 비교해서 Obj-C가 느릴까 빠를까 하는 것은, 결국 Obj-C와 Obj-C를 비교하는 것과 같겠죠. :)

          설계에 대한 부분은.. 그렇죠? 때론 설계만 하다가, 당장 다른 급한 일이 생겨서 그걸 하다보면 개인 프로젝트는 중단되기도 하구요..
          Tuna 님 말씀이 정답인거 같습니다. “그냥 지르라”. :)
          하지만, 항상 머리 속에 설계를 염두에 두고 지르는 것과 그냥 지르는 것은 다르겠죠. :)

          Reply

          • 자세한 답변 감사합니다. 설계에 정말 신경을 많이 쓰시는군요…
            제가 재직중인 직장만 해도 설계보다는 빠른 개발을 요구하고, 그러한 부분을 높이 평가하는 분위기이고, 뛰어난 설계로 인한 생산력 증대에 대한 평가도 제대로 못하는 분위기여서 정말 암울했는데, 저랑 비슷한 생각을 가지신 분이 계셔서 정말 반갑네요.
            요즘은 정말 고민이랍니다. 다들 빠른 개발만 요구하니, 그냥 그런 분위기에 맞춰줄까… 아니면 지금까지와 같이 설계에 신경을 많이 쓸까… 모난 돌이 정맞는다고, 혼자만 외쳐대니 힘이 들어서 포기하고 싶네요…ㅋ

            Reply

            • Posted by jongampark on June 9, 2010 at 1:52 PM

              쩝.. 제가 일하는 곳도 마찬가지입니다.
              Mac 프로그램만, 몇개냐… 7~9가지를 저 혼자하구요. Windows 프로젝트는 큰거 하나가 있는데, 문제는 코드 베이스가 엉망이구요. 또 그때 그때 다른 프로젝트도 맡구요.
              그래서 한 5~6명 분의 일을 저 혼자하죠.
              근데, 회사의 윗 사람들이 프로그래밍을 모르거나, 아니면 프로그래머 출신이라도, 입으로만 척해서 잘 모르는 윗 사람들 생각에 뭐 많이 아는 사람인 것으로 인식되어서 올라간 사람들이 거의 전부에요. 그래서 일하는 것도 참 답답하고. 오히려 매니저 없는 채로 하던 프로젝트가 더 퍼포먼스도 좋고, 문제도 적습니다. 그러다보니, 이 사람들은 뭘 어떻게 하는 지는 관심이 없고, 얼마나 빨리 하는지에만 관심이 있습니다. 그게.. 참.. 그렇죠?

              얼마전에 Netflix가 왜 성공을 했는가에 대한 블로그를 봤습니다.
              미국에서들도 문제가 있고, 무슨 문제인지는 알고는 있구나…. 그런 생각이 들더군요.

              미국은 한국과 달라서, 교육 자체가 떠벌이 교육, 자신을 잘 홍보하는 교육을 받고 자란 애들로 넘쳐나죠. 문제는 좋은 실력을 좋게 홍보해야 하는데, 실력은 뒷전인채 말만 앞세우고, 더군다나 대륙애들 특징이 생각이 좁고, 깊지 못하다는… (땅떵이가 큰 나라에서 온 사람들끼리의 그런 공통점이 있더군요. ) 그러다보니, 그런 사람들이 프로젝트를 이끌게 되면 참 문제가 많이 생깁니다.
              “이 산이 아닌가벼”가 농담이 아니고 현실이 됩니다.

              억울하면 성공하라… 진리더라구요.

              Reply

  3. Posted by Tuna on June 7, 2010 at 8:22 PM

    회사를 만든 건 아니고, 저녁시간이나 주말을 이용해서 움직이는 팀을 만들었죠. 시간이 지나면서 여러가지 갈등도 생기지만, 그래도 뭔가 일을 이루려면 혼자보다는 팀으로 움직이는 게 좋을 듯 해요. 요즘엔 고객의 반응도 보이고, 주말에 뒹굴거리고 있다가 가끔 메일을 확인해 보면 매상도 올라 있고… 하는 자잘한 재미가 있어서 좋네요.

    그리고 위에 이런저런 고민들이 많으신데, 그런 거 답을 다 내고 나서 움직이려면 평생 못 움직인다고 생각해요. 대개 머리 좋은 사람들의 문제가 바로 그거죠. 여러가지 문제들이 미리 예측이 되니, 그 답을 구하려고 하고, 그 답들이 다 구해지기까지는 함부로 움직이지 않는데, 어차피 변수가 너무 많은 일이라, 그 답을 사전에 다 구하고 하기란 불가능하다는 것이죠. 조엘이 말했듯, 쏘면서 뛰어야죠. 뛰면서 방향 수정을 하는 거구요. 결국 지그재그로 움직이게 되더라도, 생각만 하면서 제자리에 머무르는 것 보다는 좋지 않을까요?

    한국인들의 모임을 말씀하셨는데, 원격지에서라도 좋으시다면, 그 모임을 온라인에서 만들어 보는 것도 좋을 듯 합니다.

    Reply

    • Posted by jongampark on June 8, 2010 at 6:21 AM

      아.. 그러시군요. 재미나시겠습니다. 부럽기도 하구요.
      그런 노력이 모여서, 자연스레 창업이나 미래 설계가 되겠죠.
      Tuna님께서 하시는 프로젝트가 이미 이런 저런 곳에서 좋은 평가를 받고 있다니, 좋은 흐름을 타시고 계시는거 같습니다.

      프로젝트하다가 건설적인 싸움(?)을 하는 것은 좋습니다. 그것은 즐거움이기도 하지요. 저같은 경우는 좋고 나쁨으로 접근하기보다, 일리가 있느냐로 접근을 합니다. CS를 하다가 바뀐 성격이기도 한데요. 각종 CS적인 문제가 기타 과학적인 접근법에서, 최선의 선택보다는 그때 그때의 상황에 맞는, 혹은 trade-off를 하는 선택이 전체 시스템 면에선 더 의미가 있고 좋다는 것을 알게 되었기 때문이죠. 단 상대도 서로 열린 마음으로 있는 사람이 좋겠죠. 자기 주장은 하지만 남의 주장에도 귀를 연 사람들이라고 할까요?

      프로젝트를 할때, 전 제가 관심이 있는 부분 (기술적이든, 이용성이든)을 찾아서 아이디어가 나오고 (사실 이게 좀 모호합니다. 가만히 보면 뭘 찾아서 생각해 본다기보단, 그냥 아이디어가 나오는데 그게 결국 뭔가 흥미를 느낀 분야다라고 할까요? )이 무엇인지 파악하고, 뭘 해결하고 싶은지.. 그거에 주로 신경이 쓰입니다. 상품성을 높이는 것은… 참 중요한 부분인데, 이게 쉽지 않네요. 그리고 GUI를 예쁘고 유용하게 만드는 것도 참 중요한데, 이 쪽일도 사실 산더미죠. littleHJ님과 같은 분을 보면 참 놀랍고, 대단해 보이고 그럽니다. (Cinedition을 만드신 분이에요.)
      하루 종일 컴에 매달려 있지만, 그게 꼭 프로젝트에만 매달려 있는게 아니라 머리 식히는 것이기도 하기 때문에요…

      참.. 예전에 90년대 초에 보니, 일본에는 mission oriented 프로그래밍 책들이 있더군요? 이런거 하려면 이렇게 한다. 빨리 빨리 뭔가를 할때 좋은 거 같습니다. 요새도 추세가 그런가요? 미국 책들은 요샌 웬지 주절 주절 필요없는 설명만 길고, 정작 필요한 설명은 빠져있다던가, 몇줄 소스 보여주면 좋을 것을 장황하게 설명을 풀어내더군요.
      좋은 책을 가지고 있는 것도 중요한거 같습니다.

      Reply

      • Posted by seachicken on June 8, 2010 at 1:32 PM

        흠… 요즘 일본의 추세는… 뭐 그런 얘긴 없네요. 책들은 일본도 요즘 그저 몸집 불리기에만 열중한다는 느낌입니다. 요약하면 한 페이지도 안되는 내용들인데 그걸로 수백 페이지를 만들고 있다는…

        littelHJ님은 한국분인가요? 혹 개인적으로도 아시나요?

        Reply

        • Posted by jongampark on June 8, 2010 at 2:03 PM

          일본도 그런 추세군요. 이런……….

          네.. littleHJ님은 한국분이시구요.. 어느 회사더라.. 이사세요. 짬짬이 프로그래밍을 하시는데, 참 감각이 좋으세요.
          Twitter에서 littlehj로 찾으시면 나올거에요. 참 좋은 분이세요.
          일전에 WWDC에 오셨었는데, 그때 뵈었죠.

          Reply

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: