Page tree
Skip to end of metadata
Go to start of metadata

SLiPP 스터디 소스 코드 개발 환경 세팅

SLiPP 스터디 소스 코드 리뷰

  • 사용자에 대한 추가, 수정, 삭제, 목록을 볼 수 있는 초간단 웹 애플리케이션
  • 애플리케이션 실행 : UserWebServerLauncher.java => jetty 기반으로 동작
  • UserService.java => JdbcUserDao를 사용
  • JdbcUserDao는 프레임워크 코드 없이 JDBC API 활용.
  • jsp는 webapp/user 에 존재함.
  • css는 webapp/stylesheets에 존재함.

Growing Web Application Development

  • 요구사항 정의, 분석을 완료한 이후 웹 애플리케이션 개발은 어떤 방식으로 진행하는 것이 좋을까?
  • 반복, 점진적인 개발을 진행한다고 가정할 경우 어떤 방식으로 진행하는 것이 좋을까?
  • 반복, 점진적인 개발이 가능하려면 변화를 막는 것이 아니라 변화를 수용하는 방식으로 개발해야 한다.? 가능하게 하려면...
    • 첫째, 변화가 발생했을 때 버그를 찾아낼 수 있는 테스트
    • 둘째, 가능한 단순한 코드를 유지하면서 변화에 민첨하게 대응할 수 있는 상태.
  • TDD와 리팩토링

  • 기본적인 Test Driven Development의 Cycle (위 그림은 Growing.Object.Oriented.Software.Guided.by.Tests 중에서)
  • TDD의 한계는?
    • Growing Object Oriented Programming에서는 품질이 좋고, 단위 테스트가 잘 작성되어 있었지만 다른 시스템과 통합하기 어려워 재작성하는 경우도 발생했다. 
    • 단위 테스트만 잘 작성되어 있다고 해서 프로젝트의 품질을 보장하기 힘들다.
    • 애플리케이션을 개발할 때의 시작점은 Feature를 기반으로하는 Acceptance Test로 시작하는 것이 좋겠다.

Test 종류

  • unit test? : Do our objects do the right thing, are they convenient to work with?
  • integration test? : Does our code work against code we can't change?
  • acceptance test? : Does the whole system work?

ATDD를 통한 TDD 한계점 극복

  • Acceptance Test를 활용한 개발 Cycle (Growing.Object.Oriented.Software.Guided.by.Tests 중에서)
  • Acceptance Test를 활용한 End-to-End Test를 시작점으로 접근해야 되지 않을까?
  • End-to-End Test 중요하다.

개발 방식

  • walking skeleton을 빠른 시점에 만든다.

  • feedback cycle.
  • 빠른 피드백을 통해 지속적으로 개선해 나가는 방식
  • 학습을 통한 지속적인 개선

참고 자료

  • Growing.Object.Oriented.Software.Guided.by.Tests. 2009 중에서
  • No labels

2 Comments

  1. slipp 의 위지윅은 외부 라이브러리인가요? 아니면 직접 개발하신건가요?

    아직까지도 위지윅 연동해서 게시판을 만들어본 적이 없는 1인의 질문입니다 ㅠ

    1. 지금 사용하고 있는 위키는 confluence 위키입니다. 오픈 소스 라이센스 받아서 사용하고 있는 솔루션입니다.

      제가 이 정도 개발할 수 있으면 회사를 세워서 솔루션 사업을 할 겁니다. ㅋㅋ

       

      slipp.net qna 게시판의 에디터는 markdown editor 사용하고 있습니다.