ProductManager

- 시장 안에서의 제품의 기회에 대해서 평가하고 제품을 정의하는 두가지 책임을 가진다.

- 제품에 대한 아이디어는 이사회, 토론, 산업분석, 마케팅 스텝등 다양한 소스에서 나올수 있다. 그러나 이러한 아이디어가 진짜 가치있는지, 

   제품으로 만들어도 될지에 대한 평가에 대한 책임을 Product Manager가 진다. 

   (일부 회사에서는 MRD 라고도 부른다. Marcket Requirements Document)

- 만약에 제품을 만들 가치가 있는 것으로 판단 된다면 누군가는 제품에 대한 반드시 포함되어야 하는 요소를 정의하고 제품 기능을 뽑아 내야하며, User Experience , 출하기준등에 대해서 정의를 해야 한다. 이러한 과정을 통해서 Product Requirements Document(PRD) 또는 Product Spec 또는 Functional Spec을 만들어 낸다.


User Experience Designer 

- Interaction Designer 는 대상 고객에 대한 깊은 이해가 필요하며, 유용성과 생산적인 약 측면에서 업무나 화면 흐름을 고려할 수 있어야 한다. 

- User Experience Designer 는 요구사항과 디자인이 고객의 요구를 충족할수 있도록 ProductManager와 밀접하게 일을 해야 하며, 고객이 어떻게 이걸 사용할지, 고객이 어떤것을 원할지에 대한 관점을 가져야 한다.


Project Management

- 제품을 만들기로 결정이 되면 , 개발팀이 만들어진다. 이때 프로젝트를 스케쥴링하고 기능의 완성을 추적하는것은 project management의 핵심 요소다.

- 위와 같은 점들은 전적으로 Project manager에 의해서 이루어 지기도 하고, engineering manager에 의해서 이루어지기도 한다. 이러한 것들은 프로젝트의 크기, 회사의 조직문화에 따라 달라지지만, 대규모의 큰 프로젝트 같은 경우엔 전문적인 Project Manager를 두는것이 좋다.


Engineering

- 제품개발이나 소프트웨어 개발자들은 제품을 만드는 책임을 가지고 있다. 

- 흔히말하는 Information Technology는 두가지로 생각해 볼수 있는데, 특정 고객을 위해서 제품을 만드는것과, HR Application처럼 내부고객(근로자)을 위해서 만드는것으로 나눌수 잇다.


Site Operations

- Site Operations팀은 서비스를 장애 없이 고객들에게 제공하는데 목적이 있다. 일부 회사에서는 Engineering Team에서 이러한 역할을 다루는데, Site Operations는 매우 중요하고 어려운 기술의 집합이기 떄문에 이러한것은 맞지 않다.

Product Marketing 

- Product Marketing 팀의 멤버는 제품을 세상에 알려야하고 다양한 채널들을 통해서 제품을 판매해야 한다. 일부 회사에서는 Product Marketing 과 Product Managing 을 동일하게 생각하고 한사람에게 그 일을 맡기기도 하는데, 이는 매우 다른 분야이며 두개를 함께 병행하는 것은 굉장히 어려운 부분이다. (남일 같지가 않네)


Q. 얼마나 많은 Product Manager가 필요한가 ?

- 일반적으로 한명의 P.M당 5~10명의 개발자가 적당하다.


Q.얼마나 많은 UX전문가가 필요한가 ?

- 한명의 interaction designer가 두명의 product manager를 지원하고, 한명의 visual designer가 4명의 interaction designer를 지원한다.


Q.전문적인 PM이 필요할까?

- 5명의 이상의 엔지니어가 투입된 프로젝트라면 , 그리고 계속해서 릴리즈 일정을 고려하여 진행해 나가야 하는 프로젝트라면 "YES"(필요하다) 


 





Posted by 마일로
:

대학시절에 MFC나 Java Swing 을 했던 추억을 떠올리면서, 맛보기 하는 정도로 흝어볼 예정이다. 

Python 설치시에 기본적으로 GUI Toolkit 인 Tkinter가 같이 설치된다. 좀더 열정이 있었다면 Wxpy, PyQt4, Kivy 등등의

파이선 GUI 툴에 대해서 소개를 하겠지만.. 그건 힘들거 같다. 

일단 간단한 예제로 워밍업

아래 코드는 간단하게 버튼이 하나 있는 창이 열리고 그 버튼을 누르면 창이 닫히는 매우 간단한 프로그램이다.

1 : Tkinter 를 위해서 import

2 : 버튼에 Binding될 이벤트 함수

5:  메인 윈도우를 생성

7: 메인 윈도우 위에 text에 들어가있는 캡션을 가지고 버튼을 생성

9: 첨에 이놈은 뭐하는것인고(?) 라고 생각했는데 버튼이 차지할 레이아웃을 지정한거다. 

