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

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

후우우. 완료란 어려운 것이다.


동작하지 않는 이유를 찾고 고민할 시간이 필요하다고!!
남탓은 하지 않겠어.

내가 그 기능을 테스트할 수 있는 테스트 케이스를 만들었다면 이런 일은 없었을테니까.
허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

 올해로 이쪽(IT)에서 일한지 만 2년을 넘어서 3년치를 채워가고 있다. 그리 길지 않은 시간 동안 회사를 네번 옮기고(두 회사에서는 일년 남짓 일하고, 다른 한 회사는 2달, 한 회사에서는 하루) 일을 해오고 있다.

  '어떤 일'을 하느냐가 중요하지 '어디서' 일을 하느냐가 중요하다고 생각하지 않았기에 직장을 옮기는 것에 대해서 큰 거부감없이 이직했다. 다른 직종에서 일하고 있는 친구들이 매년 연말이 되면 "또 회사 옮기는 거 아냐?" 라며 농담을 던지는 것도 아무렇지 않게 "글쎄. 아직 옮길 정도는 아냐."라며 웃어넘기는 상황이 되어버렸다. 

  중요한 것은 ['어떤 일'을 하느냐]라고 생각한다. '어떤 일'을 하기 위해서 차근차근 절차를 밟아가고 있다면 그걸로 된 것 아닐까? 지금 나는... 아닌 것 같기도...?

  일을 통해서 '자아실현'을 달성할 수 있다면 얼마나 좋을까?

  그런 욕심을 품고 있다. 이 욕심을 따스하게 잘 품어서 '멋진 불사조(읭?)'로 부화시킬 수 있다면, 인생에 재미난 추억 하나 얻어갈 수 있을테니 얼마나 좋을까? 사람은 추억으로 살아간다고 하잖은가? 이왕이면 다른 사람들에게도 자랑스럽게 이야기할 수 있는 것들이면 좋잖은가.


