누가 봐도 감탄할 만한 한줄의 코드.


'Hello, world'


완벽한 코드를 향해 노력하는 프로그래머, 코드 디자이너가 되기 위해 노력하자.




바텐더
카테고리 만화 > 직업만화
지은이 Joh Araki(조 아라키) (학산문화사, 2006년)
상세보기


신의물방울.28
카테고리 만화 > 직업만화
지은이 TADASHI AGI (학산문화사, 2011년)
상세보기


'신의 글라스', '신의 물방울'을 보다가 뻘생각.


저작자 표시
Posted by 허니몬

  준비가 많이 부족한 상황에서 '모바일 사이트'를 구축하는 프로젝트에 투입된지 4개월 정도 되어간다. 

스프링(http://www.springsource.org/), iBatis, 스프링시큐리티(http://static.springsource.org/spring-security/site/index.html), 프리마커(http://freemarker.sourceforge.net/), jQuery(http://jquery.com/) mobile(http://jquerymobile.com/), 메이븐(http://maven.apache.org/), 허드슨(http://wiki.hudson-ci.org/dashboard.action) ... 등등의 다양한 프레임워크와 템플릿 엔진, UI 프레임워크들을 아우르며 사용할 수 있는 경험을 얻게 되었다.

  @_@) 경험이 많이 부족하다보니, 짧고 많은 일을 해야하는 프로젝트 안에서 제대로 이해하고 적용하는 것에 문제가 좀 많다. ^^; 이런 상황 속에서 작성한 프로그램 코드들을 보면 불필요하거나 중복되는 기능이 겹치는 경우가 종종 발생한다. 

어제 코드 다르고, 오늘 코드 다르고, 내일 코드가 다르다.

랄까? 그래도 조금씩 자바라는 프로그래밍 언어가 가지고 있는 특징들에 대해서 느껴가는(알아가는이 아니고!?) 단계에 들어섰다고 생각합니다. 그동안 얼마나 내가 프로그래머로서의 이해능력과 자각이 부족했는지 여실히 깨닫게 되는 경험을 얻고 있다. 


  이번 프로젝트에서는 3개의 회사가 함께 진행되고 있다. 이 프로젝트에서 제일 중요한 것 중 하나는 '협.업(Cowork)' 이다. 

  나는 SI 프로젝트 경험이 그리 많지가 않다. 이번 프로젝트에서 아쉬운 부분이 있다면, 3개의 회사간의 협력이 잘 이루어지고 있지 않다는 점이랄까? 7월에 들어서면서 개발에 한창 속도를 올려야하는 상황인데 불협화음과 함께, 여러가지 요소에서 지연되는 상황들이 발생하면서 프로젝트의 진행상황도 지연되고 있는 상황이 아닐까라고 짐작하고 있다. 프로젝트에 대한 경험이 부족한 내가 딱 '이래서 늦어'라고 말할 수는 없다. 


  요즘 '무한도전'에서 조정을 하고 있는데, 계속 보면서 느끼는 거지만, 지금 팀 내에서 내 모습과 '현재 조정을 하면서 민폐라고 스스로 느끼고 있는 정형돈'의 모습이 겹쳐지고 있다. 개발경험은 부족하고... 개인적인 노력도 부족한... 부족한게 많은 초보 개발자다. 배워야할 것도 많고 알아야할 것도 많고 익혀야할 것도 참 많다.

  서두르지 말고 차근차근 가자.


저작자 표시
Posted by 허니몬
책에는 많은 정보가 담겨있다.
그래서 많은 사람들이 정보를 얻기 위해 책을 읽는다.