11 : 버튼 클릭 이벤트 바인딩 

13 : root.mainloop() 는 이벤트 루프를 실행시키는 부분인데 클릭되면 이벤트 핸들러가 동작한다


실행화면


와우 !!!대한민국만세가 와도 만들정도의 예제를 만들어 봤다.  민망할정도다.


이제 사랑이가 와서 만들만한 예제 하나 더 만들어보자.

이번에는 버튼을 2개 만들고 하나를 누르면 라벨에 MILO WORLD ! 라고 출력이 되고 다른 버튼을 누르면 창

이 닫히는 프로그램을 만들어보자. 위에서 만든 예제를 좀 바꿔서 만들어보자.



위 예제에서 버튼과 라벨을 하나 더 추가하고, 버튼에 따른 이벤트를 추가하고, 버튼이 눌렀을때 라벨값을 변경했다.

주의할점은 line:10 과 line:13 에 있는 bind 함수인데... 난 첨에 이 이벤트 핸들링을 위한 특정 ID를 파라미터로

넘기는줄 알았는데... 저게 이벤트 키다. Button-1 이라는 이벤트는 좌클릭 이벤트를 나타내는 파라미터다..멈칫..


Tkinter 결론 : 컴포넌트 사용법과 레이아웃 배치하는 정도만 공부하면 이것저것 만드는데 큰 어려움은 없을거 같다 .

                    Python 프로그램들의  플랫폼에 따른 동작에 대해서 좀 봐야겠다






Posted by 마일로
:

키노트에 자바스크립트 스위치 구문과 관련된 내용들을 정리해봤다.

까먹지 않고 있다면 언젠간 한번쯤 써먹을만한 깨알 팁인듯 


012345


Posted by 마일로
:

Fury

Movie 2015. 1. 1. 16:23 |

FURY

개인평점 : ★


2차대전을 배경으로 한 영화이며 상사 "워대디"와 탱크 "퓨리" 그리고 그의 동료들의 이야기이다. 

전쟁이라는 배경덕에 전반적으로 어둡고 잔인한 장면들도 다소 등장한다. 

수많은 전투를 함께한 워대디, 바이블, 고르도.. 그들은 전쟁의 광기에 사로잡힌듯한 모습으로 보여진다. 

그런 전쟁의 한복판에 노먼이라는 이등병이 등장하면서 겪는 심경의 변화 그리고 그들의 마지막 모습을 그린다. 

사람을 죽일 수 밖에 없는 전쟁의 상황속에서 노먼이 격는 정신적 고뇌는 이 영화를 보는 관객들도 같은 질문을 

던지는듯 하다. 

마지막 장면에서 "퓨리"안에서 최후를 맞이하는 병사들의 모습과 광기어린 모습에서 죽음을 앞두고 두려워 하는 

그들의 모습에서 전쟁의 참담함과 역사의 큰 흐름속에서 사람의 무기력함을 느꼈다. 


결론적으로 굉장히 사실적이고 전쟁에서의 고뇌 그리고 사나이들의 뜨거운 우정을 느낄수 있는 전쟁영화 ! 


: 영화의 마지막 부분에서 해치를 통해 탈출한 노먼을 발견하고도 살려주는 독일병사







Posted by 마일로
:

Gulp

Node & Express 2014. 12. 26. 19:43 |

< 관련사이트 ; http://gulpjs.com >

Gulp를 활용하면 Node & Express 개발중에 코드를 수정한후 다시 시작하지 않아도 자동으로 수정된 부분이

서버로 반영된다. 

설치법은  아래와 같다.


gulp 설치

npm i -g gulp

플러그인설치

npm i --save-dev gulp gulp-nodemon gulp-watch gulp-joshing gulp-livereload

첨부한 파일을 프로젝트 경로에 위치 시킨후 gulp 를 실행하면 끝



'''

(function() { 'use strict'; var gulp = require('gulp'), nodemon = require('gulp-nodemon'), watch = require('gulp-watch'), jshint = require('gulp-jshint'), livereload = require('gulp-livereload'), _paths = ['server/**/*.js', 'client/js/*.js']; //register nodemon task gulp.task('nodemon', function() { nodemon({ script: 'server/app.js', env: { 'NODE_ENV': 'development' } }) .on('restart'); }); // Rerun the task when a file changes gulp.task('watch', function() { livereload.listen(); gulp.src(_paths, { read: false }) .pipe(watch({ emit: 'all' })) .pipe(jshint()) .pipe(jshint.reporter('default')); watch(_paths, livereload.changed); }); //lint js files gulp.task('lint', function() { gulp.src(_paths) .pipe(jshint()) .pipe(jshint.reporter('default')); }); // The default task (called when you run `gulp` from cli) gulp.task('default', ['lint', 'nodemon', 'watch']); }());

'''