축하드립니다 불사조의 기사처럼 영원하시기를
축하드립니다 불사조의 기사처럼 영원하시기를 by Channy Yun 저작자 표시

     광화문 쪽에서 일을 하다보니, 퇴근하는 길에 할 일이 없으면 교보문고에 들려서 '무슨 책이 나왔을꼬?' 하면서 신간들을 훑어본다. 교보문고를 슬렁슬렁 한바퀴 돌아보고 마지막으로 IT 코너를 둘러보는 것으로 마무리를 짓는다. 개강한지 얼마되지 않아서 일까? 교재 혹은 학습용으로 자바언어 쪽 코너를 서성이고 있는 새내기 대학생들을 손쉽게 볼 수가 있다(자바나 C나 신입생이 프로그래밍에 진입하면서 배우기에 적절한 언어라고 생각하지는 않는다. 어려워!! 어렵다고!). 그리고 그들이 책을 하나하나 살펴보면서 고심하는 모습을 가만히 살펴본다. 가만히 보고 있다가 '아, 나도 명색이 자바 개발자(그래봐야 2년차, 이제야 '아~ 그런거군'하면서 깨달음을 종종 얻는 정도의 수준인데 )인데 "이 책이 좋아! 읽어봐! 그 다음에는 이 책이 좋아!" 하고 추천해주고 싶은데… 뭐가 좋지?'라는 생각을 하게 된다. 

    그래서 찾아봤던 게 있다. 인터넷에서 '너구리'로 활동중이신 '너구리'와 닮으신 '채수원'님이 올리셨[그림으로 배우는 자바 학습 로드맵(http://blog.doortts.com/93)]이 있었다. 이와 관련했던 내용의 글을 얼마전에 썼었다. 하고자 하는 바가 있다면, 저 로드맵을 따라서 시도해봄직도 하다.

이 글(http://www.mimul.com/pebble/default/2009/08/31/1251715500000.html)도 추천한다.

2012/03/25 - [허니몬의 IT 이야기/프로그래머, '코드 디자이너'] - 20120324 7차 공감 세미나 후기.


출처 : http://www.flickr.com/photos/s_w_ellis/3976947156/sizes/o/in/photostream/

     컴퓨터 관련 학과에 들어갔다고 해서 하루아침에 프로그래밍 언어를 독파하고 철통같은 시스템을 해킹하고 할 수 있는 건 아니다. 특히나 우리나라 교육과정 속에서 국, 영, 수만 하다가 대학교에 들어와서 프로그래밍 언어를 접하면 낯설 수밖에 없다(설마 나만 그랬던거야? 난 여전히 헤매이고 있긴 하다. 부끄럽네.). 그럴 때 '누군가'가 추천해주는 '읽을만한 책'이 있으면 얼마나 좋을까하고 생각해봤다. 

'내가 추천해주는 책이니까 읽어봐.'라고 아무렇지 않게 이야기 해도 '우와! 정말요? 알겠습니다.' 하고 읽고서는 '추천해주신 책이 역시 좋았습니다!'라면서 좋다고 해주는 후임이 있다면 좋은 기억하나 얻어가는 것 아니겠는가? 


    뜬금없이 왜 이런 이야기를 하느냐 하면,

    최근에 고민을 하고 있는 게 바로 '내가 아는 것을 어떻게 전달할까?' 이기 때문이다. 나도 이 바닥에 신입으로 들어와서 SM 1년, SI로 1년을 하고, 시스템 엔지니어의 길에 들어설뻔한 2개월정도의 경험을 가진, 아직 초보티를 벗지 못한 개발자다. 그런 내게 '후임'이 나타난다면, 난 그 '후임'에게 '무엇을' 전해줄 수 있을까? 

    이런 비슷한 경험을 보통의 군생활을 해본 남자들이라면 경험해봤을 것이다. 
    이제 막 이등병 계급장을 떼고 일병계급장을 오버록하고서는 "아, 김상병님 어깨가 너무 무겁습니다."라며 거들먹거리던 일병에게 "네 후임 왔다! 짜식 막내 생활 벗어났네. 좋냐?" 라고 묻는 이제 일병 말호봉에게 "물론이지 말입니다." 라고 답하는 "일병"의 느낌이랄까? 그런데 막상 이등병이 자기 후임으로 들어와서 내무생활과 자대에서 지켜야하는 규칙들을 가르쳐줘야하는데 '막상' 알려주려고 하니 기억이 제대로 나질 않는다. Orz. 그럴 때 교본이라는 것이 존재한다. 전투교본이야 군대 있을 때 종종 보는 거지만, '족보'의 개념으로 자신들의 해야할 일들을 적어둔 수첩을 컨닝하며 가르쳐준다면 편할 것이다. 
    칙칙한 군대이야기로 비유하다니...

    그런 책을 쓰고 싶어하는 사람이 참 많다. 나도 그런 책을 쓰고 싶다. 지금까지 슬렁슬렁 미리읽어보기(Beta Review)를 해보며 느낀바로는 '이 책이 제법 근접했다.'라고 생각한다. 여기에 흑심을 살짝 드러낸다면, '내가 그런 책을 쓰겠다!'랄까?하지만 그러기에는 가야할 길이 너무 멀구나.


    모여서 이런저런 이야기를 하면서 '개발자'들이 생각하는 것은 '다 비슷비슷하구나.'라는 생각을 했다. 일을 하는 사람이라면, 누구나  '후임(혹은 후계자!?)'이 생기기 마련이다. 자신이 겪었던 시행착오를 '후임'이 다시 겪기를 바라는 사람은 그렇게 많지 않다(라고 생각하는 것이 긍정적이겠지?). 

  그들에게 참고하라고 '좋은 책이야. 모르는 거 있으면 물어봐.' 이야기해줄 수 있다면 얼마나 좋을까? 그 놈들(후임들!?)은 '아, 새로 들어온 회사에서 적응도 힘든데 이런 과제를 주고 그러는거야?' 라며 속으로 욕할까? ㅡ_-)? 그런 '마음 속 소리'가 들린다면 가깝게 붙어서 '짝코딩'을 하여 나의 엉성한 코딩을 통해 후임에게 멘붕(멘탈붕괴!!)를 시전해줘도 재미있을 것 같다. 아… 그러면 부끄러워서 내가 멘붕에 빠져들려나?

   

  이것저것 해본 건 많다. 오지랖도 있고 호기심도 있어서 시도해본 것들이 있어서 누군가에게 전달해줄만한 것이 분명 있을 것이다. 분명! 하지만 그것들을 정리해볼 시간은 없었다. 그래서 쉽게 풀어서 전달해주기가 어렵다. 그런 고민을 하는 사람들이 많고, 그 고민을 해결하기 위해 노력하는 사람들이 많으니까 좋은 방법들이 쏟아져 나올 것이라 생각한다.


  '신입 개발자'에게 추천해줄 책이 곧 나올 듯 하다. 누군가가 쓰고 있을 거다. 그 책을 '자신있게' 추천해주고 싶다.


  '어떤 것을 추천해줘야 할까?' 라는 생각에 응답해줄 수 있는 것을 만들어내고 싶어졌다.

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

  저는 세상을 관찰하는 관찰자(Outsider of Outsider)가 되고 싶었는데...!!

  오늘 집에서 출발할 때는 어젯밤 내리던 비가 그치고 구름이 걷히면서 화창했는데, 강남에 도착하는 순간 구름이 끼고 바람이 불기 시작하더니 이내 눈보라까지 휘몰아치더군요. 와우. ㅡ0-)!! 더군다나 세미나 시작시간을 잘못 파악해서 12시부터 입장하는 줄 알고 서둘러 갔습니다. 12시 30분쯤 23층 회의실에 도착했었드랬죠. 실제 세미나 시작은 오후 1시부터 입장을 하고 선착순으로 24명에게 도서를 선물로 했다고 하더군요. 

  ㅠㅅ-) 세미나에서 상품으로 책을 주는 것을 언제쯤 받아볼 수 있을까요?


20120324 7차 공감세미나
장소 : 강남 교보빌딩 23층 대회의실



