Think
-
생산성 향상을 위한 서비스들의 단상Think 2015. 5. 15.
지금까지 메모와 해야할 일에 대한 서비스들이 세상에 넘쳐났다. macOS에서는 생산성의 최고봉이라는 omni 시리즈와 things라는 훌륭한 어플리케이션들이 장수하고 있지만, Windows를 반드시 사용해야 하는 우리나라 생태계에서는 불편함이 있다. 한편으로는 spring pad 또는 네이버 메모와 같이 사라진 서비스들도 많다. 나름 춘추전국시대와 같은 시기를 거쳐서 강력한 서비스들만 생존한 것처럼 보여진다. 이렇게 생존한 서비스들은 어떤 특징들을 가지고 있을까? 결론부터 말하자면 공통적으로 개인이든 아니든 상관없이 (제한적)무료사용을 제공한다.고급기능, 저장용량등 여러 요소에 제한을 주게 되는데, 중요한 점은 무료 기능으로도 활용할만한 가치가 있어야 한다.또한 기본 기능에 대해서(기본 기능에 대한 기준..
-
개발자는 소스코드를 작성하는 사람이죠?Think 2014. 5. 21.
소프트웨어 개발을 하고 있다면, 소스코드를 작성하는데까지 있어서 여러 절차들이 필요하다. 언어의 문법을 이해하고 활용하여 소스코드를 작성하고 빌드, 실행하는 것만 생각한다면 소프트웨어 개발자의 삶의 일부만 알고 있는 것이다. 개발자들은 개발조직에서 합의된 개발 프로세스에 의해 움직이며 소스코드 작성 뿐만아니라 설계, 문서, 테스트를 경험하고 기존의 기능을 개선하거나 버그를 수정하는 일에도 굉장히 많은 시간을 보내기도 한다. 기능을 개선시키기 위해서 잠시 걸으면서 해결방법을 생각하거나 메모지 또는 보드에 기능을 정리하는 일은 보기 어려운 모습이 아니다. 또한 새로운 기능을 개발하기 위해서 이해관계자들에게 설득을 해야 하는 상황도 오기 때문에 대화 스킬도 매우 중요하다. 요구사항을 정확하게 분석 해야하고 이..
-
플랫폼의 종속성을 떠나서Think 2013. 1. 17.
이식성이 가장 높다고하는 C언어는 생산성의 문제로 사용이 많지 않을 것이라 생각된다. 안드로이드 모바일 환경에서도 인터프리터 언어인 자바를 채택하면서 C언어와 같이 오래된 언어는 점점 멀어져만 가고 있다. 가상 머신위에서 중간언어로 만들어진 빌드 결과물을 실행시키면서 플랫폼의 벽이 허물어지기 시작했다고 생각한다. 물론 그전에 웹이 있었지만 지금처럼 웹을 통해 많은 일을 할 수 없었다. 하지만 기계어 코드를 다시 생성하고 실행하는데 있어서 지연이 되기 떄문에 속도가 충분하지 않은 단점으로 계속해서 1위의 자리를 유지할 수 없었다. 무엇보다도 다양한 운영체제와 환경(PC, 타블렛,모바일)이 생겨나고 거기에 맞는 소프트웨어를 지원함에 따라 생산성이 문제가 되었다. 여러 빌드 환경에 맞게 소스 코드를 관리해야 ..
-
연봉 1억을 받을만한 인재는??Think 2011. 7. 9.
며칠전 면접을 보신 지인분에게 "면접 때 기억에 남는 질문이 어떤거였어요"라고 여쭤봤었던 적이 있다. 그 질문을 듣고 나니 저는 헉! 했는데, 연봉 1억을 받을라면 어떻게 해야 하는가?? 이 질문은 저에게 있어서 현재 자기 자신의 모습을 볼 수 있게 해주었고 목표를 다시 잡을 수 있는 계기가 되었다. 저는 맡은 일을 정확히 이해하고 방향성을 제시하는 사람 그리고 믿음을 줄 수 있는 잘하는 직원이 되면 연봉 4~5천은 받지 않을까라는 생각을 가지고 있었는데 순간 목표를 작게 설정하고 살고 있는게 아닌가 라는 생각이 들었다. 연봉 1억의 인재상은 글로벌 인재, 의사 소통의 대가, 관리의 대가, 방향성 제시, 전문기술 확보, ??? 지금도 고민중이다. 곧 정리가 되면 하나씩 실천을 해야 할 것이다. 또한 이 ..
-
완벽한 로직?? 아름다운 코드??Think 2011. 6. 16.
웹에서 자료를 찾다보면 블로그를 많이 보게 되는데, 그 중에서 맘에 와 닿는 글이 있어서 이렇게 남긴다. 코드를 만들기 앞서서 완벽한 로직을 만들기 위해 애쓰고, 로직을 생각하면서 복잡하진 않은가에 대해서 고민도 하고 속도가 보장되는가 그리고 예외처리는 어떻게 할 것인가등 많은 생각이 코드를 시작하지 못하게 한다. 다음과 같이 가장 중요한 것만 검토하고 할일을 나눠서 개발을 진행해야 한다는 내용이다. 1. 요구조건을 파악하고 구현해야 할 기능에 대하여 의존성을 파악한 후(의존성이 있을수도 있다), 간략한 구조를 만들어 바로 개발에 들어간다. 2. 개발을 완료해서 요구조건에 맞게 기능이 정상 동작하면, 해당 코드가 복잡하진 않는지 구조를 검토하고 예외처리를 보강하여 코드를 수정한다. 3. 마지막으로 성능면..