Python virtualenv 사용법(MAC기준,pip사용)

Posted by jungbbong
2015. 5. 14. 23:50 프로그래밍/Python


학생때나 초보때는 실제로 root나 시스템에 기본으로 있는 하나의 컴파일러환경에서 개발하는 경우가 많다

virtualenv를 사용해야하는 이유부터 설명하고 난뒤에 virtualenv를 세팅하는 방법 및 python을 세팅하는법에 대해서 설명을 하도록 하겠다


virtualenv를 사용해야하는이유 :

프로그래머가 개발하는 환경 != 프로그램이 실행될 환경 

이경우에 우리는 결국에 다만들어놓고 디버깅끝낸 이후에 프로그램이 돌아갈 대상환경에서 다시한번 디버깅을 해야하는 일을 만들어낸다 

또한 

개발환경에서 프로젝트별 독립된 개발환경을 제공해줘야 각각의 프로젝트의 환경변수들이 꼬이는 일이 발생하지않는다.
실제로 사용할 프레임워크의 버전충돌을 피할수 있기 때문이다

위의 문제점을 보완할수 있는 방법으로 virtualenv를 사용하여 개발환경에 맞추것이 중요하다.

virtualenv : 개발환경에서 독립된 개발환경을 제공해주는 프로그램



실제로 여러개의 env(환경변수)를 만들어서 각각의 app이라던지 프로그램의 개발환경의 라이브러리파일을 설정해주서 프로그램의 실행환경과 유사하도록 세팅해주어 디펜던시 문제를 해결할수 있다.


아래 그림은 pip install을 통하여 virtualenv를 설치하는 과정이다





설치가 완료된다음에는 virtualenv를 사용해보도록하자


virtualenv라는 명령어가 새로 생겼기때문에 해당 명령어를 바탕으로 만들고자하는 프로젝트명을 설정해주면된다.



해당프로젝트명으로 환경변수가 설정이 되도록한다.



source명령어를 통하여 activate파일을 실행해주면 

(test_env)라는 아까 만들었던 프로젝트명이 쉘앞에 생기게 되는게 이때 환경변수가 활성화된상태라고 보면된다.



활성화된 환경변수에서 원래대로 돌아오고자 한다면



deactivate를 사용해주면된다.







개발환경세팅시에 


[test_env,프로젝트명]/bin/activate 파일 안에 deactivate와 activate에 관련하여 환경변수들을 세팅해서 사용해주면된다.



activate 후에 python 패키지들을 세팅해서 개발해준다면 각기 다른 개발환경을 만들어줄수있다



[이슈관리도구] redmine

Posted by jungbbong
2015. 4. 12. 17:18 시스템인프라/여러가지툴사용법




redmine에 대해서 적을것이다


통칭 레드마인 이슈관리도구이다

-> 개발자뿐만아니라 기획자,QA등의 요구를 효율적으로 반영하기 위한 도구


프로젝트를 하다보면


어마어마어마어마한 일들에 부딧히게될것이다

해야할일들, 시키는일들, 그외 내가만든일들(bug라던지 버그라던지 또는 벌레라던지, bugs.....)


이슈를 인식하더라도 담당자와 일정을 효율적으로 관리하기 힘들다

쌓여있는 일들을 여러담당자에 인식하여 효율적으로 관리를 하도록 도와주는.. 

...유사 프로그램으로 맨티스가 있으나,, 이건 거의 버그트래킹툴이라고 봐야한다 또한 형상관리툴과 연동이 잘안되는점이 한계?



이슈를 관리하는 방법들은 수많은 여러가지들이 많다

스크럼을 통해서 todo doing done이라던지 줄줄줄 나열해서 쓸수있을것이다.

하지만..이걸 오프라인에서 처리하는것은 상당히 힘든일이 될 것이다 아무리 스플린트를 통하여 처리한다고해도 pc로 하는것과는 천지차이겠지