하지만, 그 책에 있는 정보만으로는 할 수 없는, 얻을 수 없는 것들이 꽤 많다.
그것은 일을 다시 시작하고 모르는 것들을 배워가면서 눈에 보이기 시작한다.
Java를 이용한 서비스, 컨트롤러 단의 처리, 그것을 프리마커를 이용하여 화면에서 받고 스크립트를 이용하여 작동시키는 것들은 한 분야의 책만을 가지고 알 수는 없다. 물론 꽤 많은 책들이 기술과 관련한 정보를 전달하려고 노력하지만 여러가지 이유로 전달하는 데에 한계가 따른다. 그것을 인정하게되면 많은 것들이 눈에 들어오기 시작한다. 그리고 사람이 눈에 들어온다. 그 사람은 내가 필요로 하는 정보들을 이미 경험 속에 축적해두고 있다. 그 사람의 힘을 빌어 알게 되는 것들이 참 많다.

_IMG_0888
_IMG_0888 by redslmdr 저작자 표시비영리동일조건 변경허락



사람에게 잘하자.
일의 시작과 끝, 그리고 그 연장선에는 사람이 있다.
정보의 시작과 끝, 그리고 그 연장선에도 사람이 있다.

^^ 오늘 하루도 즐겁게 보냅시다!!  
저작자 표시
Posted by 허니몬


