XML Parser xml은 단순한 텍스트포맷으로 웹서비스의 기본 데이터 포맷이라고 할수있습니다. 자체는 단순한 포맷이지만 규칙은 엄격해서 정확한 정보를 빼내기는 쉽지않습니다. xml을 쓰는 가장큰 이유는 데이터 교환 및 공유목적의 표준화가 가능하다는 것으로 분야별, 용도별로 각 도메인의 전문가들이 표준안을 작성하면 그것에 맞춰 유효성을 판단합니다. xml을 return 받은 Client의 프로세서는 마크업분석을 하면서 구조화된 정보(xml parser)를 애플리케이션에 넘깁니다. 구조화된 정보는 태그로 이루어져 있으며 시작태그(start tag), 끝태그(end tag), 빈엘리먼트(empty-Element) 세가지종류로 이루어집니다. 이러한 xml파서는 오류검사, 유효성검증 등을 처리하고 응용프로그램..
DOM은 W3C의 표준으로, 문서를 액세스하기위한 표준을 정의한다. html에서는 한번에 찾을수 없고 단계별로 찾아야함. DOM트리 순회 속성 내용 childNodes 한 요소의 모든 자식 요소에 접근할 수 있다. 배열이 반환 firstChild "childNodes" 배열의 첫번째 자식 노드가 반환된다. "childNodes[0]"와 같다. lastChild "childNodes" 배열의 마지막 자식 노드가 반환된다. "childNodes[childNodes.length – 1]"와 같다. parentNode 현재 노드의 부모 노드를 반환한다. nextSibling 현재 노드의 다음 형제 노드를 반환한다. previousSibling 현재 노드의 이전 형제 노드를 반환한다. 새로운 요소 생성 텍스트 노..
A a = new b(); :: el 의 기본개념 :: - pagecontext, session, request, application 네가지 개념 존재 1. pagecontext: 페이지에 머무는 동안 공유한다. 2. request: 데이터를 넘길때 공유 3. session: session에 저장하여 공유 4. application: 톰캣을 실행하는 동안 공유 예를 들어 ${msg}일 경우 본인위치에서 가까운순서 부터 찾는다. 가깝고 좁을 수록 먼저다.(우선순위가 높다.) 우선순위 1 => 2 => 3 => 4 :: 디클레이션(declaration, 선언자) :: 위와 같이 사용하며 jsp내에서 클래스를 선언할때 사용한다. :: sendRedirect, forward :: forward는 그 페이지에서..
:: jsp의 포지션 :: - jsp는 언어가 아니라 표기법이다. - .java로 변환하기 위한 표기법임 > jsp(표기법) ====[ tomcat(was) ] => .java ====[ JDK ]====> .class => ( html, file, json ) :: forwording :: - 가지고 있던것을 그대로 넘긴다는 뜻. - 요청 상태를 유지한다. (지속) - 요청(request)에 대한 갱신을 위해서는 리다이렉트를 시킨다. ex) 회원가입시 여러개의 입력폼이 존재하고 각페이지가 존재할 경우 요청을 위해 forword를 쓴다. but! 주문이나 이체와 같은 항목에서는 새로고침시 요청을 반복할수있으므로 쓰지않는다.(위험) Client ===[ 파라미터 ]===> Servlet === [ Attr..
:: 싱글톤과 싱글톤패턴의 차이:: 싱글톤 패턴: 자바에서 싱글톤을 사용하기 위한 방법에 대한 디자인 패턴 싱글톤: 만든인스턴스를 건네주는것. 접근만 건네준다.(주소) 싱글톤은 new를 딱한번만 쓴다는 전제하에 패턴을 쓰지않고도 만들수 있는것이다. - 사용의미 - 1. 많아봐야 의미가 없을때 쓴다. 2. 하나만 있어야 할때 쓴다. 인스턴스 변수: 인스턴스마다 다른값을 가지는 변수 클래스변수(static): 고정된 값 > 1. 싱글톤과 정반대개념이다. 2. 인스턴스를 대량생산하기 위한 용도임 3. 주방을 팩토리에 비유할 수 있음. ex) 1. 빌더(builder) => 팩토리(Factory) => 데이터소스(data) => sql 클라이언트 서버와 클라이언트간 상호작용하는 순서가 위와 같다고 할때, use..
반복자(literator)패턴 접근기능과 자료구조를 분리시켜서 객체화 한다. 서로 다른 구조를 가지고 있는 저장객체에 접근하기 위해서 인터페이스를 통일시킬때 사용하는 패턴 예를들면 아래와 같은 코드가 있다고 하자 for (int i = 0; i < bookShelf.getLength(); i++) { System.out.println(bookShelf.getBook(i).getName()); } 여기서 만약 arr의 타입이 배열이 아닌 다른 자료구조로 바뀐다면 반복문이 수정되어야 하는데 반복자 패턴을 사용하면 이러한 자료구조에 상관없이 객체 접근방식을 통일할 수 있게 된다. 또한 이렇게 사용되는 변수 i의 역할을 추상화 한 것이 반복자 패턴이다. 위의 코드를 반복자 패턴으로 만든것이 아래와 같다. 아래는..
커멘드(command)패턴 객체의 행위(메서드)를 클래스로 캡슐화 하는 패턴이다. 어떤객체에서 다른객체의 메서드를 실행하려면 그 객체를 참조하고있어야 하는 의존성이 발생한다. 그때 커멘드 패턴을 적용하면 의존성을 제거할수 있다. 만약 아래와 같은 코드가 있다고 하자 public class 리모컨{ private static String[] modes = {"냉방", "난방"}; private cooling 냉방; private heating 난방; private String 모드; OKGoogle(cooling 냉방, heating 난방){ this.냉방 = 냉방; this.난방 = 난방; } ... public void 선택(){ switch(this.mode){ case "냉방": this.냉방.po..
팩토리 메소드(Factory Method Pattern) 패턴 종속성과 결합도를 키워드로 하는 디자인 패턴이다. 팩토리 메소드 패턴은 1. 클라이언트 코드로부터 서브클래스의 인스턴스화를 제거하여 서로간의 종속성을 낮추고, 결합도를 느슨하게 하며 확장을 쉽게 한다. 2. 객체를 생성하는 인터페이스를 정의 함으로써, 어떤 인스턴스를 생성할 지는 하위 클래스에서 결정하는 패턴 추상 팩토리 패턴 1. 클라이언트와 구현객체들 사이에 추상화를 제공한다. 2. 팩토리들을 그룹으로 묶어 관리할 수 있는 패턴이다. 사용하는 곳. 1. java.util패키지에 있는 Calendar, ResourceBundle, NumberFormat등의 클래스에서 정의된 getInstance()메소드 2. Boolean, Integer,..