확실하게 다시 한번 BxM의 일반적인 흐름을 아주 쉽게 설명해 드릴게요. 비유를 들어볼까요?
BxM 시스템은 마치 레스토랑과 같아요.
1. 손님 (WebSquare 화면 - xml, js)
- 역할: 음식을 주문하는 고객입니다. 메뉴판(UI)을 보고, 원하는 음식을 선택(버튼 클릭, 데이터 입력)한 후, 주문(서버 요청)을 합니다.
- 파일:
- OOO.xml: 메뉴판 (화면의 디자인과 버튼, 입력창 등)
- OOO.js: 고객이 주문을 누르면 주문서를 작성하고 주방으로 보내는 행동
2. 웨이터 (SC: Service Controller - SC_OOO.java)
- 역할: 손님(WebSquare)의 주문(요청)을 가장 먼저 받습니다. 주문 내용을 확인하고, 어떤 요리사에게 어떤 주문을 전달해야 할지 판단합니다.
- 하는 일:
- "주문 들어왔습니다!" (WebSquare 요청 수신)
- "손님은 김치찌개를 시켰네. 김치찌개 전문 요리사에게 전달해야지." (요청에 맞는 BC 호출)
- 주문이 제대로 처리되는지 전체 과정을 지켜봅니다. (트랜잭션 관리)
- 파일: SC_OOO.java (자바 클래스)
3. 요리사 (BC: Business Component - BC_OOO.java)
- 역할: 웨이터(SC)에게서 주문을 받아, 실제 음식을 만드는 핵심적인 비즈니스 로직을 수행합니다. 여러 재료(데이터)를 가져와 요리(가공, 계산)합니다.
- 하는 일:
- "김치찌개 주문이요? 알겠습니다." (SC로부터 요청 받음)
- "재료가 있나? 김치, 돼지고기, 두부... 창고(데이터베이스)에 있는지 식자재 담당에게 물어봐야겠다." (DBIO 호출)
- 재료를 받아와서 레시피대로 요리합니다. (복잡한 비즈니스 로직 처리)
- 완성된 요리를 웨이터에게 전달합니다. (SC로 결과 반환)
- 파일: BC_OOO.java (자바 클래스)
4. 식자재 담당 (DBIO: Data Base Input/Output - OOO.dbio)
- 역할: 요리사(BC)의 요청을 받아 창고(데이터베이스)에 가서 필요한 식자재(데이터)를 가져오거나, 새로운 식자재를 넣거나, 기존 식자재를 정리하는 일을 전담합니다. 실제 창고 담당자와 대화하는 전문가입니다.
- 하는 일:
- "요리사님, 김치 있어요? 돼지고기 있어요?" (BC로부터 데이터 요청)
- "네, 창고에 있습니다. 가져다 드릴게요." (데이터베이스에서 조회/저장/수정/삭제)
- 여기서 OOO.dbio 파일은 식자재 담당자가 창고에 가서 무엇을 어떻게 가져올지 적어둔 '식자재 목록표 + 가져오는 방법'이 적힌 문서입니다. (SQL 쿼리 정의)
- 파일: OOO.dbio (XML 형태의 파일)
흐름 요약:
- **손님(WebSquare)**이 **웨이터(SC)**에게 주문합니다.
- **웨이터(SC)**는 주문을 **요리사(BC)**에게 전달합니다.
- **요리사(BC)**는 요리를 만들기 위해 **식자재 담당(DBIO)**에게 재료를 요청합니다.
- **식자재 담당(DBIO)**은 창고(데이터베이스)에서 재료를 가져오거나 정리하여 **요리사(BC)**에게 다시 줍니다.
- **요리사(BC)**는 재료로 요리를 완성하여 **웨이터(SC)**에게 줍니다.
- **웨이터(SC)**는 완성된 요리를 **손님(WebSquare)**에게 가져다줍니다.
- **손님(WebSquare)**은 받은 요리를 화면에 봅니다.
이렇게 각 역할이 나뉘어 있어서 시스템이 더 깔끔하고, 나중에 요리 방법이 바뀌거나, 창고를 옮겨도 다른 부분에 영향을 덜 주게 되는 장점이 있습니다.
'Sql' 카테고리의 다른 글
SQL 프로그램없이 웹으로 실습하기 (1) | 2025.07.07 |
---|---|
실무에서 SQL 쿼리를 초보자가 쉽게 이해하고 익히려면 (0) | 2025.07.07 |
IN,BETWEEN,EXISTS (0) | 2025.07.07 |
GROUP BY 와 HAVING (0) | 2025.07.07 |
BxM 프레임워크의 일반적인 계층 이해(1) (1) | 2025.07.02 |