* 프로그래머스, 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 5기 강의 수강 내용을 정리하는 포스팅.

* 원활한 내용 이해를 위해 수업에서 제시된 자료 이외에, 개인적으로 조사한 자료 등을 덧붙이고 있음.


🌐 CS 기초 정리

📡 컴퓨터 네트워크의 이해

📘 4-1. 컴퓨터 통신망 기초

✅ 핵심 개념

컴퓨터 간의 통신은 네트워크를 통해 이루어지며,
정보는 데이터 패킷 형태로 전송된다.

🔍 상세 설명

통신망의 구성요소: 송신자, 수신자, 매체(케이블, 전파 등), 프로토콜

패킷(Packet): 데이터를 일정 크기로 나눈 단위

네트워크는 신뢰성, 속도, 확장성이 핵심 고려 요소

🔁 관련 개념 꼬리물기

LAN/WAN: 로컬/광역 네트워크

패킷 교환 방식: 데이터가 목적지까지 다양한 경로로 전달됨


📘 4-2 ~ 4-3. OSI 7계층 모델과 프로토콜

✅ 핵심 개념

네트워크는 7계층(OSI 모델)으로 나뉘며, 각 계층은 특정 역할을 담당한다.

🔍 상세 설명

OSI 7계층 (하위 → 상위):

물리(Physical): 전기 신호, 케이블

데이터 링크(Data Link): MAC 주소, 스위치

네트워크(Network): IP 주소, 라우팅

전송(Transport): TCP/UDP, 포트 번호

세션(Session): 연결/유지 관리

표현(Presentation): 데이터 포맷 변환, 인코딩

응용(Application): HTTP, FTP 등

계층별 프로토콜은 기능에 맞게 설계됨 (예: TCP는 전송 계층, HTTP는 응용 계층)

🔁 관련 개념 꼬리물기

TCP/UDP 차이: 연결 지향 vs 비연결

HTTP(S): 웹에서 데이터를 주고받기 위한 응용 계층 프로토콜


📘 4-4 ~ 4-5. IP 네트워크와 주소 지정

✅ 핵심 개념

모든 장치는 네트워크 상에서 고유한 IP 주소를 가지고 있어야 한다.

🔍 상세 설명

IPv4: 32비트, 192.168.0.1과 같은 4개의 숫자

IPv6: 128비트, 주소 부족 문제 해결

공인 IP / 사설 IP: 외부 통신용 / 내부 통신용

서브넷 마스크: 네트워크와 호스트 구분

🔁 관련 개념 꼬리물기

DNS(Domain Name System): 사람이 이해할 수 있는 도메인(google.com)을 IP로 변환

라우터: 다른 네트워크로 패킷을 전달


📘 4-6. 당신의 주소는?

✅ 핵심 개념

자신의 네트워크 환경(IP, 게이트웨이 등)을 이해하는 것은
웹 개발자에게 실질적인 도움이 된다.

🔍 상세 설명

ipconfig(Windows), ifconfig(mac/Linux) 명령어로 확인

기본 게이트웨이: 외부 네트워크로 나가는 출입구 역할

🔁 관련 개념 꼬리물기

NAT(Network Address Translation): 사설 IP ↔ 공인 IP 변환


🧑‍💻 컴퓨터 과학 기초 정리

🧠 소프트웨어 공학 개론

📘 5-1 ~ 5-2. 소프트웨어공학이란 무엇인가?

✅ 핵심 개념

소프트웨어 공학은 체계적이고 효율적으로 소프트웨어를 개발하기 위한 학문이다.

🔍 상세 설명

비정형적인 개발 → 반복 가능하고 예측 가능한 프로세스로 개선

요구 분석, 설계, 구현, 테스트, 유지보수까지 포함

오류 방지와 비용 절감을 위한 접근 방식

🔁 관련 개념 꼬리물기

요구사항 분석: 사용자 니즈 파악

유지보수성: 소프트웨어의 변경 용이성


