'허니몬의 IT 이야기/프로그래머, '코드 엔지니어''에 해당되는 글 99건

허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

문득 생각이 나서 적어둔다.


수정한 소스 커밋(commit)은 기능수정 1개당 한번씩 해주자.

개발할 때는 개발한 기능1개당 1번씩.

커밋을 자주 찍는 습관을 들이자.


난... 관련한 사항 수정을 모두 마친 후에 커밋을 찍었었지.


허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

발표제목 : Apache Thrift
발표자 : JBoss 김병곤님
발표자료 :

 Apache Thrift_v0.1_20110914.pdf

사이트 : http://thrift.apache.org/
여러 언어를 기반으로 하는 자바 기반 서비스 개발하기 - 김병곤 JBoss
IT System Evolution
Hardware platform -> SLA platform -> HA model -> Scaling Model -> SW & Deploy Model -> Service Model
Cloud Model : 장비도 싸고, 필요에 따라서 리소스 등을 추가할 수 있게 되었다.

현대 IT System이 요구하는 속성
 많아!! 아주 많아.

Mission
- 이기종의 다양한 언어를 지원할 방법은 없을까?
- 서비스의 최적화를 위해서는 다른 언어를 써야하는데

LAMP = Linux + Apache + MySQL + PHP

Apache Thrift's
: Software Framework
thrift 를 사용하면 thrift Lib를 이용해서 손쉽게 변환이 가능해진다.

장점
- 불필요한 시간 낭비 최소화
- 유지보수 비용 최소화
- 다중 언어 직렬화
- 단순함
- XML 설정 없음

Facebook 에서 개발해서 2007년 4월 오픈소스화
Apache Incubator
최소의 부하로 이기종 언어간 Serialization 지원

Thrift Application 개발 절차
1. Thrift IDL 파일 작성 - 인터페이스 정의
2. Thrift 코드 생성기 - 컴파일 / C++로 되어 있어야 한다.
3. 클라이언트/서버 생성 및 실행
** 핵심은 Thrift 생성기에 있다.

요구사항.
언어 지원 사항에 대한 확인이 필요하다. 프로토콜, 서버, 클라이언트 등...
Non-Blocking IO
Comparing Thrift ->
Thrift-TcompactProtocol
스리피트 -> 자동으로 코드를 생성해주므로, 개발자에게는 Biz만 개발하도록 지원.
** 개발자의 생산성 향상과 관련된 이야기가 많은 공감 세미나




윽... 쓰다가 날려먹었군요. 블로그 편집기에서 글을 작성하지 말아야겠습니다. ㅡ_-)>

이 부분에 관련해서는 찬찬히 내용을 쓰도록 하겠습니다. 하고 싶은 이야기가 많거든요. ^^


우리들의 생활 속에 IT가 밀접하게 파고들면서(우리는 스마트폰을 우리 손에서 놓을 수가 없습니다. 아, 저만 그런가요?) 사용자들이 쓰기 쉬운 서비스를 제공하기 위한 기술은 복잡해져만 갑니다. 기술이 어려운 건 그때나 지금이나 마찬가지라고 하시더군요. ^^

허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

발표제목 : The state of union : Cappuccino
발표자 : OSXDEV 김정
발표자료 :

- 카푸치노(cappuccino) 사이트 : http://cappuccino.org/

- 오브젝티브-제이(Objective-J) tutorial : http://cappuccino.org/learn/tutorials/objective-j-tutorial.php

- OSXDEV.org 사이트 : http://osxdev.org/phpBB3/

 CappuccinoStateOfTheUnion.pdf

OSXDEV.org
World-Wide Cappuccino Conference
Cappuccino : http://cappuccino.org/
데스크탑 앱 수준의 웹 앱을 만들기 위한 프레임워크
-> 웹 사이트를 만드는 것이 아니라 웹 앱!!
-> GNUStep / Cocoa API
   No! HTML/DOM/CSS 접근하지 않음
Cocoa Vs Cappuccino
App Kit

