'개인프로젝트'에 해당되는 글 2건


프로젝트에 적용할 기술들


Till60 프로젝트를 진행하면서 다음과 같은 기술들을 적용해 볼 것이다.

앞선 글에서도 언급했지만 대다수가 아직 실무적으로 사용해 본 적이 없는

기술인만큼 많은 시행착오를 거쳐야 할 것으로 보인다.


1. Language


일단 가장 익숙한 java로 시작한다. 새로운 API를 사용할 일은 없을 것 같지만

버전은 1.8로 한다.





2. Framework (Back end)


가장 기본이 되는 프레임워크로는 Spring Boot를 이용할 계획이다.

아직은 시험삼아 잠깐 이용해본 정도지만 무엇보다 설정이 간단하다는

점이 가장 매력적이다. 그리고 stand-alone 애플리케이션을 만들 수

있다는 점도 거창한 WAS 설정을 생략하게 해주어 작업을 가볍게 할

수있다. 버전은 현재 GA(General Availability, General Acceptance)

버전인 1.4.1을 선택했다.





3. Framework (Front end)


애초 계획은 Angular JS + Bootstrap 조합으로 가려 했는데 한동안

손을 안 댄 사이 Angular JS 2.0이 발표되었고 1.X와는 너무나 달라져

사용할 엄두가 안났다. 그래서 이참에 아직 배워보지 않은 React를 써보기로

했다. 물론 React를 사용하기로 한 진짜 이유는 Angular JS가 Framework

급이라면 React는 UI 전담의 라이브러리 급이라는 이유도 있다. 일단은

최대한 가볍게 갈 수 있으면 좋다.


아직 미묘하게 혼란 스러운 것이 React도  UI쪽이고 Bootstrap도 UI쪽인데

서로 어떻게 다르고 어떻게 조합을 해야 할지 잘 모르겠다. React-Bootstrap

이라는 프로젝트도 진행되고 있는 것 같던데…


마지막으로 서버단이 java 기반이므로 서비스 호출은 jQuery로 처리하려고 한다.


사용할 버전들은 다음과 같다.


React : 15.3.2

Bootstrap : 3.3.2

JQuery : 3.1.1






4. DB


애초 계획은 MySQL로 하려고 했는데… 은근히 NoSQL에 대한 욕심이 생겨 

mongoDB로 선택을 했다. 어차피 RDBMS로 하더라도 제대로 된 모델링이 

되지 않을 것이기도 하거니와 새로운 것을 익히는 것도 이 프로젝트의 목적 중

하나이니만큼 처음으로 mongoDB에 도전을 해보고자 한다. 게다가 3.X 버전에는

$lookup이라는 join과 유사한 기능을 지원한다고 하니 한 번 써볼만 할 것 같다.

사용할 버전은 3.2.10이다.





5. CI (Continuous Integration)


가장 포괄적인 부분인 듯싶다. 그냥 단순히 나열을 해보면 build를 위해서는

Gradle을, 형상관리를 위해서는 GitHub를 좁은 의미의 CI를 위해서는 jenkins를

사용할 예정이다. gradle은 처음이나 다름없어서 공부를 좀 해야 할 것 같고

GitHub는 단순 형상관리용도로 좀 써보긴 했지만 깊은 내용은 모르고 그나마

jenkins는 현재 업무에서 모바일(안드로이드와 iOS 모두) 빌드용으로 설정하여

사용 중인데 막강한 플러그인들이 많아서 좋다. 특히 소스의 정적 분석 관련

플러그인들이 많은 도움이 되는 것 같다. GitHub와 jenkins 연동은 공부를 좀

해야 할 것이다.





6. Mobile


사실 테스트용 앱을 배포하고 테스트 하기에는 안드로이드 쪽이 좀 수월하지만

명색이 iOS 개발자인데 아직 Swift로 제대로된 앱을 개발해본 적이 없기에 iOS의

Swift를 선택했다. 추후 안드로이드도 개발할 예정





7. Container


요즘 많이 언급되는 아키텍처 중 하나가 마이크로 서비스, 그리고 마이크로 서비스를 

구현하는 기반 기술로 Docker가 자리잡고 있다. 아직 마이크로 서비스의 개념 조차

제대로 이해하지 못하는 상황에서 잘 구현이 될지는 모르겠지만 Docker를 이용한

마이크로 서비스 구현도 이번 프로젝트의 목표 중 하나다.






거듭 강조하지만 상당히 많은 기술들을 다루지만 대부분이 처음 접하는 기술들이다.

과연 얼마나 해낼 수 있을지는 의문이지만 차근차근 진행을 해보고자 한다. 어차피

프로젝트 이름이 Till60이다. 60살까지는 아직 13년이 남았고 차근차근 익히다보면