1. 전자정부 표준프레임워크 = 오픈소스 + 알파


    - 발표자 : 허광남(전자정부 표준프레임워크 에반젤리스트!?)


    - @Before
        = ALM
        = source_20120324.zip
        = "개발팀이 체계적이면 좋겠다."

    - 전자정부
        = 공공기관의 행정 전산화 : 중소기업의 SI 프로젝트를 통해서 중소기업의 소득이 증가하지
        = 2조 5천의 비용
        = 1억 연봉자 * 25,000명 개발자 : 서버 및 제경비가 포함된 금액

    - 표준
        = 똑똑한 개발자들이 공통(표준안)을 만들어 개발자에게 하달
            -> 개발하는 과정에서 문제가 생길 경우 이를 다시 전달

        = 개발 표준 문서
            1. 아키텍처, 코딩 스타일
            2. 공통모듈 매뉴얼, 용어사전, 에러 해결 사례(트러블 슈팅), 모범, 비행사례
            3. 2번이 추가되고 갱신이 일어나면 좋은 개발 표준이 된다.

    - 프레임워크
        = 개발 프레임워크는 정보시스템 개발을 위해
        = 필요한 기능 및 아키텍처를 미리 만들어 제공함으로써
        = 효율적인 애플리케이션 구축을 지원합니다.
        = 프레임워크 도입을 통해서 기술의 장벽을 낮출 수 있다.
            -> 비즈니스 로직 구현 <-> 아키텍쳐 구현, !고급 기술자
        = 프레임워크에 대한 표준가이드가 제대로 지도해주지 않는다면, 프레임 워크를 제대로 활용하지 못한다.
            -> 관리를 제대로 해주지 않으면 성능이나 효율이 떨어진다.
        => 프레임워크 효과
            -> "전자정부 서비스의 품질향상" 및
            -> "정보화 투자 효율성 향상"을 달성하고
            -> 대중소기업이 동.일.한 개발기반 위에서 공정경쟁
                1. 대기업에서 사용하는 별도의 프레임워크(LafJ, DevOn, Systemier 등)들이 존재한다.
        = 오픈소스를 기반으로 했기 때문에 문제가 발생했을 경우 인터넷 검색과 커뮤니티에 문의하여 해결이 가능하다.

    - 전자 정부 표준프레임워크
        = 표준프레임워크 + 민원발급 게시판 공인인증 + 행정민원시스템
    - 기본 구조
        = 개발환경
            -> 구현툴, 테스트툴, 배포툴(허드슨, 메이븐), 설정 관리툴
            -> 이클립스, 메이븐, 스프링에 익숙하면 전자정부프레임워크도 어렵지 않아요
            -> 개발 프로세스 가이드
        = 실행환경
            -> 34개의 오픈소스
            -> Configuration Management <-> Version Control Management
        = 운영환경
    - 관련 자료
        = 표준에 대한 고찰
            -> http://benelog.springnote.com/  <- 유명하신 분입니다~ +_+)
        = 지속적인 통합
            -> http://pragmaticstory.com/224
            -> 지속적인 통합을 통해서 빅뱅 통합의 여파를 줄여보자.
    - 빠른 예제 실행을 통한 동작방식 이해가 될까??
    - 전자정부 프레임워크는 통합된 개발환경을 제공해주고 예제(Template)들을 추가하여 손쉽게 구현해볼 수 있다.


허광남님은 '트렌드 기술'을 빠르게 익히고 개발자들에게 전파하는 것을 즐긴다. 전자정부 표준프레임워크는 우리나라에서 공공기관의 공통프레임워크로 만들기 위한 다양한 움직임이 있다. 

  전자정부 표준프레임워크를 활성화 시키려고 정기적으로 청계천에 있는 한국정보화진흥원 무교청사에서 세미나를 진행하고 있다. 공공기관에 적용된 표준프레임워크 성공사례에 대한 이야기들과 프레임워크 안에 들어가 있는 기술들에 대한 사용방법을 전파하려는 노력을 끊임없이 하고 있다. 개인적으로 스프링 프레임워크, jQuery 자바스크립트 프레임워크에 대한 조언을 구하려는 목적으로 사용하기에는 괜찮지 않은가 생각하고 있다. ^^;


