프로그래밍 세계에서의 Party: First, Second, Third

일어나 개발해야지·2024년 4월 16일

iOS 글쓰기모임

목록 보기
7/12

Intro

Dependency manager에 대해서 다루면서 Third party라는 단어를 접했다. 간단하게는 외부라이브러리를 칭하는 용어였는데, First party와 Second party도 있는걸까 궁금했었다. 오늘은 간단하게 그 용어들을 정리해보려고 한다. 관련용어에 대해서 찾다보니 데이터 관계에서 사용될때는 다른 뉘앙스로 사용된다는걸 알게됬다.이 글에서는 프로그래밍 용어안에서의 의미를 다룬다고 생각해주면 좋겠다.

First party - 생산자

  • 소프트웨어나 서비스를 생산하는 조직
  • Google - Android
  • Apple - iOS MacOS
  • Microsoft - Window, VScode
  • 기업이 개발한 소프트웨어는 각 기업의 first-party software이다.

Second party - 사용자, 클라이언트

  • 소프트웨어의 구매자
  • 서비스의 사용자

Third party - 외부라이브러리

  • 소프트웨어 분야에서 넓게는 외부자원이라는 의미를 가진다.
  • 회사나 개인이 개발한 라이브러리, 프레임워크와 같은 도구를 포함한다.
  • 외부 라이브러리를 통해 특정 코드나 기능을 제공하는 주체를 third party(서드파티)라고 말한다.

상대적 개념

party 는 프로젝트나 소프트웨어 생태계에서 역할을 구분하기 위해서 사용되는 용어이고, 그 중 First -second party의 개념은 상대적이다. VScode를 기준으로 생각하면 Microsoft가 First party이고 Tool을 사용하는 개발자가 Second party이지만,완성된 프로젝트를 기준으로 생각하면 App을 만든 개발자가 First party이고 사용자가 second party가 된다.

Dependency manager(의존성 관리자)

특히 Third party는 그들을 설치 및 관리하는 manager가 필요한데, 언어마다 관리자가 다르다.

JavaScript - npm(Node Package Manager)
Python - pip(Package Installer for Python)
Ruby - Bundler 
Swift - Swift package manager 

각 언어의 Dependency manager는 의존성 관리자가 third party 라이브러리만 관리하는건 아니고 프로젝트의 모든 종류의 종속성을 관리한다.

소프트웨어(First party)로 만들어진 프로젝트안에서 개발자(Second party)가 선택한 외부라이브러리 (Third party )가 관리될수있도록 모든 부분에서 관여하여 관리한다

2개의 댓글

comment-user-thumbnail
2024년 4월 19일

first와 third는 알고있었는데 왜 second는 궁금해하지 않았을까 하는..생각이 머리를 스쳐갔습니다ㅎㅎㅎ
사용하는 주체에 따라 개념이 달라지는것도 이번에 처음알았어요🥹 용어에 대해 깊게 생각해보지 않았었는데 포스팅을 보고 이렇게 스쳐간 단어들이 얼마나 많을까 생각하게 되는 밤이네요ㅋㅋㅋㅠㅠ 좋은 글 감사합니다 :)

답글 달기
comment-user-thumbnail
2024년 4월 21일

저도 second에대해서는 처음들어봤는데
한번도 first랑 third만들어보고 second는 왜없을까라느생각을 해보지못했던거같아요 ㅋㅋㅋ 지식하나 쌓고갑니다!

답글 달기