레드마인+스크럼 을 통하여 위의 문제들을 우리는 해결해 나갈수있다





위의 얘기는 필자가 필요로 하는 기능이기 때문에....일단 찾아본것이고


이 글의 본목적인 

레드마인을 소개하는, 지원하는 기능들을 나열해보겠다


레드마인은 ruby on rails를 기반으로 하여 만든 이슈트래커 툴이다.


아래와 같이 정돈된 UI를 가지고 있다.




작업내역( 공동작업자들간 작업내용을 공유하는곳)




회원관리( 멤버관리, 개발자들, 그외 기획자들을 관리하는 기능들 )

.,...생략



일감(레드마인의 핵심 todolist라고 보면되겠다)




위키(프로젝트의 내용을 공유하는부분, 하나의 문서)





저장소(서버의 svn이나 git을 연결)




설치방법은 나중에.....

'시스템인프라 > 여러가지툴사용법' 카테고리의 다른 글

Sourcetree를 이용한 Github 시작하기  (511) 2015.05.18
git이란?  (484) 2015.05.18

[창업방법론] lean startup, 린스타트업

Posted by jungbbong
2015. 4. 12. 13:29 프로그래밍/소프트웨어공학

이글에서는 린스타트업에 관하여 짧은 이야기를 적어볼것이다


본 블로그에서는 스크럼에 관한 이야기를 다루기도 했으니 참고하면 좋을듯...


린스타트업은 제품이나 시장(창업)을 하기위하여 사용하는 프로세스라고 하는데


내가 찾아보고 공부한 바로는 


정의:

lean이라는 단어는 도요타 제조공정방식에서 나온말로 : 지속적으로개선하며 낭비를 줄이는 방법

lean startup이라는 것으로 인용하여 벤처에게 적용하는 방법으로 정의되었다


목표:

어떠한 제품을 시장검증과 MVP(minimum viable product)을 통하여 단계별로 반복하여 완성하는 방법론


대상:

불학실환 시장에서 불확실한 답을 구해야할때



필요하다면 뭐.. 한줄요약

린스타트업은 불확실한 시장에서 새로운 서비스를 만들어내기위한 구조(프로세스)라고 아래 책에서 길게 설명이 되어있었다 도서추천!




본론으로가서..



현재 우리가 알고있는 상황에서 미래를 예측하여 디자인한다는것은 상당히 어려운일이다








기획, 시장조사, 전략를 잘한다고 해도 급변하는 시장에 대응하는것은 힘들다


그렇다고 무작정 닥치고 일만하는것도 답이 아니다






앵그리버드는 Rovio사의 52번째 게임이였다


위의 이야기를 

린스타트업에서는 아래와 같이 풀고 있다


고객의 need?

제품의 기능?

지속발전가능한 BM?


아래가 위에서 언급한 lean cycle이다


뭐 rovio사는 52번째에 풀었던거라고 볼수있겠지?...ㅋㅋ





실패 = 학습


데이터모델, 시장검증, 기획이 잘못되었다고해서 남는게 아니다 성공하지못한이유를 하나 배운것이다


그러나, 이기간이 길어지면 사업에서 자본의 문제가 발생하기때문에 미니멀리즘을 택하여 빠르게 


taskforce로 짧게짧게?, 애자일하게 시장에 맞춤형 제품을 양산하는것이라고 볼 수있다


lean cycle에 적용하여 아래 린캔버스에 적용하여 어떤것을 풀어야할 문제로할지 개발내용으로 삼는것이다.










위의 내용을 다시정리하면


불확실성과 빠른실패가 전제조건 -> 빠르게 실패해도 재도전은 쉽다


시장과 고객에 집중 -> need를 찾기위해


문제해결 사이클


= sustainable + scalable한 모델로 사람중심의 능동적인 조직 문화와 명확한 목표와 방향성..





'프로그래밍 > 소프트웨어공학' 카테고리의 다른 글

[개발방법론] 스크럼  (466) 2015.03.24