2018년 3월 27일 화요일

패스트 캠퍼스 JAVA 웹 프로그래밍 마스터 4일차(ClassLoader, TDD)

  • ClassLoader
    • classpath를 참조한다.
    • class 정보를 읽을수 있는게 ClassLoader다.
    • classLoader 한개에 classpath를 다수 가질수도 있다.
    • 예를들어 String을 사용하면 classpath를 참조하여 classLoader가 stirng class를 Metaspace에 올린다. 2번째 호출부터는 Metaspace에 있는 것을 참조한다.
    • 기본적으로 i제공하는 파일을 읽는다.(jdk에 있는 rt.jar등)
    • 부모를 가질수 있다
      • 부모에 있는지 먼저 찾은후 자신의 ClassLoader에서 찾는다.
      • 부모는 자신의 것을 사용하지 못한다.
    • java system <- was <- webapplication 순서를 가질수 있다.(classLoader)
      • system classLoader가 있고 was에서 제공하는 classLoader가 있는데 war를 배포하면 was  가 webapplication classLoader 를 생성해준다.
      • 수정후 재적용시 ClassLoader를 재구동 해야한다. webapplication단계에서 수정했다면 webapplication에서만 재구동 하면 된다.
      • .class파일만 올려서 수정하는 방식도 내부적으로는 webapplication  classLoader가 재구동 되는것이다.
    • java8부터 PermGen이 Metaspace로 변경되었다.(https://dzone.com/articles/java-8-permgen-metaspace)
  • Tomcat
    • 웹어플리케이션 구조(WEB-INF, lib, classes, Web.xml 파일 및 폴더는 고정)
    • was는 처음에 web.xml을 읽는다.
  •  TDD
    • 소스를 알고 있기 떄문에 화이트 테스트를 할수 있다.
    • 경계값을두고 작거나 큰값으로 테스트 할수도 있고 경계값으로 테스트할수도 있다.
    • 100% 길과 경우의 수를 테스트 해야 100%테스트 커러리지가 된것이다.(현실적으로힘들다)
    • 모든 길을 테스트를 다 한다고해서 모든 경우의수를 한것은 아니다.
    • V-MODEL은 프로젝트마다 다르다.(요구사항-분석-설계-구현)
    • 좋은 설계는 좋은 TEST 코드를 만들 수 있다.
    • MOCK(구현이 안되어 있을 경우 가짜객체를 통해 결과값을 정할수 있다)
Share:

0 개의 댓글:

댓글 쓰기