슬라이드 1

Size: px
Start display at page:

Download "슬라이드 1"

Transcription

1 DOMAIN MODEL 패턴과 JPA 의조화객체지향적인도메인레이어구축하기 조영호 Eternity s Chit-Chat(

2 목차 1. 온라인영화예매시스템도메인 2. 임피던스불일치Impedance Mismatch 3. JPA Java Persistence API 4. 결롞

3 1. 온라인영화예매시스템도메인

4 Domain Concept - 영화 4 / 객체지향적인도메인레이어구축하기

5 Domain Concept - 상영 :30 조조 Showing :20 4 회 :30 5 회 5 / 객체지향적인도메인레이어구축하기

6 Domain Concept 할인정책 Discount Amount Discount \8,000 - \800 = \7,200 Percent Discount \8,000 (\8,000 * 0.1) = \7,200 6 / 객체지향적인도메인레이어구축하기

7 Domain Concept 할인규칙 Rule Sequence Rule 조조상영인경우 10 회상영인경우 Time Rule 월요일 10:00 ~ 12:00 상영인경우 화요일 18:00 ~ 21:00 상영인경우 7 / 객체지향적인도메인레이어구축하기

8 Domain Concept 할인정책 + 할인규칙 조조상영인경우 도가니 8000 원 Amount DC 800 원 10 회상영인경우 월요일 10:00 ~ 12:00 상영인경우 화요일 18:00 ~ 21:00 상영인경우 Discount Rule * 8 / 객체지향적인도메인레이어구축하기

9 Domain Concept 예매 Reservation 제 목 도가니 상영정보 2011 년 10 월 18 일 ( 목 ) 7 회 6:00( 오후 ) 8:00( 오후 ) 인 원 2 명 정 가 16,000 원 결재금액 14,400 원 9 / 객체지향적인도메인레이어구축하기

10 Domain Model Showing Reservation 1 0..* 0..* * Discount Rule 10 / 객체지향적인도메인레이어구축하기

11 영화예매책임수행을위한협력의설계 후보객체 Candidate, 책임 Responsibility, 협력 Collaboration 식별 Showing 상영정보를알고있다 예매정보를생성한다 영화정보를알고있다 가격을계산한다 Discount Strategy DiscountStrategy 할인율정책을알고있다 할인된가격을계산한다 Rule 할인정책을알고있다 할인여부를판단한다 Rule Showing 11 / 객체지향적인도메인레이어구축하기

12 도메인레이어객체구현 User Interface Service Reservation Domain Showing reserve(customer, count):reservation <<create>> Infrastructure Customer calculatefee(showing):money {abstract DiscountStrategy calculatefee(showing):money {abstract Rule isstatisfiedby(showing):boolean Amount Strategy Percent Strategy NonDiscount Strategy Sequence Rule TimeOfDay Rule 12 / 객체지향적인도메인레이어구축하기

13 Domain Model Showing Reservation 1 0..* 0..* * Discount Rule 13 / 객체지향적인도메인레이어구축하기

14 Domain Layer Design & Domain Model Showing Reservation Reservation Showing reserve(customer, count):reservation 1 0..* <<create>> 0..* Customer 1 calculatefee(showing):money {abstract DiscountStrategy calculatefee(showing):money {abstract Rule isstatisfiedby(showing):boolean Amount Strategy * Percent Strategy NonDiscount Strategy Sequence Rule TimeOfDay Rule Discount Rule 14 / 객체지향적인도메인레이어구축하기

15 아키텍처패턴 User Interface Service Domain Infrastructure Domain Model 15 / 객체지향적인도메인레이어구축하기

16 2. 임피던스불일치Impedance Mismatch

17 임피던스불일치Impedance Mismatch 17 / 객체지향적인도메인레이어구축하기

18 객체 - 관계임피던스불일치 객체모델과 DB 스키마간의불일치 객체패러다임 Object Paradigm 과관계패러다임 Relational Paradigm 간의불일치 RULE DiscountStrategy Rule DISCOUNT ID MOVIE_ID(FK) DISCOUNT_ID(FK) DISCOUNT_TYPE POSITION FEE_AMOUNT RULE_TYPE FEE_CURRENCY DAY_OF_WEEK Amount Strategy Percent Strategy NonDiscount Strategy Sequence Rule TimeOfDay Rule PERCENT START_TIME END_TUME SEQUENCE 18 / 객체지향적인도메인레이어구축하기

19 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 19 / 객체지향적인도메인레이어구축하기

20 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 20 / 객체지향적인도메인레이어구축하기

21 Mismatch 구성요소크기 Granularity 의불일치 MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 제목 하나와앨리스 시간 135분요금 8,000원 title <<entity>> calculatefee(showing):money running Time fee <<value object>> Duration quantity <<value object>> Money amount currency 21 / 객체지향적인도메인레이어구축하기

22 Entity & Value Object Identity Value Value Object Entity <<entity>> running Time quantity <<value object>> Duration title calculatefee(showing):money fee amount currency <<value object>> Money 22 / 객체지향적인도메인레이어구축하기

23 책임의재사용 Money 영화정보를알고있다 가격을계산한다 금액과환율을알고있다 금액을 +,-,*,/ 한다 Duration 기간을알고있다. 기간의합, 차를계산한다 23 / 객체지향적인도메인레이어구축하기

24 Problem 코드중복Code Duplication MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY RESERVATION ID(PK) CUSTOMER_ID(FK) SHOWING_ID(FK) FEE_AMOUNT FEE_CURRENCY AUDIENCE_COUNT class { long plus(long fee, Currency currency) { if (this.feecurrency.equals(currency) { return this.fee + fee; id title runningtime fee feecurrency calculatefee() throw new IllegalArgumentException(); Reservation id customerid showingid amount acmointcurrency audiencecount class Reservation { long add(long amount, Currency currency) { if (this.amountcurrency.equals(currency) { return this.amount + fee; getfee() throw new IllegalArgumentException(); 24 / 객체지향적인도메인레이어구축하기

25 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 25 / 객체지향적인도메인레이어구축하기

26 Mismatch 데이터베이스식별자Database Identity 테이블주키Primary Key 제목 시간을달리는소녀 시간 95 분 요금 8,000 원 제목 시간을달리는소녀 시간 95 분 요금 8,000 원 MOVIE ID 1 2 TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 시간을달리는소녀 95 8,000 KRW 시간을달리는소녀 95 8,000 KRW 26 / 객체지향적인도메인레이어구축하기

27 객체식별자Object Identity Java == 연산자 제목 시간을달리는소녀 시간 95 분 요금 8,000 원 제목 시간을달리는소녀 시간 95 분 요금 8,000 원 address 1 address 2 movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ 27 / 객체지향적인도메인레이어구축하기

28 Problem 데이터베이스-객체식별자불일치Identity Mismatch MOVIE ID 1 2 TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 시간을달리는소녀 95 8,000 KRW 시간을달리는소녀 95 8,000 KRW movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ 28 / 객체지향적인도메인레이어구축하기

29 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 29 / 객체지향적인도메인레이어구축하기

30 Mismatch 다형성 Polymorphism Discount calculatefee(showing) {abstract DiscountStrategy registerdate calculatefee(showing) Amount Discount 800 원 Percent Discount 10% Amount DiscountStrategy Percent DiscountStrategy Non DiscountStrategy discountamount percent No Discount 0 원 (%) public class { private DiscountStrategy discountstrategy; public Money calculatefee(showing showing) { return discountstrategy.calculatefee(showing); 30 / 객체지향적인도메인레이어구축하기

31 Problem 젃차적인조건분기Conditional Branch DiscountStrategy Discount Amount Discount 800 원 id title runningtime fee feecurrency movieid discounttype amount percent registerdate calculatefee() calculatefee() Percent Discount 10% 31 / 객체지향적인도메인레이어구축하기 No Discount 0 원 (%) public class ReservationService { public class Money calculatefee( { movie, private DiscountStrategy discountstrategy) discountstrategy; { if (discountstrategy.isamounttype()) { public... Money calculatefee(showing showing) { return else discountstrategy.calculatefee(showing); if (discountstrategy.ispercenttype()) {... else {......

32 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 32 / 객체지향적인도메인레이어구축하기

33 Mismatch 데이터베이스외래키Foreign Key MOVIE SHOWING ID(PK) ID(PK) Showing TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY MOVIE_ID(FK) SEQUENCE SHOWING_TIME 1 회 10/18 10:00 2 회 10/18 12:30 MOVIE 3 회 10/18 15:00 ID 1 TITLE 하나와앨리스 4 회 10/18 17:30 SHOWING ID MOVIE_ID SEQUENCE SHOWING_TIME :00 33 / 객체지향적인도메인레이어구축하기

34 테이블외래키 Foreign Key - 양방향 BiDirectional MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY SHOWING ID(PK) MOVIE_ID(FK) SEQUENCE SHOWING_TIME SELECT * FROM MOVIE as m LEFT JOIN SHOWING as s ON m.id = s.movie_id 34 / 객체지향적인도메인레이어구축하기

35 객체연관관계 Association 단방향 UniDirectional MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY SHOWING ID(PK) MOVIE_ID(FK) SEQUENCE SHOWING_TIME calculatefee(showing) 1 * Showing reserve(customer, count) showing.get(); calculatefee(showing) 1 * Showing reserve(customer, count) movie.getshowings(); calculatefee(showing) 1 * Showing reserve(customer, count) movie.getshowings(); showing.get(); 35 / 객체지향적인도메인레이어구축하기

36 객체협력 Collaboration 을통한구현 연관관계는책임분배와협력을위한핵심메커니즘 Showing 상영정보를알고있다 예매정보를생성한다 영화정보를알고있다 가격을계산한다 Discount Strategy DiscountStrategy 할인율정책을알고있다 할인된가격을계산한다 Rule reserve() Showing * 1 calculatefee() DiscountStrategy calculatefee() public class Showing { private movie; public Money calculatefee() { return movie.calculatefee(this);... public class { private DiscountStrategy discountstrategy; public Money calculatefee(showing showing) { return discountstrategy.calculatefee(showing); / 객체지향적인도메인레이어구축하기

37 Problem Data + Process = 젃차적인 Procedural 프로그래밍 MOVIE SHOWING ID(PK) ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY MOVIE_ID(FK) SEQUENCE SHOWING_TIME Process Showing Data ReservationService reserveshowing() id title runningtime fee feecurrency id movieid title sequence showingtime public class ReservationService { public Reservation reserveshowing(int customerid, int showingid, int audiencecount) { public Showing class showing Showing = showingdao.selectshowing(showingid); { movie = moviedao.select(showing.getid()); private movie; long amount = calculatefee(movie.getfee(), showing, audiencecount); public... Money calculatefee() { return movie.calculatefee(this); private... long calculatefee(long moviefee, Showing showing, int audientcount) { / 객체지향적인도메인레이어구축하기

38 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 38 / 객체지향적인도메인레이어구축하기

39 Mismatch 캡슐화 Encapsulation Hierarchical Flat Showing reserve(customer, count) calculatefee(showing):money {abstract DiscountStrategy calculatefee(showing):money {abstract Rule isstatisfiedby(showing) Amount Strategy Percent Strategy NonDiscount Strategy Sequence Rule TimeOfDay Rule 39 / 객체지향적인도메인레이어구축하기

40 할인규칙등록 Showing {abstract DiscountStrategy {abstract Rule reserve(customer, count) 1 * calculatefee(showing) calculatefee(showing) 1 0..* calculatefee(showing) 제목무지개여싞 상영시간 116 분요금 8,000 원 할인정책 AMOUNT DISCOUNT 할인금액 9,000 원 할인규칙 SEQUENCE RULE 할인대상 1 회 1 회 5 회 7 회 40 / 객체지향적인도메인레이어구축하기

41 할인규칙등록 Showing {abstract DiscountStrategy {abstract Rule reserve(customer, count) 1 * calculatefee(showing) calculatefee(showing) 1 0..* calculatefee(showing) 캡슐화경계 Boundary 제목무지개여싞 상영시간 116 분요금 8,000 원 할인정책 AMOUNT DISCOUNT 할인금액 9,000 원 Discount 할인규칙 할인대상 1 회 1 회 SEQUENCE RULE 5 회 7 회 Rule 41 / 객체지향적인도메인레이어구축하기

42 Problem 캡슐화저해 Flat 불변식위반Invariant Violation movie.setfee(8000); moviedao.save(movie); DiscountStrategy strategy = new AmountDiscountStrategy(9000); discountstrategydao.save(strategy); DiscountRule rule = new SequenceRule(1); discountruledao.save(rule); DiscountRule rule = new SequenceRule(1); discountruledao.save(rule); 42 / 객체지향적인도메인레이어구축하기

43 Conclusion 임피던스불일치의결과 Anemic Domain Model & Fat Service Layer public class { private Long id; private String title; public Long getid() { return id; public String gettitle() { return title; public class ReservationService { public Money calculatefee( movie, DiscountStrategy strategy) { if (strategy.isamounttype()) {... else if (strategy.ispercenttype()) {... else { public class ReservationService { public Reservation reserveshowing(int customerid, int showingid, int audiencecount) { Showing showing = showingdao.selectshowing(showingid); movie = moviedao.select(showing.getid()); long amount = calculatefee(movie.getfee(), showing, audiencecount); 43 / 객체지향적인도메인레이어구축하기

44 아키텍처패턴 User Interface Service Domain Infrastructure Transaction Script 44 / 객체지향적인도메인레이어구축하기

45 3. JPA Java Persistence API

46 DATA MAPPER 객체모델과 DB 스키마간의독립성유지 도메인객체는 DB 에대해독립적 ORMObject-Relational Mapper RULE Rule ID RuleMapper DISCOUNT_ID(FK) SequenceRule TimeOfDayRule insert update delete POSITION RULE_TYPE DAY_OF_WEEK START_TIME END_TUME SEQUENCE 46 / 객체지향적인도메인레이어구축하기

47 JPA Java Persistence API Java ORM 표준명세 Annotation 과 XML 을이용한 META DATA MAPPING 기능제공 Hibernate, EclipseLink RULE Rule ID SequenceRule TimeOfDayRule JPA Hibernate EclipseLink DISCOUNT_ID(FK) POSITION RULE_TYPE DAY_OF_WEEK START_TIME END_TUME SEQUENCE 47 / 객체지향적인도메인레이어구축하기

48 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 48 / 객체지향적인도메인레이어구축하기

49 Mismatch 구성요소크기 Granularity 의불일치 MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 제목 하나와앨리스 시간 Value Object 135분요금 Entity running Time <<value object>> Duration quantity 8,000 원 <<entity>> title calculatefee(showing):money fee <<value object>> Money amount currency 49 / 객체지향적인도메인레이어구축하기

50 Value Object Entity running Time <<value object>> Duration quantity MOVIE ID(PK) title <<entity>> calculatefee(showing):money <<value object>> Money amount TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY fee public class Duration nullable=true) private public class { private Duration runningtime; private Money public class Money nullable=true) private BigDecimal nullable=true) private Currency currency; 50 / 객체지향적인도메인레이어구축하기

51 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 51 / 객체지향적인도메인레이어구축하기

52 Mismatch 식별자불일치Identity Mismatch MOVIE ID 1 2 TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 시간을달리는소녀 95 8,000 KRW 시간을달리는소녀 95 8,000 KRW movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ 52 / 객체지향적인도메인레이어구축하기

53 Solution 영속컨텍스트Persistence Context User Interface UNIT OF WORK Begin TX Commit/ Rollback Service IDENTITY MAP Domain Infrastructure 53 / 객체지향적인도메인레이어구축하기

54 영화엔티티 Entity 조회 MOVIE ID 1 2 TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 시간을달리는소녀 95 8,000 KRW 시간을달리는소녀 95 8,000 KRW movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ 54 / 객체지향적인도메인레이어구축하기

55 영속컨텍스트Persistence Context User Interface UNIT OF WORK Begin TX Commit/ Rollback Service Domain IDENTITY MAP ID 1 ID 2 movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ Infrastructure 55 / 객체지향적인도메인레이어구축하기

56 첫번째영화엔티티다시조회 MOVIE ID 1 2 TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 시간을달리는소녀 95 8,000 KRW 시간을달리는소녀 95 8,000 KRW movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ 56 / 객체지향적인도메인레이어구축하기

57 영속컨텍스트 Persistence Context User Interface UNIT OF WORK Begin TX Commit/ Rollback Service Domain IDENTITY MAP ID 1 ID 2 movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ Infrastructure 57 / 객체지향적인도메인레이어구축하기

58 식별자일관성보장 데이터베이스주키 Primary Key 와객체식별자 Identity 간일관성유지 MOVIE ID 1 2 TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 시간을달리는소녀 95 8,000 KRW 시간을달리는소녀 95 8,000 KRW movie1 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ movie2 : title = 시간을달리는소녀 runningtime = 95 Fee = 8000\ 58 / 객체지향적인도메인레이어구축하기

59 식별자일관성보장 movie1 = entitymanager.load(.class, 1); movie2 = entitymanager.load(.class, 1); assertsame(movie1, movie2); 59 / 객체지향적인도메인레이어구축하기

60 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 60 / 객체지향적인도메인레이어구축하기

61 Mismatch 다형성 Polymorphism {abstract DiscountStrategy calculatefee(showing) registerdate DiscountStrategy Discount calculatefee(showing) id title runningtime fee feecurrency movieid discounttype amount percent registerdate Amount DiscountStrategy Percent calculatefee() DiscountStrategy Non DiscountStrategy calculatefee() Amount Discount 800 원 discountamount percent Percent Discount 10% No Discount 0 원 (%) public class ReservationService { public Money calculatefee( movie, DiscountStrategy discountstrategy) { if (discountstrategy.isamounttype()) {... else if (discountstrategy.ispercenttype()) {... else { / 객체지향적인도메인레이어구축하기

62 Solution 상속매핑Inheritance Mapping {abstract DiscountStrategy registerdate calculatefee(showing) Amount DiscountStrategy discountamount Percent DiscountStrategy percent Single Table Inheritance DISCOUNT MOVIE_ID(FK) DISCOUNT_TYPE FEE_AMOUNT FEE_CURRENCY PERCENT REGISTER_DATE Concrete Class Inheritance AMOUNT_DISCOUNT MOVIE_ID(FK) FEE_AMOUNT FEE_CURRENCY REGISTER_DATE PERCENT_DISCOUNT MOVIE_ID(FK) PERCENT REGISTER_DATE Class Table Inheritance DISCOUNT AMOUNT_DISCOUN T DISCOUNT_ID(FK) FEE_AMOUNT FEE_CURRENCY MOVIE_ID(FK) REGISTER_DATE PERCENT_DISCOUN T DISCOUNT_ID(FK) PERCENT 62 / 객체지향적인도메인레이어구축하기

63 Solution 다형성을통한조건분기제거 Discount calculatefee(showing) {abstract DiscountStrategy registerdate calculatefee(showing) Amount Discount 800 원 Percent Discount 10% Amount DiscountStrategy Percent DiscountStrategy Non DiscountStrategy discountamount percent No Discount 0 원 (%) public class { private DiscountStrategy discountstrategy; public Money calculatefee(showing showing) { return discountstrategy.calculatefee(showing); 63 / 객체지향적인도메인레이어구축하기

64 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 64 / 객체지향적인도메인레이어구축하기

65 Mismatch 연관관계 Association 와외래키Foreign Key MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY SHOWING ID(PK) MOVIE_ID(FK) SEQUENCE SHOWING_TIME calculatefee(showing) 1 * Showing reserve(customer, count) showing.get(); calculatefee(showing) 1 * Showing reserve(customer, count) movie.getshowings(); calculatefee(showing) 1 * Showing reserve(customer, count) movie.getshowings(); showing.get(); 65 / 객체지향적인도메인레이어구축하기

66 Solution 외래키맵핑Foreign Key Mapping MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY SHOWING ID(PK) MOVIE_ID(FK) SEQUENCE SHOWING_TIME Foreign Key public class private movie; public Money calculatefee() { return movie.calculatefee(this); Association calculatefee(showing) 1 * Showing reserve(customer, count) 66 / 객체지향적인도메인레이어구축하기

67 임피던스불일치유형 구성요소크기 Granularity 의불일치 식별자 Identity 의불일치 다형성 Polymorphism 의불일치 연관관계 Association 와외래키 Foreign Key 의불일치 캡슐화경계 Encapsulation Boundary 의불일치 67 / 객체지향적인도메인레이어구축하기

68 Mismatch 캡슐화 Encapsulation 불변식위반Invariant Violation Hierarchical Flat movie.setfee(8000); moviedao.save(movie); Amount Strategy Showing reserve(customer, count) calculatefee(showing):money {abstract DiscountStrategy calculatefee(showing):mon ey {abstract Rule isstatisfiedby(sho wing) Percent Strategy NonDiscoun t Strategy Sequence Rule TimeOf Day Rule DiscountStrategy strategy = new AmountDiscountStrategy(9000); discountstrategydao.save(strategy); DiscountRule rule = new SequenceRule(1); discountruledao.save(rule); DiscountRule rule = new SequenceRule(1); discountruledao.save(rule); 68 / 객체지향적인도메인레이어구축하기

69 Solution 페치젂략Fetch Strategy 지연페치Lazy Fetch public class optional=true, fetch=fetchtype.lazy) private DiscountStrategy discountstrategy; public class DiscountStrategy private Set<Rule> rules = new HashSet<Rule>(); Showing reserve(customer, count) 1 * calculatefee(showing) {abstract DiscountStrategy Proxy calculatefee(showing) 1 0..* {abstract Rule Proxy calculatefee(showing) 69 / 객체지향적인도메인레이어구축하기

70 Solution 페치젂략Fetch Strategy 선행페치Eager Fetch public class optional=true, fetch=fetchtype.eager) private DiscountStrategy discountstrategy; public class DiscountStrategy private Set<Rule> rules = new HashSet<Rule>(); Showing {abstract DiscountStrategy {abstract Rule reserve(customer, count) 1 * calculatefee(showing) calculatefee(showing) 1 0..* calculatefee(showing) 70 / 객체지향적인도메인레이어구축하기

71 Solution Aggregate = 캡슐화경계Encapsulation Boundary 예기치못한변경으로부터보호 객체그룹의불변성보장 Showing reserve(customer, count) Aggregate calculatefee(showing):money {abstract DiscountStrategy calculatefee(showing):money {abstract Rule isstatisfiedby(showing) Amount Strategy Percent Strategy NonDiscount Strategy Sequence Rule TimeOfDay Rule Eager Fetch Lazy Fetch 71 / 객체지향적인도메인레이어구축하기

72 4. 결롞

73 DOMAIN MODEL PATTERN 도메인을구성하는개념들을따르는도메인레이어 적젃한책임의분배와협력을통한객체지향적인도메인레이어 73 / 객체지향적인도메인레이어구축하기

74 임피던스불일치 맹목적으로테이블의구조를따르는객체구조 젃차적인 TRANSACTION SCRIPT 로향하는한가지이유 74 / 객체지향적인도메인레이어구축하기

75 JPA JavaPersistece API 임피던스불일치를해결할수있는실용적인솔루션 풍부한도메인레이어 Rich Domain Layer 의기반 75 / 객체지향적인도메인레이어구축하기

76 Domain Model 에초점을맞춰라 Showing Reservation Reservation Showing reserve(customer, count):reservation 1 0..* <<create>> 0..* Customer 1 calculatefee(showing):money {abstract DiscountStrategy calculatefee(showing):money {abstract Rule isstatisfiedby(showing):boolean Amount Strategy * Percent Strategy NonDiscount Strategy Sequence Rule TimeOfDay Rule Discount Rule 76 / 객체지향적인도메인레이어구축하기

77 Data Model 이더중요 77 / 객체지향적인도메인레이어구축하기

78 타협하라 Be Pragmatic 데이터베이스가하나의객체저장소로보여진다면매핑도구의기능과는상관없이데이터모델과객체모델이서로갈라지게해서는안된다. 일부객체관계의풍부함을희생해서관계모델에밀접하게한다. 객체매핑을단순화하는데도움이된다면정규화와같은정형화된관계표준을젃충한다. - Eric Evans 78 / 객체지향적인도메인레이어구축하기

79 Thank you. 79 / 객체지향적인도메인레이어구축하기

80 Question? 80 / 객체지향적인도메인레이어구축하기

81 참고자료 - Christian Bauer, Gavin King, Java Persistence with Hibernate, Manning, Michael Keith, Merrick Schincario, Pro JPA2 : Mastering the Java(TM) Persistence API, Apress, Chris Richardson, POJOs in Action : Developing Enterprise Applications with Lightweight Frameworks, Manning, Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, Eric Evans, Domain-Driven Design, Addison-Wesley, Kent Beck and Ward Cunningham, A Laboratory for Teaching Object Oriented Thinking, OOPSLA 89 Conference Proceedings, SIGPLAN Notices, 24(10), pp. 1-6, New Orleans, Louisiana, October Rebecca Wirfs-Brock and Brian Wilkerson, Object-Oriented Design: A Responsibility-Driven Approach, OOPSLA 89 Conference Proceedings, SIGPLAN Notices, 24(10), pp.71-76, New Orleans, Louisiana, October, Rebecca Wirfs-Brock, Alan McKean, Object Design : Roles, Responsibilities, and Collaborations, Addison- Wesley, / 객체지향적인도메인레이어구축하기

82 Appendix A. CRC Card

83 예매생성책임 예매생성에필요한정보의 EXPERT 에게할당 Creator Showing 상영정보를알고있다 예매정보를생성한다 83 / 객체지향적인도메인레이어구축하기

84 가격계산책임 영화가격정보를알고있는 EXPERT에할당Information Expert Showing 상영정보를알고있다 예매정보를생성한다 영화정보를알고있다 가격을계산한다 84 / 객체지향적인도메인레이어구축하기

85 할인율계산책임 할인율을적용할 STRATEGY 객체추가 Showing 상영정보를알고있다 예매정보를생성한다 영화정보를알고있다 가격을계산한다 Discount Strategy DiscountStrategy 할인율정책을알고있다 할인된가격을계산한다 85 / 객체지향적인도메인레이어구축하기

86 할인여부를판단할책임 할인정책을판단하기위한 SPECIFICATION 객체추가 Showing 상영정보를알고있다 예매정보를생성한다 영화정보를알고있다 가격을계산한다 Discount Strategy DiscountStrategy 할인율정책을알고있다 할인된가격을계산한다 Rule 할인정책을알고있다 할인여부를판단한다 Rule Showing 86 / 객체지향적인도메인레이어구축하기

87 Appendix B. Domain Model Pattern Implementation

88 Domain Layer Collaboration public class Showing { public Reservation reserve(customer customer, int audiencecount) { return new Reservation(customer, this, audiencecount); public class Reservation { public Reservation(Customer customer, Showing showing, int audiencecount) { this.customer = customer; this.showing = showing; this.fee = showing.calculatefee().times(audiencecount); this.audiencecount = audiencecount; public class Showing { public Money calculatefee() { return movie.calculatefee(this); public class { public Money calculatefee(showing showing) { return discountstrategy.calculatefee(showing); 88 / 객체지향적인도메인레이어구축하기

89 Domain Layer Collaboration public abstract class DiscountStrategy { public Money calculatefee(showing showing) { for(rule each : rules) { if (each.isstatisfiedby(showing)) { return getdiscountedfee(showing); return showing.getfixedfee(); abstract protected Money getdiscountedfee(showing showing); public abstract class Rule { abstract public boolean isstatisfiedby(showing showing); public class SequenceRule extends Rule { public boolean isstatisfiedby(showing showing) { return showing.issequence(sequence); public class TimeOfDayRule extends Rule { public boolean isstatisfiedby(showing showing) { return showing.isplayingon(dayofweek) && Interval.closed(startTime, endtime).includes(showing.getplaynginterval()); 89 / 객체지향적인도메인레이어구축하기

90 Domain Layer Collaboration public abstract class DiscountStrategy { public Money calculatefee(showing showing) { for(rule each : rules) { if (each.isstatisfiedby(showing)) { return getdiscountedfee(showing); return showing.getfixedfee(); abstract protected Money getdiscountedfee(showing showing); public class AmountDiscountStrategy extends DiscountStrategy { protected Money getdiscountedfee(showing showing) { return showing.getfixedfee().minus(discountamount); public class NonDiscountStrategy extends DiscountStrategy { protected Money getdiscountedfee(showing showing) { return showing.getfixedfee(); public class PercentDiscountStrategy extends DiscountStrategy { protected Money getdiscountedfee(showing showing) { return showing.getfixedfee().minus(showing.getfixedfee().times(percent)); 90 / 객체지향적인도메인레이어구축하기

91 Domain Layer Collaboration :Showing :Reservation : :DiscountStrategy :Rule reserve() new calculatefee() calculatefee() calculatefee() * isstatisfied() 91 / 객체지향적인도메인레이어구축하기

92 Data Model RESERVATION CUSTOMER ID ID CUSTOMER_ID(FK) SHOWING_ID(FK) FEE_AMOUNT FEE_CURRENCY AUDIENCE_COUNT CUSTOMER_ID NAME SHOWING MOVIE DISCOUNT RULE ID ID MOVIE_ID(FK) SEQUENCE SHOWING_TIME ID TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY MOVIE_ID(FK) DISCOUNT_TYPE FEE_AMOUNT FEE_CURRENCY PERCENT REGISTER_DATE DISCOUNT_ID(FK) POSITION RULE_TYPE DAY_OF_WEEK START_TIME END_TUME SEQUENCE 92 / 객체지향적인도메인레이어구축하기

93 Appendix C. Impedance Mismatch Summary

94 94 / 객체지향적인도메인레이어구축하기 Duration quantity Money amount currency running Time fee title MOVIE ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY * 1 Showing * 1 Showing * 1 Showing MOVIE SHOWING ID(PK) MOVIE_ID(FK) SEQUENCE SHOWING_TIME {abstract DiscountStrategy registerdate Percent Discount Strategy percent Amount Discount Strategy discountamount Non Discount Strategy DISCOUNT MOVIE_ID(FK) DISCOUNT_TYPE FEE_AMOUNT FEE_CURRENCY PERCENT REGISTER_DATE AMOUNT_ DISCOUNT MOVIE_ID(FK) FEE_AMOUNT FEE_CURRENCY REGISTER_DATE PERCENT_ DISCOUNT MOVIE_ID(FK) PERCENT REGISTER_DATE DISCOUNT MOVIE_ID(FK) REGISTER_DATE AMOUNT_ DISCOUNT DISCOUNT_ID(FK) FEE_AMOUNT FEE_CURRENCY PERCENT_ DISCOUNT DISCOUNT_ID(FK) PERCENT ID(PK) TITLE RUNNING_TIME FEE_AMOUNT FEE_CURRENCY 임피던스불일치 Impedance Mismatch

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

OOP 소개

OOP 소개 OOP : @madvirus, : madvirus@madvirus.net : @madvirus : madvirus@madvirus.net ) ) ) 7, 3, JSP 2 ? 3 case R.id.txt_all: switch (menu_type) { case GROUP_ALL: showrecommend("month"); case GROUP_MY: type =

More information

슬라이드 1

슬라이드 1 Continuous Integration 엔터프라이즈어플리케이션아키텍처 조영호카페PJT팀 2008.10.01 youngho.cho@nhncorp.com 목차 1. Domain Logic Pattern 2. Data Source Pattern 3. Putting It All Together 1. Domain Logic Pattern Layered Architecture

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

소프트웨어개발방법론

소프트웨어개발방법론 사용사례 (Use Case) Objectives 2 소개? (story) vs. 3 UC 와 UP 산출물과의관계 Sample UP Artifact Relationships Domain Model Business Modeling date... Sale 1 1..* Sales... LineItem... quantity Use-Case Model objects,

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

ETL_project_best_practice1.ppt

ETL_project_best_practice1.ppt ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

슬라이드 1

슬라이드 1 [ CRM Fair 2004 ] CRM 1. CRM Trend 2. Customer Single View 3. Marketing Automation 4. ROI Management 5. Conclusion 1. CRM Trend 1. CRM Trend Operational CRM Analytical CRM Sales Mgt. &Prcs. Legacy System

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

ecorp-프로젝트제안서작성실무(양식3)

ecorp-프로젝트제안서작성실무(양식3) (BSC: Balanced ScoreCard) ( ) (Value Chain) (Firm Infrastructure) (Support Activities) (Human Resource Management) (Technology Development) (Primary Activities) (Procurement) (Inbound (Outbound (Marketing

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

untitled

untitled 3 IBM WebSphere User Conference ESB (e-mail : ljm@kr.ibm.com) Infrastructure Solution, IGS 2005. 9.13 ESB 를통한어플리케이션통합구축 2 IT 40%. IT,,.,, (Real Time Enterprise), End to End Access Processes bounded by

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

소프트웨어 개발의 성공 열쇠 - 오브젝트 디자인

소프트웨어 개발의 성공 열쇠 - 오브젝트 디자인 .,,.,,.,...,...,,.!,!.,,......,.. 18..,....,.....,,......,,.?. 6 (1, 2, 3, 4, 5, 6 ).. 1,,.,. 2,. 3, 19. 4,,. 5,. 6,,. 7 10.. 7,. 8,,,. 9,,. 10, 3 (, ),...,,.,. Instantiations Digitalk...,. Smalltalk,

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

More information

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8>

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8> 데이터베이스 (Database) ER- 관계사상에의한관계데이터베이스설계 문양세강원대학교 IT특성화대학컴퓨터과학전공 설계과정 [ 그림 3.1] 작은세계 요구사항들의수정과분석 Functional Requirements 데이타베이스요구사항들 FUNCTIONAL ANALYSIS 개념적설계 ERD 사용 High level ltransaction Specification

More information

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석 Inclusion Polymorphism 과 UML 클래스다이어그램구조에의거한디자인패턴해석 이랑혁, 이현우, 고석하 rang2guru@gmail.com, westminstor@naver.com, shkoh@cbnu.ac.kr 충북대학교경영정보학과 충북청주시흥덕구개신동 12 번지충북대학교학연산공동기술연구원 843 호 Tel:043-272-4034 55 Keyword

More information

Intro to Servlet, EJB, JSP, WS

Intro to Servlet, EJB, JSP, WS ! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

<C0DAB7E120C7D5BABB2E687770>

<C0DAB7E120C7D5BABB2E687770> 제5회 SW공학 Technical 세미나 패턴 저자와 함께하는 패턴이야기 세부 프로그램 시 간 내 용 강사진 13:30 ~ 14:00 등 록 14:00 ~ 14:05 인사말 14:05 ~ 15:00 15:00 ~ 15:30 15:30 ~ 17:00 o 미워도 다시 보는 패턴이야기 - SW 설계의 패턴과 다양한 패턴의 주제 소개 - 패턴의 3박자와 패턴으로

More information

final_thesis

final_thesis CORBA/SNMP DPNM Lab. POSTECH email : ymkang@postech.ac.kr Motivation CORBA/SNMP CORBA/SNMP 2 Motivation CMIP, SNMP and CORBA high cost, low efficiency, complexity 3 Goal (Information Model) (Operation)

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

Web Application을 구성하는 패턴과 Spring ROO의 사례

Web Application을 구성하는 패턴과 Spring ROO의 사례 Spring Roo 와함께하는 쾌속웹개발 정상혁, KSUG (www.ksug.org) 목차 1. Tool 2. Demo 3. Application 1. Tool 1.1 개요 1.2 Command line shell 1.3 Round-trip 1.4 익숙한도우미들 1.1 개요 Text Based RAD Tool for Java Real Object Oriented의첫글자들

More information

Service-Oriented Architecture Copyright Tmax Soft 2005

Service-Oriented Architecture Copyright Tmax Soft 2005 Service-Oriented Architecture Copyright Tmax Soft 2005 Service-Oriented Architecture Copyright Tmax Soft 2005 Monolithic Architecture Reusable Services New Service Service Consumer Wrapped Service Composite

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based

Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based e- Business Web Site 2002. 04.26 Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based Approach High E-Business Functionality Web Web --based based KMS/BIS

More information

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석 ,, Even the short history of the Web system, the techniques related to the Web system have b een developed rapidly. Yet, the quality of the Webbased application software has not improved. For this reason,

More information

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š 솔루션 2006 454 2006 455 2006 456 2006 457 2006 458 2006 459 2006 460 솔루션 2006 462 2006 463 2006 464 2006 465 2006 466 솔루션 2006 468 2006 469 2006 470 2006 471 2006 472 2006 473 2006 474 2006 475 2006 476

More information

No Slide Title

No Slide Title J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

파워포인트 템플릿

파워포인트 템플릿 ibizsoftware 정호열차장 ( 표준프레임워크오픈커뮤니티커미터 ) Agenda 1. ibatis 와 Hibernate 의개념및특징 2. Hibernate 와 JPA 쿼리종류 3. ibatis 와 Hibernate 동시사용을위한 Transaction 처리방안 4. @EntityListeners 활용방법 Agenda 5. Hibernate 사용시 Dynamic

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

thesis

thesis CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

DW 개요.PDF

DW 개요.PDF Data Warehouse Hammersoftkorea BI Group / DW / 1960 1970 1980 1990 2000 Automating Informating Source : Kelly, The Data Warehousing : The Route to Mass Customization, 1996. -,, Data .,.., /. ...,.,,,.

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

정보기술응용학회 발표

정보기술응용학회 발표 , hsh@bhknuackr, trademark21@koreacom 1370, +82-53-950-5440 - 476 - :,, VOC,, CBML - Abstract -,, VOC VOC VOC - 477 - - 478 - Cost- Center [2] VOC VOC, ( ) VOC - 479 - IT [7] Knowledge / Information Management

More information

PowerPoint Template

PowerPoint Template 9. 객체지향프로그래밍 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 9.1 개요 9.2 객체지향프로그래밍언어 9.3 추상자료형 9.4 상속 9.5 동적바인딩 9.1 객체지향의개념 (1) 3 객체지향의등장배경 소프트웨어와하드웨어의발전불균형 소프트웨어모듈의재사용과독립성을강조 객체 (object) 란? 우리가다루는모든사물을일컫는말 예 ) 하나의점, 사각형,

More information

( )부록

( )부록 A ppendix 1 2010 5 21 SDK 2.2. 2.1 SDK. DevGuide SDK. 2.2 Frozen Yoghurt Froyo. Donut, Cupcake, Eclair 1. Froyo (Ginger Bread) 2010. Froyo Eclair 0.1.. 2.2. UI,... 2.2. PC 850 CPU Froyo......... 2. 2.1.

More information

논리적 구조 설계: 패키지도

논리적 구조 설계: 패키지도 논리적구조설계 : 패키지도 Objectives. UML. 2 객체설계로옮겨가기 (interaction diagram). /.. : UML -UML. -UML. -. 1. 2. 3 문맥 Sample UP Artifact Relationships Business Modeling Domain Model * * Requirements Use-Case Model Vision

More information

DBPIA-NURIMEDIA

DBPIA-NURIMEDIA e- 비즈니스연구 (The e-business Studies) Volume 17, Number 3, June, 30, 2016:pp. 273~299 ISSN 1229-9936 (Print), ISSN 2466-1716 (Online) 원고접수일심사 ( 수정 ) 게재확정일 2016. 06. 11 2016. 06. 24 2016. 06. 26 ABSTRACT e-

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 손시운 ssw5176@kangwon.ac.kr 실제세계는객체로이루어진다. 2 객체와메시지 3 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 4 객체 5 객체란? 객체 (Object) 는상태와동작을가지고있다. 객체의상태 (state) 는객체의특징값 ( 속성 ) 이다. 객체의동작 (behavior) 또는행동은객체가취할수있는동작

More information

Blog

Blog Objective C http://ivis.cwnu.ac.kr/tc/dongupak twitter : @dongupak 2010. 10. 9.. Blog WJApps Blog Introduction ? OS X -. - X Code IB, Performance Tool, Simulator : Objective C API : Cocoa Touch API API.

More information

기타자료.PDF

기타자료.PDF < > 1 1 2 1 21 1 22 2 221 2 222 3 223 4 3 5 31 5 311 (netting)5 312 (matching) 5 313 (leading) (lagging)6 314 6 32 6 321 7 322 8 323 13 324 19 325 20 326 20 327 20 33 21 331 (ALM)21 332 VaR(Value at Risk)

More information

03.Agile.key

03.Agile.key CSE4006 Software Engineering Agile Development Scott Uk-Jin Lee Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2018 Background of Agile SW Development

More information

03-최신데이터

03-최신데이터 Database Analysis II,,. II.. 3 ( ),.,..,, ;. (strong) (weak), (identifying relationship). (required) (optional), (simple) (composite), (single-valued) (multivalued), (derived), (identifier). (associative

More information

제목

제목 Object-Oriented Design Agile for Software Development Story 7. 작 성 자 : 고형호 메 일 : hyungho.ko@gmail.com 홈페이지 : 최초작성일 : 2007.08.10 최종작성일 : 2007.09.05 1 Goal A Set of Contained Responsibilities 2 Content 1.

More information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형 바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인

More information

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT 3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)

More information

06.AnalysisModeling.key

06.AnalysisModeling.key CSE4006 Software Engineering Analysis Modeling Scott Uk-Jin Lee Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2018 Overview of Analysis Modeling 1. 2.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 CRM Data Quality Management 2003 2003. 11. 11 (SK ) hskim226@skcorp.com Why Quality Management? Prologue,,. Water Source Management 2 Low Quality Water 1) : High Quality Water 2) : ( ) Water Quality Management

More information

Oracle Apps Day_SEM

Oracle Apps Day_SEM Senior Consultant Application Sales Consulting Oracle Korea - 1. S = (P + R) x E S= P= R= E= Source : Strategy Execution, By Daniel M. Beall 2001 1. Strategy Formulation Sound Flawed Missed Opportunity

More information

JMF3_심빈구.PDF

JMF3_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:

More information

제 1 강 희망의 땅, 알고리즘

제 1 강 희망의 땅, 알고리즘 제 2 강 C++ 언어개요 이재규 leejaku@shinbiro.com Topics C++ 언어의역사와개요 프로그래밍언어의패러다임변화 C 의확장언어로서의 C++ 살펴보기 포인터와레퍼런스 새로운메모리할당 Function Overloading, Template 객체지향언어로서의 C++ 살펴보기 OOP 의개념과실습 2.1 C++ 의역사와개요 프로그래밍언어의역사 C++

More information

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f… Command JSTORM http://www.jstorm.pe.kr Command Issued by: < > Revision: Document Information Document title: Command Document file name: Revision number: Issued by: Issue

More information

C++ Programming

C++ Programming C++ Programming 클래스와데이터추상화 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 객체지향프로그래밍 클래스와객체 2 객체지향프로그래밍 객체지향언어 (Object-Oriented Language) 프로그램을명령어의목록으로보는시각에서벗어나여러개의 독립된단위, 즉 객체 (Object) 들의모임으로파악

More information

OOP 소개

OOP 소개 OOP 소개 최범균트위터 : @madvirus, 이메일 : madvirus@madvirusnet 강사소개 최범균 트위터 : @madvirus 이메일 : madvirus@madvirusnet 이력 현 ) 에스씨지솔루션즈 전 ) 위메이드엔터테인먼트 전 ) 다음커뮤니케이션 자바 7 프로그래밍, JSP 프로그래밍등저 2 TOC 비용 절차지향 vs 객체지향 객체지향

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

MasoJava4_Dongbin.PDF

MasoJava4_Dongbin.PDF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr

More information

ARMBOOT 1

ARMBOOT 1 100% 2003222 : : : () PGPnet 1 (Sniffer) 1, 2,,, (Sniffer), (Sniffer),, (Expert) 3, (Dashboard), (Host Table), (Matrix), (ART, Application Response Time), (History), (Protocol Distribution), 1 (Select

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

제목

제목 Object-Oriented Design Agile for Software Development Story 4. 작 성 자 : 고형호 메 일 : hyungho.ko@gmail.com 홈페이지 : 최초작성일 : 2007.06.12 최종작성일 : 2007.08.31 1 2 Goal Flexibility & Reusability Content 1. Flexibility

More information

Microsoft PowerPoint - XP Style

Microsoft PowerPoint - XP Style Business Strategy for the Internet! David & Danny s Column 유무선 통합 포탈은 없다 David Kim, Danny Park 2002-02-28 It allows users to access personalized contents and customized digital services through different

More information

교육2 ? 그림

교육2 ? 그림 Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,

More information

SchoolNet튜토리얼.PDF

SchoolNet튜토리얼.PDF Interoperability :,, Reusability: : Manageability : Accessibility :, LMS Durability : (Specifications), AICC (Aviation Industry CBT Committee) : 1988, /, LMS IMS : 1997EduCom NLII,,,,, ARIADNE (Alliance

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

Study on the Improvement of Management System through Analysis of golf semi- market: Focus on Physical Education Facility Act Ji-Myung Jung 1, Ju-Ho Park 2 *, & Youngdae Lee 3 1 Korea Institute of Sport

More information

초보자를 위한 C# 21일 완성

초보자를 위한 C# 21일 완성 C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK

More information

JavaGeneralProgramming.PDF

JavaGeneralProgramming.PDF , Java General Programming from Yongwoo s Park 1 , Java General Programming from Yongwoo s Park 2 , Java General Programming from Yongwoo s Park 3 < 1> (Java) ( 95/98/NT,, ) API , Java General Programming

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 2. 데이터베이스관리시스템 2013.03.11. 오병우 컴퓨터공학과 Inconsistency of file system File System Each application has its own private files Widely dispersed and difficult to control File 중심자료처리시스템의한계 i. 응용프로그램의논리적파일구조는직접물리적파일구조로구현

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

세션 2-2(허태경).ppt

세션 2-2(허태경).ppt , an IBM Company 2005 IBM Corporation Discover Prepare Transform & Deliver????????? Time To Value DISCOVER ProfileStage Service-Oriented Architecture Event Management PREPARE,, QualityStage Enterprise

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information

05-class.key

05-class.key 5 : 2 (method) (public) (private) (interface) 5.1 (Method), (public method) (private method) (constructor), 3 4 5.2 (client). (receiver)., System.out.println("Hello"); (client object) (receiver object)

More information

ibmdw_rest_v1.0.ppt

ibmdw_rest_v1.0.ppt REST in Enterprise 박찬욱 1-1- MISSING PIECE OF ENTERPRISE Table of Contents 1. 2. REST 3. REST 4. REST 5. 2-2 - Wise chanwook.tistory.com / cwpark@itwise.co.kr / chanwook.god@gmail.com ARM WOA S&C AP ENI

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Team 1 201611293 전다윤 201311287 엄현식 201311318 최정헌 01. 문서수정 02. System Test Review 03. Static Test Review 04. 소감 1 문서수정 문서수정 수정 System Test 문서 + 전문서에없던수정사항 수정 System Test 문서 문서수정 소프트웨어검증팀의문서대로수정한사항들 1008

More information

Portal_9iAS.ppt [읽기 전용]

Portal_9iAS.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C

More information

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint 장강의노트.ppt 클래스와객체 클래스와객체 객체 : 우리주변의어떤대상의모델 - 예 : 사람, 차, TV, 개 객체 = 상태 (state) + 행동 (behavior) - 예 : 개의상태 - 종자, 이름, 색개의행동 - 짖다, 가져오다 상태는변수로행동은메소드로나타냄 객체는클래스에의해정의된다. 클래스는객체가생성되는틀혹은청사진이다. 2 예 : 클래스와객체 질문 : 클래스와객체의다른예는?

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

DBR판형

DBR판형 PDF EDITION august 2012 Issue 2, No.111 저작권 공지 본 PDF 문서에 실린 글, 그림, 사진 등 저작권자가 표시되어 있지 않 은 모든 자료는 발행사인 (주)동아일보사에 저작권이 있으며, 사전 동의 없이는 어떠한 경우에도 사용할 수 없습니다. 무단 전재 재배포 금지 본 PDF 문서는 DBR 독자 및 www.dongabiz.com

More information

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp 2015년도 국가직 9급 컴퓨터 일반 문 1. 시스템 소프트웨어에 포함되지 않는 것은? 1 1 스프레드시트(spreadsheet) 2 로더(loader) 3 링커(linker) 4 운영체제(operating system) - 시스템 소프트웨어 : 운영체제, 데이터베이스관리 프로그램,, 컴파일러, 링커, 로더, 유틸리티 소프트웨 어 등 - 스프레드시트 : 일상

More information

Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp DOI: A study on Characte

Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp DOI:   A study on Characte Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp.381-404 DOI: http://dx.doi.org/10.21024/pnuedi.28.1.201803.381 A study on Characteristics of Action Learning by Analyzing Learners Experiences

More information