19 May 2024

Contents:

Package 접근제어자 사용

작성일 : 2024-04-14 작성자 : 안정민

상태

  • 수락됨(Accepted)

배경

  • SE-0386 제안서가 Swift 5.9에 추가됨
  • 현재 수백 개의 모듈을 사용 중
  • 기존의 Public, Open 접근 제어자만 사용하여 의도하지 않은 인터페이스 공개로 인한 문제 발생
  • 동일 도메인 내에서만 공유하는 인터페이스를 외부에서 접근하지 못하도록 제한이 필요함

결정

  • Package 접근제어자 사용

이유

  • 동일 도메인 내에서만 공유하는 인터페이스는 외부에서 접근하지 못하도록 제한 필요
  • Package 접근제어자를 사용하여 필요한 인터페이스만 Public, Open으로 공개, 다른 모듈의 접근을 차단
  • 이로써 모듈 간 불필요한 의존성 감소

결과 및 영향

  • 개발자들은 Package 접근제어자를 통해 의도하지 않은 인터페이스 공개로 인한 문제 방지

결론

  • 동일 도메인의 모듈 간의 인터페이스는 사용 가능하나, 외부 도메인의 모듈은 접근 불가로 제한
  • 이는 프로젝트 관리의 효율성 향상에 중요한 역할을 할 것으로 예상됨

관련 문서 링크

  • SE-0386: Swift 5.9에 추가된 Package 접근제어자 제안서

대안 고려

  • 다른 대안을 고려하지 않았음. Package 접근제어자가 현재 요구사항을 가장 잘 충족시키는 것으로 판단됨.

예상되는 리스크 및 대응책

  • 예상되는 리스크: 기존 코드에 대한 변경 및 적용 시간이 필요할 수 있음
  • 대응책: 변경 및 적용 시간을 충분히 확보하고, 변화에 대한 문서화 및 교육을 실시

구현 계획

  • Package 접근제어자를 적용하기 위한 구체적인 계획을 수립할 예정

비용 및 이점

  • 비용: 초기 적용 및 변경에 따른 비용 발생
  • 이점: 의도치 않은 인터페이스 공개로 인한 문제를 방지하고, 모듈 간 의존성을 감소시킬 것으로 예상됨

결정 후 모니터링

  • 결정을 구현하고 나서 해당 결정이 예상대로 작동하는지를 모니터링할 계획