110525_egovFramework 세미나

  • 제목 : Dive into Maven
  • 장소 : 청계광장 정보화진흥원 지하1층 세미나실
  • 발표내용
    • 표준프레임워크 오픈커뮤니티를 통해서 프레임워크연구개발이 활성화되길 바란다.
    • Maven is ...
      • 프로젝트 관리(Project Management) 와 빌드 자동화(Build Automation)
      • 2002년, Apache Turbine 에서 비롯되었다.
      • Maven 도입이유
        • 라이브러리 관리의 문제점
          • commons.fileupload 1.0 버그 -> 1.1 해결
          • classpath : 같은 패키지 상에서는 제일 상단에 존재하는 패키지 부터 실행됨
        • 오픈소스를 사용하는 경우 의존성을 지니게 되는 라이브러리
        • 자유도(Ant 확장성이 뛰어남, Maven 정형화 되어 있음)
    • Maven Simple Project
      • project home : pom.xml
      • src/main/java
      • src/main/resource
      • src/test/java
      • src/test/resource
    • Maven vs Ant
      • Maven is formal convensions.
      • Ant isn't formal conventions.
      • Ant is procedural, Maven is declarative
      • Maven has a lifecycle(Ant를 잘 구성하면 lifecycle 구현이 가능하다)
    • Super POM(CoC)
      • 모든 프로젝트의 POM은 SUPER POM을 상속 받는다(All project POMs extends Super POM
    • Simple POM
    • POM.xml
      • POM 의 구조 설명
    • Library Search Path
      • Repository
        • Local repository
          • maven -> installation -> setting.xml
        • Remote repository
          • Repository with WebServer
          • Repository with Nexus
    • Repository
      • <repositories> ~~ </repositories>
      • snapshot 은 상속받지 않는 것으로 되어 있다.
    • Repository with WebServer
      • Maven은 인터넷이 안되면 쥐약
      • 인터넷이 안된다면, 자체적인 저장소를 생성하여 관리한다.
        • Local 저장소에서 복사하여 사용하는 방법
        • Webserver : Apache / document_root / 에 저장
        • apache 에 index를 볼 수 있도록 설정되어 있느냐? search가 안됨
    • Repository with Nexus
    • Nexus 관련 주의사항
      • 플러그인이 설치되지 않는 경우...
      • 넥서스를 이용하여 업로드한 경우
      • <pluginRepositories></pluginRepositories>를 선언해줘야한다.
      • maven_home/sonatype_work/nexus/storage 에 넣은 뒤에는 Nexus를 재기동 시켜줘야 한다.
    • Dependency Scope
      • 종류
        • compile(default)
        • provided : 컴파일과 유사하나 패키지에는 포함되지 않음
        • test
        • runtime
        • system
      • Specify dependency range
        • [,]
        • (,]
        • (,)
    • Transitive Scope
    • Conflict Resolution
      • Exclude Transitive scope
        • <exclusions> ~~ </exclusions>
    • Build LifeCycle
      • phases, goals, plugin
      • Lifecycle을 가지고 있는 장점 : 테스트를 돌릴 수 있다. TestCase를 작성해야 한다.
    • Developing java plugin for Maven
      • Maven Project 생성방법
      • Create Simple Mojo
    • Complie Configure
      • <plugin>
      • Maven plugin <source>, <target>
    • Skip Test
      • <configuration>
 <skipTest>
</configuration>
    • ProGuard
      • 역컴파일 방지기
      • Ddependency, plugin에 넣기
    • Site Reporting
    • PMD
      • plugin rulesets ㅇ르 정의해줘야 한다.
    • Maven Archetype
      • Maven을 이용하여 목적에 따라 Archetype들을 사용하여 지정할 수 있다.
      • 전자정부용 Archetype가 존재한다.
      • 초창기에 만들었는데 알려주지 않는 이유
      • 필요에 따라서 만들면 된다.
    • m2Eclipse
      • Maven projects를 만들고 첨가하는 경우
      • 의존성 저장 및 갱신
      • SCM 저장소로부터 maven Porject 추가
      • WTP에서 통합 -> WTP 쪽 Runtime 에서 오류가 발생, 톰캣 실행시 오류가 발생한다. 오류 가능성을 숙지하고 있을 것
      • 의존성 그래프를 프래픽적으로 추가
      • Maven 의 기능은 다양하다. 많이 써보고, 필요한 기능을 능숙하게 다루면 되겠지.
    • Maven 3.x new Feature
      • dependency 일 경우에는 프로젝트에만 영향을 미치지만...
      • dependency-management 를 구분해서 사용하라.
  • 결론 : 전자정부 프레임워크에는 Maven을 사용했다. 



최근 스프링 프레임워크를 기반으로 하는 프로젝트를 진행하게 되면서 메이븐Maven의 사용이 익숙해져가고 있다. <dependency> 를 추가하는 것만으로 관련한 라이브러리들이 주루룩 다운로드 되는 그 맛이란...

가까운 곳에서 이런 Maven에 대한 내용으로 발표가 있다고 해서 참가했다. 샌드위치 때문에 참가신청(?)을 한 사람들이 많았는가 보다. 160명분을 준비했는데 모두 소진되었다고 하는 걸 보니... 봐도 넓은 회의실을 꽉채우고 있었다. 냉방시설을 가동시킬 수 없어서 꽤나 답답하고 더웠다. 

발표는 한시간, Qn A 시간이 한시간 잡혀 있었지만, 발표내용 자체가 워낙 Maven에 대한 개괄적인 발표이다보니 딱히 무엇을 물어야할지 애매했다. 발표내용도 애매모호한 부분들이 많았다. 차라리, 전자정부 프레임워크를 적용한 프로젝트들에서 Maven과 관련되어 발생한 문제들의 예시와 해결방법을 30분 정도 추가해서 설명하는 건 어땠을까 하고 생각한다.
 
  전체적으로 많이 아쉬운 세미나였다.
  크게 개선되지는 않겠지....

  메이븐Maven에 대해 궁금하시다면
메이븐
카테고리 컴퓨터/IT > 프로그래밍/언어 > 웹프로그래밍 > 웹프로그래밍일반
지은이 박재성 (한빛미디어, 2011년)
상세보기
 이 책과
책의 저자가 운영하던 스터디 사이트 : http://www.javajigi.net/display/IDE/Maven
Maven Project 사이트 : http://maven.apache.org/
에서 필요한 정보들을 찾아보기 바란다.
저작자 표시
Posted by 허니몬

들여쓰기가 사라지고...

코드 형식 등이 뭉그러져서 div 태그 안에서 그냥 글이 되어버리는군요.

아 슬프다!! ㅡ_-);;
이걸 블로그에서 또 수정하기도 그렇고.... 

요즘에 공부하고 있는 건 스프링입니다. 거기에 JSP, HTML, JavaScript, CSS도 해야한다죠? 

공부하는 내용들을 머리에 입력시키느라 머리가 아프기는 하지만, 그래도 재미납니다용. +_+) 
저작자 표시
Posted by 허니몬
이전버튼 1 2 3 이전버튼