카푸치노를 기반으로 작성된 웹앱들
- 280slides.com
- gomockingbird.com
- githubissues.heroku.com
- almost.at : 소셜네트워크를 검색해서 묶어서 보여줘
- www.enstore.com
- www.picsengine.com

카푸치노 개발자
  = IDE  -> Atlas -> Xcode
  = 카푸치노
  = Object-J

v1.0 : 언제 나오는거야?
- Mobile
- Performance
- Debug
- Features
- Test : UI 
- Objective-J : http://en.wikipedia.org/wiki/Objective-J
- Aristo V2

  tutorial site : http://cappuccino.org/learn/tutorials/objective-j-tutorial.ph
  = 카푸치노 Object-J : Objective-C -> Javascript Trans.
      => Compiled to JS
      => 코코아는 포인터, 하지만 카푸치노는 포인터 선언하면 안된다.
      => Objective-C 를 알아야 하는구나!!
      -> Tools
      => 기본적인 문법은 javascript 라고 할 수 있을 것이다. 지만 돌아가는 건 Objective-C 인 거다.

Language.js : Parser Generator for JS : JS PEG
- 자바스크립트를 위한 제너레이터
- PEG : Parser Expression Grammar based Packrat parser
- Grammar? 
  = LL Parser
  = LALR Parser
  = GLR Parser
  = PEG : Packrat Parser
- Paser
  = Source -> Lexical Analysis -> Tokens -> Syntactic Analysis -> Parse Tree -> Compiler
- Special addition - 'naughty OR' %
RG, PEG expression

One more thing...
JS(+jQuery...), index.html, DOM/CSS
javascript 를 기반으로 했지만, 코코아 프레임워크를 이용했기 때문에 Objective-C에 대한 학습도 필요하다.
하나만으로는 다할 수 없다.




  데스크탑 애플리케이션을 웹앱으로 빠르게 만들 수 있는 오픈소스 프레임워크다. 맥OS에서 개발툴 Xcode를 이용해서 개발할 수가 있다고 한다. Objective-J는 Objective-C 처럼 작성해서 Javascript 로 컴파일 해준다. Objective-J 로 만들어진 소스를 language.js 파서를 이용해서 javascript로 컴파일해준다. 와웅. 개발 고수님들은 language.js(PEG : Parser Expression Grammar)에 관심을 가지셨습니다. ^^


깃헙 language.js : https://github.com/tolmasky/language


에서 소스를 확인해봐야겠네요.

  카푸치노 0.9 버전에서는 아직 모바일 웹에 대한 지원은 되지 않고 있다고 합니다. 1.0 에서 모바일 환경을 지원한다고 하지만 아직은 미완의 프레임워크이기 때문에 찬찬히 지켜봐야할 필요가 있을 듯 합니다. xcode의 UI환경을 웹앱으로 옮겨줄 수 있다는 장점이 있는 프레임워크라서 많은 분들에게 관심을 얻을 것 입니다. 맥OS 환경을 가진 개발자들이라면 한번 이상씩은 접해볼 수 있겠죠(라면서 나도 맥북을 쓰고 있다는 것을 깨달았... ㅠㅅ- 걍 리눅스환경을 계속 쓸 것을...).  깔끔한 맥UI를 사용할 수 있다는 것은 큰 장점이 될 수 있을 듯 합니다.


  모토로라로 넘어갔던 소유권이 구글에게 넘어가면서 어떻게 다듬어져서 나올지 기대해봅시다. ^^


허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

발표제목 : Grails와 애자일 개발

발표자 : KSUG 장시영님

발표자료 :
Grails.pdf

Grails.pptx


그레일스(Grails)에 대한 강연을 듣는 것에 감격해하시는 분들이 많았습니다. ^^ 그레일스는 스프링, 하이버네이트, 그루비라는 언어를 결합하여 만들어낸 생산성을 향상시키기 위한 툴이라고 할 수 있을까요? ^^; 그레일스에 대해서 제대로 이해하지 못한 게 여기서 드러나는군요.

또 부끄럽습니다. >ㅅ<


