프레임워크, 라이브러리, API, OS 등 기존 소프트웨어의 힘을 전혀 빌리지 않는 개발자는 없다. 현존하는 소프트웨어를 이용하지 않는 것은 자랑스러운 것이 아니라 바보같은 짓이라고 생각한다. 물론 때로는 기존 소프트웨어를 사용하는 것보다 직접 만드는 것이 효과적인 경우가 있다. 예컨대 거대한 라이브러리의 일부분만 필요한데 모든 것을 import 해야만 할 때, 차라리 일부분에 해당하는 코딩을 직접 하는 것이 나을 수 있다. 하지만 현존하는 소프트웨어의 힘을 빌리는 것이 효율적일 때도 많다.

이렇게 현존하는 소프트웨어를 사용할 때 가장 필수적인 리소스는 무엇일까? 챗GPT? StackOverFlow? 개발 블로그? 나는 가장 기본이 되는 것은 무엇보다도 해당 소프트웨어를 만든 사람이 직접 작성한 공식 문서라고 생각한다. 예를 들어 React Native 개발환경을 설치할 때 어떤 자료를 참고해야 할까? 챗GPT나 StackOverflow, 또는 개발 블로그 글을 참고할 수도 있다. 하지만 이런 자료들은 원본이 아니라 다른 사람에 의해 한 번 processing 된 가공식품과도 같다. React Native 공식 홈페이지 문서는 반드시 확인해야 하는 기본적인 “원재료”이다. 원재료를 알지 못하면 요리가 실패할 확률이 높다.

블로그 글과 같은 “가공식품”의 단점은 두 가지가 있다. 첫째로는 가공 당시의 환경에 크게 영향을 받는다는 것이다. 예컨대 블로그 글이 작성되던 시점에 사용된 여러 dependencies의 버전이 현재 시점에는 outdated 되었을 수 있다. 하지만 공식적인 documentation은 해당 소프트웨어를 만든 사람이 직접 관리하기 때문에 꾸준히 업데이트 된 경우가 많다. 둘째로는 가공자의 취향이 반영되어 있다는 점이다. React Native 개발환경을 세팅하는 과정에는 각 단계마다 여러 가지 선택지가 있다. 예컨대 가장 첫 단계에서는 Expo를 선택할지 React Native CLI 를 선택할지 고민해야 한다. 그런데 블로그 글에는 블로그 주인이 선호하는 선택지가 전부인 양 쓰여 있을 수 있다.

물론 가공된 글에도 장점이 있다. 공식 documentation에는 아주 세부적인 것들까지 불필요하게 작성되어 있는 경우가 잦다. 가공된 문서가 공식 문서에 비해 더 짧고 단순한 편이다. 그럼에도 불구하고 위에서 언급한 단점들로 인해 가공된 문서에 중독되는 것보다는 “원재료”인 공식 문서를 빠르게 skim 할 수 있는 능력을 기르는 것이 더 바람직하다고 본다.

그렇다면 이 글의 제목은 왜 뜬끔없이 “개발자가 영어를 잘 해야 하는 이유”일까? 이는 원재료에 해당하는 공식 documentation 들이 대부분 영어로 작성되어 있기 때문이다. 사실 원재료 뿐만 아니라 가공된 컨텐츠도 마찬가지이다. 챗GPT도 영어로 쓸 때 더 양질의 정보를 제공한다. StackOverFlow와 블로그 글도 영어로 된 컨텐츠의 양이 한글로 된 컨텐츠의 양을 훌쩍 뛰어넘는다. 따라서 영어를 잘 하면 개발을 할 때 굉장한 메리트가 있다.

사실 개발 뿐만 아니라 다른 영역에서도 비슷한 것을 느끼곤 한다. 남이 가꾸어 놓은 가공된 정보를 소비하는 것은 편하고 효율적이지만 때로는 한계에 부딪힌다. 이러한 한계를 뛰어넘으려면 언제든 필요할 때마다 원본 자료를 직접 습득하고 스스로 가공할 수 있는 능력을 길러 놓아야 한다. 그리고 그 원본에 해당하는 자료는 많은 경우 영어로 되어 있다는 사실. 영어 공부 열심히 하자!