HTML5 & CSS3 실습


하나의 웹서버에는 다양한 웹 어플리케이션이 존재할 수 있다.


DTD(Document Type Definition)

브라우저는 어떤 종류의 문서 타입이 사용되었는지, 그리고 어떤버전의 HTML이 사용되 었는지를 구분해주는 정보는 제공


1. Strict DOCTYPE(엄격한 규격)

2. Transitional DOCTYPE(느슨한 과도기 규격)

3. Frameset DOCTYPE(프레임 적용 규격)

위는 4.01버전에서의 DTD 타입별


html5에서는 1가지로 되어있다.


컨트롤 + F5 눌러야 서버에 다시 요청한다.


body에는 두가지 엘리먼트가 있다.

1. 블럭레벨 - 한 행이 꽉차는 엘리먼트 ex) <p>

2. 인라인 - 한행에 여러개 들어가는 엘리먼트 ex) 


대부분 블럭레벨이다.


각종 html 태그 실습


<form> 태그 get, post 방식에 다른점 및 간단한 구현






'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

9월 2주차 4일(10주)  (0) 2015.09.10
9월 2주차 3일(10주)  (0) 2015.09.09
9월 2주차 1일(10주)  (0) 2015.09.07
9월 2주차 5일 (9주)  (0) 2015.09.04
9월 2주차 4일 (9주)  (0) 2015.09.03
Posted by moyaiori
,

저번주 JDBC 파일로 DB및 서버 데이터 관리하기


스테틱 초기화 블록, 프로퍼티 설명


- 스태틱 초기화 블록

Static {

}

위와같은 형태이다.

스태틱 초기화 블록이 생성자보다 먼저 호출된다.

클래스가 하드디스크에 저장되어있는대 클래스로더에서 초기화 해주는대 이때 실행되는 블록이다. 바이트 코드에 있는 데이터를 자동으로 로드된다. OS를 하나의 객체(클래스) 라고볼때 하드웨어가 제대로 연결되있나 확인하는 그런 작업의 일종이다. 애플리케이션이 복잡한 경우 미리 클래스를 로드하는경우에 사용하거나 미리 제대로 작동하는지 확인할때, 주로 하드웨어 체크를 많이한다. (특별한 작업을 미리 해줘야할때) 그래서 우리가 네트워크로 DB연결 상태를 미리 확인할때(초기화), 공유되는 변수들을 미리 확인한다. 


- 프로퍼티스(properties)

 HashTable에 파일처리가 추가된 콜렉션 객체

메모리에서 읽어서 맵형태로 초기화 시켜준다. 키, 벨류 쌍으로 저장해준다.

파일의 형태는 TEXT이다. ㅁ:ㅁ 형태로 구분된 파일만 읽는것이 가능하다. 

애플리케이션의 환경설정파일로 사용하는경우가 많다.


Factory -> 확장(관리) -> 컨테이너

컨테이너는 팩토리인대 제고관리까지해준다.


웹 시작!!

웹브라우저가 html을 랜더링 해줘서 우리가 볼수있는 화면이된다.

웹서버에 이 데이터가 저장되있고 이것을 클라이언트가 다운받아서 위와같은 행위를 해준다.


웹서버안에서 동적으로 돌아가는 것이 필요하다. 이것이 컨테이너 컨텍스트이다. 웹컨테이터가 필요한대 이것에 대한 규격이 CGI이다.


웹 플랫봄이란? : 플랫폼은 이기종간의 통합을 말한다. 이기종성을 극복하기 위해 웹표준을 따른다.













'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

9월 2주차 3일(10주)  (0) 2015.09.09
9월 2주차 2일(10주)  (0) 2015.09.08
9월 2주차 5일 (9주)  (0) 2015.09.04
9월 2주차 4일 (9주)  (0) 2015.09.03
9월 1주차 3일 (9주)  (0) 2015.09.02
Posted by moyaiori
,

DAO 2단계

문제점 - UserDao의 소스 코드 변경없이 DB 종류가 변경될 수 있고, Connection 생성 방법을 Connection Pool 또는 JNDI로 변경해야 한다면?

형기군 발표