- Grails = Spring(Framework?) + Hibernate(ORM) + Groovy(Dynamic Language)
- Groovy : http://grails.org/
  = Rapid : 빠른 개발 속도
  = Dynamic : 개발 내용의 즉각적인 확인 및 피드백을 위한 다이내믹 언어 
  = Robust : Spring을 기반으로 한 다이내믹하고 애자일한 개발
- What is Grails? : http://www.youtube.com/watch?v=KotyO50SBCs
  = jsp 대신 gsp, 내부인자는 freemarker 와 비슷하다 ${varialble}
  = spring security 지원해서 기본적인 기능들을 제공한다.

애자일 프로세스 - Agile Manifesto
- 프로세스와 도구보다는 개인가치와 상호작용
- 포괄적인 문서화보다 작동하는 소프트웨어
- 계약 협상보다 고객과의 공동 작업 중시
- 게획의 준수보다 변화에 대한 대응 중시
  = 유연한(Flexible한) 변화대응능력

Getting Started with Grails
소스들은 Javascript, JSON Data형태를 띄고 있다...잉?
그레일즈에서 파일을 생성하면 컨트롤러와 테스트케이스가 함께 생성된다.
프로젝트/i18n 폴더에 message_ko.properties와 같은 메시지 처리를 위한 프로퍼티 파일들이 존재한다.
- http://www.indeed.com

  인기있는 플러그인
-> Spring Security Core plugin
-> Acegi Plugin : Spring Security 의 전신이라...
-> Quartz Plugin : 반복적인 업무를 배치처리할 수 있도록 해주는 녀서
-> Searchable Plugin : 도메인 수준에서 검색 엔진을 만들어준당꼐

사이트
- Grails Site : http://grails.org/

- 행복한 아빠의 Grails : http://greatkim91.tistory.com/category/Grails

  = Groovy가 뭐야? http://greatkim91.tistory.com/2

- TDD with Groovy And Grails

- 프로그래밍 그루비

프로그래밍 그루비 Groovy in Action
국내도서>컴퓨터/인터넷
저자 : 디에크 쾨니히(DIERK KNIG),기욤 라포르쥬(GUILLAUME LAFORGE),앤드루 글러버(ANDREW GLOVE),폴 킹(PAUL KING),존 스킷(Jon Skeet)
출판 : 인사이트 2009.03.06
상세보기
- Grails ScreenShots




그루비(Groovy)는 자바(java)같은 루비(Ruby)라고 한다.

자세한 내용은 여길 참고하면 더욱 좋을 것 같다.

http://greatkim91.tistory.com/15

그루비는 극도로 복잡해진 자바 웹애플리케이션 개발환경의 복잡성을 극적으로 줄여줄 수 있다고 한다. 여기에는 DDD(Domain-Design Development - http://en.wikipedia.org/wiki/Domain-driven_design)와 ORM(Object Relation Mapping - http://en.wikipedia.org/wiki/Object-relational_mapping)의 막강한 힘을 사용할 수 있게 된다고 한다....는데, 쉽지 않아 보인다. 하지만 자바를 배운 사람이라면 조금은 쉽게 그루비에 접근할 수 있지 않을까 조심스레 추측해본다. 나도 들여다봐야할 것 같지만 당장은 자바, html, javascript, 안드로이드를 익혀야하는 중이다.


  엔터프라이즈 환경은 점점 복잡해지고 있다. 다양한 프레임워크와 기술들이 혼합되어 고도화되고 있다. 하지만 그걸 사용하여 개발해야하는 개발자들은 크게 발전하지 못하고 제자리 걸음을 하고 있다. 그루비를 통해서 이런 답보상태를 벗어나 한걸음 더 나아갈 수 있다면 그것으로도 큰 진전을 이룰 수 있을 것이다. ^^

  그루비를 이용한 레퍼런스(큰 프로젝트에 적용되어 성공한 사례를 레퍼런스라고 하더라. 우리나라에서는 이런 레퍼런스가 많이 나타나는 게 금융권에서 진행하는 차세대사업...이었던 것 같다. @_@ 우리나라에서 새로운 웹서비스나 애플리케이션들이 성공한 사례가 많지 않으니까...)들이 많이 나타난다면 우리나라 IT업계에서도 그루비가 듬직하게 한 분야를 차지할 수 있지 않을까?

  초반에 약간의 학습비용이 지출되긴 하겠지만 그 이상의 가치를 얻을 수 있을까?

  조만간 이 녀석을 사용하는 프로젝트를 경험할 수 있기를 바란다. +_+)

