굉장히 지극히 사견일 수 있는 글을 작성하고자 합니다.
'공통'과 '오픈 소스'의 차이
개발을 할 때 공통 함수나 공통 클래스를 만드는 일은 빈번합니다.(없으면 할말이 없지만..)
공통 함수와 오픈 소스의 공통점은 "쓰기 쉽게 공통으로 만들어 놓은 무엇"을 뜻합니다.
하지만 차이점은 뭘까요? 이 차이점에 대한 특징을 모르고 초보자들의 의욕만 앞선 실수가 등장 하는 경우가 꽤나 많이 있습니다.
오픈 소스가 가지는 특징
오픈 소스는 신뢰성이 있어야 합니다.
무슨 말이냐면 적어도 오랜기간 이상 사용해도 무너지지 않을만큼의 무언가가 있어야한다는 의미입니다.
처음부터 완벽하게 만드는 것을 의미하는 게 아닙니다.
그 조건은 꽤나 여러가지겠지만 지금 생각나는 것은 아래 2가지 정도입니다.
1. 커뮤니티가 존재하는가
2. 누군가가 해당 오픈소스를 관리해주는가
만약에 단 1명이 오픈 소스를 관리하고 있다면 그 오픈 소스를 신뢰할 수 있을까요?
저라면 쓰지 않을 겁니다.
공통 함수가 가지는 특징
회사에서 팀단위로 일을 하다보면 공통 함수를 누군가 만들어 놓은 경우가 많이 있습니다.
이때 공통 함수가 가져야 할 특징이라고 한다면 저의 생각은 아래와 같습니다.
1. 적게 배우고 쓰기 쉬워야 한다.
2. 더 이상의 수정의 여지 없이 그 자체로 완전해야 한다.
초보자 때 흔히 하는 실수는 내가 쓰기 편한 기능이 공통이라고 생각하는 것 입니다.
남들도 편해야 공통의 조건이 될 수 있습니다.
만약에 위 조건이 지켜지지 않는 경우에는 신규 입사자가 들어와서 그 공통 함수를 배우고 사용해야 하는 것은 꽤나 시간을 잡아 먹습니다.
오픈 소스는 누구나 아는 지식이 될 수 있기 때문에 범용성이 있지만 공통은 그런 조건을 가지면 안되기 때문입니다.
또한 조건이 지켜지지 않는 경우에 신규 입사자들은 해당 함수에 대한 수정의 책임도 갖게 됩니다. 비효율도 이런 비효율이 없겠죠.
'🗂️ Etc' 카테고리의 다른 글
인텔리제이 빌드가 느려졌다면.. (0) | 2024.09.30 |
---|---|
일본어 "어떻게" - 도얏테(どうやって), 도오(どう), 난토(なんと) 차이 (0) | 2024.05.14 |
리틀의 법칙 (0) | 2024.03.18 |
인텔리제이 업데이트로 느낀 엔지니어의 가치관 (1) | 2024.02.12 |
Gatling 성능 및 부하테스트 (0) | 2023.09.03 |