DevOps란?
원칙
① 고객중심으로 활동하기 ② 끝을 염두에 두고 만들기 ③ 처음부터 끝까지 책임지기 ④ 완전히 독립적으로 다수의 역할로 일하는 자율 팀 ⑤ 지속적으로 개선하기 ⑥ 모든 것을 자동화하기
지속 통합 (CI), 지속 제공 (CD, 출시)
- CI(Continuous Integration) ① 개발 단계에서 사용 ② 자동화된 코드 빌드 및 테스트 ③ 커밋 → 변경검증 + 자동패키징
- CD(Continuous Delivery) ① 제공 단계 자동화 ② 트리거를 통한 자동 배포 ⑤ 운영 환경으로 자동 게시
[실습] Git Hub Repository 생성하기
Source Control Management (SCM)
버전 제어
- 팀 개발 프로젝트를 위한 핵심 도구
- 코드 개발에서의 협업과 변경 추적
- 강력한소스 코드 버전 관리 도구, Git
- 개발 머신에서 소스 리포지토리 사본 유지
- 로컬에 모든 브랜치와 이력 정보 유지
- 로컬과 소스 리포지토리 사이의 변경 공유
- 네트워크 없이 로컬에서 변경 커밋과 버전 제어 가능
- 개발 머신에서 브랜치 생성 및 병합, 게시, 폐기 가능
Git 워크플로
- 프로젝트의 리포지토리 만들기
- 로컬에리포지토리복제
- 로컬에 새 파일 만들고 변경 저장
- 원격 리포지토리에 변경 push
- 원격의변경사항을로컬로 pull
- 변경을 로컬 리포지토리와 병합
[실습 1] Git Basic ; add, commit, push, pull
#1. git 설치
https://git-scm.com/downloads/win
git --version
#2. 원격 리포지토리 로컬 복제
cd c:\lab\day6\
mkdir project
cd project
# git clone https://github.com/chatgptkor/guestbook.git
git clone https://github.com/doraemon49/SKT_FLY_AI-guestbook.git
#3. VSCode에서 프로젝트 수행
guestbook.zip 압축 풀고 내용 2번 단계에서 클론한 guestbook 폴더에 복사
#4. Author identity config
git config --global user.email "chatgptkor@outlook.com"
git config --global user.name "chatgptkor"
git config --global user.email "min1593@nate.com"
git config --global user.name "doraemon49"
#5. 작업을 로컬에 저장
cd guestbook
git add .
git commit -m “initial upload”
#6. 원격 리포지토리에 작업 저장
git push
*필요시 GitHub Sign in: [Sign in with your browser]
#7. GitHub에서 header.ejs 직접 수정
Express Guestbook --> SKT 방명록
#8. 원격 리포지토리의 모든 업데이트 확인
git pull
더보기
PS C:\lab> git --version
git version 2.47.1.windows.2
PS C:\lab> cd day6
PS C:\lab\day6> mkdir project
디렉터리: C:\lab\day6
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025-01-16 오전 10:33 project
PS C:\lab\day6> cd project
PS C:\lab\day6\project> git clone https://github.com/doraemon49/SKT_FLY_AI-guestbook.git
Cloning into 'SKT_FLY_AI-guestbook'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (4/4), done.
PS C:\lab\day6\project> cd SKT_FLY_AI-guestbook
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git config --global user.email "chatgptkor@outlook.com"
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git config --global user.name "chatgptkor"
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git add .
warning: in the working copy of 'app.js', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'bin/www', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'package-lock.json', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'public/stylesheets/style.css', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'routes/index.js', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'routes/users.js', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'views/404.ejs', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'views/error.ejs', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'views/footer.ejs', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'views/header.ejs', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'views/index.ejs', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'views/new-entry.ejs', LF will be replaced by CRLF the next time Git touches it
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git commit -m "initial upload"
[main 3a99766] initial upload
15 files changed, 660 insertions(+), 1 deletion(-)
create mode 100644 Dockerfile
create mode 100644 app.js
create mode 100644 bin/www
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 public/stylesheets/style.css
create mode 100644 routes/index.js
create mode 100644 routes/users.js
create mode 100644 views/404.ejs
create mode 100644 views/error.ejs
create mode 100644 views/footer.ejs
create mode 100644 views/header.ejs
create mode 100644 views/index.ejs
create mode 100644 views/new-entry.ejs
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git push
info: please complete authentication in your browser...
Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (22/22), 8.24 KiB | 766.00 KiB/s, done.
Total 22 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/doraemon49/SKT_FLY_AI-guestbook.git
bcee086..3a99766 main -> main
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git pull
Already up to date.
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git pull
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (4/4), 1011 bytes | 48.00 KiB/s, done.
From https://github.com/doraemon49/SKT_FLY_AI-guestbook
2a63f00..fbf990a main -> origin/main
Updating 2a63f00..fbf990a
Fast-forward
views/header.ejs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Git 다운로드.
내 repository url을 가져와서 clone하기.
Git add, commit, push 진행하기. push 할 대, 로그인 필요 시 [Sign in with your browser]
https://git-scm.com/downloads/win
이번엔, GitHub 페이지에서 코드를 수정해보자.
'수정' 버튼을 누르고, 내용을 수정하고 'Commit changes...'를 누르고, (무엇이 수정되었는지 내용을 작성하고) 저장을 위한 'Commit changes' 누하면 코드가 변경되어 있다.
터미널에서 'git pull'을 치면, 방금 수정한 코드들을 가지고 온다. 코드가 변경된 것을 확인할 수 있다.
[실습 2] Git Branch ; 새로운 Branch 'dev'를 만들고 올리고 'main'과 합치기
#1. 새로운 브랜치 만들고 전환하기
git branch dev
git checkout dev
--- 한 번에 ----
git checkout -b dev
#2. 로컬 브랜치를 원격 저장소에 새 브랜치 생성 (새 브랜치 dev에 main에 있던 내용들 push)
git push origin dev
#3. 새로운 기능 작업 수행
header.ejs: Write in the guestbook --> SKT FLY AI 방명록
#4. 로컬에 작업 저장
git add .
git commit -m “update from dev”
#5. 원격 리포지토리 브랜치에 작업 저장 (처음에 push 할 때만, '--set-upstream' 필요. 나중에는 안 적어도 된다.)
git push --set-upstream origin dev
#6. 작업을 병합할 브랜치로 전환 (방금 dev에 수정한 내용을, main에도 적용시켜보자.)
git checkout main
#7. 작업한 브랜치를 병합할 브랜치로 병합 후 원격 리포지토리에 저장
git merge dev
git push
더보기
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git checkout -b dev
Switched to a new branch 'dev'
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git push origin dev
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote: https://github.com/doraemon49/SKT_FLY_AI-guestbook/pull/new/dev
remote:
To https://github.com/doraemon49/SKT_FLY_AI-guestbook.git
* [new branch] dev -> dev
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git add .
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git commit -m "update from dev"
[dev efc4c88] update from dev
1 file changed, 1 insertion(+), 1 deletion(-)
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git push --set-upstream origin dev
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 348 bytes | 348.00 KiB/s, done.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To https://github.com/doraemon49/SKT_FLY_AI-guestbook.git
fbf990a..efc4c88 dev -> dev
branch 'dev' set up to track 'origin/dev'.
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git merge dev
Updating fbf990a..efc4c88
Fast-forward
views/header.ejs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
PS C:\lab\day6\project\SKT_FLY_AI-guestbook> git push
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/doraemon49/SKT_FLY_AI-guestbook.git
fbf990a..efc4c88 main -> main
'AI, 논문, 데이터 분석' 카테고리의 다른 글
[PyTorch] Anaconda, PyTorch 설치 및 실행 (0) | 2025.01.17 |
---|---|
[GitHub] Codespaces, Actions (1) | 2025.01.16 |
[Docker] [실습5] Container Instances (0) | 2025.01.15 |
[Docker] [실습4] Docker Hub (0) | 2025.01.14 |
[Docker] [실습3] Docker Compose 개념 및 실습 (0) | 2025.01.14 |