바로가기 : http://www.egovframe.go.kr

  로그인을 하기 위해서 보안모듈을 설치해야한다는 것이 참... 거시기하다. ㅡ_-);;

  인터넷 익스플로러로  접속하면 ActiveX, 비 인터넷 익스플로러로 접속하면 Java Applet 으로 구현된 듯한 보안 모듈을 설치하려고 하고... 표준프레임워크에 대한 정보를 확인하고 의견을 나눌 수 있는 공간으로 들어가기 위해 쓸데없는 보안모듈의 관문이 생기면 진입하기 싫어진다. 오늘도 개발환경 다운로드 받으려고 했는데 계속 보안모듈을 설치하라는 메시지가 귀찮았다.


 2. 개발자와 천공수(Punch Operator, 코더?)의 차이

    - 발표자 : 신호승(유와이즈원)
    - 발표자 '쩐다.' 라는 표현을 좋아했음

    - 40시간을 50분만에 줄일 수 있을까?
    - 천공수
        = 천공수(Punch Operator) : 과거 워크스테이션을 사용했을 때 천공카드에 구멍을 뚫어주는 사람
            <-> 지금의 코딩만 하는 코더 와 크게 다르지 않다.
    - 컨설턴트 - PM - 아키텍트 - 개발자 - 천공수(BP : Business Process)
        = 비즈니스 프로세스적인 관점에서 영역을 본다라.
        = 개발을 위한 IT 목표
        = Enterprise Contents Managements
            -> 의도적이지 않은 계급화가 되었다.

    - 도메인Domain(Boundary)
    - 애자일방법론 : 기술, 문화적인 성숙도 없이 애바일 도입으로 가려고 하면서 문제가 많이 생기는 것이다.
        = ex) 도요타 : 린 애자일
    - SW 아키텍처가 필요한 이유
    - 개발자가 비즈니스 프로세스를 알아야 하는 이유
        = 우리는 평범한 사람들
            -> 공학적인 접근을 통해 공학적인 프로세스를 지켜야 한다.
            -> 미국의 학문이 정답은 아니지만, 전혀 모를 때는 닥치고 따라해보는 것이 가장 빠른 길이다.
            -> 실리콘밸리의 신입사원은 기존 문서화된 정보에서 70%의 지식을 배우고,
    - Customer Development로 부터 모든 Software 개발이 시작
        = 개발자에게 필요한 기본적인 소양
        = Customer Development <- 고객지향 개발기법 이랄까? ㅡ_-)?
    - 아키텍처 확립의 의미
        = 정리하고 산다는 의미
        = 현실을 정확하게 추상화하고 모델링하여 미래에 대한 계획과 위험에 대한 유연성 확대
        = 아키텍처를 통해 본질에 대한 파악
    - 자신이 만드는 제품에 대한 가이드 제공...
    - 요구사항 -> 변경사항 적용에 대한 공지

    - ** Agile 방법론이나 TDD등이 중요한 것이 아니라,전체적인 일하는 방법을 Agile하게 바꿔야하는 사례
    - ** 개발자도 비즈니스를 잘 알아야 한다.
    - IT는 ROI를 줄이기 위해서 필요한 것이다.
    - CMMI, Matrix
        = Level 2는 'Star'가 일을 하는 시스템
        = Level 5는 '조직' 일을 하는 시스템
    - 소프트웨어 개발은 SDLC(Software Development Life-Cycle)
        - 요구사항, 분석, 설계, 구현, 테스트
    - Software는 Intangible 하고 Human 집약적이다.
        = 80%가 사람에 대한 인력비용이 들어간다. 무조건.
        = 모델링(분석, 설계)이 필요
        = Human과 Intangible에 대한 가시성을 확보하기 위해 아키텍트가 필요
    - Agile
        = 개발자적인 Agile != Business적인 Agile
        = 애자일한 개발환경을 수행하기 위해서 천공수가 아닌 개발자가 필요
        = 높은 수준급의 개발자 역량 필요, 흔한 말로 고수가 필요하다.
        = 애자일 프로세스의 가장 중요한 Key
            1. Scope : 프로젝트에 문제가 생기면 조정가능한 것은 Scope 밖에 없다.
            2. Time/Cost
            3. Quality : 애자일하게 되면 퀄리티를 유지하면서 개발을 할 수 있...
    - 산업의 발전 : R&D -> Engineering -> Manufacturing
    - 소프트웨어 아키텍쳐
        = 아키텍처는 비전문가 고객이 쉽게 이해해서, 가슴으로 받아들일 수 있도록 설명하는 것이 가장 중요하다.
        = 아키텍쳐 평가 Architecture Evaluation
    - 미국에서 잘나가는 소프트웨어 업체에서 진행하는 소프트웨어 엔지니어링 기법을 따라가면 된다.
    - 우리나라 개발자가 잘되기 위해서는 영어공부부터...

    - 현재 수준의 내가, 어떻게 할 수 있는 수준은 아니구나....
    - Software Engineering

        = 소프트웨어공학 : 소프트웨어의 위기 해결



  소프트웨어 공학자가 바라보는 우리나라의 소프트웨어 업계에 대한 비판적인 시선을 접해볼 수 있는 기회였다. 대학교 다닐 때 '소프트웨어 공학'을 배웠다. '소프트웨어의 위기'가 도래하는 상황이 오게된다. 사람들이 가내수공업식으로 만들어내는 소프트웨어의 생산성이 수요를 감당하지 못하는 상황이 오게 되는데, 이를 해결하기 위해 공학적인 접근과 해법으로 해결해보려는 것이었다.

소프트웨어 위기의 원인은 전반적인 소프트웨어 프로세스의 복잡성과 소프트웨어 공학이 전문분야로서 상대적으로 미성숙한점에 관련되어 있다.

  • 소프트웨어 규모의 대규모화, 복잡화에 따른 개발비용 증대
  • 하드웨어 비용에 대한 소프트웨어 가격 상승폭 증가
  • 유지보수의 어려움과 개발적체 현상 발생
  • 프로젝트 개발 및 소요예산 에측의 어려움
  • 신기술에 대한 교육 및 훈련의 부족

출처 : 위키피디아 : 소프트웨어의 위기 

    개발자들은 발표자와 다른 생각을 가지고 있는 이들이 많았다. 이것은 아마 학문적인 입장에서 접근한 상황과 실무적인 입장에서 접근한 상황의 차이가 만들어낸 상황이라고 생각된다. 아키텍트보다 컨설턴트적인 입장에서 하는 이야기였다는 생각을 하게 되었다. 전에 KIPA에서 알바를 할때 'CMMI' 인증을 한 국내기업들에 대한 관리를 지원했던 적이 있었는데, 등록한 대,중,소기업이 꽤 많았었는데 정작 그들 기업은 그 수준에 미치지 못한다는 생각을 가지고 있다. 

  개발자들도 비즈니스적인 부분에 대한 관심과 이해를 가져야한다는 의견에는 공감한다.


3. 티타늄을 활용한 스마트폰 앱 개발
    - 발표자 : 방현우

    - 모바일 애플리케이션 개발방법
        1. 네이티브 앱
            = 해당 운영체제에 종속적인 애플리케이션
        2. 웹앱
            = 모바일 디바이스에 최적화되고 인터렉션이 많은 사이트
        3. 하이브리드 앱
            = 네이티브앱+웹앱의 장점을 활용한 것
            = 개발방식 : iPhone/Android 앱 개발자 + 모바일웹 개발자 협업 형태로 개발
    - 다른 하이브리드 플랫폼과의 차이점

        = 개발확장성

     - 생각 정리 :

        = 티타늄은 멀티플랫폼 개발 도구...랄까?
        = One source multi use.