그 때까지는 뭐 하나 남지 않을까…하고 막연히 기대해본다~


다음부터는 본격적으로 프로젝트 일지를 적어보도록 하겠다.



블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요


프로젝트를 시작하면서…


쉴드부터 치고 가자…-.-


나는 현재 경력 16 10개월차의 개발자이다.

2009년까지는 JAVA 개발을 주력으로 하다가 2010년부터 iOS 개발로 방향을 선회한

지금에 이르고 있다.


전공은 국어국문학이며 대략 1994 무렵 중앙정보처리 학원이라는 곳에서 

C/C++ MFC 관련 교육을 5개월 정도 받은 것이 IT 교육의 전부이다.


이러한 이력이 내게 가져다 주는 것은 끝없는 의심이다.

내가 제대로 것인가?’

누군가가 나의 실력을 의심하고 있지는 않은가?’

나은 방법을 어떻게 찾아야 하는가?’ 등등


프로젝트를 진행하면서도 이같은 질문들은 계속 것이다.

특히나 이번 프로젝트에 적용하고자 하는 기술 절반은 번도 경험해보지 못한

기술들이며 나머지 기술들도 본격적인 실무에 적용해 적이 없는 기술들이다.

결국 끊임없이 검증을 받아야 하는 상황이지만 아마 아무도 검증을 해주지 않을 것이다.


그러면서 한편으로는 나만의 방법론과 산출물들을 정립하고 것이 일반적으로도

적용돌 있기를 야무지게 꿈꿔본다.


그래서 글을 꾸준히 읽을 독자들이 있다면 미리 사죄의 인사를 드린다.



Till60 어떤 의미인가?


고령화 사회가 되면서 사실상환갑 의미가 없어졌다.

이제는 60 정도의 어르신들을 할아버지라고 부르기도 민망할 정도다.

그리고 내가 나이가 되기까지는 앞으로도 무려 13년이라는 시간이 남아있다.

물론 나보다 많은 시간이 남은 사람들도 있고, 적은 시간이 남은 사람들도 있을 것이다.


비록환갑 의미가 퇴색되었다고 할지라도 본래의 , 60갑자를 한바퀴 돌고

다시 시작한다는 의미 만큼은 아직도 분명한 가치가 있다고 생각한다.

아직 우리에게는 다시 시작할 있는 시간들이 남아 있다.


것이 처음의 시작이든 다시 하는 시작이든 목표를 정하고 목표에 매진하는 것이

삶에 있어서 얼마나 소중한가 하는 것은 필요가 없다.


지금까지 나온 생산성 카테고리에 넣을만한 서비스들이 주로 단기 계획 위주의 To-Do 또는

프로젝트 관리 시스템인데 비해 Till60 조금은 여유롭게 중장기 목표를 수행하도록

도와주는 시스템이라 생각하면 것이다.



어떤 요소들이 있는가?


To-Do 프로젝트 관리 시스템들이 짧은 시간을 전제로 하다보니 일정관리나 단편적인

목표를 실행 했는가에 대해 집중하는데 비해 Till60 목표를 이루기 위해 필요한 요소들을

하나 하나 모으고 그렇게 모은 것을 어떻게 조합하고 활용하는지에 집중하고자 한다.


우선 당연히 목표를 설정해야 것이고

목표를 이루기 위해 일반적으로 필요하다고 생각되는 4가지 요소를 배치해 보았다.

자원 (금전, 시간, 공간, 그밖의 물질적 요소), 멘토 (인적 요소), 정보 (지적 요소), 위험 (회피 해야 요소)

그리고 요소들을 수집하거나 제거하는활동이라는 핵심 요소를 추가하였다.


아직까지는 일반적인 상황을 염두에 두고 있으나 점차 목표의 특성에 따라 다양한 요소들을

구성할 생각이다. 이전 글에서 언급한 Scrivener처럼 말이다.








어떻게 만들어갈 것인가?


우선은 간단한 시스템으로 시작을 것이나 모바일 앱도 거의 같은 시점에 병행하여 개발 것이다.

자기 계정을 만들고, 간단한 프로필을 생성하고, 목표를 설정하고 바로 위에 언급한 요소들을

등록하는그리고 이러한 활동을 시각화 것이고 Social 것이다.

아직 뚜렷한 일정은 나오지 않았지만(아마도 프로젝트가 끝날 때가지 나오지 않을 것이다…^^;)

대략적인 단계는 다음과 같이 정해두었다.


1 개발


1. 로그인

  . 계정정 생성

  . 계정 로그인

  . SNS 연동 로그인


2. 프로필 등록

  . 사진 등록

  . 간단한 소개 등록

  . SNS계정 또는 블로그 주소 등록


