| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- LangGraph
- Python
- ASR
- UMAP
- 랭그래프
- 객체지향
- dementional reduction
- 정보처리기사
- 생성형 인공지능
- RDBMS
- 데이터 시각화
- RNN
- 에이전트
- 머신러닝
- 데이터엔지니어
- 딥러닝
- TTS
- 기초
- python기초
- Transformer
- 트랜스포머
- 자연어처리
- CNN
- 알고리즘
- CLIP
- SQL
- python 기초
- 힙정렬
- 캐글
- 소프트웨어 개발
- Today
- Total
수달이네 기술 블로그
1. 오픈소스의 개념, 역사, 라이센스 본문
오픈소스
프로그램의 소스코드를 전부 올리는 것 ↔ 독점 소프트웨어
- 독점os: windows, MacOS, iOS등
- 오픈소스os: 리눅스(연구 등), 안드로이드
- 독점 LLM: chatGPT, Gemini, Claude
- 오픈소스 LLM:LLama, deepseek(오픈소스임에도 성능이 뛰어났음), MISTRAL AI
- 독점 이미지 생성 AI: 나노 바나나, DALL-E
- 오픈소스 이미지 생성 AI: Stable diffusion, flux등
- 브라우저: firefox, 웹서버: APACHE, 데이터베이스: MySQL, 머신러닝: TensorFlow, 네트워크 보안: OpenSSL
- 대부분은 소스코드를 공개하지 않고 독점으로 사용한다.(금전적 이유)
오픈소스의 역사
1970년대: 자유롭게 SW를 공유하는 분위기
1980년대: 비자유 독점 SW들의 등장
- 자기 기업만의 영업 기밀로 함.
- 자유로운 SW공유 및 협력 문화를 위한 GNU프로젝트(자유 소프트웨어 운동/Copyleft 운동)시작
- 리처드 스톨먼: SW는 공유되어야 하고 프로그래머는 SW로 돈을 벌면 안된다.

