“이건 인하우스(In-house)로 개발 중이에요.”
“써드파티(3rd-Party) 모듈 연동해야 해서 일정 조정이 필요합니다.”
“이건 외주로 맡긴 파트라 직접 수정은 어렵습니다.”
소프트웨어 개발 현장에서는 이런 말들이 자주 오갑니다.
처음엔 무슨 말인지 몰라도, 점점 익숙해지긴 하죠.
하지만 정말 정확히, 인하우스와 써드파티, 외주개발이 뭔 차이일까요?
그리고 어떤 상황에서 이 단어들이 나오는 걸까요?
인하우스는 회사 내부 엔지니어들이 직접 설계하고 개발하는 소프트웨어를 말합니다.
자동차 소프트웨어에서는 예를 들어,
이런 것들이 대표적인 인하우스 개발 사례입니다.
장점은 우리 요구에 맞게 자유롭게 개발하고 유지보수도 빠르다는 점이지만,
리소스가 많이 들고 시간도 오래 걸릴 수 있다는 단점이 있습니다.
써드파티는 외부 전문 업체나 솔루션에서 제공하는 소프트웨어나 기능을 가져와 사용하는 것입니다.
자동차 SW 개발에서는 이런 경우가 많습니다:
써드파티를 쓰면 개발 속도가 빨라지고 검증된 기능을 활용할 수 있다는 장점이 있지만,
원하는 대로 커스터마이징하기 어려울 수 있고, 라이선스나 호환성 이슈가 생기기도 합니다.
외주개발은 회사 외부의 인력이나 업체가 실제 개발을 수행하는 방식입니다.
자동차 소프트웨어 개발에선 생각보다 흔합니다.
예를 들면,
외주개발의 장점은 단기적으로 리소스를 빠르게 확보할 수 있다는 점이고,
단점은 품질 관리와 커뮤니케이션 비용이 많이 든다는 점입니다.
또, 개발 이후 유지보수는 내부에서 넘겨받아야 하므로 관리 부담도 따르죠.
인하우스, 써드파티, 외주개발은 '누가 개발하느냐'에 따라 나뉘는 방식입니다.
자동차 소프트웨어처럼 복잡한 시스템에선 이 세 가지 방식이 섞여서 쓰이는 경우가 대부분입니다.
그래서 어떤 기능이 어떤 방식으로 개발됐는지를 정확히 아는 건,
기획, 개발, 디버깅, 유지보수까지 모든 과정에서 중요한 포인트가 됩니다.
혹시 지금 작업 중인 그 기능, 인하우스인지 써드파티인지, 외주인지 알고 계셨나요?
모른다면, 지금 한번 체크해보는 것도 좋겠죠 🙂
@nullvuild