홈으로 돌아가기

공식문서를 너무 믿었던 나, 그리고 오픈소스에 기여하기까지

Bean
2025-07-13
공식문서를 너무 믿었던 나, 그리고 오픈소스에 기여하기까지

iOS에서 화면 캡처를 막고 싶었다

iOS에서 민감한 정보를 다루는 앱이라면, 화면 캡처나 녹화를 막는 기능은 필수입니다.
React Native 환경에서 이 기능을 구현하고자 했던 우리는 하나의 라이브러리를 발견하게 되죠.

👉 react-native-capture-protection

문제는, 공식문서에 나온 그대로 따라 했는데도 전혀 동작하지 않았다는 것.


공식문서의 덫에 걸리다

처음에는 공식문서에 적힌 코드대로만 쓰면 캡처 방지가 적용된다고 믿었습니다.

import { CaptureProtection } from 'react-native-capture-protection';

React.useEffect(() => {
  CaptureProtection.prevent();
  
  return () => { 
     CaptureProtection.allow();
  }
}, []);

하지만, 앱에서는 스크린샷도 되고 화면 녹화도 멀쩡히 가능했습니다.

"내 코드가 잘못된 건가?"
"iOS native 설정이 빠졌나?"
"SceneDelegate 때문인가?"

몇시간동안 로그를 까보고,
라이브러리 소스를 뒤져보고,
구글 검색도 해봤지만…

해결이 되지 않았습니다.


고작 이거였다고?

혼자 끙끙대고 있던 제게
옆에 앉아 있던 Archan이 툭 한마디를 건넸습니다.

"혹시... pod install 해봤어요?"

저는 그제서야 터미널을 열고,
망설이며 명령어를 입력했죠.

망설이다가 터미널에 쳐본 명령어:

cd ios && pod install

그리고 앱을 다시 실행했더니...

캡처 방지 기능이 정상 작동했습니다.

...네, 고작 pod install 한 줄이 문제였던 겁니다.


경험 많은 사수는 공식문서를 보지도 않고
바로 그걸 의심했어요.
그리고 그 직관은 맞았습니다.

문서엔 단 한 줄도 없던 내용이었지만,
실전에서 수없이 마주친 시행착오가 만든 감각
그 문제를 정확히 짚어낸 거죠.


공식문서가 다 말해주진 않는다

놀랍게도, 공식문서엔 pod install에 대한 언급이 전혀 없었습니다.
iOS 개발자에겐 당연한 걸 수도 있지만, React Native 환경에서는 autolink가 자동으로 해줄 거라 기대하거든요.

이 작은 누락 하나가 저 같은 주니어 개발자에겐 몇 시간의 삽질로 이어졌던 거죠.

물론, 문서 작성자의 입장에선 pod install은 너무 당연한 과정이었을지도 모릅니다.
사용자가 이미 알고 있을 거라는 전제가 깔려 있었던 거죠.

하지만 저 같은 주니어 개발자에겐 그 '당연함'이 장벽이 될 수 있다는 걸 이번에 뼈저리게 느꼈습니다.

그래서 저는 이 내용을 문서에 명시하고자, 라이브러리에 PR을 올려 문서를 직접 수정했습니다.
그렇게 제 첫 오픈소스 컨트리뷰션이 시작됐습니다.


문서 바깥에서 답을 찾다

이 경험은 단순한 버그 해결을 넘어, 저에게 중요한 깨달음을 줬습니다.

공식문서는 ‘출발점’일 수는 있어도, ‘완성된 답’은 아니다.

진짜 중요한 건,

  • 문제의 작동 원리를 파악하려는 자세
  • 공식문서 외의 코드나 실제 동작을 관찰하려는 습관
  • 내가 겪은 오류를 다음 사람은 겪지 않게 하려는 책임감

React Native와 Native 간의 연결을 이해하지 못하면,
문서만 믿고 가다 큰 벽을 만날 수 있다는 걸 뼈저리게 느꼈습니다.


누구나 기여할 수 있다

pod install 한 줄이었지만,
그 한 줄의 누락이 누군가에겐 하루를 날리게 만들 수 있습니다.

그리고 그 한 줄을 문서에 추가한 사람은,
바로 저 같은 사람도 될 수 있습니다.


에필로그

혹시 지금도 공식문서만 붙잡고 같은 코드를 반복하고 있나요?

혹시… pod install 했나요? 😇

그 한 줄이 모든 걸 바꿀 수도 있어요.
그리고 그 한 줄을 놓친 문서를 고치는 사람이,
바로 당신일 수도 있습니다.


읽어주셔서 감사합니다.
혹시 글에 대한 피드백이나 궁금한 점이 있다면 언제든지 댓글이나 연락 주세요!

관련 링크