- OS(Linux)를 포함한 모든 것을 새로 직접 구현하기 시작 > 본격적인 오픈소스 커뮤니티의 시작
- 리누스 토르발스: Linux 커널을 개발
오픈소스의 번거로움
오픈소스 코드 개발
개발한 오픈소스 유지 관리
README 작성: 다른 사람이 잘 사용하도록 설명서 작성
다른 사람들이 원하는 기능, 함수 구현
질문 대답: 왜 이렇게 구현했나? 등…
다른 사람 코드 리뷰: 참여자가 기능을 추가해서 올리는 것(Pull request)을 리뷰, 검토
왜 오픈소스에 기여하는 걸까?
- 보람: 내가 다른 사람에게 받은 도움을 돌려준다.
- 인지도: 좋은 오픈소스를 기여해 인지도가 상승한다.
- 경험: 다른 사람들과의 협력으로 코딩(코드 리뷰 등)과 협력을 배움
- 취업: 오픈소스 코드로 면접 시 어필
- 프리랜서, 창업: 오픈소스로 실력이 검증되어 프리랜서, 창업에 유리함.
- 상업적 이익: 오픈소스 관련 비즈니스 모델 > 예) MuseScore: 오픈소스 악보제작 소프트웨어, 사용은 무료, 공유 or 다운로드 = 구독료
- 호환: 제품이 업데이트 되면 기존 오픈소스가 제품에 호환이 안됨. > 자기가 쓴 부분에 대해 적극 기여
좋은 오픈소스 찾기
검색어: awesome [플랫폼/언어]
ex) https://github.com/rickiepark/awesome-pytorch 파이토치 관련 좋은 오픈소스를 볼 수 있음.
오픈소스 라이센스
독점 SW(closed source SW)
소스코드에 대한 독점적인 소유권 유지
- 소유권을 가진 자만 오류 수정, 기능 추가 가능
오픈소스 SW(Open source SW)
소스코드 공개, 누구나 검토 수정 배포 가능
라이센스
무료인데 라이센스가 왜 필요해?
돈을 내야만 라이센스가 들어가는 것이 아님.
무상 계약 일 때 라이센스에 들어가는 내용
- 마음대로 가져다 쓰세요, 하지만 책임은 지지 않습니다.(보안 상의 문제 회피)
오픈소스 라이센스 유형1: 아무 명시 없는 코드(No license)
마음대로 가져다 쓰면 저작권 문제가 발생
- 엄밀하게 보면 오픈소스에 해당되지 않음.
정적 링킹과 동적 링킹
정적 라이브러리(정적 링킹)
- 소스코드와 라이브러리가 컴파일 시간에 연결됨.
- LGPL의 사용 여부와 내 코드도 같이 공개해야한다.
동적 연결 라이브러리(DLL)
- 소스코드만 따로 컴파일 되어, 프로그램 실행 중 라이브러리에 동적으로 연결됨.
- LGPL을 사용여부는 말해야 하지만, 내 코드는 공개할 필요 없다.
오픈소스 라이센스 유형2: GPL(General Public License)
오픈 소스를 사용하고 수정하여 공개하는 순간, 자신의 코드를 모두 공개해야 함.
- GPL오픈소스를 사용했다면, 원래 내 코드까지 파생물로 취급, 공개해야한다는 뜻.
- 초기 오픈소스 정신
- 라이브러리 수정 시: 전체 공개
- GPL 라이브러리를 이용(정적, 동적) 시: 전체 공개(내 프로그램도 GPL로 전파)
오픈소스 라이센스 유형3: LGPL(Lesser GPL)
GPL은 모든 소스코드를 공개해야하므로 기업이 참여하기 어려운 문제가 있음.
- LGPL은 GPL의 완화된 버전
- 라이브러리 수정 시: 전체 공개
- LGPL라이브러리를 정적으로 이용 시: 전체 공개(GPL로 전파)
- LGPL라이브러리를 동적으로 이용시: 공개 의무 없음
오픈소스 라이센스 유형4: AGPL(Affero GPL)
LGPL 라이브러리를 수정 후 웹서버에 놓고 사용하는 방식으로 배포에 해당 안되도록 하여 회피하는 편법을 사용
- 기본적으로 배포를 안했기 때문에 서비스를 이용할 뿐이므로 GPL의무가 발생하지 않음.
- 정확히는 실행만 해서 네트워크를 통해 결과만 받는 방식임
- 해당 편법을 방지하는 AGPL
- 즉, 서버에서 수정된 LGPL프로그램을 돌려도 배포로 친다.
오픈소스 라이센스 유형5: MIT, Apache, BSD
마음대로 사용/수정 가능하며 이 라이센스를 사용했다는 것만 고지
- 대기업에서도 많은 공헌함.
- 수정 가능
- 상업적 이용 가능
- 소스 공개 의무 없음
오픈소스 성립 조건

- 무료 재배포
- 소스코드 공개
- 수정 / 파생 저작물 허용
- 저자 소스 코드의 무결성(원래 개발자의 의도를 따라야 함)
- 개인, 집단에 대한 차별 금지
- 노력 분야에 대한 차별 금지
- 라이센스 배포해야함
- 라이센스는 제품에 한정되면 안됨
- 라이센스는 다른 SW제한에 제한되면 안됨
- 라이센스는 기술에 중립적이어야함
소프트웨어 유형
Freeware: 무료로 사용/배포 가능, 소스 코드 공개 X
Shareware: 평가판으로 무료 배포, 제한 시간이 지나면 비용 지불 필요, 체험판
독점 소프트웨어: 배포, 사용에 제한이 있는 SW(비용 등)
오픈소스 소프트웨어: 오픈소스 SW의 10가지조건을 만족하는 SW

라이센스 양립성 문제
둘 이상의 오픈소스 SW를 사용해 새 프로그램을 개발할 때 두 라이센스 요구사항 상충 여부 문제
- 라이센스들이 양립 가능한지 미리 조사
- 예를들어 GPL과 MPL은 양립 불가하다. → MPL = 파일단위 공개, GPL = 전체공개 →따라서 양립불가
옵소 검증 도구
Code Eye
- 오픈소스 포함 여부 알려주고 비교/분석하는 서비스
Fossology
- 라이센스 및 저작권 사용 여부 스캔
- 오픈소스 라이센스 검증 서비스 신청
'학교공부 > 오픈소스SW' 카테고리의 다른 글
| 5. 깃 브랜치 전략 (0) | 2026.04.23 |
|---|---|
| 4. 브랜치 병합과 충돌 (0) | 2026.04.22 |
| 3. 소스트리(GUI버전관리) + 깃허브 상세 (0) | 2026.04.22 |
| 2. Git, Github 개념 (1) | 2026.04.21 |