본문 바로가기

study/Challenge

[Challenge / day-24] 기술셋 선정하기 - DevOps, AWS amplifier 소개, React 소개

오늘의 공부범위 : 강의 33-5강(Part3. ch2. 3-5강)

 

목차

1. 기술셋 선정하기 - DevOps

2. AWS amplifier 소개

3. React 소개

#1 기술셋 선정하기 - DevOps

(1) DevOps 란?

Development + Operation의 합성어로서, 소프트웨어 개발에서 배포까지.. 전달(delivery) 과정을 자동화 하고 빠르게 하여 결국에는 비지니스의 가치를 높일 수 있도록 하기 위한 개발 환경이나 문화를 말한다. DevOps는 기존의 소프트웨어 개발 방식과 운영 방식을 통합하여 빠른 속도로 소프트웨어를 제공하고, 신속하게 문제를 해결하며, 고객 요구 사항을 빠르게 수용하고 반영하는 것을 목표로 한다.

DevOps는 기존의 소프트웨어 개발 방식에서 개발팀과 운영팀이 분리되어 있던 것과는 달리, 개발팀과 운영팀이 하나의 팀으로 협력하며, 지속적인 통합, 지속적인 배포, 지속적인 테스트와 모니터링 등을 수행한다. 이를 통해 소프트웨어 개발과 운영의 간극을 줄이고, 소프트웨어 개발과 운영의 생산성과 효율성을 높이며, 안정적인 서비스를 제공할 수 있게 된다.

(2) 기술셋 선정을 위해 고려할 사항 리스팅

  • 배포 단계를 수립하는 것이 쉬운가?
  • 배포가 쉬운가?
  • 서버를 직접 관리해야 하는가?
  • 웹 사이트 호스팅(도메인)를 쉽게 할 수 있는가?
  • Github과 연동되어 git push시 배포 프로세스를 시작할 수 있는가?
  • 추후 백엔드 API를 개발할 경우 통합하고 배포하는데에 용이한가?
  • 배포 모니터링 지원
  • 개발 커뮤니티 활성화 정도
  • 무료/유료 - 유료라면 가격이 합리적인가?
  • 기술의 안정성 - 너무 새로운 기술이라 아직 안정성이 부족한 기술은 아닌지
  • 팀 내 기술 친숙도 - 기술 친숙도 만으로 기술을 결정할 수는 없지만, 비교군이 다 비슷할 경우 중요한 요소가 될 수 있다.

 

devops라는 개념이 단어는 많이 들어봤는데 어떤 것인지 이번에 조금 제대로 개념을 알게 되었다. devops 환경을 만들기 편리한 다음과 같은 후보군 중에 비교해보고 선정하는 과정이 있었다.

(3) DevOps후보군 조사

  • AWS Amplify
  • Jenkins
  • Google Firebase

 

(4) 비교 테이블 생성

위의 기준에 따라 세가지 기술을 분석하는 표를 생성해보았다.

Firebase도 나쁘지 않은 툴이지만 AWS가 백엔드 지식이 아직 많이 부족한 내가 풀스택 프로젝트를 하기에는 안성맞춤이라서 AWS를 사용하여 배포 및 유지보수까지 할 것이다.(다른 사이드 프로젝트를 혼자 진행할 경우 기획단계에서도 도움받을 것들이 많아 보인다.)

 

#2 AWS amplifier 소개

AWS amplify야 말로 DevOps의 결정체라고 할 수 있다. 

 

장점을 요약하면 다음과 같다.

AWS는 클라우드 컴퓨팅 서비스를 제공하며, 다양한 서비스와의 연동이 간편하다는 점이 특징이다. 인증, 서비스 모니터링, 데이터베이스, 앱 푸시 알림 등 다양한 서비스가 제공되며, CLI(Command Line Interface)을 통해 프론트엔드 초기 프로젝트 셋업, 백엔드 프로젝트 셋업, 배포, 웹 호스팅 추가 등 많은 기능을 수행할 수 있다. 또한 AWS는 커맨드 하나면 배포를 끝낼 수 있으며, 별도로 웹 서버 셋팅을 요구하지 않는다는 점에서 매우 편리하다.

#3 React 소개

React는 어떻게 소개해야할지 고민이라고 하시면서, 기본개념을 짚어보는 것이 맞다고 생각하셔서 다음과 같이 정리해보았다.

 

(1)기본적인 컨셉

React는 선언형(declarative)이라는 특징을 가지고 있다. 이는 어플리케이션의 각 상태에 대한 뷰(view)만 설계하면 된다는 의미이다. React는 상태가 달라짐에 따라 알아서 필요한 컴포넌트만 업데이트하여 렌더링한다.

또한 React는 컴포넌트 기반(component-based)으로 구성되어 있다. React에서 컴포넌트는 스스로 상태를 관리하는 캡슐화된 컴포넌트이며, UI를 재사용 가능한 개별적인 여러 조각으로 나눈다. 이러한 컴포넌트는 다른 컴포넌트와 조합하여 복잡한 UI도 구현할 수 있다. React의 컴포넌트는 외부에서 주어지는 인풋(props)과 내부에서 관리하는 상태(state)로 이루어져 있다.

 

(2) 주요 개념

가상 DOM은 React에서 UI를 렌더링할 때 사용되는 기술로, 실제 DOM과 유사한 가상의 DOM을 메모리에 만들어서 사용한다. React에서는 상태 변화가 있을 때마다 가상 DOM과 실제 DOM을 비교하여 변경 사항이 있는 부분만을 업데이트하는데, 이를 통해 DOM 조작이 일어날 때마다 업데이트하는 방식을 사용하지 않아도 되어서, 성능을 향상시킬 수 있다. 또한, 가상 DOM은 업데이트 되어야 할 최소한의 컴포넌트를 계산하고 이를 실제 DOM과 연동하여 렌더링 성능을 향상시키는 데에 사용된다. 이러한 방식을 사용하면, 잦은 DOM 업데이트 연산의 횟수를 줄일 수 있으며, 성능을 향상시킬 수 있다.

 

그 외에도 고차함수, 제어컴포넌트, 컨택스트의 개념을 쭉 정리해주셨다. 소홀히하는 부분도 확실히 있었는데 이번에 정리하고 리엑트를 사용해서 프로젝트를 만들 준비를 할 수 있게 되었다.

 

내가 잘 모르는 내용들이 많이 나오지만 그래서 다음시간이 더 기다려진다..!!

 

관련링크

패스트캠퍼스 : http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #환급챌린지 #직장인인강 #직장인자기계발 #패캠인강후기 #패스트캠퍼스후기 #오공완 #사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact