
버전은 유의미한 수정이다VSC는 Version Control System으로 버전관리시스템버전의 종류로컬 VCS : 내 컴퓨터만 사용 + 협업 x중앙집중식 VSC : 중간에 컴퓨터를 두고 여기에 전부 저장 분산 VSC : 중간에 컴퓨터를 두고 복사본(피필요한 것)만 여

깃 특징 \- 분산식 버전 관리 시스템 \- 로컬(내 컴퓨터) 시스템 \- 내 컴퓨터(로컬) + 깃허브(원격 저장)로 버전 관리 가능!!명령을 하는 방법 \- CLI(명령 줄 인터페이스) : 텍스트로 명령 (깃은 주로 이 방식!!)GUI(그래픽 사용자 인터페이스

Github : Git 버전 관리 시스템을 사용하는 소스 코드 저장소Repositories : 프로젝트를 관리하는 공간branch : 레로지토리 내에서 독립적으로 작업할 수 있는 분기 \- 분기(Branching) : 소스 코드의 특정 지점에서 독립적인 작업을 진행하

깃 브랜치 이름 규칙 main : 말 그대로 메인 feature : 기능 개발 ex 로그인 개발 : feature/login release : 배포 준비 hotfix : 긴급 수정

world wide web의 줄임말로 인터넷에 연결된 컴퓨터를 통해 정보를 공유할 수 공간Web의 구조클라이언트(고객)와 서버(직원)로 구성클라이언트 : 서비스 요청서버 : 서비스 제공프로토콜클라이언트와 서버 간의 약속클라이언트와 서버 간 대화(통신)하는 방법웹 프로토

CSS Cascading Style Sheets의 약자로 html을 꾸며주는 언어 적용하는 방법 인라인 : html 태그에 바로 사용 내부 스타일 시트 : html 문서 안에 사용 (head 태그 안에 넣으면 됨) 외부 스타일 시트 : html

웹 애플리케이션의 서버 측을 의미하며 데이터베이스와 서버 , 애플리케이션의 로직을 관리 웹 서버 : 정적 페이지에 대해 대응웹 애플리케이션 : 동적 페이지를 처리자바스크립트를 스크립트 언어 이상으로 사용할 수 있게 해주는 런타임 환경=> NodeJS를 이용해서 백엔드

DataBase 데이터들의 집합체 DBMS (DataBase Management System) 데이터베이스를 운영하고 관리 종류 Oracle , Mysql , MariaDB SQL : 데이터의 기능을 수행하기 위한 언어 insert

사용자에게 인터페이스(화면)를 제공하며 사용자가 주문을 할 수 있다메인 페이지 : 상품 보기 + 주문하기오더 페이지 : 주문한 상품 보기클라이언트 , 데이터베이스와 상호작용index : 모듈들 호출 + 연결server : 서버 실행router : 경로 담당reqHand
썸네일 REST API API Application Programming Interface의 약자로 애플리케이션 간에 데이터 , 기능 , 특징을 교환할 수 있도록 하는 규칙 애플레이션 간 연결(통신) 하는 것이다. Rest API HTTP 통신을 할 때 지켜야 할 규약 Restful API : Rest API 규약을 잘 지킨 A...

NodeJS NodeJS 특징 JavaScript를 확장해서 사용하여 프론트 , 백 둘다 활용이 가능 싱글 스레드 : 작업이 있어도 하나의 스레드만 활동?? 이벤트 기반 : 이벤트가 발생하면 발동 논 블로킹 I/O : 기다리지 않고

express 공식 사이트에서는 Node.js를 위한 빠르고 의견 일치가 없는 미니멀리스트 웹 프레임워크이라고 한다 즉 NodeJS를 빠르게 사용하게 도와주는 프레임워크이다 http 모듈과 비교해보기 http 모듈 사용 express 사용 ---

기능별로 쪼개놓은 파일export나 require를 통해 사용할 수 있음영어 이름처럼 도서관이라는 뜻으로 필요한 기능을 찾아서 사용모듈보다 큰 단위 (모듈들이 합쳐진 것)틀안에서 일하다라는 뜻으로 통째로 가져다 사용하는 것라이브러리는 제어 주도권이 라이브러리에 있지만

map 자료구조 value 값에 객체 보내기...

delete는 영어 그래도 삭제할 때 사용하는 메소드이다.전체 데이터를 삭제할 땐 요청(req)이 필요하지 않지만개별 데이터를 삭제할 땐 어떤 데이터를 삭제할 지 알아야 하기 때문에요청(req)가 필요하다put은 데이터를 수정할 때 사용하는 메소드이다.특정 데이터의 특

Handler 영단어 뜻 "손을 쓰는 사람" 이라는 뜻처럼 HTTP req(요청)에 자동으로 호출되는 메소드로 특정 요청이나 이벤트를 처리하는 함수이다 app.get('/youtubers', (req, res) => { const showData = Array.

로그인을 하다 보면 아이디나 비밀번호가 맞지 않아 오류가 발생한다.오류에 맞는 예외를 처리해봤다.나는 사용자 요청값을 받은 후 db에 저장된 내용을 forEach문으로 순회하면서 아이디와 비밀번화가 맞는지 확인 한 후둘 중 알맞지 않은 것이 있다면 예외를 처리해주었다.

Router server : 요청을 받음 Router : 요청에 따라 URL에 따른 루트(경로)를 정해줌 Node.JS에서의 라우팅 요청이 오면 원하는 경로에 따라 경로를 정해줌

RDBMS DBMS는 Relational Database Management System으로 영단어 뜻처럼 관계형 데이터베이스를 생성,수정,관리 검색하는 소프트웨어 시스템이다 즉 관계가 있는 데이터베이스를 관리할 때 사용한다. 테이블의 구조 | 게시글 번호(컬럼)

테이블 생성 순서 board 스키마 생성 사용자 테이블 생성 사용자 데이터 삽입 게시글 테이블 생성 게시글 데이터 삽입

CLI는 Command Line Interface의 줄임말로 컴퓨터와 터미널에 텍스트를 입력해 상호 작용하는 방식이다.위의 사진과 같이 사용하며 아마 개발을 한 번이라도 해봤다면무조건 사용해 봤을 방식이다.Graphical User Interface의 줄임말로 컴퓨터와

유효성 검사 유효성 검사는 사용자가 입력한 값이 유효한 지 확인하는 것 이다. 로그인을 예시로 보면 아이디값에 문자+숫자를 입력해야 하는데 문자만 입력한 경우 , 숫자만 입력한 경우 , 아무것도 입력하지 않은 경우 등등 다양한 예외 상황이 발생한다 따라서 유효성

인증 사용자의 신원을 확인하는 갓ex 마이 페이지를 볼 때 , 로그인 인가인증 후에 사용자의 권한을 결정하는 것 ex 데이터 접근 , 파일 접근웹에서 서버와 클라이언트가 주고받는 데이터 중 하나로로그인 시 1\. 클라이언트에서 로그인2\. 서버가 쿠키를 만들어주면 클라

Trello 웹 기반의 프로젝트 관리 소프트웨어 직관적이고 단순한 디자인으로 인해 사용하기 쉬움 한국어 지원은 되지 않고 영어만 지원한다는 단점 Jira 애자일(스크럼)적으로 개발을 한다 할 때 많이 사용하는 툴 trello에 비해 복잡하다는 단점 업데이

지금까지 강의 프로젝트에서는 Routers는 경로 + 콜백함수(로직)의 역할을 해주고 있었다.하지만 Router는 경로를 찾아주는 역할이 원래는 알맞은 역할이었다.콜백함수도 넣는다고 틀린 것은 아님!!만약 Router에 콜백함수꺼지 넣어준다면 프로젝트 규모가 커질수록

페이징은 가상 메모리를 관리하는 기법으로 가상기억장치에 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다.하지만 여기서는 위의 페이징 기법보다는데이터들을 몇개씩 페이지별로 나눠서 보여줄것인가로 사용되었다.1️⃣ SQL우선 SQL에서 사용할 수 있는 방법으로는 lim

이번 강의에서는 도서별 좋아요 갯수와 로그인한 사용자의 좋아요 여부를 위해 서브쿼리 를 사용했다.도서 테이블 + 좋아요 테이블사용자 테이블 + 좋아요 테이블 + 책 테이블이런식으로 결론적으로 사용했는데 어떻게 사용했는지 살펴보자.서브 쿼리란 다른 쿼리 내부에 포함되어

둘 이상의 객체 또는 이벤트가 동시에 존재하지 않거나 발생하지 않는 경우 이다.강의에서 나온대로 "라면 끓이기"로 예시를 들자면현실1\. 물 끓이기 5분2\. 스프 넣기 10초3\. 면 넣기 10초4\. 라면 끓이기 3분5\. 먹기현실에서는 다음과 같이 순차적으로 라면

DELETEwhere 절이 없으면 모든 행 삭제 + 테이블은 남아 있음DROP테이블을 통째로 삭제TRUNCATE모든 행 삭제 + 테이블은 남아 있음DELETE vs TRUNCATE 차이점똑같아 보였던 둘의 차이가 있다.바로 제약 조건 고려 여부이다. 외래키와 같이 제

장바구니 API에 로그인한 사용자 정보를 토큰을 이용해 가져와사용하는 과정에서 오류가 발생했다.전체 코드전체 코드는 이러하다.가장 먼저 토큰이 완료된 TokenExpiredError 오류이다.토큰이 완료되면 개발자인 우리는 무슨 오류인지 알 수 있지만웹을 사용하는 사용

책 판매 페이지 프로젝트가 드디어 끝이 났다. 백엔드 역량이 부족했기에 쉽지만은 않았던 프로젝트였다. 강의를 보며 하긴 했지만 이걸 포트폴리오 프로젝트로 살리고 싶었는데 마침 그 기회가 생겼다. 코드 퀄리티 올리기 (코드 리팩토링) 바로 코드 퀄리티를 올리는 리팩토

컴파일러 언어코드를 기계어로 변환기계어를 실행인터프리터 언어 (기계어로 변환 x)기계에서 실행실행과 변환을 동시에 실행=> 컴파일 단계가 없음=> 컴파일러에 비해 실행 속도가 느림동적 타입 언어변수에 들어가는 값에 따라 런타임에 타입이 결정함수는 일급 객체함수는 객체와

📌목차컴파일 기반 언어 이해하기(- C언어(- 변수(- 자료형(자바스크립트는 동작 원리를 이해하기 어려운 구조이므로어차피 언어의 동작 원리는 거의 똑같으므로C언어로 동작 원리를 이해하는 방식으로 진행함인터프리터 언어 : 자바스크립트컴파일 언어 : c , 타입스크립트C

분기문은 조건에 따라 실행 내용이 달라 지는 구문이다!!if~elseswitch~casebreak , continue , return반복문은 문자 그대로 특정한 부분의 코드를 반복 수행 할 때 사용하는 구문이다.for문while문do~while문변수는 데이터를 저장하는

메모리는 주소를 통해 메모리에 접근하여 값을 읽고 쓸 수 있다.포인터는 메모리의 주소값을 저장하고 있는 변수주소값을 저장 = 해당 메모리를 가리킴\* 붙이기 : 주소값을 저장한다는 의미& : 주소값을 얻는다는 의미배열의 첫 번째 요소의 주소값을 갖는다arr = &arr

객체 지향 프로그래밍 데이터를 객체로 묶어 관련 기능을 함께 관리하는 프로그래밍 패러다임이다. JS는 객제 기반 언어이다. 객체 지향 프로그래밍을 사용하는 이유 예전에는 위에서 아래로 코드가 실행되는 구조적 프로그래밍 방식이었다 이 방식은 중간에 설계나 사용자 요

사용하면 좋은 점JS보다 버그를 줄일 수 있다유지보수가 쉽다강력한 높은 퀄리티의 코드를 생산할 수 있다타입스크립트 = 자바스크립트 + 타입체크데이터 타입을 표기하면 좋은 점컴파일 타임 시 오류를 체크함 (버그를 줄일고 안정성을 높여줌)타입스크립트 ->(컴파일) 자바스크

목차any 타입(- 리터럴 타입(- 유니온 타입(- Array와 Tuple의 차이점(any 타입은 타입을 명시적으로 지정 x가급적 사용을 안하는 것이 좋음타입을 지정할 수 없는 제한적인 경우만 사용!!특정 값을 나타내는 타입해당 값이 정확하게 일치해야 함!!리터럴 타입

자바스크립트의 라이브러리이며 SPA 및 모바일 애플리케이션 개발에 많이 사용됨컴포넌트 기반으로 컴포넌트를 이용해 UI를 만듦hook을 이용한 컴포넌트 생명 주기 관리가 가능하다초기 렌더링가상 DOM 변경 감지 및 비교부분 렌더링브라우저 업데이트⚠️ DOM (docume

Redux는 상태 관리를 도와주는 자바스크립트 라이브러리이다.웹이나 프로젝트의 규모가 커지면서 관리해야 할 상태들이 많아지면서상태 관리의 복잡도가 증가하게 되었는데 어떤 컴포넌트에서 언제 , 어떻게 ,왜 상태가 변했는지 파악해야 했고 이때 Redux가 탄생했다!!즉 수

이번엔 Redux를 이용한 할일 수정 및 삭제를 해보고자 한다.특정 데이터 가져오기 (useSelector)기능 구현 (useDispatch)순으로 진행해보겠다.우선 모든 할일이 아닌 특정 할일을 수정 및 삭제하는 것이기 때문에useSelector()를 사용해 특정 데

firebase란?? 파이어베이스는 2011년 파이어베이스사가 개발하고 2014년 구글에 인수된 모바일 및 웹 애플리케이션 개발 플랫폼이다. 파이어베이스의 Authentication를 이용하면 구글 로그인뿐 아니라 페이스북 , 깃허브 등등의 로그인을 구현할 수 있

위의 사진과 같이 버튼을 클릭하면 전역 배경색상이 변경되는 토글 테마 기능을 구현해보겠다.Theme정의ThemeContext 정의ThemeProvider로 감싸기기능 구현가장 먼저 사용할 테마를 정의해준다.여담으로 Record 유틸리티를 처음 알게 되었다.사용방법은 R

백엔드 파트 시간에 작업했던 북스토어 내용을 드디어 프론트엔드와 연동을 시작했다!!카테고리부터 가져오기 시작했으나 회원가입 / 로그인이 기본인 거 같아 해당 내용을 작성해보고자 한다.axios 다운 및 HTTP client 설정api 호출페이지 구현axios란 ??HT

이번에는 위의 사진처럼 쿼리 스트링을 이용해서 카테고리별로 목록을 보여주고 해당 버튼을 활성화하는 작업을 해보고자 한다. react-router-dom에서 제공해주는 useLocation , useSearchParams에 대해 알고가야한다.📌 useLocation현재

리액트는 컴포넌트들로 이루어져 있으며컴포넌트에서 렌더링에 영향을 미치는 데이터가 상태이다.따라서 리액트에서 상태 관리는 필수이며컴포넌트의 생성 , 업데이트 , 제거 시점을관리하는 생명 주기 관리가 중요하다이때 컴포넌트에서 상태(state)와 생명주기 기능을 사용할 수

내 기준 약 60~70% 진행된 책 판매 사이트 프로젝트 중강사님께서 중간 회고를 진행하셨다.지금까지 여러 강의를 들었지만 중간에 복습이 아닌 회고는 처음인 거 같아서 생소하면서 신기했다성장과 학습문제 해결유연성과 적응성퍼포먼스 향상회고의 이유는 다음과 같으며 결론적으

웹 / 앱을 사용하면서 Toast 메시지는 한번쯤 본 거 같다 하지만 이걸 구현해본적은 없었는데 이번 강의를 통해 구현해보게되었다. > 과정 Zustand store에 등록 화면 구현 기능 구현 1. Zustand store에 등록 Zustand를 사용하여 토

React 애플리케이션에서 서버 상태를 관리하여 쉽게 처리 할 수 있도록 도와주는 라이브러리이다.예전 이름은 React query이며 사용해보고 싶었는데 드뎌 사용해보았다.📌 생산성 향상우선 내가 생각하는 가장 큰 장점이다!!기존 비동기 작업 시에는 useState와

오픈 소스 라이선스에 대해 알아보기 전 오픈소스에 대해 먼저 알아보자오픈소스란 "누구나 특별한 제한 없이" 공개되어 있는 소스 코드로리뷰 , 수정 등 개선사항을 마음껏 펼칠 수 있는 소스 코드이다.예시로 React , Node.js , Apache 등등이 있다.그렇다면

이번 데브코스에서 실무역량 과제테스트를 진행했다.프론트엔드 파트로 순수 JS를 사용해서 문제를 푸는 내용이었고총 6문제가 출제되었다.4시간이라는 긴 시간이 주어졌는데 개인적인 일정으로 3시간 반을 사용했고 66점이라는 점수를 맞았다 ㅠㅠ분명 주어진 조건대로 하고 정상적

<오픈 소스 저작자>버그를 찾을 수 있다사용하면서 불편했던 점 , 혼자서는 찾을 수 없는 것들을 찾을 수 있다.<오슨 소스 사용자/컨트리뷰터>코드 리뷰를 받을 수 있음내가 원하는 기능을 추가할 수 있음코드 퀄리티를 높일 수 있음오픈 소스 코드 분석 경험협업

컨트리뷰션은 오픈소스 프로젝트에 참여하고 기여하는 활동을 의미한다. 그렇다면 어떻게 오픈소스 컨트리뷰션을 진행해야하는 지 알아보겠다. > 📌절차 레포지토리 fork하기 나의 로컬 레포지토리로 clone 코드 컨벤션 코드 구현 , 수정 (주석 수정) 나의 레포 깃허

매번 이미지를 새로 생성하고 사용할 수 없으니이미지 생성을 자동화하여 사용하기 편리하도록 해보겠다.가장 먼저 이미지로 사용할 내용을 작업해준다.여기서 주의할 점은 Dockerfile을 입력 시 대소문자를 잘 구분하는 것!!파일 만들기New-Item -Path . -Na

컨테이너 오테스트레이션 솔루션과 도커와 잘 어울리는 실행 환경 구성 도구이다.⚠️오케스트레이션 : 여러 개의 컴퓨터 시스템, 애플리케이션 및/또는 서비스를 조율하고 관리다음과 같은 기능을 제공하여 쿠버네티스를 많이 사용하고 있다.컨테이너 밸런싱트래픽 로드 밸런싱동적 수
요구사항대로 기능이 구현되었는지 확인자동화는 쉽지 않지만 CI/CD 구축에 필수적k8s Manifest 작성registry.yaml 파일 생성네임스페이스 생성:Manifest 적용:도커 레지스트리 설정레지스트리 이미지 다운로드:레지스트리 상태 확인:우분투 이미지 다운로

목차 테라폼 사용 Iac와 테라폼 Iac (Infrastructure as Code) 구성 관리 버전관리 , 재사용 , 공유 등에 유리 테라폼 (Terraform) Hashicorp사에서 제공하는 IaC 도구 즉 인프라를 코드로 관리하여 정의하고 자동

문서 관련 기여는 진입장벽이 상대적으로 낮기 때문에지금 당장 할 수 있는 기여를 찾아보기라이브러리 , 프레임워크 , 위키 성격의 문서 서비스 등등 찾으면서기여하는 과정에 의의를 두기기여자 , 공헌자라는 뜻처럼 오픈소스에 기여한 사람을 의미함맨처음엔 오타 찾기 , 한국어

제목처럼 MDN Web Docs에 기여해보면서오픈소스에 기여하는 연습을 해보겠다.gitnodeyarnhttps://github.com/mdn/content https://github.com/mdn/translated-content에 접속해 fork &

사실 이번에는 폿팅은https://velog.io/@mkkim044/MDN-Web-Docs-%EA%B8%B0%EC%97%AC%ED%95%B4%EB%B3%B4%EA%B8%B0이때와 거의 동일하다고 보면 된다.그렇지만 다른 점이 있기도 하고 복습 겸 다시 작성해보

최근 오픈 소스에 대해 배우면서 오픈 소스에 기여하는 것도 중요하지만해당 오픈 소스에 이슈나 PR 부분을 보면서 최근엔 무슨 이슈가 있었고어느 부분이 해결이 되었나 보는 것도 중요하다는 것을 알았다!!기술 습득다른 사람이 겪은 이슈나 아니면 기술들을 보면서 기술을 습득

React-icons는 리액트에서 아이콘을 쉽게 사용할 수 있도록 해주는 라이브러리이다.이번에는 이 오픈 소스를 살펴보고자 한다.📌 이슈https://github.com/react-icons/react-icons/issues/1028문제 : React-ico

깃허브에서 제공하는 빌드 , 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 서비스 1\. 프로젝트에 .github/workflows/<이름>.yml 만들기 2. 깃허브에 코드 push 및 PR 3. 코드 확인 후 merge 및 github act

https://velog.io/@mkkim044/github-action%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-CICD-%EA%B5%AC%EC%B6%95저번에 만들었던 프로젝트를 npm을 이용하여오픈소스 배포를 해보고자 한다.npm

프로젝트를 시작하면 결국 사용자의 요구에 맞게 프로젝트를 만들어야 하기 때문에 사용자의 요구에 맞는 요구사항 명세서를 작성한 후 개발에 들어가는 것이 좋다.이번에는 문서 편집기 프로젝트를 기반으로 요구사항 명세서를 작성해보겠다.참고로 문서 편집기 프로젝트는 네이버 노트

https://velog.io/@mkkim044/%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD-%EB%AA%85%EC%84%B8%EC%84%9C-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0저번 폿팅에 적었던 대로 사용자

프론트엔드에서의 단위 테스트는 UI 컴포넌트 , 상태 관리 등이 정상적으로동작하는 지 검증하는 용도로 사용되고 있다.그렇다면 어떻게 단위 테스트를 할 수 있을까??@testing-library/jest-dom@testing-library/react@testing-lib

웹 애플리케이션 테스트 자동화를 쉽게 할 수 있도록 돕는 도구이다.친화적인 UI를 제공해주기 때문에 테스트를 정말 쉽게 할 수 있다는 장점이 있다.Selenium IDE 설치테스트 케이스 생성테스트 스크립트 편집 (선택)테스트 실행https://chromewe

여러가지 응용의 실현에 필요한 infrastructure를 on-demand로 서비스IaaS에 가까운 모델production 환경을 AWS위에 구축 : EC2이미지 레지스트리 : ECR테라폼 상태 데이터 저장 : S3장점유연한 이용 , 안정적 서비스 , 다중화와 스케일

소프트웨어 개발과 배포를 자동화하여 더 빠르고 안정적인 제품을 제공하는 방법이다.이를 통해 개발자들은 코드 변경 사항을 자주 병합하고 자동화된 테스트를 거쳐 안정적으로 배포할 수 있다.고려해야 할 요소자동화된 빌드테스트 자동화배포 자동화단위 테스트는 개별적인 코드 단위

컴퓨터는 10진수 , 16진수보다 2진수를 가장 편해한다.컴퓨터 내부에서는 트랜지스터를 사용하여 정보를 저장하고 처리하는데켜짐(1)과 꺼짐(0)이라는 안정적으로 표현이 가능하다.이진 정수의 표현 범위4바이트 : -2^31~2^31정수가 아닌 수의 표현명제와 논리 연산

컴퓨터 구조 (아키텍처)하드웨어,소프트웨어 사이의 인터페이스 정의고수준 프로그래밍 언어 -> 어셈블리 -> 기계어의 변역 과정과 실행 모델컴퓨터 하드웨어의 구성중앙처리장치 : CPU제어장치 : 명령어를 해석하여 제어 신호 발생ALU(산술논리연산장치) : 산술 및 논리

컴퓨터 통신망망 구성 범위에 따른 분류LAN 근거리 통신망MAN 도시 지역 통신망WAN 광역 통신망OSI 7계층 모델애플리케이션 , 표현 , 세션 , 전송 , 네트워크 , 데이터 링크 , 물리 계층으로 구성계층 1 : 물리리피터 : 동일 LAN상에서 거리를 연장하거나

클라우드컴퓨팅이란개인 컴퓨터나 로컬 서버가 아닌 원격 데이터 센터에서 저장 공간, 처리 능력, 네트워크 기능 등을 사용할 수 있는 방식종류 : IaaS , PaaS , PaaS이점민첩성탄력성비용 절감가용성단점고비용 , 활용 난이도개방형/폐쇄형 클라우드개방형 클라우드 (
소프트웨어 개발과 배포를 자동화하여 더 빠르고 안정적인 제품을 제공하는 방법이다.이를 통해 개발자들은 코드 변경 사항을 자주 병합하고 자동화된 테스트를 거쳐 안정적으로 배포할 수 있다.고려해야 할 요소자동화된 빌드테스트 자동화배포 자동화단위 테스트는 개별적인 코드 단위