옛글/프로그래밍이야기

    객체지향 프로그래밍 도대체 무엇인가?

    객체 지향 프로그래밍을 해라!라는 이야기를 많이 듣고 대략이나마는 알고 있지만, 정확하게 객체지향 프로그래밍이 무엇을 의미하고 어떻게 구현해야 하는지에 대해 스스로 잘 모르는 것 같아 다시 한번 정리할 겸 글을 써봅니다. OOP, Object-Oriented Programming 컴퓨터 프로그래밍의 패러다임 중 하나이고, 여러개의 독립된 단위, '객체'들의 모임으로 파악하는 것. 실제 세계도 사물로 이루어져있듯이, 객체지향도 그러한 관점에서 나왔다라는 것은 누구나 다 알고있겠지만, 다시 한번 찬찬히 정리해 보자. 객체 지향 언어의 시초는 1960년대에 나온 '시뮬라67'이며, 이의 가장 중요한 개념은 클래스를 처음으로 도입했다는 것이다. 그 이후로 10년동안 객체지향언어는 전혀 주목을 받지 못했지만, 학..

    레드마인 안드로이드 앱 추천! 'mintRedmine'

    이 글은, Formal Introduction to mintRedmine에 대한 번역글입니다. 20th Feb 2014, mintRedmine 앱이 서비스를 시작했습니다. mintRedmine Download기능들ADD / EDIT SITE VIEWRedmine을 위한 앱을 만들면서, 우선시 했던 것은 기본적인 사용에 불편함이 없자는 것이였습니다. 웹페이지를 사용하지 않고 앱만으로 모든 기능을 사용할 수 있도록 만들고 싶었습니다. 그래서, 우리는 일상적으로 사용하는 기능들에 대해 정리하고, 우리의 앱을 통해 기능들을 수행할 수 있도록 노력했습니다.PROJECT LIST VIEW우리는 레드마인의 REST API를 사용했지만, 우리가 필요한 기능임에도 불구하고 API가 지원되지 않는 경우가 종종 있었습니다...

    'mintRedmine' Project Manager 첫 프로젝트 - 1

    Project Manager으로서 첫 프로젝트인 'mintRedmine'이 끝이 보이고 있다. PM 이라는 직책을 맡고 팀이 셋업되면서 '좋은 PM'을 구체화시키고자 책도 읽어보고, 여러 선배들의 글을 읽으며 '좋은 PM, 혹은 잘하는 PM은 대체 어떤 사람일까?'라는 것에 대해 참 고민을 많이 했다. 좋은 PM은 어떻게 될 수 있을까? 라는 질문에 수학공식처럼 딱 맞아 떨어지는 답은 없겠지만, 그리고 누구나 할 수 있는 당연한 말일지 몰라도 프로젝트들을 앞으로 진행하며 고민했던 부분을 정리하고 반성하다보면 조금 더 '좋은 PM'이 될 수 있지 않을까 하는 생각을 해 본다. 지난 시간 동안 나에게 가장 중요한 것은, '일정 관리'였다. 물론 PM이라는 사람이 해야하고 보여주여야 할 모습은 정해져 있지 않..

    PM의 자질과 갖춰야할 것

    공감이 많이 가는 글이라 퍼옵니다. 출처 : https://www.google.co.kr/search?q=PM%EC%9D%B4+%EA%B0%96%EC%B6%B0%EC%95%BC%ED%95%A0+%EA%B2%83&oq=PM%EC%9D%B4+%EA%B0%96%EC%B6%B0%EC%95%BC%ED%95%A0+%EA%B2%83&aqs=chrome..69i57.3681j0j7&sourceid=chrome&espv=210&es_sm=122&ie=UTF-8 PM이 갖춰야할 것 - 1 : 가끔 커리어 패스로 프로덕트 매니저 (PM) 쪽을 하고 싶다는 분들로부터 프로덕트 매니저는 어떤 일을 하는지에 대한 질문을 받는다. 나보다 프로덕트 매니저로써 훨씬 뛰어난 분들이 많이 계시지만, 구글에서 얼마전까지 3년반동안 개인적으..

    초보 PM 이 갖춰야 할 '여섯가지 조건'

    http://www.thisisgame.com/webzine/news/nboard/4/?n=23572에서 퍼온글입니다.초보 PM이 갖춰야 할 ‘여섯 가지 조건’NDC 11, 땅·불·바람·물·마음을 캡틴플래닛으로 만들기‘땅, 불, 바람, 물, 마음. 다섯 가지 힘을 하나로 모으면~’ 우리에게 익숙한 캡틴 플래닛의 주제곡이다. 자연을 파괴하는 악당과 싸우는 캡틴 플래닛은 5개의 반지가 모여 태어난다. 만약 하나의 반지라도 부족하면 캡틴 플래닛은 반쪽 짜리 영웅으로 전락한다. 게임도 마찬가지다. 기획, 원화, 코드, 모션, 모델 5가지가 충족돼야 비로소 제대로 된 게임이 나온다. 그리고 이를 원활히 뭉치게 만드는 게 바로 프로젝트 매니저(PM)의 역할이다. 3년째 (이하 영웅전)의 에피소드를 맡고 있는 이규동..

    Generic in java, what is the raw type?

    Generic in Java Generic이란 단어의 의미를 찾아보면 '포괄적인/추상적인'이란 뜻을 마주하게 됩니다. Generic programming이 Java에 들어오게 된건 J2SE 5.0 (2004년도) 부터입니다. Generic Programming은 단어의 의미와 같이 '추상적인'형태로 표현을 하는 프로그래밍 기법입니다. 자바에서는 이를 위해 제네릭 타입과 메소드를 제공하며 C++의 그것과 유사한점이 있지만 차이점도 많이 가지고 있습니다. 제네릭 프로그래밍을 씀으로써 얻어지는 장점(C++ 템플릿과 비교하여)은, 컴파일 시 타입체킹이 가능하다. 하나의 컴파일 된 코드를 생성한다. 컴파일된 라이브러리만 존재하면 동작이 가능하다. 세가지로 이야기를 할 수 있습니다. 제네릭 클래스, 인터페이스, 메..

    개발자 1명이 1000명을 대신할 수 있다는 말에 대한 생각

    개발이란 분야는 특히나 능력차가 꽤 크게 느껴지는 분야라 생각한다. 물론 능력차가 존재하지 않는 직업이 어디있겠냐마는, 특히나 뭔가를 개발한다는 것에 있어 인원수에 프로젝트 진행속도가 비례하지 않는다는 말이 더욱 더 와닿는 분야 중 하나라 생각된다. 그런맥락에서 IT라는 분야는 확실히 '천재'가 부각되는 분야인 듯 하다. 우연히 본 '유명 아이폰 해커, 경쟁사 구글에 둥지 틀어'란 기사를 보며 여러 생각이 들었다. 며칠 전 한 후배한테 들은 '1명의 개발자가 1000명의 개발자를 대신 할 수 있다'라며 좌절감을 섞인 말이 문득 머릿속에 스쳐간다. 이런 글들을 보며 개발자를 꿈꾸거나 신입 개발자들이 꼭 좌절해야 하는걸까? 내 인생에 가장 큰 영향을 끼친 영화는 '소셜네트워크'였다. 페이스북을 10대에 만들..

    1인 개발자로써의 회고와 스타트업에 대한 생각

    오랫만에 문득 지난 시간 동안 안드로이드 앱과 iOS 앱들을 혼자 개발하고 혼자 서비스하며 느낀 여러가지 점에 대해 정리할 필요가 있다고 생각 되어 회고를 씁니다. 안드로이드를 처음 시작한 대학교 3학년 시절, 학과 앱을 처음으로 2년가량 안드로이드 프로그래밍을 개발하며 허접한 앱들부터 시작해 참 많은 아이디어를 구체화시키고 서비스하고 업데이트하고 또 몇몇 이유로 앱을 내린 것 같습니다. 아무것도 모르던 시절에는 앱을 만들고 사람들에게 서비스해서 피드백을 받는게 '개발'을 좋아한다고 생각했습니다. 그러면서 스스로 동기부여를 해 프로그래밍을 참 열심히 했던 것 같습니다. 그리고 그런 여러 실무를 기반으로 회사에 들어오고 필드에서 개발을 하게 되었을 때 아이디어를 앱으로 만들고 서비스 하는게 '개발'이 아닌..