'Spring'에 해당되는 글 3건

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

20120519 KSUB 세미나 Part 1.

0. KSUG 큰일꾼 고종봉님의 KSUG 소개



1. 스프링 처음 시작하기

  • 발표자 : 고종봉
    • 스프링은 너무 방대하고 어렵다. 쉽게 이해하고 배울 수 있는 방법은 없나요?
  • 스프링이란 무엇인가?
    • 참고 URL : http://static.springsource.org/spring/docs/3.0.x/reference/html/

    • 엔터프라이즈급 애플리케이션을 만들기 위한 경량화된 솔루션
      • 엔터프라이즈에서 필요한 영역을 전체적으로 다루고 있다.
      • 성능상으로 무거운 것을 가볍게 바꿨…!!
      • 자바 애플리케이션을 개발하기 위해 필요한 인프라스트럭쳐를 종합적으로 제공해, 개발자로 하여금 애플리케이션 개발에 집중할 수 있게 도와준다.
      • 스프링은 POJO를 기반으로 애플리케이션을 개발할 수 있게 하여, 엔터프라이즈 서비스를 비간섭적(non-invasively)
    • 스프링의 3대 핵심기술
      • Plain Object
      • DI(Dependency Injection) : 두 객체의 결합을 줄이기 위해 인터페이스로 선언하고, 프레임워크에 의해 주입되는 형태
      • AOP :
      • Portable service Abstractions(추상화)
    • 스프링의 모듈구성

    • 변경 가능 영역
      • 폼 컨트롤러
      • Multipart 리졸버
      • 도메인 모델 동적 바인딩
      • JSP, Velocity, SLT, PDF, 엑셀 뷰 인티그레이션
    • Spring reference
    • OutSider님의 Spring Framework 번역 : http://blog.outsider.ne.kr/tag/spring_reference_documentation

2. 스프링 실무적용 사례


  • 발표자 : 최영목(넥스트리 소프트)
  • 스프링을 실무에 적용하면서 늦어졌다.
    • 스프링 모듈
      • 아키텍츠 구현을 위한 정보들(하드웨어 스펙, 사양, 자원) 수집 후 이에 적합한 솔루션을 선택
      • 컨설턴트를 하다보면, 그림을 가져다 쓰면 퀄리티가 떨어진다?
      • 왜 스프링을 쓸까?
        • 프로젝트에서 쓸 수밖에 없는 이유 : 리모팅(원격지 처리) - EJB, Spring Remote Call
        • 다양한 요구사항을 포함하는 것들을 살펴보다보니 공통적으로 도출되는 솔루션이 나타나기 시작
      • Component Biuild
        • 고객 요구사항
        • 의존성 관리, 비침투적임(기본적인)
        • 컨텍스트 생성
        • 모든 사람들이 스프링을 잘 쓰지는 않는다.
        • @annotation 다세요.
        • xml은 우리가 입력할게요. applicationContext.xml -> component-scan 설정
        • 테스트와 관련된 내용은 우리가 해줄게요.
      • DataAccess : JPA <-> iBatis, MyBatis
        • 도메인의 규모가 다르군…
        • Transaction 관리 -> 스프링!!
      • MVC
      • Spring Test
        • Spring에서 제공하는 Junit Runner를 사용가능하다. DBUnit 테스트 연결, JPA 테스트
        • 통합테스트를 위한
    • 모듈별 실무적용 사례
      • 프로젝트 내에 개발표준
      • 내가 잘하는 분야는… 뭐냐? ㅡ_-)? 삽질?
      • 아키텍트를 설계할 때 개발자는 프레임워크에 대해서 알 필요가 없을 정도로 만든다.
    • 프로젝트 투입 후 애타게 찾는 것.
    • 프로젝트를 투입하기 위해 고려해야하는 것은 무엇일까? 고객의 요구사항, 이를 수용할 수 있는

