티스토리 뷰

개념

오픈소스

상어악어 2021. 9. 9. 16:21
반응형

오늘 알아볼 상식은 오픈소스다.

오픈소스는 개발자라면 언젠가는 마주칠 수 밖에 없는 분야이기도하고,

최근에 기업에서 오픈소스 참여 경험이 있는 사람을 뽑고싶어하기 때문에

오픈소스가 무엇인지 알아두는 것은 중요하다고 생각한다.

그러면 오픈소스가 정확히 무엇인지 알아보자.

Open Source,Open Source Software(OSS라고도함)란 소프트웨어 혹은 하드웨어의 제작자가 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어 혹은 오픈 소스 라이선스에 준하는 모든 통칭을 말한다.

즉, 소스 코드가 공개된 소프트웨어 또는 하드웨어이며, 소스의 수정이나 공유가 가능하다.

개발자이든 개발자가 아니든 누구나 들어가서 소스코드를 보거나 수정할 수 있고, 공유가 가능하다는 것이다.

그래서 오픈소스는 수많은 창작물을 만들어 낼 수 있는 것이다.

우리가 알고있는 Microsoft는 오픈소스의 반대 클로우즈드소스의 한 예시이다.

폐쇄형 소스라고도 하며, 대중들이 소스코드를 보거나 수정할 수 있게 하지 않는다.

대부분의 소프트웨어 회사는 이런 방식을 지향했다.

왜냐하면 자사의 제품을 사용하게 해 이익을 창출하기 위해서다.

기업의 목표는 돈을 벌기위해서니까 시장 독점을 할 수 있다면

기업 입장에서는 이득인 셈이다.

그런데 요즘에는 오픈 소스를 사용하는 회사들도 많다.

대표적으로 Linux, GNU 프로젝트,RedHat 등등 많다.

1학년때 강의를 들었는데 우리가 쓰는 카카오톡에도

오픈소스를 확인할 수 있다고 했었던게 기억이 난다.

 

이렇게하면 카카오톡이 사용한 오픈소스들이 뜨게된다.(기억이 가물가물했는데 찾았다!)

궁금해서 페이스북이랑 인스타그램도 찾아봤는데 뜬다.

하나의 앱을 만드는데 이렇게 많은 오픈소스가 사용됐다는게 놀랍기도 하다.

그렇다면 왜 기업이 오픈소스를 사용할까?

오픈소스의 장점은 뭐가있길래 쓰는건지 궁금해진다.

공개 SW포털의 글에서 참고를 했다.

출처: https://www.oss.kr/news/show/98ea46e2-431b-42da-95b8-680c571fe2c1

 

 

총 10가지 이유가 있는데

간추려서 얘기해보자면

1.TCO(총소유비용)가 낮다.

->오픈소스가 무료이거나 가격이 낮다.

2.혁신에 대한 접근성이 올라간다.

->오픈소스로 해당기술이 제품에 적합한지 실험하고 적합하지 않으면 신속하게 다른 구성요소로 변경할 수 있다.

3.특정 업체에 종속되지 않는다.

->사용자가 독점 가격 정책과 호환성 문제에서 벗어나는데 도움을 줄 수 있다.

4.커스터마이징 범위가 넓다.

->다양한 소스를 만들어낼 수 있음.

5.협업 문화를 조성한다.

->전세계의 오픈소스 개발자들이 참여할 수 있다.

6.버그가 적다.

->많은 사람들이 보고 수정할 수 있기때문에 버그가 줄어든다.

7.우수 인력이 들어온다.

->오픈소스 개발자가 우연히 프로젝트에 기여한게 기업의 마음에 들면 채용할 수도 있다.

8.소프트웨어 품질을 높인다.

-2,4,5과 비슷한 맥락으로 많은 사람이 참여하고 그 중에 수준높은 개발자가 많으면 많을수록 소프트웨어 품질은 올라갈 것이다.

9.보안이 개선된다.

->소프트웨어를 보는 눈이 많아지면 시험, 버그 해결, 개선도 올라간다.

10.SW감사가 쉬워진다.

->코드의 가용성때문에 사용자는 보안 및 성능 기준을 검토할 수 있다.

즉, 비용절감, 혁신에 대한 접근성↑, 수많은 사람들이 참여함에 따른 품질 업그레이드,

버그&보안 개선 등등의 장점때문에 기업이 오픈소스를 선호하는 것 같다.

따라서 오픈소스의 참여 경험이 중요한데

우리가 보통 오픈소스에 기여한다고 생각하면

어떤 프로젝트에 참여한다거나

누군가가 올려놓은 오픈소스의 버그를 찾아내서 수정하거나

오픈소스를 참고해 새로운 코드를 만들어내는 등의 이미지를 생각할 수도 있다.

나도 그렇게 생각했는데

그런 거창한 것들이 아니어도 우리가 쉽게 기여할 수 있는 방법이 있다고 한다.

버그에 대한 상황과 상태를 기술하는것도 기여가 될 수 있고,

한글로 번역, 그리고 심지어 주석을 다는 것도 기여가 될 수 있다.

물론 아직 나는 해보지는 않았지만.. 언젠간 해야겠지

오픈소스 기여를 해보고 싶은 분은 구글링을 해서 알아보시길..

이렇게 오픈소스에 대해 알아봤는데

내가 찾으면서 한가지 의문이 들었던 점은

누구나 소스를 수정할 수 있으면

어떤 사람이 소스를 만들어서 오픈소스에 올렸는데

악의를 가진 다른사람이 소스를 망가뜨릴 수도 있는거 아닌가?

라고 생각했는데

찾아보니까 원본 소스는 훼손되지 않는다고 한다.

보통 클론을 만들어서 쓰고 원개발자가 레포지터리 권한을 갖고있는다.

원본은 수정하고 싶으면 풀리퀘스트를 날려 원개발자가 승인을해야 반영이 된다고한다.

역시는 역시 역시군

아무리 공개돼있다고해도 원본 소스는 훼손되지 않게 잘 보호되고 있는듯 하다.

반응형

'개념' 카테고리의 다른 글

네트워크 개념  (0) 2021.12.22
머신러닝과 딥러닝의 차이  (0) 2021.11.01
Devops와 CI/CD란?  (0) 2021.09.09
데이터 3법이란 무엇일까  (0) 2021.09.09
RDB와 NOSQL에 대해 알아보자  (0) 2021.09.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함