ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1072)
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (183)
      • Unreal (69)
      • Unity (103)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (348)
      • C++ (167)
      • C# (90)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • 파이썬
  • 알고리즘
  • 클래스
  • 언리얼
  • 배열
  • 오블완
  • 포인터
  • 문자열
  • 백준
  • 프로그래머스
  • 함수
  • c#
  • Unity
  • string
  • 티스토리챌린지
  • 유니티
  • C
  • 그래픽스
  • SQL
  • C++

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

CS/공통

모듈 Module

2023. 8. 24. 15:51

1. 일반적으로, 모듈이란?

  • 보다 작고 이해할 수 있는 단위로 나뉘어진 것
  • 본체(本體)에서 분리되어, 
    - 작은 부분으로 유기적으로(기능별로) 구성되어 있다가,
    - 필요할 때 마다, 본체에 합류하여 그 기능을 수행할 수 있는 것
  • 통상, 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체로 봄
    - 例) 각기 다른 여러 모듈 단위로 조립하여 전체를 완성 (모듈 조립)
    - 例) 표준화된 부품 (조립식 부품)

2. 문제를 다룰 때 모듈화 하는 이유는?

  • 모듈화는, 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정
    - 여기서, 작게 나누어진 각 부분을 모듈이라고 함
    각 모듈은 논리적 또는 기능적으로 분리되어 격리되고 독립적인 일을 수행
  • 모듈화 과정의 잇점
    - 기본적인 것을 엮어서 복잡한 형상으로 짜맞추고, 
    - 이를 요약하여(간추리어) 이름을 짓는 등,
    - 더 높은 수준으로 만들어가면서 (추상화),
    - 큰 눈으로 시스템을 구조적으로 바로볼 수 있게 함

3. 모듈의 특성

  • Unity (한가지 일만 수행)
  • Smallness (간단명료)
  • Simplicity (단순성)
  • Independency (독립성) 등

4. 모듈화 장점

  • 수정 용이
  • 재사용성 용이
  • 유지관리 쉬움
  • ※ 이때, 모듈간 호환성 고려 필요 => 표준화가 중요

5. [전산] 프로그래밍에서 모듈이란?

  • 소프트웨어 묶음을 만들고, 코드를 네임스페이스로써 구분하는 메커니즘
    - 언어별 例)
    . 자바 언어 : 패키지는 여러 클래스들의 모음이고, 모듈은 여러 패키지들의 모음
    .. (자바 : 모듈 > 패키지 > 클래스)
    . 기타 언어 : 모듈은 기능(함수)별로 여럿을 하나로 정리/모으거나 분할하는 것
    .. 통상, 다른 프로그램의 일부가 될 수 있는 유용한 내용들을 모아놓은 파일로써,
    .. 필요할 때 마다, 가져다 쓸 수 있도록 (재사용) 하기 위한 것
  • 모듈화 원칙
    - 개별 기능별로 하나의 완결된 구조를 가져야 함
    - 각 모듈별로 독립성을 가져야 함
    - 각 모듈은 반드시 입구,출구가 있어야 함
  • 모듈화 특징
    - 구조 : 여러 기능들을 하나로 모으고, 이들이 함께 공유하는 데이터들로써 구성됨
    - 용법 : 패키지,모듈 등을 파일 단위로 정의하여두고, 이를 가져오는(import) 방식이 대부분임
    - 장점 : 큰 기능(어플리케이션)을 작은 기능 단위로 나누어 관리 가능
    . 유지보수 용이, 코드의 가독성이 좋아지는 등
  • 모듈화의 평가 (분할된 모듈 간의 독립성 평가)
    - 결합도 (Coupling)
    - 응집력 (Cohesion)

6. [전산] 프로그래밍에서, 모듈화, 캡슐화 비교

`구조적 프로그래밍 기법에서의 모듈화`와 `객체지향 프로그래밍 기법에서의 캡슐화`는
유사한 의미를 갖으나, 
- 모듈화는, 기능별로 구분되어 완결된 구조를 지니게 한 것을 의미하나,
- 캡슐화는, 보다 잘 설계된 모듈에서 나오는 특성을 주로 의미함
. 복잡하고 불필요한 부분 등을 사용자에게 안보이게 함
. 외부세계와 인터페이스를 잘 할 수 있도록 표준화시킨 포장

 

모듈 (ktword.co.kr)

저작자표시 (새창열림)

'CS > 공통' 카테고리의 다른 글

Debug - Release 차이  (0) 2023.12.01
SDK, API의 개념과 차이점  (0) 2023.10.09
컴포넌트 Component  (0) 2023.08.24
모듈과 컴포넌트의 차이점  (0) 2023.07.17
객체[Object]와 인스턴스[Instance]  (0) 2023.07.06
    'CS/공통' 카테고리의 다른 글
    • Debug - Release 차이
    • SDK, API의 개념과 차이점
    • 컴포넌트 Component
    • 모듈과 컴포넌트의 차이점
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바