[이어드림스쿨 1주차] IT Literacy (3)

KiwiChipKiwiChip
4 min read

개발을 하다 보면 코드를 효율적으로 관리하고, 협업을 원활하게 진행하며, 서버 인프라를 안정적으로 운영하는 것이 중요하다.
이런 과정에서 필수적으로 알아야 할 개념들이 버전 컨트롤, 오픈소스, 클라우드 등이다.
이번 글에서는 개발자가 알아야 할 필수 개념들을 하나씩 정리해본다.


🔹 버전 컨트롤(Version Control)이란?

프로젝트를 개발하고 배포하는 과정에서, 코드의 변경 사항을 체계적으로 관리하는 방법이다.
예를 들어, 새로운 기능을 추가하거나 버그를 수정하는 과정에서 기존 코드가 꼬이는 문제를 방지할 수 있다.
또한, 이전 버전으로 되돌리는 기능 덕분에 실수를 하더라도 빠르게 복구할 수 있다.

📌 버전 컨트롤의 주요 기능

✅ 코드 변경 이력 추적 → 누가 언제 어떤 내용을 수정했는지 확인 가능
✅ 이전 버전으로 롤백 → 문제 발생 시 복구 가능
✅ 팀 협업 지원 → 여러 개발자가 동시에 작업 가능

✔ 대표적인 버전 컨트롤 시스템: Git

Git은 리누스 토발즈가 만든 버전 컨트롤 시스템으로, 가장 널리 사용되는 도구다.
Git을 사용하면 여러 버전의 코드를 손쉽게 관리할 수 있으며, 브랜치를 활용해 독립적인 작업이 가능하다.

✔ Git을 활용한 대표적인 서비스

  • GitHub: 가장 인기 있는 코드 호스팅 플랫폼

  • GitLab: 자체 호스팅이 가능하며, CI/CD 기능이 강력함

  • Bitbucket: Atlassian 제품(Jira, Trello)과의 연동이 뛰어남


🔹 기획과 플로우차트 – 서비스의 핵심 흐름 설계

개발을 시작하기 전에, 서비스의 핵심 로직을 명확하게 정리하는 것이 중요하다.
이 과정에서 플로우차트(Flowchart) 를 활용하면 서비스의 흐름을 한눈에 이해할 수 있다.

📌 예시: 쇼핑몰의 핵심 로직

1️⃣ 상품 페이지 접속 → 2️⃣ 상품 구매 → 3️⃣ 상품 배송

이렇게 간단하게 정리하면, 추가해야 할 요소를 쉽게 파악할 수 있다.
예를 들어, 배송 정보를 입력하는 과정이 필요하므로 회원 가입 및 로그인 기능을 추가하는 것이 적절하다.

📌 보완된 플로우차트 예시
1️⃣ 로그인 → 회원 이름, 전화번호, 주소지 획득
2️⃣ 상품 구매 → 결제 방식 선택 (카카오페이, 네이버페이, 카드 결제 등)
3️⃣ 배송 → 배송사 선택 및 배송 추적 API 연동

이처럼 플로우차트를 활용하면 빠뜨린 요소를 쉽게 보완할 수 있고, 개발 과정이 체계적으로 진행될 수 있다.


🔹 오픈소스(Open Source)란?

오픈소스는 프로젝트의 코드가 공개되어, 누구나 자유롭게 활용할 수 있는 소프트웨어를 의미한다.
많은 개발자들이 오픈소스 프로젝트에 기여하며, 이를 통해 개발자 생태계가 발전하고 있다.

📌 오픈소스의 특징

공개된 코드 → 누구나 다운로드 및 수정 가능
커뮤니티 중심 → 다양한 개발자들의 기여로 지속적인 개선
라이선스가 존재 → 모든 오픈소스가 무료는 아니며, 사용 시 라이선스를 확인해야 함

✔ 대표적인 오픈소스 프로젝트

  • Linux → 대부분의 서버에서 사용되는 오픈소스 운영체제

  • Android → 구글이 제공하는 오픈소스 모바일 운영체제

  • TensorFlow → 구글이 개발한 오픈소스 AI 라이브러리

  • React.js → 페이스북이 개발한 오픈소스 프론트엔드 라이브러리

오픈소스를 활용하면 개발 시간을 단축할 수 있지만, 라이선스 규정을 반드시 확인해야 한다.
특히 기업에서 사용하려면, 오픈소스 라이선스가 상업적 사용을 허용하는지 확인하는 것이 중요하다.


🔹 클라우드(Cloud)란?

클라우드는 인터넷을 통해 서버, 데이터베이스, 스토리지 등의 IT 리소스를 제공하는 서비스다.
기존의 물리적 서버와 달리, 클라우드는 필요한 만큼만 사용하고 비용을 지불하는 방식이기 때문에 유지보수 부담이 적다.

📌 기존 서버의 한계

🚫 서버 트래픽 증가 → 물리적 서버 증설 필요 → 유지 비용 증가
🚫 예측이 어려운 서버 사용량 → 과잉 투자 위험
🚫 서버 장애 발생 시 즉각적인 대응 어려움

✔ 클라우드의 장점

유연한 확장성 → 필요할 때 서버 증설 가능
비용 절감 → 사용한 만큼만 비용 지불 (Pay-as-you-go)
운영 부담 감소 → 서버 유지보수 및 장애 대응 자동화

✔ 대표적인 클라우드 서비스

  • AWS (Amazon Web Services) → 가장 널리 사용되는 클라우드 서비스

  • Microsoft Azure → 기업용 솔루션과의 연동 강점

  • Google Cloud Platform (GCP) → 데이터 및 AI 관련 기능 강력

클라우드를 활용하면 초기 인프라 구축 비용을 절감하고, 빠르게 서비스를 확장할 수 있다.


🔹 SaaS(Software as a Service)란?

SaaS는 소프트웨어를 설치하지 않고, 클라우드를 통해 바로 사용할 수 있는 서비스를 의미한다.

📌 SaaS의 장점

설치 없이 즉시 사용 가능
데이터가 클라우드에 저장되어 공유가 편리
업데이트 및 유지보수가 자동으로 이루어짐

✔ 대표적인 SaaS 서비스

  • Google Drive, Dropbox → 파일 저장 및 공유

  • Slack, Microsoft Teams → 협업 툴

  • Figma → 클라우드 기반 UI/UX 디자인 툴

  • Notion, Confluence → 문서 및 프로젝트 관리 툴

특히 Figma가 Adobe에 28조 원에 인수된 사례는 SaaS의 가능성을 보여주는 대표적인 예시다.
SaaS는 앞으로도 더 많은 분야에서 확장될 것으로 기대되는 핵심 기술이다.


🚀 정리

버전 컨트롤(Git) → 코드 변경 사항을 추적하고 협업을 원활하게 하는 필수 도구
기획과 플로우차트 → 서비스의 핵심 흐름을 정리하여 개발 방향을 설정
오픈소스 → 코드가 공개된 소프트웨어, 라이선스 확인 필수
클라우드 → 서버를 물리적으로 운영하지 않고, 인터넷을 통해 관리하는 기술
SaaS → 클라우드 기반 소프트웨어 서비스, 설치 없이 사용 가능

이 개념들을 잘 활용하면 개발 과정이 훨씬 효율적이고, 유지보수도 쉬워진다.

0
Subscribe to my newsletter

Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

KiwiChip
KiwiChip

I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).