2018년 3월 29일 목요일

패스트 캠퍼스 JAVA 웹 프로그래밍 마스터 6일차(TDD, 쿠키, 세션)

  • TDD
    • mokito 에서 spy
    • 실제로 객체를 생성해서 테스트 할수 있다.
    • argument.capture()는 메소드가 실행했을때의 객체를 복사한다.
    • 회귀테스트 : 소스는 복잡하게 연결되어 있다. 작은 부분이 수정되면 모든기능을 다시 테스트해야한다.
    • Agile + TDD
  • 개발
    • 개발하면서 문제가 있다면 실시간으로 수정해야한다.(나중에 하면 망한다.)
    • 코드는 시간이 흐르면 조금씩 망가진다. 끊임 없이 ODD와 패턴 구문들을 적용해서 리팩토리 해야한다(Test + 리팩토링은 같이 하는 것이다)
    • 소스를 수정하면 기존 Test코드를 실행하여 이상이 없는지 확인하면 이상이 없는것이다.
      개발 <-> 수정(리팩토링<-실시간)
  • Agile
    • 짧은 주기로 개발 ,개발 수정, Test를 반복한다.
  • 마크업
    • HTML : 태그가 정해져있다. 브라우저에서 읽는다. 
    • XML : 확장가능한 마크업 언어이다, 태그가 정해져 있지 않다. 데이터를 표현한다. 최소 1개이상의 요소가 있어야한다.(시작tag+내용+종료tag로구성), 제일 바깥쪽 요소는 Root Element이다.
      • 구조정의 : DTD, XML스키마
  • Web Maven Project
    • HttpServlet은 톰캣이 가지고 있다. 그래서 메이븐 설정에 서블릿을 추가하고 클래스때만 사용하게 설정한다.
    • Servlet 3.0부터는 web.xml말고 JAVA config(ServletContainerInitializer)로 설정이가능하다
      • WAS는 web.xml을 먼저 찾고 classloader 에서 ServletContainerInitializer을 구현한 class를 찾는데 그 시간이 오래걸릴수도 있다.
  • 상태유지
    • 쿠키
      • 1. 브라우저가 서버에 요창할때 브라우저에서 쿠키가 없으면 서버는 쿠키(key=value)를 만들어 보낸다
        2. 브라우저가 같은서버에 재 요청시 쿠키를 자동으로 가지고간다.
      • key와 value는 문자열만 가능하다.
      • 쿠키개수가 제한이 있다
      • 보안문제가 있다.
      • 쿠키는 new를 통해 생성하여 응답한다.
      • 톰캣같은 경우는 jsessionid를 자동으로 만들어서 보낸다.(WAS마다 다르다.)
    • 세션
      • request.getSession을 입력하면 처음이면 sessionId를 만들고 처음이 아니면 기존 sessionId를 이용한다.
      • 브라우저가 보낸 요청데이터를 토대로 세션id를 만든다.(String key = Object value)
      • 새로운 브라우저가 요청할때마다 HttpSession 자료구조를 만든다.
      • 다양한 값이 저장가능하다.(객체도)
      • request한테 정보를 받아서 세션id 여부를 파악하여 첫 요청이면 Httpsession을  통해 쿠키데이터 값을 기반으로 값을 만들어서 쿠키에 넣어서 반환한다.
      • WAS에 따라서 처음 요청시 자동으로 만들어서 보내는경우도 있다.
Share:

0 개의 댓글:

댓글 쓰기