모듈화란?

ellyheetov·2025년 7월 7일
0
post-thumbnail

모듈

모듈(module) 은 import 가능한 코드 단위를 말해요.

모듈화란?

모듈화는 프로젝트를 기능별, 책임별로 독립적인 모듈로 나누는 것을 의미해요.

예시

인스타 그램을 예로 들어볼게요.

많은 기능이 들어갈수록 한 팀이 앱을 다 개발하기는 어려워요.
릴스(Reels) 기능만 봐도 영상을 편집하는 기능과, 영상을 재생하는 기능이 있는데, 각각이 상당히 복잡해요.

그래서 팀을 역할별로 분리하는 거예요. 릴스 에디터를 담당하는 팀과 뷰어를 담당하는 팀으로 나누는 거죠.
이렇게 기능별로 역할을 나누고, 독립적으로 개발할 수 있도록 만드는 것이 모듈화예요.

import SwiftUI
import ViewerModule
import EditorModule

struct InstagramAppView: View {
    let player = VideoPlayer() // ViewerModule 에서 관리 
    let editor = VideoEditor() // EditorModule 에서 관리
    
    var body: some View {
        VStack(spacing: 20) {
            Button("Play Video") {
                player.play()
            }
            
            Button("Pause Video") {
                player.pause()
            }
            
            Button("Trim Video") {
                editor.trim()
            }
        }
        .padding()
    }
}

에디터를 개발하는 팀은 에디터에만 집중하고, 뷰어를 개발하는 팀은 뷰어에만 집중할 수 있죠.

모듈화가 왜 필요해요?

🤼‍♂️ 1. 팀 협업 효율

앞에서 말한 것처럼 기능을 모듈 단위로 분리하면 각 팀이 독립적으로 개발할 수 있어요.

👷🏻 2. 빌드 속도 최적화

프로젝트가 커질수록 전체 빌드 시간은 길어져요. 하지만, 모듈화를 하면 변경된 모듈만 빌드하는 Incremental Build 가 가능해요.

👩🏻‍🔧 3. 코드 유지보수 용이

코드 가독성이 높아지는 장점은 말할 필요도 없고요.
모듈별로 책임이 명확해 지므로, 버그 수정이나 기능 추가 시 영향 범위를 쉽게 파악할 수 있어요.

🚧 4. 코드 유지보수 용이

다른 앱에서 이 모듈을 그대로 가지고 와서 사용할 수 있어요.

🧪 5. 테스트 용이

모듈 단위로 독립적으로 테스트 코드를 작성할 수 있어요.

정리

모듈화란 독립적인 단위로 나누어 개발하는 설계방법이에요. Swift Package, Library, Framework 등으로 모듈을 나눌 수 있어요. 역할을 분리함으로써, 협업의 효율성이 증가하고 유지보수가 용이해지는 장점이 있어요.

profile
 iOS Developer 좋아하는 것만 해도 부족한 시간

0개의 댓글