잡동사니

개발자로써 오픈소스를 사용한다는 의미 본문

IT

개발자로써 오픈소스를 사용한다는 의미

yeTi 2022. 12. 20. 05:45

안녕하세요. yeTi입니다.
오늘은 안영회 대표님의 기술은 쓰임새(use case)에 따라 고르고 조합한다 를 읽고 연관된 생각에 대해 기록으로 남깁니다.

인상

안영회 대표님의 기술은 쓰임새(use case)에 따라 고르고 조합한다 를 보면서 아래 문장이 인상 깊었습니다.

오픈소스를 일종의 협업이나 소프트웨어 개발 방식에 대한 변화로 보지 않고 여전히 솔루션(해결책)으로만 보면 기술을 제대로 활용할 수 없다.

기술은 사회적 맥락속에서의 쓰임새를 중심으로 살펴야 한다.

의미론적으로 굉장히 옳다고 생각하여 생각의 주제로 잡아봤지만 막상 의미를 파악하고자하니 그 뜻을 파악할 수가 없었습니다.

오픈소스

문장들을 다시 곱씹어 보니 아래와 같은 질문들이 나왔습니다.

오픈소스를 사용한다는 것은 해당 커뮤니티에 조인한다는 의미인가?

동일한 관심사를 가진 사람들이 모여 지속적으로 개선해나가는 프로젝트가 오픈소스 프로젝트인가?

사회적 맥락이란 이러한 커뮤니티에 의해 만들어지는 맥락을 의미하는 건가?

그러면서 다음 문장이 눈에 띄였습니다.

개발자들을 진영으로 거느린다. 어느 진영에 속하느냐에 따라 세상을 달리 보게 되어 있다.

진영에 속해있다. 라는 표현이 해당 오픈소스의 커뮤니티를 주도하는 세력이 아닐까라는 짐작이 들었습니다.

그러면서 오픈소스 라는 것은 특정 문제를 해결하기 위해 사람들이 모인 것이고 사람들이 모여 커뮤니티를 생성하고, 커뮤니티에서 판단한 방향에 따라 오픈소스가 고도화 되어 발전하는게 아닐까라는 생각이 들었습니다.

이러한 맥락에서 나로 관점을 바꿔보면서 질문을 해봤습니다.

  • 나는 Java를 사용하고 있으면서 Java 커뮤니티에서는 어떤 맥락들이 오가는지 알고 있나?
  • 나는 Spring framework를 사용하고 있으면서 해당 커뮤니티에서는 어떤 맥락들이 오가는지 알고 있나?
  • 나는 Kotlin을 사용해보고 싶으면서 해당 커뮤니티에서는 어떤 맥락들이 오가는지 알고 있나?
    ...
  • 나는 오픈소스 ~을 사용 혹은 사용해 보고 싶으면서 해당 커뮤니티에서는 어떤 맥락들이 오가는지 알고 있나?

오픈소스는 커뮤니티를 기반으로 움직이지만, 정작 나는 커뮤니티에 관심을 가진적이 없었고, 결국 하나의 솔루션(해결책) 으로만 접근하여 도입하느냐 마느냐 하는 이분법적인 판단만하고 있던게 아닐까라는 생각이 들었습니다.


글 작성 이후 오픈소스에 대한 미신과 배움의 비밀 이라는 글을 읽으면서 비슷한 두 문장을 찾았습니다.

어떤 분들은 우리의 "결과"에 대해서만 포커스를 맞추어서 접근하시곤 합니다. 그러나 이 눈부신 결과는 지금 우리 상황에 가장 적합하다고 생각했던 "결정"이었을 뿐, 그 이상의 의미도 아닙니다.

AI에 대해서도 그렇고 오픈소로 된 솔루션에 대해서도 결과만 두고 평가하는 이들이적지 않다.

그러면서 도입부 인용구의 의도를 가장 잘 나타낼 수 있는 문장을 찾은거 같습니다.

이미 그 문제를 고민하는 다른 엔지니어가 블랙박스로 사용할 답을 주는 것이 아니라 스스로 열어 보고 고칠 수도 있는 미리 풀어본 해답을 코드로 제공하기 때문이다. 엔지니어는 그것을 접하며, 다른 사람의 경험을 빠르게 배우고 부족했던 용기를 채우고 서로 일을 나눠서 하는 방법을 깨달을 가능성이 많다. 창의성은 개인이 발현하는 것이지만, 오픈소스 커뮤니티를 구성하는 많은 사람들이 공유하는 문화를 자연스럽게 배우기도 한다. 그것이 진짜 오픈소스를 도입하는 이유에 가깝다.

생각의 변화

이전에 백기선님의 유투브를 보면서 spring conference 에 다니는 이유에 대해 설명해주신 이유가 생각이 났습니다.

커뮤니티속에 들어감으로써 보다 생동감있게 해당 기술에 대한 관심도를 파악할 수 있기 때문입니다.

저도 오픈소스를 사용하는 사용자로써 커뮤니티에 좀 더 관심을 가지고 참여해야하지 않을까 라는 생각을 가집니다.


글 작성 이후 첨언

소 뒷걸음치다 쥐 잡은 격으로 짐작했던 부분이 도입부 인용구의 의도에 맞았던 것 같습니다.

오픈소스라는 커뮤니티가 가진 생각의 공유 그리고 코드로써의 기록을 접하며 개발자는 협업을 배우고 커뮤니티가 가진 경험을 배우며 현재 마주한 문제를 해결해나가는 밑거름으로 활용을 해야 궁극적인 목표를 향해 다가갈 수 있는 것이지

오픈소스의 현재의 결과를 보고 다른 회사에서 경험한 내용을 가지고 도입을 목적으로 한다면 현업에서 자주 들었던 오픈 소스 도입 후 한계를 명확하게 맞이할 것이라고 생각합니다.

결국 오픈소스를 사용한다면 커뮤니티에도 관심을 가져야 한다는 생각에 확신을 가지는 계기가 되었습니다.

이견

글을 읽다가 이견이 있어 기록으로 남겨봅니다.

기술은 쓰임새(use case)에 따라 고르고 조합합니다. but 기술은 도구이기 때문에 쓰는 사람의 기호를 탑니다. 가령, 어떤 사람은 못을 박기 위해 망치를 사용하지만 어떤 사람은 손에 들려있는 몽키로 대체하듯이 말입니다.

결국 기술은 사회적 맥락속에서의 쓰임새를 중심으로 살펴야 하기도 하지만 쓰는 사람의 기호에 따라 그렇지 않을 수도 있습니다.

그렇기 때문에 커뮤니티간 왈가왈부가 있고 개발자간 의견교환이 있는것이라고 생각합니다.

Comments