하나의 소스를 개발하여 이 소스를 다양한 플랫폼에 맞춰 앱으로 개발할 수 있다.



  4. 자바 웹 개발자의 학습 로드맵
    - 발표자 : 박재성

    - 내가 기대하게 된 이유 : 나도 누군가에게 알려줘야하는 때가 오고 있어.
    - 미리미리 학습을 해두면 좋지.
    - 따라해보기
    - 기술의 홍수
    - 지속가능한 개발자
    - 로드맵

    - 시간적 여유가 있다 / 시간적 여유가 없다. -> 일단 취업이 중요하다.
    - 단기 속성 : 취업이 빠른 2012년
        = 이클립스 -> 자바 -> JSP/Servlet -> Spring + iBatis(or myBatis)
        = 취업성공 후 쌩깐다.
    - 장기 과정 : Step by Step
        1. 통합개발도구(IDE) : ****
            -> 앞과 뒤에 알아야 하는게 많다. 방법론, 개발기술, 커뮤니케이션, 도구
        2. 자바(Java, Language) : *****
            -> 근간, 기본, 기초를 너무 소홀히 하지 않는 것이 중요하다.
        3. JSP/Servlet : *****
            -> 중요도 : JSP < Servlet
            -> 데이터베이스 : **** or ***
        4. 빌드도구(Ant, Maven) : ***
            -> 나는 개인적으로는 중요하다고 생각한다.
        5. 버전관리도구(VCM, Subversion, Git) : ****
            -> 버전관리를 안하는 개발은 '하드코어'로 하는 디아블로다! 
        6. 테스트 주도 개발(TDD)과 리팩토링 : ****
            -> 잘 안되고 어려운 프로젝트
            -> 경력자, 앞단에서 리딩하는 TDD와 개발자가 성장해가면서 겪게되는 TDD는 다르다.
            -> 테스트 과정이 복잡하고 어려우면 소스수정을 하려고 하지 않는다.
            -> 빠른 피드백을 통해서 코드가 개선되는 것에 대한 희열. 초반부터 습관화 시켜야한다.
            -> 테스트 주도개발 방법론이 실패하는 이유는 그것을 익히고 습관화하는데 시간이 많이 걸리기 때문이다.
            -> UI없는 예제, 데이터베이스 없는 예제를 통해서 익혀라.
            -> TDD를 통해서 객체지향을 익힌다.
            -> UI, DB가 얽히게 되면 절차적인 프로그래밍이 된다.
            -> ** OOP의 개념을 잡아라
        7. 프론트엔드(HTML & CSS) : **
        8. JavaScript : ****
            -> JavaScript의 기본 개념을 이해해라.
            -> 자바스크립트에 대한 기본적인 이해
        9. Database 처리:
            -> 처음에 개발할 때는 Model1 방식으로 웹 개발 : 원래 해보고 그것이 가지는 장단점을 깨달아라.
            -> 프레임워크를 사용하고 기존의 방식을 뛰어넘음으로 해서 자신이 하고 있는 일에 대한 '왜Why?'를 알지 못하게 된다.
        10. OOP, Design Pattern : ***
            -> 자바코드를 더 풍부하게
            -> 쉽게 따라올 수 없는 영역, 다른 사람과 차이를 가지게 되는 부분이다.
            -> 피부로 느끼고 깨닫는 것이 중요하다. 그 때서야 시야가 넓어진다.
        11. DI(Dependency Injection) : ***
            -> 프레임워크에 대한 이해
            -> 기초가 잡혀 있어야 해.
        12. Callback Interface, Class 개념 이해 : *****
            -> 중복을 리팩토링을 통해서 해소하면서 깨닫게 되는거지
            -> 추상화에 돌입하게 된달까?
        13. RDBM, ORM : ****
            -> ORM : 학습비용이 높다. 무지 높다.
                => 솔루션, 자체 서비스 개발
                => 테이블 정규화가 자연스럽게 된다.
                => 생산성 향상이 크다.
            -> RDBM : 학습비용이 적고, 빠른 결과를 얻을 수 있다.
            -> 그러고보니 이번 프로젝트에서는 DB에 의존적인 도메인 설계를 했어.

    - 인프라 구축 및 교육
        -> 이에 대해서 관심가지고 있는 많은 사람들이 있다.
        -> 하고 싶은 일을 위해 용단을 내리신 자바지기님 멋쟁이!!


    이번 자바지기님의 발표를 들으며, '자바 개발계의 애정남'의 느낌을 받았다. 애매한 자바 초보 개발자들이 습득해야하는 기술들에 대해서 정해주는 감사한 강의였다. 지금까지는 누군가에게 모르는 것을 물으며 배워왔다. 모르는 것이 있으면 찾아보기도 하고 찾다가 없으면 물어보고 답을 얻어왔다. 이쪽에서 일한지 만 2년을 넘기고 있는 지금 내 후임으로 누군가가 들어왔을 때 그들에게 무엇인가를 알려줘야할텐데 어떻게 알려주는게 좋을까 생각하고 있었는데 그것을 정리할 수 있는 좋은 기회였다.

  얼마 전에 교보문고에 가서 개발서적을 둘러보다가 Java 언어 쪽에서 어떤 책을 읽을까 고민하는 대학생의 모습을 봤을 때, '나는 자바개발자인데, 저런 학생들에게 '이렇게 공부하면 돼.'라고 명확하게 말해줄 수 있을까?' 라는 생각을 떠올렸다. 그 때 너구리님 블로그에 올라왔던 글을 찾아봤다.

  참고 사이트 :
   - 권남 : http://kwon37xi.egloos.com/3666564
   - 너구리님 '여름으로 가는 문' : http://blog.doortts.com/93 '그림으로 보는 자바 학습 로드맵'

  모든 개발자가 같은 길을 걸어가지는 않는다. 그러나 시작하면서 홀로서기를 할 수 있는 준비를 할 수 있는 길이 있다면 큰 도움이 된다. 최근 대외활동을 하면서(난 관찰자다!! 개발자들의 모습을 지켜보고 있다.) 나름 많은 개발자들의 모습을 보면서 느낀 부분이다.

  자바 웹 개발자가 걸어야하는 길은 멀고도 멀다.

  개발을 위한 환경구축을 할 수 있는 능력(소프트웨어 아키텍트가 되기 위해 갖춰야하는 것 중 하나라 생각한다), 서버 프로그래밍, 프론트엔드 개발, 기획자와 PM과 싸울 수 있는 전투력(그들이 이해할 수 있는 표현으로 설명할 수 있는 능력, 커뮤니케이션), 자신의 생각을 구현하여 상품화할 수 있는 실천력 등 다양한 능력을 필요로 한다. 