3. 목표 등록

  . 목표 5가지 요소 등록

  . 공개여부 선택


4. 챠트를 통한 시각화

  . 레이터 챠트를 통한 요소 편중도 표현

  . 활동량을 챠트로 표현


5. 알람 (모바일)

  . 일정 시간 활동이 없는 경우 알람


2 개발


1. Timeline 표현

  . 활동을 시간의 역순으로 표현


2. SNS 연동 기능 구현

  . 목표 액션 관련 데이터를 twitter facebook 공유


3 개발


1. 목표 관련 뉴스 정보 수집 기능 구현

  . 자신이 설정한 목표와 관련있는 각종 정보를 크롤링을 통해 수집


2. 멀티미디어 처리 

  . 사진 동영상 등록


4 개발


1. 소셜 기능 구현

  . 친구 맺기

  . 유사한 목표를 가진 회원을 친구로 추천

  . 목표 활동(모든 요소) 공유


5 개발


1. 소셜 기능 강화

  . 그룹 기능 구현

  . 공동 목표 관리 기능 구현

  . 관련성 있는 목표 통합 기능 구현


추가 개발


아두이노를 이용한 알람 캐릭터 인형


- 연동 가능한 캐릭터 인형

- 목표 달성을 위한 활동이 없을 경우 알람

- 시계 날씨 기본 표시

- 목표 레이터 챠트 표시



지향점


나름 적지 않은 개인 프로젝트를 진행했는데 사실상 남긴 것이 아무 것도 없다.

이는 아마도 ‘무엇을’ 구현할 것인지에만 집중한 나머지 ‘어떻게’ 구현할 것인지에 대한 

고민이 없었기 때문이라 생각한다.


‘무엇을’에 대한 고민이 깊은 경우 그 프로젝트가 성공적이라면 많은 것을 남기고

또 이후의 진행이 원활해지겠지만 실패할 경우에는 남는 것이 없다. 결과가 곧

목적이기에 결과가 않좋으면 모든 것이 안좋아지는 것이다.


하지만 ‘어떻게’에 집중한다는 것은 그 ‘과정’에 집중한다는 것이고 ‘과정’에 집중하게 되면

비록 결과가 안좋게 되는 경우라 할지라도 얻을 수 있는 것이 많다, 하다못해

문서 한쪼가리라도 얻을 것이 생긴다는 말이다.


때문에 이 프로젝트는 최대한 그 과정에서 많은 것을 남기는 것을 목표로 한다.

물론 어디까지나 개인 프로젝트이기에 가능한 일이지만…



생각하고 행동하기? 행동하고 생각하기!


이전 글에서도 언급했듯이 간간이 뭔가를 하려고 시도했고 때마다 함께 사람들을

찾아보았다. 하지만 번번이 벽에 부딪친 이유는 아이디어의 실현 가능성이 낮아서

아니 정확히 말하면 돈이 되지 않을 것이기 때문이리라.


바쁜 현대 사회에서 돈도 안되는 일에 시간을 투자하는 것은 자체로 손실이긴 하다.

하지만 개발자다. 뭐가 돈이되고 뭐가 사람들의 관심을 끌지를 제대로 알아낼 있다면

나는 개발자가 아니라 마케터나 기획자 또는 시장 분석가가 되었겠지


그렇다고 정말 모두에게 인정받을 수 있는 아이디어를 뽑아내는 일부터 하면 될까?

그렇지 않다고 생각한다. 

이리 재고 저리 재느라 아무 것도 시작을 하지 못하는 것보다는 무엇이 되었든 만들어 놓고

것을 평가하는 것이 낫다는 생각이다. 특히나 요즘 같이 개발 툴들이 좋아진 환경에서는

빠른 시간내에 prototype 만들고 평가하는 것이 가능하다.


더군다나 나같이 추상화에 약한 사람들은 구체화 된 무언가로부터 영감을 얻는 것이

훨씬 바람직한 방법이다.

그리고 앞서 말한 바와 같이 ‘어떻게’에 방점을 찍는다면 분명 많은 아이디어를

파생시킬 수 있을 것이다.


그러니 (덜떨어진)아이디어만 덜렁 들이미는 무책임한 짓거리는 하지 말자.

적어도 그럴싸한 프로토타입 하나는 만들어서 보여주는 것이 개발자의 도리이자

상대방에 대한 예의 아니겠는가.


어쨌든 나는 늦었을지라도 예의를 갖추고자 한다.


다음 포스팅에는 시스템을 만드는데 어떤 기술들을 사용하는지 간략하게 소개하고

이후 본격적인 작업 과정을 정리하도록 하겠다.



블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요