📘 5-3 ~ 5-4. 폭포수 모델과 애자일 모델

✅ 핵심 개념

소프트웨어 개발에는 다양한 개발 방법론이 있으며,
상황에 따라 적절한 모델을 선택해야 한다.

🔍 상세 설명

폭포수 모델: 순차적 개발, 상위 단계 확정 후 하위 진행

애자일 모델: 반복적, 점진적 개발

고객 피드백을 빠르게 반영

작은 단위로 지속적으로 배포

🔁 관련 개념 꼬리물기

스프린트(Sprint): 짧은 개발 주기

스크럼(Scrum): 애자일 팀 운영 프레임워크


📘 5-5. 코드 리뷰, 리팩토링과 클린 코드

✅ 핵심 개념

좋은 소프트웨어는 읽기 쉽고 유지보수 가능한 코드에서 시작된다.

🔍 상세 설명

코드 리뷰: 동료 개발자와 상호 검토

리팩토링: 기능은 유지한 채 내부 구조 개선

클린 코드 원칙:

의미 있는 이름 사용

함수는 짧고 하나의 책임만

중복 제거, 명확한 흐름 유지

🔁 관련 개념 꼬리물기

SOLID 원칙: 객체지향 설계의 5가지 핵심 원칙

DRY (Don't Repeat Yourself): 중복 제거


📘 5-6. 좋은 소프트웨어를 만들기 위해

✅ 핵심 개념

사용자 중심 + 품질 중심의 사고방식이 좋은 소프트웨어로 이어진다.

🔍 상세 설명

코드만 잘 짜는 것이 전부가 아니다

사용자 경험, 유지보수, 보안, 확장성까지 고려해야 한다

팀워크와 커뮤니케이션도 핵심 역량

🔁 관련 개념 꼬리물기

UX (User Experience): 사용자의 관점에서 바라본 전체 경험

CI/CD: 지속적인 통합과 배포를 통해 품질을 빠르게 유지

💡 프론트엔드 관점의 요약 포인트

주제 프론트엔드 연관성
네트워크 계층 API 통신, HTTP, CORS 이해에 필요
IP/DNS 배포, 서버와의 통신 구조 이해
소프트웨어공학 팀 프로젝트 협업, 코드 유지보수
애자일 스프린트 단위 팀 개발 경험
클린코드 협업 시 코드 품질 유지 필수 요소


☁️ 컴퓨터 과학 기초 정리

☁️ 클라우드 컴퓨팅과 마이크로서비스 아키텍처

📘 6-1 ~ 6-2. 클라우드 컴퓨팅의 기반 기술과 주요 원칙

✅ 핵심 개념

클라우드 컴퓨팅은 IT 자원을 인터넷을 통해 서비스 형태로 제공하는 기술이며,
가상화와 자동화, 확장성을 기반으로 동작한다.

🔍 상세 설명

가상화(Virtualization): 물리적인 하드웨어를 가상 인스턴스로 분리

VM(가상머신), 컨테이너 도입의 핵심 기술

자원 풀링(Resource Pooling): 여러 사용자가 자원을 공유하되 분리된 환경 보장

온디맨드(On-Demand): 필요할 때 즉시 자원 할당

자동화(Auto Provisioning): 스크립트나 툴로 인프라 자동 생성/배포

확장성(Scalability): 사용량 증가에 따라 수평 또는 수직 확장 가능

🔁 관련 개념 꼬리물기

컨테이너(Container): 격리된 애플리케이션 실행 환경 (ex. Docker)

Kubernetes: 컨테이너 오케스트레이션 플랫폼

IAC (Infrastructure as Code): 코드로 인프라 정의 (ex. Terraform)


📘 6-3. 클라우드 서비스 모델과 경제적 타당성

✅ 핵심 개념

클라우드는 서비스 형태에 따라 세 가지 모델(IaaS, PaaS, SaaS)로 나뉘며,
운영 효율성과 비용 절감에 강점을 가진다.

🔍 상세 설명

IaaS (Infrastructure as a Service)

서버, 네트워크 등 인프라 자원을 가상으로 제공

예: AWS EC2, GCP Compute Engine

PaaS (Platform as a Service)

애플리케이션 개발 환경까지 포함하여 제공

예: Heroku, Firebase, Vercel

SaaS (Software as a Service)

소프트웨어 전체를 웹으로 제공

예: Google Docs, Notion, Figma

경제적 타당성

초기 투자 비용 없이 시작 가능 (CAPEX → OPEX)

필요 시점에 자원만 사용하여 비용 효율성 극대화

🔁 관련 개념 꼬리물기

서버리스(Serverless): 개발자가 서버를 직접 관리하지 않고 함수 단위로 실행

클라우드 네이티브: 클라우드에 최적화된 애플리케이션 설계 방식

멀티클라우드/하이브리드 클라우드: 여러 클라우드 제공자 조합 운영 방식


📘 6-4. 마이크로서비스 아키텍처 (MSA)

✅ 핵심 개념

마이크로서비스 아키텍처(MSA)는 애플리케이션을 작고 독립적인 서비스 단위로 분리하여
유지보수성과 확장성을 향상시키는 설계 방식이다.

🔍 상세 설명

각 서비스는 독립적으로 배포, 실행, 개발 가능

REST API, 메시지 큐 등을 통해 서비스 간 통신

예: 회원 서비스 / 주문 서비스 / 결제 서비스 각각 별도 관리

프론트엔드 개발자 관점의 이해

서비스별로 API가 나뉘므로 API 게이트웨이를 통해 통합 요청

프론트엔드 앱도 기능 단위로 나누는 마이크로 프론트엔드와 연관됨

🔁 관련 개념 꼬리물기

API Gateway: 여러 마이크로서비스를 단일 진입점으로 묶어 관리

서비스 디스커버리: 동적으로 위치를 찾는 방식 (예: Eureka, Consul)

마이크로 프론트엔드: SPA를 작은 UI 단위로 분리하여 독립 배포 가능하게 만드는 방식


📘 6-5. 클라우드 컴퓨팅의 허와 실

✅ 핵심 개념

클라우드 컴퓨팅은 다양한 장점이 있지만,
보안, 종속성, 비용 증가 등의 단점도 존재한다.

🔍 상세 설명

장점:

유연한 자원 할당, 전 세계 배포, 빠른 서비스 론칭

단점:

클라우드 업체 종속 → 벤더 락인(Vendor Lock-in)

설정 오류나 보안 정책 미비 → 데이터 유출 위험

장기적으로는 과금 구조에 따라 비용 증가 가능성

🔁 관련 개념 꼬리물기

SLA (Service Level Agreement): 클라우드 제공자와 사용자 간 품질 보장 계약

클라우드 보안 원칙: IAM, 접근제어, 암호화 등 기본 보안 수칙 준수


💡 프론트엔드 개발자 관점 요약

주제 프론트엔드와의 연결성
클라우드 인프라 배포 자동화 (CI/CD), Vercel/Firebase 등 사용
컨테이너 프론트엔드 개발 서버, Nginx 활용
서비스 모델 프로젝트 환경에 따라 PaaS 또는 Serverless 활용
MSA API 통합 및 마이크로 프론트엔드 연계
클라우드 보안 인증/인가 시스템, 토큰 저장 방식과 밀접


✍️ 정리: 클라우드는 선택이 아닌 필수

프론트엔드 개발자에게도 클라우드 지식은
실제 서비스 배포, CI/CD 구축, API 연동에 직접적인 영향을 줍니다.
또한, 팀 프로젝트나 실무에서 MSA 기반의 백엔드 구조와 협업하기 위해서는
클라우드 환경과 마이크로서비스 개념을 필수로 이해해야 합니다.

profile
프론트엔드 개발자를 준비하고 있습니다.

0개의 댓글