학교 공부/클라우드컴퓨팅
[클라우드컴퓨팅] 1-2. IT 엔지니어 필요 기술 스택
KimNang
2024. 11. 14. 23:42
1. 백엔드 개발자 기술 스택
백엔드 개발자 주요 기술 스택
- 프로그래밍 언어
- Java, Python, JavaScript(Node.js) 같은 여러 언어 사용하여 웹사이트나 앱에 기능을 추가하고 데이터를 처리
- Java는 복잡하고 대규모인 시스템에서도 안전하고 믿을 수 있는 성능을 유지하게 해줌
- Python은 손쉽게 다룰 수 있고, 새로운 기능을 빠르게 만들어내는데 좋음
- Node.js는 실시간으로 변화하는 웹 애플리케이션을 만들때 빠르게 데이터를 처리하는데 적합 - 백엔드 프레임워크
- 백엔드 프레임워크는 개발 시간을 줄이고 코드를 효율적으로 재사용할 수 있도록 도와줌
- Spring Boot(Java)와 같은 안정적인 서비스를 제공하는데 널리 사용됨
- Django(Python)는 MVC(Model-View-Controller) 구조를 기반으로 하여, 마치 잘 정리된 주방처럼 코드를 깔끔하게 유지하고 쉽게 관리할 수 있게 함
- Express.js(Node.js)는 꼭 필요한 기능들만으로 간단하고 빠르게 웹 애플리케이션을 만들 수 있게 도와줌 - 데이터베이스
- 데이터베이스는 웹사이트나 앱의 데이터를 보관하고 관리하는 중요한 시스템
- 관계형 데이터베이스(RDBMS)인 Oracle, MySQL, MsSQL은 많은 양의 데이터를 효율적으로 관리하는 데 적합함 (테이블 기반으로 함)
- NoSQL 데이터베이스인 MongoDB는 다양한 형태의 데이터를 저장하는 데 유용함
- 개발 환경과 프로젝트 특성에 따라 적합한 데이터베이스를 선택해야 함 - API 설계
- API (Application Programming Interface)는 백엔드 시스템과 다른 시스템(프론트엔드, 모바일 앱 등)간의 통신을 가능하게 함
- RESTful API는 HTTP 프로토콜을 기반으로 데이터를 주고받는 표준적인 방식
- GraphQL은 필요한 데이터만 요청하여 효율적으로 데이터를 전달할 수 있음
- API 설계는 개발 단계에서 중요한 부분이며, 확장성, 보안, 성능을 고려해야함
2. 프론트엔드 개발자 기술 스택
프론트엔드 개발자 주요 기술 스택
- HTML, CSS, JavaScript
- HTML은 기본 베이스를 마련
- CSS는 색, 모양 등을 설정함
- JavaScript는 동적효과 등을 설정함 - React, Vue.js, Angular
- React는 빠르고 효율적으로 꾸밀 수 있도록 도와주는 도구
- Vue.js는 기존 웹에 새로운 것을 더하거나 장식을 더할 수 있는 간편하고 유연한 도구
- Angular는 대규모에서 다양한 종류의 디자인을 효과적으로 배치하고 꾸밀 때 필요한 전분적인 도구. 웹 구성ㅇ르 깔끔하게 완성하는 데 유용함 - Sass, Bootstrap, Tailwind CSS
- 웹페이지를 더 아름답고 개성 있게 만드는 도구
- Sass는 일관된 색감을 더해 조화롭고 매력적인 외형을 완성하는 데 쓰임
- Bootstrap은 쉽고 빠르게 꾸밀 수 있도록 기본 세트가 정해져있음
- Tailwind CSS는 개성을 살린 장식을 더해 웹페이지를 더욱 독특하고 창의적으로 연출할 수 있도록 도와줌 - TypeScript
- 어떤 데이터를 사용할지, 어떻게 사용될지 미리 정리해 주어 코드 작성 중에 실수가 생기는 것을 방지함
3. 데이터베이스 관리자 (DBA) 기술 스택
데이터베이스 관리자(DBA) 주요 기술 스택
- 데이터베이스 관리 시스템(DBMS)
- MySQL, PostgreSQL, Oracle, MongoDB, Redis 같은 DBMS는 각각 저장할 수 있는 데이터의 유형과 관리 방식 다름
- 상황에 맞는 DBMS를 선택해야 함 - 데이터 쿼리 언어
- 데이터베이스에 저장된 정보를 검색하고 조작할 수 있음 - 백업 및 복구 도구
- RMAN(Oracle)과 mysqldump(MySQL)으로 예기치 않은 문제 발생 시 데이터를 신속하게 복구할 수 있음 - 데이터베이스 설계 도구
- ERWIN은 데이터 테이블 간의 관계를 시각화하여 최적의 데이터베이스 구조를 설계할 수 있음 - 모니터링 및 성능 튜닝 도구
- New Relic, SolarWinds, DataDog로 데이터베이스의 성능과 상태를 실시간으로 모니터링하고 최적화할 수 있음
4. DevOps 엔지니어 클라우드 엔지니어 기술 스택
DevOps 엔지니어 클라우드 엔지니어 주요 기술 스택
- 클라우드 플랫폼
- AWS, Azure, Google Cloud 등의 클라우드 플랫폼에서 서버, 데이터베이스, 네트워크 환경을 구성함
- AWS, Microsoft Azure, Google Cloud Platform(GCP)과 같은 플랫폼은 필요에 따라 규모를 조절할 수 있는 가상 공간을 제공함. 필요에 따라 공간을 늘리거나 줄일 수 있어 효율적임
- AWS는 다양한 서비스 제공. Azure는 Microsoft Office에 특화된 편리한 기능들을 제공
- GCP는 빅데이터 분석과 인공지능에 특화된 기능을 제공함 - 인프라 자동화 도구
- 인프라 자동화는 서버, 네트워크 데이터베이스와 같은 인프라 자원을 코드로 관리하여 설치 및 구성을 자동화하는 방법
- IT 환경을 더 빠르고 일관되게 관리할 수 있음
- Terraform은 인프라를 코드로 관리하는 도구, 인프라 자원 생성, 수정, 삭제하는 작업을 자동화
- Ansible은 서버 구성과 애플리케이션 설치를 자동화하는 데 많이 사용
- YAML이라는 간단한 문법으로 설정 파일을 작성할 수 있음 - 가상화 및 컨테이너화 도구
- Docker와 Kubernetes는 애플리케이션 실행에 필요한 모든 것을 담아 어떤 환경에서도 동일하게 작동되도록 돕는 기술
- 애플리케이션은 윈도우, 맥 등 어떤 환경에서도 똑같이 실행할 수 있게 해줌 - 클라우드 모니터링 도구
- CloudWatch(AWS), Stackdriver(GCP), Azure Monitor는 시스템 성능, 리소스 사용량, 오류 로그 등을 실시간으로 모니터링하여 문제 발생 시 빠르게 대응할 수 있도록 돕는 도구 - 네트워크 및 보안
- 클라우드 환경에서도 안전하고 효율적인 네트워크 필수적
- VPC 설정은 백엔드와 DB 사이를 연결하는 통로
- IAM과 보안 그룹 설정을 통해 권한을 관리하여 특정 사람만이 창고에 접근할 수 있도록 하는 것과 같음
5. 백엔드·프론트엔드 개발자, DevOps·클라우드 엔지니어 공통 기술 스택
공통 주요 기술 스택
- Git
- 개발자와 DevOps 클라우드 엔지니어가 협업하면서 코드 변경 사항을 체계적으로 기록
- 필요시 이전 버전으로 쉽게 되돌릴 수 있게 해주는 버전 관리 도구 - Docker
- 컨테이너화 도구
- 개발자가 만든 시스템이 어디서나 동일한 환경에서 작동하도록 해주는 도구 - Jenkins
- 자동화 도구
- 개발자가 해야할 반복 작업을 자동으로 처리해주는 도구
- 사람이 일일이 하지 않아도, 같은 결과를 꾸준히 얻을 수 있음
6. 사이트 신뢰성 엔지니어 기술 스택
사이트 신뢰성 엔지니어 주요 기술 스택
- 모니터링 및 경고 시스템
- Prometheus와 Grafana는 서버나 프로그램이 잘 작동하는지 실시간으로 상태를 확인하고 문제를 찾기 위한 도구
- Prometheus는 필요한 정보를 수집하고 기록하며, 문제가 발생하면 경고를 보냄
- Grafana는 Prometheus가 모은 정보를 그래프나 차트로 시각화하여 누구나 쉽게 상태를 확인할 수 있도록 도와줌
- 두 도구를 함께 사용하면 문제를 빠르게 찾고 해결할 수 있어 서비스가 안정적으로 운영됨 - 로깅 도구
- ELK 스택, Splunk는 서버 운영 기록을 저장하여 문제 해결 시 도움을 줌 - 가용성 관리 도구
- Kubernetes는 여러 프로그램을 서버에 나눠서 설치, 문제가 생기면 자동으로 고쳐주는 시스템. 프로그램이 항상 작동하게 관리
- Istio는 이런 프로그램들이 서로 잘 연결되고 안전하게 통신할 수 있도록 돕는 역할을 함. 프로그램 간의 연결과 보안을 관리하는 도구
- 두 도구를 함께 사용하면 시스템이 안정적이고 효율적으로 운영될 수 있음 - 장애 대응 및 복구 도구
- PagerDuty, OpsGenie는 시스템 장애 발생 시 관리자에게 알림을 보냄
- 문제 해결 과정을 관리하여 빠른 복구를 지원함