Posted by 마일로
:

[5]Django Tutorial

Python 2014. 6. 27. 21:45 |

이름부터 멋지다. Django 튜토리얼 



1. 장고를 설치하기 위해서 Python 라이브러리 관리를 하는 pip 라는 녀석을 다운로드. 


2. 그리고 그놈을 실행 "python get-pip" 그러나.. Proxy 서버 설정 문제로 설치가 제대로 안됐다. 


3. 결국 장고를 설치한 방법은 mac 에서 사용하는 easy_install ! 아래와 같은 명령어로 쉽게 설치 했다. 

  미널 >> sudo easy_install Django 


아래 명령어를 치면, 현재 경로에 Django 프로젝트가 하나 생성된다.

django-admin.py startproject MiloDjangoProject


아래와 같은 폴더 구조로 생성

MiloDjangoProject/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
  • manage.py: A command-line utility that lets you interact with this Django project in various ways. You can read all the details about manage.py in django-admin.py and manage.py.
  • The inner mysite/ directory is the actual Python package for your project. Its name is the Python package name you’ll need to use to import anything inside it (e.g. mysite.urls).
  • mysite/__init__.py: An empty file that tells Python that this directory should be considered a Python package. (Read more about packages in the official Python docs if you’re a Python beginner.)
  • mysite/settings.py: Settings/configuration for this Django project. Django settings will tell you all about how settings work.
  • mysite/urls.py: The URL declarations for this Django project; a “table of contents” of your Django-powered site. You can read more about URLs in URL dispatcher.
  • mysite/wsgi.py: An entry-point for WSGI-compatible web servers to serve your project. See How to deploy with WSGI for more details





Posted by 마일로
:

[4] Ptyhon 관련 정보

Python 2014. 6. 14. 10:48 |

# 파이썬 관련 패키지 색인 

http://pypi.python.org/pypi


# 파이썬 패키지 쉽게 설치하기   (setuptools)

https://pypi.python.org/pypi/setuptools

//WINDOW

c:\ >> cd \python33

c:\ >> python ez_setup.py

//UBUNTU

sudo apt-get install python3-setuptools

sudo easy_install3 --version


** pip도 있다. setuptools 보다 더 편리하다는데 사용안해봐서 모르겠다. 

#파이썬 이미지 라이브러리 

easy_install Pillow 

//병아리 모양 변경하기

>>import Image

>>chick = Image.open("chick.jpg")

>>chick

>>chick.mode     // 'RGB'

>>chick.size       //(315,429)

>>chick.save('병아리.bmp')

>>s = chick.resize((105,200))


Posted by 마일로
:

[3] Python module

Python 2014. 6. 14. 10:34 |

파이썬에서는 라이브러리를 모듈 형태로 제공한다. 

>>import math

>>math.pi


>>import calendar

>>calendar.prmonth(2014,5)



#이번달 달력을 보여주는 예제 

from datetime import date

from tkinter import *

import calendar

t=date.today()

m = calendar.month(t.year, t.month)[:-1]

f= 'Courier New' , 10

w = Label(None, text=m, font=f, justify=LEFT)

w.pack()  //위젯을 화면에 출력

mainloop()


#import의 두가지 형태

>> import 모듈명                                // 모듈 전체를 import

>> from 모듈명    변수나 함수 이름       //특정한 대상만 import


#모듈 지우기

>> del 모듈



#자주 사용하는 모듈 정리

.sys  :  파이썬 인터프리터를 제어 하는데 사용

>>import sys

>> sys.ps1  //프롬포트 확인

>>sys.ps1 ="@@@"  // 프롬트를 @@@로 변경해라 

>>sys.version    // sys.version_info       // 파이썬의 버전을 확인하고 싶은 경우 사용

>>sys.exit()   //프롬포트를 빠져나온다.


.os : 운영체제를 제어 할수 있다. 

>> import os

>> os.getcwd()    //현재 경로를 확인

>> os.listdir('.')   // 현재 경로의 디렉토리를 확인 window 의 dir과 같은 역활인듯

>> os.rename( 'a.txt', 'b.txt')    // 파일 이름을 a.txt 에서 b.txt 로 변경


.random : 난수를 발생해서 처리하는 일들을 하는 모듈

>>import random

>>random.random()  //skstnrk qkftod

>>random.randrange(1,7)   // 1 ~ 7 사이의 랜덤 숫자 발생

>>random.shuffle(list)    // list의 요소들을 랜덤하게 섞어준다.

>>random.choice(list)    // 배열내의 요소들중에 하나를 임의로 뽑아준다. (복불복 내기에 사용하기 좋을듯)



Posted by 마일로
:

[2] Python Basic Syntax