템플릿 메소드의 가장큰 특징은 추상클래스로 생성된다.

즉 상속받아서 사용해야된다.


추상클래스 상속

1. 오버라이딩 할수도있고, 안할수도있고 -> 선택적 으로 원래 메서드를 변경할수있다. hookMethod

2. 오버라이딩 필수 (Abstract) -> 반드시 오버라이딩 해야되는것. 추상메소드(abstractMethod)

3. 오버라이딩 불가 (final) -> 템플릿 메소드(templateMethod)


Connection은 항상 되어야하기때문에 final로 지정하여 변경불가능하게 한다.


DAO 3단계

문제점 - 상속을 통해 관심이 다른기능(Connection 생성)을 분리하고, 필요에 따라 다양한 변신이 가능하도록 확장성도 부여했지만, 상속관계는 서로 다른 관심사에 대해 긴밀한 결합 관계를 가지고있다. 슈퍼클래스의 변경이 있을경우 몯느 서브클래스를 수정해야하며, UserDao외에 다른 DAO를 게속 작성해야될 경우 getConnection()메서드를 재정의한 새로운 서브클래스를 만들어야 하는 번거로움이 있다.


개선사항 - 상속관계가 아닌 완전히 독립적인 클래스로 분리하여 작성한다.


DAO 4단계

소스코드 수정 없이 DB Connection 생성 기능을 변경할 방법이 없다. DB 커넥션을 제공하는클래스의 이름이나 메소드 이름이 변경될 경우 UserDao의 코드를 수정해야한다. 


개선사항 - 2개의 클래스가 서로 긴밀하게 연결되지 않도록 중간에 추상적인 느슨한 연결고리(인터페이스)를 만든다.


객체지향 기본 설계 원칙 정리

- 개방 폐쇄 원칙(OCP : Open - Closed - Principle)

클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.

인터페이스를 사용해 확장 기능을 정의한 대부분의 API는 이 개방 폐쇄 원칙을 따른다.


-높은 응집도와 낮은 결합도

높은 응집도란? : 클래스나 모듈이 하나의 책임 또는 관심에만 집중되어 있다는 뜻으로 불필요하거나 직접 관련이 없는 외부의 고나심과 책임이 얽혀 있지 않으며, 하나의 공통 관심사는 한클래스에 모여 있다

낮은 결합도란? : '하나의 오브젝트가 변경이 일어날 때 관계를 맺고 있는 다른 오브젝트에 변화를 요구하는 정보'를 말한다.


- 전략 패턴(Stategy Pattern)

자신의 핵심 기능 맥락(Context)에서 필요에 따라 변경이 필요한 알고리즘(독립적인 책임으로 분리 가능한 기능)을 인터페이스를 통해 분리시키고, 이를 구현한 구현한 구체적 알고리즘 클래스를 전략적으로 바꿔 사용할 수 있는 패턴이다.


DAO 5단계

UserDao의 소스코드 변경없이 DB 커넥션 기능의 확장이 자유롭지 못하다.


개선사항 - 제3의 오브젝트를 만들어서 관리한다.


DAO 6단계

개선 - javaSE 표준 API에는 DB커넥션 생성기능을 추상화(규약)해서 일관되게 Connection을 사용할 수 있게 만들어진 javax.sql.DataSource 인터페이스를 제공한다.


DAO 7단계

문제점 - 인터페이스와 구현클래스로 분리하지 않아 다양한 데이터 엑세스 기술(JDBC, ibatis등)을 사용해 만든 DAO 사용시 일관된 메소드 호출이 불가능하며 클라이언트 입장에서 일관된 메소드 호출이 불가능하다.


개선 - DAO를 인터페이스화하여 일관된 형태로 규격을 만든다.



DAO 8단계


DAO를 동적으로 할당해주기
















'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

9월 2주차 2일(10주)  (0) 2015.09.08
9월 2주차 1일(10주)  (0) 2015.09.07
9월 2주차 4일 (9주)  (0) 2015.09.03
9월 1주차 3일 (9주)  (0) 2015.09.02
9월 1주차 2일 (9주)  (0) 2015.09.02
Posted by moyaiori
,