Day05_git clone, git fork/웹 서비스란?

정소현·2024년 7월 19일
0

스파르타

목록 보기
7/50

🔅 여론

: 팀 프로젝트가 끝난 이후 내 git repository로 파일을 옮겨와 배포하려고 했다.
git으로 바로 배포하려고 구글링을 하니 두 가지 방법이 나왔다.
git clone, git fork 비슷해보이지만 차이점이 있었고 이번기회에 정리하고 기억해두려 한다.

▸ git clone

git clone은 원격 저장소를 로컬 환경으로 복제해오는 것이다.
원격 저장소에 담겨있었던 모든 정보들을 가지고 와 히스토리, 브랜치 등을 로컬환경에서 볼 수 있다.


▸ git fork

fork는 다른 사람의 원격 저장소를 저장해서 내가 수정하고 사용할 수 있다. 보통 오픈소스나 다른 프로젝트에 기여할 때 쓴다. 원본 프로젝트와 완전히 구분 되어 있는 환경에서 작업이 가능하다.
만약 원격 저장소와 연결하여 원격 저장소의 업데이트된 내용을 가지고 오고 싶다면 fetch작업을 해주어야 한다.

git fork 한 저장소를 원래 저장소의 최신 commit으로 바꾸는 방법

  1. fork한 로컬 저장소에 원래 저장소를 remote로 등록하기
    • 의미 : 이름을 upstream 으로 하는 원격 저장소를 추가한다는 것
git remote add upstream "원격저장소git주소"
  1. 원격저장소에서 최신 commit내역 가져오기
  • fetch만 했을 때에는 최신 commit내역만 가져오고 merge(병합)은 하지 않는다.
  • 단순히 바뀐 내역 확인만 할 때는 fetch만 사용, 바뀐 내역을 로컬 데이터에 병합하기 위해서는
    1. 로컬 저장소의 master로 branch를 변경
    2. fetch
    3. merge하여 변경사항 내 로컬저장소에 병합(merge하면 자동으로 push)
git checkout master
git fetch upstream
git merge upstream/master

위의 세 코드를 붙여넣어주면 내 로컬저장소에 병합완료!

  • 소규모 작업보다는 많은 사람들이 작업하는 프로젝트를 따로 사용할 때
    혹은 오픈소스에 기여형태로 git fork는 사용한다.

🌟 웹

★ 웹 서비스란?

💥 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템

💥 서버(server)와 클라이언트(client)로 구성되어 있다.
- 클라이언트가 서버에 요청(request), 서버는 클라이언트의 요청에(response)

=> 우리는 클라이언트로서 브라우저라는 매개를 이용하여 서버에 어떠한 것을 요청한다.

★ 웹 서비스를 원활하게 하기 위한 도구

  • AWS : 아마존 웹 서비스
  • Vercel : 클라우드 플랫폼
  • Netlify

★ REST API ?

💥 클라이언트와 서버 간의 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
💥 REST(Representational State Transfer)의 약자
- 자원을 이름으로 구분하여, 해당 자원의 상태를 주고 받는 모든 것

HTTP URI을 통해 자원을 명시하고 HTTP Method(POST, GET, DELETE, PATCH..)를 통해
해당 자원(URI)에 대한'CRUD Operation'을 적용

🔅  CRUD Opeartion이란?
ㅁ Create : 데이터 생성(POST)
ㅁ Read : 데이터 조회(GET)
ㅁ Update : 데이터 수정(PUT, PATCH)
ㅁ Delete : 데이터 삭제(DELETE)

★ API?

💥 클라이언트와 웹 리소스 사이의 네트워크 통신을 위한 게이트웨이.
💥 어플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라하는 규칙들을 정의함
💥 응용프로그램 인터페이스 여러 소프트웨어간에 정보나 기능을 공유해주는 역할

★ 웹 서버의 중요한 기능 ?

  1. 웹 페이지를 주는 것
  2. API를 제공

모던 웹 서비스 구상방법

  1. 프론트엔드와 백엔드를 따로 배포
    • 장점 : 따로 관리할 수 있어 오류가 적다.
    • 단점 : 방화벽이나 접근성 처리가 힘들 수 있다.
  2. 프론트엔드와 백엔드를 같이 배포
    • 장점 : 방화벽이나 접근성이 편리하다.
    • 단점 : 프로젝트가 클 시에 연쇄관계인 문제점이 생길 수 있다.
  3. 백엔드만 배포
    • 장점 : 오류가 적을 수 있다. 백엔드만 배포하면돼서 편리
    • 단점 : 모던 프론트엔드 프레임워크의 이점을 제대로 활용하기 힘들 수도 있다.

🔥 오늘의 회고!

들어는 봤지만 정확한 개념을 말하기 힘들었던 여러 용어들을 알게되고 웹에 한 걸음 더 가까워진 것 같다...!
무조건 외우는 것이 아니라 웹의 클라이언트와 서버가 정보를 전해받고 실행하는 시스템을 이해되었다...!
아직 배울게 더 많아서 너무 기쁘다 기...쁘..다!!! 기뻐하며 내일도 화이팅 💥

0개의 댓글