구조(Structure) = 재료
케이크 만들기의 구조:
- 밀가루 2컵
- 달걀 3개
- 우유 1컵
- 설탕 1컵
- 버터 200g
- 오븐 기구
- 믹서기
설계(Design) = 조리법/방법
케이크 만드는 설계:
1. 반죽 순서
2. 온도 조절 방법
3. 굽는 시간
4. 섞는 방식
# 구조(Structure) - 재료들
class 재료들:
def __init__(self):
self.밀가루 = Ingredient("밀가루", 200)
self.설탕 = Ingredient("설탕", 100)
self.달걀 = Ingredient("달걀", 3)
self.우유 = Ingredient("우유", 100)
# 설계(Design) - 조리법
class 케이크만들기:
def __init__(self):
self.재료 = 재료들()
self.오븐 = Oven()
self.믹서기 = Mixer()
def 반죽하기(self):
# 설계: 어떤 순서로 섞을 것인가
self.믹서기.섞기(self.재료.달걀, self.재료.설탕)
self.믹서기.섞기(self.재료.밀가루)
self.믹서기.섞기(self.재료.우유)
def 굽기(self):
# 설계: 어떤 온도로 얼마나 구울 것인가
self.오븐.예열(180)
self.오븐.굽기(40) # 40분
# 실제 게임 시스템에 적용
class RPGGame:
# 구조: 게임에 필요한 재료들
def __init__(self):
self.캐릭터 = Character()
self.몬스터들 = []
self.아이템들 = []
self.맵 = GameMap()
# 설계: 게임 진행 방법
def 게임진행(self):
while True:
self.입력처리()
self.캐릭터이동()
self.전투처리()
self.화면그리기()
# 웹 애플리케이션 예시
class WebApp:
# 구조: 웹앱 구성요소들
def __init__(self):
self.데이터베이스 = Database()
self.사용자관리 = UserManager()
self.화면 = WebInterface()
# 설계: 실행 방법
def 실행(self):
self.사용자확인()
self.데이터가져오기()
self.화면표시()
아키텍처 구조와 설계 차이점 글 읽어보기
실생활 비유로 보는 차이점
- 자동차의 경우:
- 구조(재료): 엔진, 바퀴, 핸들, 브레이크
- 설계(방법): 동력 전달 방식, 제동 시스템 작동 방법
- 스마트폰의 경우:
- 구조(재료): 화면, 배터리, 프로세서, 카메라
- 설계(방법): UI 작동 방식, 배터리 절약 기능, 카메라 처리 방법
- 게임의 경우:
- 구조(재료): 캐릭터, 맵, 아이템, 점수시스템
- 설계(방법): 게임 진행방식, 충돌처리방법, 점수계산방식
중요한 포인트
- 구조(재료)가 좋아도 설계(방법)가 나쁘면:
- 좋은 재료로 만든 맛없는 요리
- 고급 부품으로 만든 비효율적인 기계
- 설계(방법)가 좋아도 구조(재료)가 나쁘면:
- 뛰어난 요리사가 나쁜 재료로 요리
- 잘 짜인 프로그램이 낮은 성능의 하드웨어에서 실행
- 성공적인 시스템을 위해서는:
- 좋은 재료(구조)
- 좋은 조리법(설계)
- 둘 사이의 조화로운 균형
'개발하기' 카테고리의 다른 글
003 테마 꾸미기 (Rife Free) (0) | 2024.11.22 |
---|---|
001 워드프레스 기본 메뉴 설명합니다. (1) | 2024.11.22 |
아키텍처에서 구조(Structure)와 설계(Design)의 차이점 (1) | 2024.11.15 |
닌텐도 스위치 개발키트 구매 가이드 (0) | 2024.11.15 |
config.php와 index.php의 업데이트가 필요한 경우 (0) | 2024.11.07 |