네트워크 계층 모델 - OSI 7 Layer Model
네트워크는 아래의 계층 모델에 따라 "데이터"가 전달된다.
네트워크 작업에 따라 체계적으로 구간을 나눈 것이고,
현재까지 네트워크 계층은 7개의 층으로 이루어져있다.
# 네트워크를 계층화 하는 이유는?
상위 계층을 하위 계층의 세부적인 사항으로부터 독립시킴으로써
기능 단위로 모듈화 가능하다.
각각의 계층을 독립적으로 유지, 관리할 수 있기에, 체계적으로 네트워크 상에서 데이터를 다룰 수 있다.
따라서, 네트워크 계층이 있기에, 네트워크 상에서의 데이터를 다루는 "규칙"으로 정해진 규격에 맞춰
원하는 정보 통신을 하기 때문에 네트워크 관리 및 개발에 유용하다.
개발 버전 관리
CVCS - 중앙 집중식 버전 관리
- 파일 관리 서버가 존재한다.
- 클라이언트가 중앙 서버에서 파일을 받아서 사용한다.
DVCS - 분산 버전 관리
- 분산된 저장공간이 존재하여, 개발자 개개인의 코드를 개별적으로 업로드할 수 있다.
- 개발자들의 작업물의 히스토리를 보관할 수 있다.
- 코드를 버전별로 관리가 되며, 이전 버전의 코드를 불러올 수 있도록 한다.
DVCS - 분산 버전 관리는 주로, Git을 사용한다.
그럼, 이제 Git을 사용해보자
Git 사용하기
다음은, Git을 처음사용하는 분들을 위해 로컬에 Git 저장소를 구축하고, 원격 저장소에 코드를 Push하는 방법까지
정리한 글입니다.
1. 로컬 환경에서 Git 로컬 저장소 생성
프로젝트의 상위 디렉토리에서 아래의 명령어를 실행
$ git init
그럼, 이제 로컬환경의 해당 디렉토리에 Git 로컬 저장소가 구축된 것이다.
해당 로컬 저장소는 기본적으로, master 브랜치로 구축이 된다.
2. 로컬저장소와 원격저장소를 연결하기
Git 로컬 저장소를 생성한 곳에서 아래의 명령어를 실행
$ git remote add {Github 원격저장소 링크}
그럼, 이제 로컬 저장소와 원격 저장소가 연결되어진다.
3. 로컬 저장소에서 코드 반영 사항을 add 하고, commit 하기
아래 명령으로 로컬 저장소에 반영된 코드파일을 "커밋 가능한 파일" 상태로 만든다.
git add를 하는 이유에 대해선, 여름방학 때 프로젝트하면서 정리한 블로그에 포스팅 되어있으니, 궁금하면,
참고하길 바란다.
$ git add .
아래 명령으로 로컬 저장소에 반영된 코드 파일을 업로드시킨다.
commit을 거쳐 Git 로컬저장소에 코드파일이 최종적으로 저장되는 것이다.
$ git commit -c "커밋 메시지"
4. 로컬 저장소에 저장된 사항(commit 한 코드파일)을 원격 저장소에 Push (업로드) 하기
아래 명령을 실행해 로컬 저장소에 저장된 코드 파일을 원격저장소로 코드를 Push한다.
원격 저장소의 저장된 내역과 로컬 저장소에 저장된 내역이 충돌(Comflict)가 나지 않는 이상, 정상적으로 Push가 되는 걸 확인할 수 있다.
$ git push origin {remote 저장소 이름}
이제 비로소, 로컬 환경에서 작업한 내역을 원격 저장소에 코드를 Push를 완료했다.
원격 저장소에 가서 정상적으로 Push 내역이 반영되었는지 한번 확인해보자!
기타. Git을 사용할 때 도움이 되는 명령어
아래 명령을 통해 로컬 저장소의 코드 반영 내역을 출력해주는 명령어이다.
git status를 통해, 현재 작업한 사항이 로컬 저장소에 저장을 했는지, 안했는지 알 수 있기에,
실제로 프로젝트하면서 많이 사용하는 명령어이다.
$ git status
아래 명령을 통해 로컬 저장소에 존재하는 모든 브랜치를 출력해주고,
현재 작업 중인 브랜치를 보여준다.
그리고, 모든 브랜치가 원격 저장소의 브랜치와 연결이 되었는지와,
원격 저장소의 브랜치와 로컬 저장소의 브랜치의 버전을 비교해준다.
해당 명령어는 협업 프로젝트를 하면서 많이 사용하게 되는 명령어이다. - Git Flow
$ git branch -vv
아래 명령을 통해 로컬 저장소에서 작업 중인 브랜치를 변경할 수 있다.
해당 명령어도 협업 프로젝트할 때 많이 사용하는 명령어이다. - GIt Flow
$ git checkout {로컬 저장소에서 변경할 브랜치 이름}
Git은 수많은 명령어가 있고,
각각의 명령어는 로컬 저장소 관리에 도움을 준다.
앞으로 더 많이 협업 프로젝트를 해보면서
Git에 대해 사용법을 익혀나갈 것이고,
만약 좋은 정보가 추가된다면,
Git 보너스 포스팅을 하도록 하겠다.
'CS 대학강의' 카테고리의 다른 글
프로그램 설계 방법론 - 트러블 슈팅 [주사위 게임 과제] (0) | 2022.10.08 |
---|---|
프로그램 설계 방법론 - #08 [반복문 설계 & MVC 아키텍처 | 공굴리기] (0) | 2022.10.06 |
[CS 1-2 | 대학생을 위한 실용금융] 투자 7주차 (0) | 2022.10.05 |
[CS 1-2 | 대학생을 위한 실용금융] 저축과 세금 6주차 (0) | 2022.10.05 |
[CS 1-2 | 시스템 프로그래밍 기초] 조건문과 반복문 9주차 (2) | 2022.10.04 |