이제는 '브로그래머(Brogrammer : 외톨이형 아닌 돈 많고 즐길 줄 아는 프로그래머)' 읭?!

Quora.com - How does a programmer become a brogrammer?

  이제 프로그래머도 내적으로 외적으로 적극적으로 왕성하게 활동해야하는 시대가 되었다. 자신의 의견을 피력하고 자신을 사람들에게 드러내야 하는 시대가 와버린 것이다. 하아... 일단 뱃살부터 줄여야지.



   


  Adobe 제품을 쓰지 않는다. 브라우징을 하는 과정에서 필요한 Flash Player를 설치한 것 이외에는 쓰지 않는다. Adobe의 웹관련 솔루션들은 이제 끝물이 아닐까? HTML5가 안착하게 되면 더욱 더 그 입지가 좁아지게 될 것이라 생각한다. 동의하지 않습니다. 죄송합니다.

  이것이 나의 세미나 참가 하면 갖추는 기본 셋팅(노트북, 노트, 펜, 음료)이 되었다. 맥북의 사용시간이 긴 편이라 들고다닌다. 가끔 낙서를 하기 위한 용도로 노트도 펼쳤다. 스마트폰의 핫스팟 기능을 통해서 인터넷 연결을 하는 편이었는데 이번 스마트폰(LGT Optimus Q2)은 데이터 통신이 안정적이지 않아서 애초에 무선인터넷을 끄고 사용한다.

 

  휘몰아치던 눈이 그치고 언제 그랬냐는 듯이 햇살이 쨍하게 내려쬔다.
  아키텍처(+아키텍트)에 대한 이야기를 들으며 남긴 낙서. SW 아키텍트를 통과점으로 생각하고 있는 내게 여러가지 생각을 갖게 만드는 발표가 있었다. ROI에 중점을 둔 아키텍트와 아키텍처 관련 내용들이 조금 혼란을 야기했다. 이 발표는 정책결정권자나 컨설턴트들이 듣기에 더 적합하지 않았나 하는 생각이 들었다. 아직은 코더에 가까운 위치에 있는 나로서는, 관심을 가지고 있는 개발기법들에 대해서 무익하다는 투의 발표는 조금 거북스러운 멶이 많았다.

  컨설턴트 <-> PM <-> 아키텍트 <-> 개발자

서로의 입장과 생각이 다르다는 것은 확실히 알았다.



뒷풀이는 순대수육!!

이번 '7차 공감세미나'에서 중요한 것은 따라하기
  이번 공감세미나를 들으면서 떠오른 것은 '따라하기' 였다. 새롭게 일을 시작하는 새내기가 가장 빠르게 일을 익힐 수 있는 방법은 '따라하기'다. 고수들이 어떻게 하는지 알아내서 그것을 따라하면서 자신에게 맞는 방법을 찾아내는 것이 가장 효과적인 학습방법이라고 생각한다.

  전자정부 표준프레임워크는 컴퍼넌트 예제를 추가하여 동작하는 원리를 쉽게 익힐 수 있다.

  소프트웨어 공학자는 '미국'의 SW기법들을 따라하라고 했다. 

  자바지기님은 자신이 익혔던 학습로드맵을 보여주시며 따라해보라고 했다.

  고수들이 나와서 자신들의 이야기를 해주는 자리가 있다면, 빠짐없이 참가해서 그들이 하는 것을 보고 듣고 느끼고 뜯고 맛보고 즐기면 되지 않을까? 아직 내가 가야하는 길은 멀고도 멀었구나 생각하게 된다. 

  나는 앞으로도 당분간은 지켜보는 자리를 지켜야겠다.



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


이번 JCO보다는 나은 것 같아.
허니몬의 IT 이야기/프로그래머, '코드 엔지니어'
  2월 29일, 긴 연휴 앞서 오랜만에 표준프레임워크와 관련된 세미나에 참석했다. 

