Whiteship's Note


[Expert One-on-One J2EE Design and Development] J2EE 아키텍처 2

Spring/J2EE D&D : 2009.09.02 18:19


Accessing Data

(예전) EJB를 사용하면 엔티티 빈이라는 하나의 선택지 밖에 없다. (EJB 3.0부터는 JPA가 있지요.)

J2EE Data Access Shibboleths

- 데이터베이스 간의 이식성은 항상 중요하다.
- O/R mapping은 관계형 DB를 사용할 때 항상 최선의 솔루션이다.

데이터 접근 전략을 사용할 때, 비즈니스 로직과 데이터 접근 로직을 추상화 계층으로 분리하는 것이 좋다.

Entity Beans

특정 DB에 종속되지는 않지만, EJB 컨테이너와 특정 O/R 맵핑 기술에 묶이게 된다. 성능이 안 좋다. 아키텍처적인 유연성이 떨어지고 테스트하기 어렵다.

EJB 2.0이 되고나서도, 너무 기초적인 O/R 맵핑인데다, 비효율적으로 관계형 DB를 사용하기 때문에 성능이 좋치 않다.

JDO

JDO는 엔티티 빈에 비해 성능이 좋고, 특정 RDBMS에 종속적이지도 않다. EJB에도 종속적이지 않다. 단점은  JDO 구현체가 아직 비교적 성숙하지 못하다는 것이다.

다른 O/R 맵핑 솔루션

탑링크와 코코베이스는 JDO 보다 성숙한 O/R 맵핑 솔루션으로 대부분의 J2EE 애플리케이션에서 사용할 수 있다. 다양한 기능과, 고성능의 O/R 맵핑을 제공한다. (하이버네이트 얘기는 하나도 없지 왜..)

JDBC

암묵적인 J2EE에서 JDBC와 SQL은 악마라는 소문이있다. 하지만 이 책에서 제공하는 고 수준의 라이브러리를 사용하면 (이때부터 JdbcTemplate이 나오나 봅니다. 캬..) O/R 맵핑이 없는 상황에서 최선책이 될 수 있다. 제대로 사용하면 JDBC는 좋은 성능을 발휘할 것이다. 데이터를 자연스럽게 캐시할 수 있는 O/R 맵핑 계층이 있다면 JDBC는 적절하지 않다.

상태 관리

J2EE 아키텍처에서 또 다른 중요한 의사결정은 서버-측 상태를 어떻게 관리할 것이냐이다. 이것으로 인해 서버 클러스터 환경에서 애플리케이션이 어떻게 동작하는지 그리고 어떤 J2EE 컴포넌트를 사용해야 하는지 결정된다.

서버-측 상태가 필요한지 결정하는이 중요하다. 애플리케이션을 단일 서버에서 운영할 떄는 서버-측 상태를 유지하는 것이 별 문제는 아니다. 여러 서버를 클러스터 환경에서 운영한다면 페일오버(failover)나 server affinity 문제 등을 피하기 위해 서버-측 상태를 복사해야 한다.

서버-측 상태가 필요하다면 유지해야 할 양을 최소화 하는 것이 좋다.

서버-측 상태를 유지하지 않는 애플리케이션이 그러는 애플리케이션보다 확장성이 좋고, 간결하며 클러스터 환경에 배포하기 좋다.

서버-측 상태를 어디에 저정해야 할지 결정해야 한다. 저장할 정보의 종류에 따라 달라진다. 사용자 세션 정보냐, 비즈니스 객체 상태냐. 둘 다냐. 분산 EJB는 웹 단의 상태와 상관없이 stateless session bean으로 확장성을 최대화 한다.

J2EE는 웹 애플리케이션에서 상태 관리에 사용할 두 가지 옵션을 제공한다. HTTP session 객체와 stateful session EJB다.  상태 관리가 필요하다고 해서 EJB가 필요한건 아니다.

J2EE 아키텍처

생략~


top


[EGIU] Unit 19, 20정리

모하니?/English : 2009.09.02 17:29


Unit 19. Present Tenses for the futer (I am doing / I do)

A: 현재 진행형으로 미래를 표현하기

이미 결정했거나 그렇게 하려고 조정/약속/예정되어 있는 행위를 표현한다.
결정했다는 의미를 나타낼 땐, I am going to (do)를 사용해도 된다.
하지만, 조정/약속/예정의 뜻을 나타낼 때는 I am doing이 더 자연스럽다.

외울문장
- Alex is getting married next month.
- I'm not working tomorrow.
- What time are you ariving?

B:현재형으로 미래 표현하기

시간이 정해져 있거나 공적으로 딱 짜여져 있는 경우에 사용한다.
하지만 사적인 경우에는 현재 진행형을 쓰는 것이 자연스럽다.

외울문장
- My train leaves at 11.30.
- The firm begins at 8.15.

틀린문제 0개.

Unit 20. (I'm) going to (do)

I am going to do ~: 무언가를 하려고 결정했고, 하려고 한다.
I am doing은 무언가가 예정되어 있는 것인 반면, I am going to do는 결정했다는 의미가 강하다.
둘의 차이가 미세하기 때문에 혼용하기도 한다.
미래에 어떤 일이 일어날 것이라는 표현으로 쓰기도 한다.
I was goting to ~: 그려려고 했었지만, 하지 않았다는 것을 표현할 때 사용한다.

외울문장
- What are you going to eat?
- Who are you going to invite?
- I'm not going to accept it.

틀린문제 0개.


top







티스토리 툴바