허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

발표제목 : 소셜 코딩 깃헙, 그 이후 

발표자 : 허광남님

발표자료 : 

깃헙(GitHub) 사이트 : https://github.com/

github_the_day_after.ppt

git-workflow.pdf

깃헙에서도 private repository 가 된다.

-> git을 이용해서 hub를 만든거야.
-> 프로젝트를 그룹화가 가능해.
-> 유명한 개발자/프로젝트를 접하게 되면서 개발자의 도전정신에 자극을 받게 된다...라지만 난 영어가 딸려서 안될거야, 아마.
-> 버전넘버가 hashCode가 된다.
-> fork를 통해서 원 저자의 프로젝트를 그대로 가져다 사용할 수 있고,
-> pull request를 원저자에게 요청해서 적용할 수가 있다.
-> javascript

Git 분산이 어렵다.
-> 로컬에 커밋하면 서버는? push
-> 서버 것을 가져오려면? pull
-> 충돌(Conflict) 나면? 1. fetch, 2.merge
-> checkout은? git clone
-> 특정 버전은? git checkout

workflow model : 3가지의 모델형이 있다.
+ Central repository model
-> shared repository
+ dicator & lieutenant model
http://git-scm.org

깃헙이란
프리
오픈소스
분산
버전관리시스템

Git clone is
full-fledged repository not dependent on network

프로젝트 루트에는  README 가 작성해서 넣어주는 게 좋다.

public SVN to github -> 공개된 SVN을 깃헙으로 옮겨오징.

EGit; Eclipse git plugin / JGit

Git Repository를 기반으로 프로젝트를 만든다...라.
깃헙을 이용해서 프로젝트를 하나 진행해볼까??
conflict 

Git Conflict
-> pull / push 적절히 알아서 해

Jenkins
github for mac
xCode에서도 깃헙이 사용가능하다.

** 깃헙의 버전은 해쉬코드를 통해서 관리된다.

summary
- 소스 저장소의 진화
- github 프로젝트 호스팅
- 브라우저에서 수정/빌드 가능한 코딩
- 도구 EGit 이전에 깃헙에 대한 개념부터 쓰는 것이 좋다.
- 개발자들의 SNS라고 생각하면 좋다. 
- 글로벌 개발 구루 총집결
  = 리누스 토발즈(Torvaldz) : 리눅스 커널 
  = 더글라스 크락포드 : JSON, JSLint, JS Architect
- 오픈소스의 신 메카
- 지켜보기 좋은 대쉬보드 TimeLine : Watch
- 코드 저장소의 비주얼 최강
- 프로젝트 그루핑 관리
- 이슈트래커, 위키 지원
- Github for Mac, WIndows Bash console
- 대세




위의 내용은 강연을 들으면서 기록했던 내용들입니다. ^^

최근 깃헙에 등록된 사용자가 100만을 넘어섰습니다. '100만 프로그래머 양병지'라고나 할까요? ^^


   현재(2011.09.25.) 깃헙에 등록된 사용자는 100만 9천700여명이고, 이 숫자는 앞으로도 계속 증가하는 추세를 보일 것입니다. 순수 사용자가 100만이라고 보기는 어렵지만(깃헙을 소개하신 kenu님도 계정을 3개 가지고 계셨으니까!!), 개발자들의 SNS라고 할 수 있는 깃헙의 사용자는 앞으로도 꾸준하게 증가할 것은 의심할 여지가 없습니다. ^^

  해외 유명서비스들도 깃헙에서 오픈소스로 개발되고 있고, 최근 리누스 토발즈도 깃헙에 참여함으로 해서 더욱 많은 오픈소스 개발자들이 참여하는 계기가 되지 않을까 생각합니다. ^^ 리눅스를 애용하는 저로서는 기쁘기 그지없습니다.