""  전자정부 표준프레임워크 세미나의 트레이드마크가 되어버린 샌드위치. 7시쯤 되면 슬슬 배가 고파오기 때문에 시기적절하게 내놓는 이 샌드위치가 이리 맛있을 수가 없다. 2시간 정도의 세미나를 버틸만한 식량이라고 할까나? 예전에는 세미나실 안에서 먹도록 했었는데, 지금은 옆에 있는 휴게실에서 먹고 들어가도록 하고 있었다. 세미나실에서 쩝쩝거리면서 먹기도 거시기 했는데, 별도로 먹을 공간을 마련해준 건 감사하다. 
  조금 아쉬운 점이라면, 흡연하시는 분들이 지하세미나실 입구에서 담배를 피시기에, 바람을 타고 담배연기가 세미나실로 흘러들어오는 것은 여전히 불편한 점이다. 담배를 피는 것을 뭐라고 할 수는 없겠지만, 담배를 피지 않는 사람들을 위해서 조금 더 멀리가서 담배를 피워주셨으면 좋겠다. 
""  연휴 앞이라서 신청자들에 비해서 많은 불참자가 있지 않을까 생각했던 것과는 달리, 많은 사람들이 참석했다. 나야 세미나 참석하는 걸 좋아하니까 그렇다치고, 다른 사람들은 어떤 생각으로 이 세미나에 오는 걸까나? 이번 세미나의 주제는 최근 많은 이슈를 불러일으키고 있는 '모바일Mobil 표준프레임워크'였다. egov.js 랄까? ㅡ_-)? jQuery 모바일 프레임워크를 '한국형(Korean style)'으로 수정하고 '한글화 가이드'를 제공해준다. 잘다듬어진 '한글 가이드'를 보는 느낌이었다. 공공기관쪽에서 재사용성, 코드중복 등의 문제를 해결하기 위해서 국내 대형SI 3사가 컨소시엄을 이루어 발전시키고 있는 '전자정부 표준프레임워크'를 사용하는 프로젝트가 많은지는 아직 모르겠다. 내가 저쪽 바닥으로 가서 해야하는 일을 찾다보면 소식을 접할 수 있으려나?


  이번 정권에서는 공공기관의 전산관련 비용이 절감되어서리 여러가지 SI공공사업이 감축되었다는 이야기가 들려온다. 4대강에 다 쏟아부었다는 이야기만 가득 들려오고.

  이것이 2MB Get out 깔때기....


  이번 발표에서도 모바일 표준프레임워크를 적용한 공공기관 프로젝트 사례가 나왔다. 모바일 관련 붐이 일어났을 때, 공공기관에서도 그 붐에 휩쓸려 쓰잘데기 없는 모바일 앱(각기다른 UI와 산정가를 가지고 소모적으로 생산된)들이 쏟아져나오고 사회적으로 많은 물의를 일으켰었다. 그러는 중에 모바일 환경은 크게 안드로이드, iOS, 윈도우즈폰 등으로 모바일 플랫폼이 다양화되면서 앱제작비용이 증가하게된다. 이를 조금 절감할 수 있는 방법으로 '하이브리드앱Hybrid App'을 추구하게 되었다.
  모바일UI 관련한 부분에서 센차터치(http://www.sencha.com/)와 jQuery Mobile(http://jquerymobile.com/) 두 종류를 따져보다가 오픈소스에 라이센스 문제가 없는 jQuery mobile 쪽으로 선택했다고 한다.
""


진행을 담당하시는 분의 목소리가 참 좋으시더군요.
... 사람 이름을 제대로 못애우는 '사람이름 못외워병'에 걸려있어서...
죄송합니다. (_ _); 그동안 메일도 몇번 주시고 그랬었는데...


""  미녀개발자(!?)의 발표였다.
  전자정부 표준프레임워크 개발환경에서 손쉽게 모바일 프로젝트를 생성하고, jQuery 를 이용하여 html이 랜더링되고 손쉽게 화면을 구성하는 방법을 설명해주셨다. 발표장면을 보면서, '전자정부 프레임워크는 참 손쉽게 프로젝트를 만들수가 있어'라는 생각을 품게 되었다. 조금 아쉬운 점이 있다면 윈도우 환경에서만 사용할 수 있다는 것이랄까?
  요즘 맥북을 사용하는 개발자들이 늘어나고 있는 상황(뭐, 대부분의 공공기관 SI프로젝트에서는 개인정보 보호라는 명목하에 각종 보안프로그램을 설치해야 개발이 가능하니까, 윈도우 환경을 벗어날 수 없긴 하겠다.

""

  마침 세미나에 같은 교육기관 동문이신 분을 만나서 세미나가 끝나고, 무교동 등갈비골목으로 가서 등갈비를 안주 삼아 소주를 즐겼다. 그 분도 정규직 생활을 청산하고 프리랜서 활동을 시작하신 참이었다. 2년정도의 짧은 기간동안 정규직으로 근무하시면서 참 많은 고생을 하신 분이었다. 하지만 개발에 대한 열정을 품으시고 세미나와 컨퍼런스에 꾸준히 참석하시는 모습이 보기좋은 멋진 분이기도 하다.

""

나도 올해로 이쪽 바닥에 뛰어든지 횟수로 3년차가 되어가고 있다. 이제 조금이나마 이바닥의 생리가 보이고, '이 바닥이 다 그래.'라고 말할 수 있는 날이 다가오고 있다.... 읭? 그건 여전히 건방진 모습일지 모르겠지만, 그냥 그러려니 하자.


아래는 발표내용 정리.



장소 : 청계광장 정보화진흥원

표준프레임워크 오픈커뮤니티 18차 기술세미나

주제 : 전자정부 모바일 표준프레임워크 2.0 제대로 활용하기

부제 : 한국형 커스터마이징 jQuery Mobile 설명

발표자 : SK C&C 김상욱 부장


전자정부 프레임워크 모바일포탈 : http://m.egovframe.go.kr/

가이드 : http://m.egovframe.go.kr/mguide/


발표하시는 분께서, 모바일 표준프레임워크를 사용한 경험이 있는 개발자를 찾았지만 2명 정도가 손을 들었을 뿐이다.

  150여명이 넘는 개발자가 참석한 자리에서 전자정부 표준프레임워크를 기반으로 해서 개발을 한 사람이 찾아오지 않는 기술세미나라... 아직 표준프레임워크가 가야할 길이 먼 것 같다.


** 모바일 표준프레임워크는 '모바일 웹'이다.


1. 모바일 표준프레임워크는 무엇인가?

모바일 서비스 제공을 위한, 사용자 경험지원 기능, 모바일 공통 컴포넌트(30여개) 등을 추가적으로 구현한 프레임워크


2. 모바일 서비스 : 모바일웹

모바일 웹, 모바일 앱.

1강 3중 구도(강: 안드로이드, 중 : 윈도우폰, RIM, iOS)

모바일 플랫폼의 파편화 : 네이티브 앱으로 개발하게 될 경우 플랫폼별 개발비용이 들지.


프론트엔드 개발이 웹으로 옮겨가고 있다. 이번 삽질이 그냥 삽질로 끝나지 않기를 바라며...

재사용성, 재활용성, 중복투자 - 무엇보다는 비용이다.


행정안전부 고시 '제 2010-40호'

- 최소 3종 이상 웹 브라우저에서 동등한 서비스 제공

- 정부에서 주관하는 웹표준, HTML4, CSS2

- 접속하는 유저의 접속환경을 획득하여 분기처리라...

- 네이티브 앱에서 구현가능한 것과 웹에서 가능한 것의 분명한 구분이 필요하다.



전자정부프레임워크는 시장에서 시작성과 안정성을 인정받았을까?

그 위에 모바일 표준 프레임워크를 얹는다.


Cross Platform

Cross browsers

HTML5 + CSS3 + JavaScript


모바일 호환성에 대한 검증

Look & Feel 느낌이나 보여지는 것이 그러해야한다.


자바스크립트는 컴포넌트

인터프리팅하여 브라우저에서 내려받아서 렌더링 하고 보여준다.

디버깅이 용이치 않아?


스프링MVC가 가지고 있는 비즈니스 로직을 그대로 가지고 있다?

그렇게 해서 재사용성을 높였다?


토비의 스프링을 다시 공부하면서 

전자정부 프레임워크도 다시한번 봐야겠구나.


Best Practice 제공

- 100여 개의 프로젝트에 대한 고민을 하지 않아도 된다.

- 이번 프로젝트에서 전자정부 프레임워크를 썼다면 어땠을까나? ㅡ_-)?


16개 컴포넌트를 제공해준다고?

Touch Optimization


전자정부 프레임워크 : 2차가공, 재가공 가능, MIT, 아파치

라이센스 : 전자정부 프레임워크에 맞춰서 jQuery mobile을 지역화했다.

실제 기기에서 실행해봐라


제한된 사용환경을 고려하여 간결하고 가볍게 개발하라.

<table> 쓰지 말고



(모바일)표준프레임워크의 기대 효과는 무엇인가~~~

이게 가장 중심이 되지 않을까?


하이브리드앱 표준프레임워크?

웹뷰 애플리케이션, 브릿지 프레임워크, 모바일웹 프레임워크


자원은 재활용하고 중복개발하지 않는다.


-----------------------

전자정부프레임워크는 개발환경을 잘 제공해주는 덕분에 귀찮아.


기기별 크기와 해상도가 다름

처리방법

- 대부분 CSS로 처리

- 전체 널비를 비율로 각 부분별로 나누어 처리


CSS3

Vendor prefix

Chrome, Safari : -webkie-

firefox : -moz-

Opera : -o-


터치 기반의 이벤트 처리와 마우스 이벤트 처리의 구분이 필요함

- 터치 이벤트, 스크롤 이벤트만 존재함.


만능 자바스크립트~~


자바스크립트 하나만 잘해도 요즘은 먹고살만한 세상이 되었다. 거기에 html5를 잘하면 좋고, css3도 다룰 줄 알면 훌륭하다. 한마디로 다 잘해야하는 거다. 읭?


------------------------


모바일 전자정부프레임워크 이슈리스트

- Performance

- JavaScript error

= 에러 당시에는 디버깅을 하여 배포 가이드

= 업그레이드 하면서 처리

- 업그레이드에 따른 스펙변경

기기변경에 따른 업그레이드

= pushstate를 지원하는 history.js 를 import

- 연속된 Ajax에 의한 비정상적인 화면 출력



모바일 서비스를 적용할 때는~

1. performance 에 신경

2. 스크립트, css를 조합하여 디버깅

3. 브라우저 지원스펙에 대해서 민감해야 한다.

4. 직접 고칠 수 없다면 다른 대안을 마련해야한다.


1 ··· 4 5 6 7 8 9 10 ··· 20
블로그 이미지

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

허니몬