3. Spring Web-MVC 파헤쳐보자

  • 양완수
  • DispatcherServlet : Proto object?
    • Spring MVC를 사용하는 이유는?
      • 사용하지 않을 이유가 없다? 사용하지 않을 이유도 있을 수 있다.
      • 컨트롤러가 안나와요, view가 안나와요, class not found 가 떠요.
      • 오류와의 싸움! Debugging!!
    • 파헤쳐 보려면 : handler, View Resolver
        • 개발자스런 생각. 상속, 주입… 딸아이가 자신의 습관(엄지와 검지발가락 사이를 비비는… 습관을 따라한다.)
    • Dispatcher가 생성되는 부분
      • BeanMapper : 일반적으로 건드리지 않는 클래스다.
      • Init :
        • HttpServletBean
        • Bean의 Property처럼 init-param을 사용하여 필요한 속성들을 DI받을 수 있게 해준다.
        • PropertyEditor, BeanWrapper
        • WebApplicationContext : eGovment Framework 설명
        • onRefresh() template method : 참고 URL : https://jira.springsource.org/browse/SPR–3297
        • Multipart Resolver
        • ThemeResolver : FixedThemeResolver(default)
        • LocaleResolver
        • HandlerMapping
        • HandlerAdapter
        • doDispatch
        • doService 에서 시작

4. 스프링 3.1 요약정리!

  • 박용권
  • Spring One Session 정리
  • 스프링 3.1, 3.2 는 3.0을 강화하고 개념을 녹여내는 쪽으로 하게 될 것이다.
  • github : https://github.com/arawn/ksug–2012-spring–31-summary
  • 스프링 3.1
    • 빈 정의를 위한 환경 프로파일 Environment profile for bean definiation
    • Java-based application configuration : 자바기반 애플리케이션 설정
      • @Configuration
      • @ComponentScan
      • @Bean
      • @Enable
        • @EnableTransactionManagement
        • @EnableWebMvc
    • Cache abstraction & declarative caching
    • 3.2에서는 Java 7에 대한 지원을 강화시킨다.
    • Spring @MVC 3.1 : key
    • Java config
      • XML에서 자유로워졌다.
        • Java-Based : WebApplicationContext
    • Data Binding & Path Variable
  • 참고자료
  • Source
    • Configuration
    • ImportResource({})
    • PropertyResource({})
    • ApplicationContext.class 를 구현하여 과거의 applicationContext.xml을 대체할 수 있게 되었다….!!
    • RequestMapping에 대한 상세한 대응이 가능하다. -> 샘플… MobileMapping
  • Router -> Spring Router
    • HandlerMapping -> Abstract class. : 과거에 비해서 편리하게 사용가능하다.
    • DispatchServlet 은 크게 변하지 않았다.

5. 개발자 토론(Free talking)

  • Software
  • Enginee 이라는 단어가 붙은 소프트웨어의 역할? 정의 ?
    • Framework는 뭔가?
    • 변경되는 것과 변경되지 않는 것
    • 일반적인 것과 일반적이지 않은 것
    • 어떻게 시스템화 할 것인가? SOA - 단일서비스화
    • 정의 하기가 애매하다… ->
  • 야근하는 개발자
    • 난 일찍 퇴근한다.
      • 자신이 할 수 있는 분량을 정확하게 상사에게 전달한다.
      • 갑이 불안하기 때문에 그렇다. -> 안도감을 심어준다면 된다.
    • 난 칼퇴근하지 않는다.
      • zeide 님 : 칼퇴가 뭐에요? 이게 뭐야?
      • 허니몬 님 : zXXXX 님이 칼퇴하는 모습을 보지 못했…던가?
  • m2e와 WTP 궁합 : 필요한 플러그인 설치하면 되요~
  • 기술 선택의 근거와 설득은 어떻게 하나요?
    • 요구사항을 만족하는가? -> 고객이 원하는 요구사항을 모두 충족시킬 수 있는가?
      • 대형 프로젝트 레퍼런스
    • 절차가 원칙적으로 진행할 수 있는가?
      • 선택을 고객에게 하도록 한다.
      • 고객 설득
      • 스터디 비용을 최소한으로 할 수 있도록 제공해야한다.
      • 나와 상대방의 차이.
      • 팀원들을 하나둘씩 꼬드겨서 함께해라.


  개발자들이 강남에 출현했다. +_+) 검정색 인케이스 백팩으로 무장한 개발자들의 무리가 몰려간다.

  발표하신 분들 수고하셨습니다. ^^


  개발자들은 주말에도 끊임없이 자기계발을 위한 노력을 하고 있다. IT 관련한 기술이 빠르게 변모하고, 이런 변화의 흐름을 즐기기 위해서는 그것을 배우기 위해 꾸준한 노력을 즐길 수 있어야 한다. 그런 의미에서 본다면, 나는 그런 변화의 흐름을 즐기는 노력을 제대로 못하고 있다. 자전거 타는 재미에 빠져서는 매일 출퇴근시에 자전거를 타려고만 하고 있으니... 이런 습관적인 자기비하!!

  '오픈소스OpenSource의 시대'라고 한다. 프로젝트 속에서 고객의 요구사항과 기술적인 기능 제공을 위해 솔루션의 선택하는 것이 중요하다. 그리고 스프링 프레임워크는 이런 고객의 요구사항에 대한 해결책을 제시해줄 가능성을 내포하고 있다. 그래서 컨설턴트와 개발자들의 많은 관심과 사랑을 받고 있다. 하지만 아직도 어렵고 어렵게만 느껴지는 녀석이다. ^^; 익숙해지려면 많이 써보고... 시간 날 때마다 어떻게 돌아가는 지 삽질하듯 깊게깊게 파고 들어가는 노력이 필요하다.

  이번 발표에서는 Prezi(http://prezi.com/)를 사용한 발표가 두 개 있었다. 동적으로 움직이는 화면이 잠깐의 호기심은 일으킬 수도 있겠지만.. 시간이 지나면 산만함을 야기하는 느낌이다. @_@);;; 발표용으로는 그리 효과적이지는 않은 것 같다는 개인적인 생각을 가지고 있다. 아직은 고전적인 프리젠테이션이 좋다.


허니몬의 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업계에서도 그루비가 듬직하게 한 분야를 차지할 수 있지 않을까?

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

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

허니몬에 관한 보고서/허니몬의 물병편지
  • 윈도우 7 정품인증과 관련된 이야기, 내가 VirtualBox에 설치한 것은 윈도우 7 beta 버전. 오늘은 V3lite를 설치했다. ㅡ_-)> 얼마전에는 JDK6을 설치했다.(한박자 느린 나는 윈도우7 에 흐름에 대해서 약간은 방관자적인 입장임.)2009-09-27 00:39:38
  • 흠… 스프링 프레임워크 3.0.0 RC1 출시라니…. OTL…. 난 봄싹 스터디 따라가기도 벅찬디… OTL… 오직 런런런!!(스프링,Spring, 봄싹, 오늘은 커피 마신 효과가 뒤늦게 나타난다.)2009-09-27 00:46:50
  • 이 책도 읽어봐야겠군요. ㅡ_-)> 어제 서점가서 읽을만한 책 몇개 적어왔는데…(me2book 꿈 희망 미래 그나저나 배고프다....)2009-09-27 00:57:36
    꿈 희망 미래
    꿈 희망 미래
  • 오늘 아침은 살며시 흐리구만요. 그래도 일요일은 즐겁게~!!(항상 머릿 속에서 즐거운 일들을 떠올리는 나는!! 몽상가!!)2009-09-27 07:59:15
  • 이클립스를 받으려다… ㅡ_-)> 카이스트의 ftp 서버가 현재 반응이 없어서 일본 서버에서 받고 있다. 카이스트 ftp 서버는 불안정해. 우분투도 기본 ftp 설정은 카이스트로 잡혀서 아무것도 모르는 시설 업데이트가 안되면, 우분투를 욕하며 설치하기를 몇번… OTL….(하지만 난 알게 되었어요!!! >ㅅ<) 서버를 바꿀 수 있음을)2009-09-27 08:18:48
  • 전산학의 기본이라할 수 있는 파일구조, 이산수학, 수치해석, 데이터베이스… 그것들을 익히고 있으면 프로그래밍을 익히는 속도는 확실히 빠르다. 이해가 빠르니까.(그게 전부라고는 생각하지 않는다. 프로그램을 만드는 것은 사람이기에... 사람을 먼저 알아야 한다고 생각한다.)2009-09-27 16:00:12
  • 미투는 제시카양의 가입으로 또 한번 술렁이겠군요. ^^ 저도 무한도전 가요제에서 '냉면'이후 제시카양에게 관심을 가지기 시작했습니다. ^^ ㅎㅎ(ㅡ_-);; 이제 제시카를 제시카양이라고 부를 수 있는 나이.... 낼모레 서른.)2009-09-27 16:18:35
  • 일요일은 이렇게 흘러가는군요. ㅡ_-);; 목요일까지는 입사일 결정될 때까지 대기상태로 지내야하는군요…. 잇힝!! 주중에 아버지 산소에 다녀오고, 입사해서 어찌해야할지 내 앞날을 꿈꿔봐야겠습니다. ㅡ_-)> 결국… 추석 전까지는 백수.(백수, 추석 전에 일을 시작하고 싶었는데. 크!!)2009-09-27 21:19:53
  • 호옹… 오늘이 구글 11주년이었군요. 편하게 잘 쓰고 있는 구글 ^^(google, 11주년, 구글답구나!?)2009-09-27 21:40:46
  • 흠… ㅡ_-)> IT 회사들의 회사내부 메일에서 내 블로그로 유입이 있다는 것은…. 전에 잡코리아에 올렸던 내 이력서 보고서 찾아오는건가… ㅡ_-)?(방문해주셔서 대단히 감사합니다. ^^ 그러고보니... 내일 면접이 하나 잡혔는데... ㅡ_-);; 가야되나...)2009-09-27 22:21:53
  • 결국은 면접제의 거절을 표명. 좌중해야지. 5년 후, 10년 후 어떤 모습일지를 상세하게 그려보는 명상의 시간을 가져야겠슴다.(5년 후, 10년 후, 지금 상상한 모습은 아니겠지만, 그와 비슷한 모습이 되려 노력해야지요. 5년 후, 난 ㅡ_-); 장가갈 수 있을까?)2009-09-27 22:50:58
  • 가을은 낭만의 계절!!! 창가로 들려오는 빗소리, 컴퓨터에서 흘러나오는 느슨한 느낌의 발라드. 긴밤을 가득 채운다.(낭만도 외로움도 결국은 내 마음 안에서 피어나는 감정들의 물결들. 그 물결의 흐름에 몸을 맡기고 감정에 충실하기.)2009-09-27 23:45:07
  • ㅡ_-);; 저녁으로 시큼한 깍두기 국물에 열무김치를 송송 잘라넣고 국수를 한가득 말아먹었는데… 다시 배고 고프다니…. OTL…(냉장고를 열어봐야하는건가!!??)2009-09-27 23:48:34
  • 저도 재빠르게 북마크 , Simple more simple!!! 그거슨 진리!!! 퐈이아!!(그러나 내 뱃속에서 들려오는 꼬로록 소리는 더욱 진리!!! 야식이 날 괴롭힌다.)2009-09-28 00:10:00

이 글은 허니몬님의 2009년 9월 27일에서 2009년 9월 28일까지의 미투데이 내용입니다.

1
블로그 이미지

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

허니몬