깃헙(GitHub)은 리누즈토발즈가 제작한 Git(http://git-scm.com/)에서 시작되었습니다. 그것을 SNS와 결합하고 시각화 기능을 높인 것이 깃헙이라고 봐도 무방하지 않을까 개인적으로 생각합니다. 소셜한 버전관리 서비스가 됨으로 해서 소스관리를 손쉽게할 수 있게 된 것이죠. ^^ 깃헙에서는 오픈소스 프로젝트만 사용가능한 줄 알았는데, private 프로젝트들도 이용가능합니다.

  공개되어 있는 프로젝트를 지켜보고(Watch)하고 받아보고(Fork) 경우에 따라서는 자신이 수정한 소스를 적용(Pull Request) 요청하고 원제작자가 그 수정된 소스를 적용해주는 기쁨(영광이라고도 하더군요. ^^)을 누릴 수도 있습니다.

  우리나라 개발자들은 오픈소스 프로젝트에 대한 참여율이 낮다고 합니다. 사실 저 역시도 오픈소스 프로젝트에 참여하지 않고 있군요. 부끄럽고요. 아직 부족한 실력인지라 어느 정도 실력이 되면 참여해야지 하면서 미루고 있지만, 그렇게 높은 수준을 요구하지 않을 수도 있겠죠. ^^;

  '백문이 불여일견(百聞耳 不如一見)'이라고 하죠. 코딩 실력을 향상하기 위해 열심히 강연만 듣는 것보다는 코딩을 직접 해보는 것이 낫고 자기보다 뛰어난 실력을 가진 개발자들의 코드를 직접볼 수 있는 기회는 그리 많지가 않습니다. 깃헙에서는 그런 개발자들과 온라인을 통해 코드를 공유하고 코드를 통해서 그들과 대화를 나누는 경험을 공유할 수 있는 기회를 제공하게 되는 것이죠. ^^


  우리가 자주 사용하는 소스버전관리툴들이 존재하지만(저는 아직 깃헙을 직접 사용해본 경험은 없습니다. SVN을 사용하고 있지만 아직도 이해도가 많이 부족한 것 같아요. 제 노력도 많이 부족하죠. ^^; 실력이 뛰어난 개발자가 되는 길을 향한 수련은 끝이 없습니다. 개인적으로 궁리중인 프로젝트를 시도하게 되면 그때 깃헙을 이용해봐야겠습니다.) 깃헙 같은 녀석은 흔하지 않죠.


  최근의 개발 프로세스는 많은 사람들이 함께 모여서 협업을 통해 프로젝트를 진행하게 됩니다. 그래서 보다 효율적으로 소스를 관리하기 위해 소스관리툴을 사용하길 바라죠. 많은 사람이 같은 소스를 손보다가 일어나는 충돌(conflict)을 발생시키면 부끄럽습니다. >ㅅ<); 정말 그랬습니다. 서로가 수정한 소스가 충돌을 일으켜 빌드가 제대로 되지 않는 사태를 줄이기 위해 소스관리를 하게 되는데, 이럴 때 깃헙을 활용할 수 있다면 어떨까요?

깃헙 시작하기 : http://help.github.com/

  여기서 차근차근 깃헙을 익힌 다음에 제대로 사용해봅시다.


  그리고는 오픈소스의 세계로 빠져들어보는겁니다! ^^

  소셜 깃헙에 빠지신 광남님은 최근에 깃헙 전도사로 빠져든 허광남님의 깃헙 사랑은 앞으로도 쭈욱 계속되겠지요? ㅎㅎ

1 ··· 6 7 8 9 10 11 12 ··· 20
블로그 이미지

Email : ihoneymon@gmail.com 안녕하세요, 꿀괴물 입니다. ^^ 멋진 비행을 준비 하는 블로그 입니다. 만능형 인간이 되어 많은 이들에게 인정받고, 즐겁고 행복하게 살기를 간절히 원합니다!! 달콤살벌한 꿀괴물의 좌충우돌 파란만장한 여정을 지켜봐주세요!! ^^

허니몬