U E D R , A S I H C RSS

Spring/탐험스터디 (rev. 1.30)

Spring/탐험스터디

1. 스터디 소개

  • Spring Framework 3를 탐험해보자!
  • 스터디 시간 : 2011년 1월 7일부터 매주 금요일 7시. 그리고 필요하면 더 모임

3. 목표

  • Spring의 핵심 가치와 원리에 대한 이해

4. 주교재

  • 토비의 스프링 3
  • 1부는 예제를 점진적으로 개선해 나가도록 구성되어 있으므로 각각의 개선이 무엇을 개선시켜나가는 것인지 이해하는 것이 중요
  • Spring Framework 3 다루는 다른 교재 가능
  • 교재가 비싸고 매우 무거워 참여자들이 스터디에 활용할 수 있도록 ZeroPage 책장에 둘 토비의 스프링 3를 2권 주문함

5. 진행 방식

  • 세미나가 아니라 각자가 공부한 것을 바탕으로 공유하고 정답을 찾아나가는 스터디
  • 코치는 리더가 아니라 네비게이터의 역할
  • 스터디 모임에서는 각자 한 주간 학습하고 과제를 수행한 경험을 공유하고 궁금증을 해결

6. 규칙

  • 코치 참석 여부와 상관없이 스터디를 정시에 시작한다.
  • 스터디 대상이 매우 방대하므로 충분한 개인적인 학습과 과제 수행, 그리고 스터디 모임에서 많은 질문을 할 것
  • 인원이 충분하므로 제때 따라오지 않는 사람은 부담없이 버릴수도?!

7. 진행

7.1. 1월

7.1.1. 출석체크

1/7 1/14
이원희 O O
강성현 O O
김수경 O O
서민관 O O
영주 O O
서지혜 O O
강소현 O -
정의정 -

7.1.2. 7일

  • 7시 ~ 9시 30분 @ 6피
  • 킥오프
    • 리더 선정
    • 교재 소개
    • 진행 방식 결정
    • 들어가며
  • 피드백

7.1.3. 14일

  • 과제: SpringSource Tool Suite에서 Spring MVC Template 프로젝트 생성
  • 토익섬으로 간... 강소현...

7.1.3.1. 회고

7.1.3.1.2. 서민관
  • 14일에 한 것들
    1. 배운 것
      1.1. 전략 패턴 : 전략(알고리즘)의 분리를 한다는 의미. 언어에 따라 패턴을 적용하는 방법이 조금씩 다를 수도 있다. 책에서는 interface를 사용해서 전략을 분리하였는데, 이것은 자바에 어울리는 전략의 분리라고 한다.
      1.2. Runtime Injection : 다형성을 만들기 위해서 사용한 방법. 개인적으로 코딩할 때 다형성의 사용이 좀 부족하다고 느꼈는데, Runtime시에 오브젝트간의 관계를 맺게 하지 않고 그냥 클래스에 맞춘 코딩을 했기 때문인 것 같다. 앞으로 코딩을 하는데 머릿속에 넣어두고 자주 써 보는 것이 좋을 것이라 생각된다.
    2. 문제점
      2.1. Class.forName() 에러 : 해결 방법은 아래에 서술.
    3. MVC 프로젝트
      - HomeController.java의 home()에서 Welcome home!을 하고 return "home";을 하는데 프로젝트를 실행해보면 Hello world!가 나온다. 어떻게 된 것인가.
      - HomeController는 MVC 모델의 컨트롤러로 뷰에 모델을 바인딩하는 역할을 담당한다. home() 메소드 내부의 Welcome home!은 logger에 찍히는 문자열이기 때문에 실제로 실행시에 보이는 것은 아니다. HomeController가 하는 주된 역할은 return "home";을 함으로써 HomeController를 사용하는 쪽에서 home.jsp(뷰)를 찾을 수 있게 하는 것이다.
      - 결국 화면에 나타나는 것은 뷰인 home.jsp이므로 Hello world!는 이쪽에 들어있다.
  • 이후에 한 것들
    1. Class.forName() 에러 해결(p.59, 60의 예제 실행).
      1.1. 우선 MySQL을 받아서 설치한다.
      1.2. MySQL 실행 후 test 테이블 선택. 책의 예제대로 users를 만든다.
      1.3. 책의 소스를 그대로 쳤을 경우 Class.forName("com.mysql.jdbc.Driver"); 문장에서 에러가 나는데 인터넷에서 mysql-connector-java-X.X.X.jar 를 받아서 참조 라이브러리에 추가한다.
      1.4. Connection c = DriverManager.getConnection(...); 문장에서 에러가 나는데 문자열의 localhost/springbook 부분을 자신이 사용할 테이블의 이름으로 바꾸어 주어야 한다. localhost/test로 바꿔준다. 이후의 문자열 두 개는 각각 자신의 MySQL 계정 이름(기본값 root), MySQL 비밀번호를 적어주면 된다.
      1.5. 실행 -> 완료.
    2. 스프링 프레임워크 사용하기(p.99의 예제) *미해결*
      2.1. 우선 책에서 외부 라이브러리를 사용하고 있는데, STS에는 필요한 라이브러리가 들어있지 않은 것 같다. 이쪽 페이지(http://www.tutorials4u.net/spring-tutorial/spring_install.html)를 보고 라이브러리를 받아야 한다. 또는 maven을 사용할 경우 이쪽 페이지(http://mvnrepository.com/artifact/org.springframework/spring/2.5.6)를 보고 pom.xml 파일을 수정해주면 필요한 라이브러리를 받아준다. 개인적으로는 maven을 사용하는 쪽을 추천한다.
      2.2. 외부 라이브러리를 추가해주면 ApplicationContext 클래스가 들어있는 패키지를 import 할 수 있다. 그런데 AnnotationConfigApplicationContext 클래스와 관련된 패키지는 import 할 수 없었다. 그리고 @Configuration과 관련된 패키지도 import 할 수 있었지만 @Bean과 관련된 패키지는 import 할 수 없었다. -> ㅈㅈ......
7.1.3.1.3. 김수경
  • 지난주에 한 것
    1. Spring MVC Template Project 생성하여 실행해보려다 실패.
    2. 토비의 스프링 1.2까지 읽음.
  • 막혔던 것
    1. Spring Project를 생성하고 실행하는데 Tomcat 설치가 필요하여 플러그인 설치함.
    2. Spring Project를 생성하고 실행하는데 포트가 이미 사용중이라 되지 않음.
    3. 책 1장에서 Statement와 PreparedStatement를 봤는데 두 개의 차이점을 잘 모르겠다.
7.1.3.1.6. 이원희

95page framework에 대한 해설.
library와 framework의 차이점.


- Framework 제어의 역전 개념이 적용된 대표적인 기술
- Framework 와 library가 같은것은 아님

- 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어한다.
- 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:05
Processing time 0.0614 sec