Python 2014. 6. 14. 10:21 |

파이썬의 기초 문법에 대해서 포스팅을 하고자 한다. 기존에 다른 랭기지를 익힌 사람이라면 한두시간만 투자해도 쉽게 익힐수 있다. 그러나... 라이브러리들을 import로 제공하고 사용하기 때문에 얼마나 많이 사용해보느냐가 중요한 요소일듯.


# 콘솔에 출력은  print 메소드를 활용한다.

.문자열 출력  -> print 'abdwef' 

.숫자 출력 -> print 3


#변수선언

변수 선언은 따로 필요없다. 따라서 아래와 같이 가능하다.

>> a=4

>> b=5

>> c = a+b

>> print c  //9가 출력된다.


#달력보기 


>> import calendar                  // 캘린더 사용을 위한 import


>> calendar.prmonth(2018,2) //보고싶은 달을 출력


#문자열 


>> 'super' + 'marcket' // 'supermarcket'


>> 'show ' * 3 // 'show show show'


>>  len('abcd') // 4 len means length 



#배열에 숫자를 차례대로 입력하고 shuffle 하는 예재


>>numArray = list(range(1,50))  //1에서 50까지의 숫자를 가진 배열이 생성된다 [1,2,3,4,5,....]


>> import random                    //shuffle 함수를 사용하기 위한 random 라이브러리 import 


>> random.shuffle(numArray)  // 배열의 순서를 랜덤으로 섞음


>> numArray.pop()                // 하나의 element를 꺼낼수있다.


#반복문


>>for i in range(4,8):   //range 와 함께 사용


>>    print i 


>>arr = ['1','2','abc']


>>for element in arr :   // foreach 문 형태로 사용


>>    print element


>> num =1


>> while num <= 100:    // while 문 형태


>>    print num


>>     num = num+1



#조건문   : else, else if 둘다 가능하다.


>> if a > b:        // if 문 


>>    print a


>>else:


>>    print b



#Dictionary


dic = {'a': 'this' , 'b' : 'that' , 'c' : 'oh my god' }


dc.keys();  // a, b, c


dc.values()  //  this , that, oh my god


'python' in dc     // false    포함하고 있는지 여부를 알수 있다. 



#파일에서 목록을 가지고와서 집합(SET)으로 만들기


mdb_file = open('C:/list.txt', encoding='utf-8')


mdb = set(line.strip() for line in mdb_file)


os의 명령어 실행도 가능하아


>>import os


>>os.getcwd()


>>os.chdir('C:/abcd/dd/movie')


#합집합 구하기


>> all = mdb.union(c).union(gt)







Posted by 마일로
:

[1] Python 기본 소개

Python 2014. 6. 13. 21:44 |

#Python의 특징

1. 고수준 언어 : Syntax 보다는 더 큰 안목으로 바라볼수 있다. 

2. 문법이 매우 간단하다. 배우기 쉽고 빠르게 소스를 읽어 볼수가 있다. => 파이썬을 공부하기 전에 외국 개발자들의 이야기를 봐도 , 가장 많이 나오는 말이 가독성이 좋다 라는 말이 었다. 기대되네

3.수요가 많고, 많은 개발자들이 파이썬 프로그래밍을 즐겨서 사용한단다.


내가 파이썬에 관심을 가지게 된것은 Django 라는 프레임웍이 널리 사용되는것을 보고 한번 사용해 보고 싶다란 생각이 들어서였다. 그리고 Java , Script 언어가 아닌 다른 인터프리터 언어를 습득해보고 싶어서다. 

이글을 포스팅하는 2014년 6월 기준 프로그래밍 언어 순위 8위에 당당하게 랭크되어 있다. 

그만큼 널리 사용되고 있다는 뜻이다.

파이썬은 쉽기 때문에 프로그래밍 교육용으로도 사용하기 쉽다고 한다. 


파이썬 개발을 위해서  Python 공식사이트에서 (https://www.python.org/) 실행파일을 다운로드 받았고, 

이클립스에 'PyDev' 플러그인을 설치 하였다. 테스트를 위해서 아래와 같이 파이썬 코드를 작성하고 돌려봤다.

mylist = ['kim sung hee', 'lee sung jae', 'um jaekyung'];
if len(mylist) > 0 :
    print 'This is not Empty Array'
    print 'So, I\'m going on print this element'
    
    for element in mylist :
        print element;


파이썬을 실행하는 방법에는 일반 쉘에서 실행할수도 있고, 통합개발환경, 크롬에서도 파이썬 쉘을 실행시킬수 있다.

또는 http://ideone.com 에서 온라인에서 실행할수도 있다.

이상없이 돌아간다. 파이썬 첫번째 포스팅 끝


파이썬 관련 성공 사례 : http://python.org/about/success/





Posted by 마일로
: