김데이의 개발공부

[ Weekly Paper 04 ] 백엔드 개발과 CLI / Git & Github와 협업 본문

코드잇 Node.js(BE) 부트 캠프/위클리 페이퍼 📃🖌️

[ Weekly Paper 04 ] 백엔드 개발과 CLI / Git & Github와 협업

theday365 2025. 10. 26. 19:49
반응형

 

 

위클리 페이퍼 주제 (2025.10.20 ~ 10.26)

백엔드 개발에서 CLI 명령어를 주로 활용하는 이유에 대해 설명해 주세요.

 오픈 소스 프로젝트 중에서 하나를 골라 어떻게 git과 Github를 통해 협업이 이루어 지는지 설명 해 주세요

 

 


 

Q1 - 1. GUI / CLI 명령어 

 

GUI : Graphical User Interface, 그래픽 처리 된 아이콘 등을 이용하여 명령을 처리하는 방식으로 마우스 / 터치 / 키보드 등 다양한 입력 하드웨어를 사용해 작업을 진행 합니다. 

CLI : command Line Interface, 컴퓨터에 직접 명령어를 작성하여 명령을 내리는 방식으로 모니터와 키보드만을 이용해 작업을 진행하며, 약속된 명령어 조합으로 원하는 작업을 실행합니다. 

 

 

Q1 - Final . 백엔드 개발에서 CLI 명령어를 주로 활용하는 이유 

백엔드의 작업들은 아직까지도 GUI가 제공되지 않는 CLI의 환경이 많기 때문에, CLI를 필수로 사용해야 한다고 생각됩니다. 우리가 접속해서 작업해야하는 환경들이 대부분 [ 서버 / 운영체제 / 네트워크 ] 등과 같이 명령어 기반으로 이루어지는 환경이 많기 때문입니다. 이미 수업에 활용하는 GitHub 또한 VScode 자체 기능을 제공하지만, 롤백 / 브랜치 이동 등 세밀한 작업을 하거나 직관적으로 사용하기에는 CLI가 훨신 편리합니다. 

 

다른 이유로는 GUI 환경은 CLI에 비해 상대적으로 작업 효율이 떨어진다 생각됩니다.

대부분 CLI의 명령어가 사용자가 쓰기 쉽도록 UI적으로 고안되었지만, 그래픽을 사용 해야하고 불필요한 작업까지 함께 수행 되기 떄문입니다. 

 

예시로 test라는 폴더 안에 a.txt 파일을 지운다고 가정 했을 때, CLI는 [ test 폴더에 접근 → 파일을 지우는 명령어] 두 줄이면 실행이 가능합니다. 하지만 GUI의 경우, 폴더 test를 클릭하여 접속하면 해당 폴더 안의 모든 파일 목록이 표현되고, 그 중에서 a.txt 파일을 찾아 마우스로 오른쪽 클릭 후 다시 한번 원하는 명령어(=삭제)를 찾아 눌러야지만 삭제가 실행됩니다. 

 

간단한 [삭제]라는 과정임에도 CLI는 2단계로 / GUI는 4단계의 과정(속에 불필요한 작업들까지)이 필요합니다 

 

따라서 복잡한 작업이 많은 백엔드 개발환경에서는 CLI가 더 적합하다 생각이 듭니다.

 

(실제로도 수업 중 CLI를 통해 DB를 확인 할 떄는 명령어 한 줄이면 최신화 하여 보여줬지만, 같은 내용을 웹페이지 - localhost:5500 을 통해 확인할 때는 [ 웹 페이지 새로고침 → 해당 DB table 재접속 원하는 데이터/내용 찾기 ] 과정이 필요했고, 특히 새로고침 하는 과정에서 모든 데이터를 다시 가져와 업데이트 하다보니 예상보다 시간을 많이 소모하였습니다)  


Q2 - 1.  오픈소스란?

작업한 코드가 모두에게 공개되어, 개발되고 유지되는 것을 의미합니다.

오픈 소스를 제공하는 팀/회사 마다 규정이 있지만 대부분의 오픈 소스들은 사용하는데 제약이 적고, 변경하여 사용 할 수 있으며, 해당 소스를 포함하여 재배포가 가능합니다. 

 

1970년대 초반까지만 해도 코드 공유는 일반적인 관행이었으나, 1974년 저작권법에 의해 소프트웨어 또한 저작권 인정을 받게 되었고 그때부터 소프트웨어가 폐쇄적으로 작업되기 시작하였습니다. 하지만 이후 1983년 리쳐드 스톨먼에 의해 "자유 소프트웨어 재단"이 설립되고, 기존의 "소프트웨어는 자유로워야 한다, 활용, 변형 및 재배포와 같은 모든것이 자유로워야 한다"는 운동이 시작되었으며, 1999년 "오픈 소스"라는 단어로 정의되었습니다.   

 

 

Q2 - 2. 대표적인 오픈소스 프로젝트

워드프레스 : https://github.com/wordpress

 

WordPress

WordPress has 182 repositories available. Follow their code on GitHub.

github.com

캔바 : https://github.com/canva-public

 

Canva OpenSource

Open Source @ Canva. Canva OpenSource has 8 repositories available. Follow their code on GitHub.

github.com

Postgres: https://github.com/postgres

 

PostgreSQL

PostgreSQL has 5 repositories available. Follow their code on GitHub.

github.com

 

 

 

Q2 - Final . 오픈 소스 프로젝트는 어떻게 git과 Github를 통해 협업이 이루어지나?

여러 Repo와 branch를 사용하여 배포할 서비스의 버전 관리 및 세부 사항 업그레이드 등의 작업이 진행 되며, 외부 사용자에게 PR을 받아 일부 내용을 개선하는 방식으로 보여집니다. 

 

내부 팀원들간의 작업 시 PR 보낼 때, 자신이 작업한 전체 내용에 대한 설명과 함께 진행했던 커밋 ID & 해당 내용을 간단하게 요약하여 보낸 것이 인상적이었습니다. 

 

외부 사용자들과 PR을 받아 작업하는 방식에는 자동응답bot이 대답하는 것으로 보여졌으나, 일부 내용에 대해서는 외부 사용자들간에 토론의 장이 열려 문제가 있는 부분을 서로 협업하여 해결하는 모습을 보고 인상깊게 느꼈습니다. 

 

다시 돌아와서, Git으로 형상 관리(버전 관리)를 진행하되 Github를 통해 코드를 공개하고 내부 공유 / 외부 피드백을 받는 등 다양한 소통 과정이 이루어 지는 것을 확인 할 수 있었습니다. 

 

 

Github 마스코트와 그루트 (이미지 출처 : Unsplash - Praveen Thirumurugan )
Github 마스코트와 그루트 (이미지 출처 : Unsplash - Praveen Thirumurugan )

 

 


 

다음 주에 또 만나요 🖐️

반응형