멋쟁이사자처럼 13기/정기 세션

[멋사/Mac OS] OT & 1주차 정기 세션

개발자 지망생 리네 2025. 3. 19. 03:18

OT에서는 멋쟁이사자처럼, 운영진 소개, 전체 일정과 아웃제도 안내 순으로 이루어졌다. 간단하게 아웃 제도에 대해 설명하자면 아웃 3회시 퇴부 조치가 내려지는 제도다. 지각하거나 과제를 미제출하면 경고 1회가 누적되고, 경고 3회시 아웃 1회로 전환된다. 결석은 바로 아웃 1회로 취급되며, 아웃 3회시 퇴부다. 아마 웬만하면 받을 일이 없겠지만, 혹시라도 다른 일이 겹칠 수도 있기 때문에 확인해두는 것을 추천한다.

 

OT가 끝나고 바로 1주차 정기 세션에 들어갔다.


0. 정기 세션 전 준비

(1) Github 계정 생성

(2) 비주얼 스튜디오 코드 설치

(3) Git 설치

 

(1) Github 계정 생성

위는 이미 이전에 만들어 둔 계정이 있어 별도의 언급은 하지 않겠다.

 

(2) 비주얼 스튜디오 코드 설치

맥에서 아예 응용프로그램을 설치하는 것이 처음이라, 처음부터 전부 알려주는 것을 찾아보았고 그 결과 아래 링크를 찾을 수 있었다.

정말 자세하고 친절하게 알려주고 있으니 참고.

https://www.codeit.kr/tutorials/67/vscode-tutorial-macos

 

VS Code 설치하기(macOS) | 코드잇

| 이번 튜토리얼에서는 VS Code 설치 방법과 사용법을 간단히 알아보겠습니다. # 설치 아래 링크에서 VS Code를 다운로드해 주세요. https://code.visualstudio.com/download 다운로드가 완료되면 파일을 열어

www.codeit.kr

 

(3) Git 설치

사전에 안내된 것은 깃허브 계정 생성과 VSC가 전부였으나, 알아보니 Git 설치가 필수적이라 설치하는 법을 적겠다. 나는 이전 윈도우에서 이미 Git을 설치하였으나, 이번에 맥을 같이 공부하기로 결정해서 맥에 Git를 설치하는 법을 서치를 통해 찾았다.

 

https://sin0824.tistory.com/9#google_vignette

 

[초보개발자] Mac에서 Homebrew로 Git 설치하기

[초보개발자] Mac에서 Homebrew로 Git 설치하기 Mac 으로 개발을 공부하면서 익숙해지기 어려웠던건 터미널(Terminal)을 이용한 소프트웨어 다운로드였다. 비 전공자였던 나는 커맨드창이 익숙치가 않

sin0824.tistory.com

 


1. 정기 세션 - 내 코드 올리기

정기 세션을 들으면서 세션 실행 결과가 내가 한 결과랑 다르게 나와서 당황했던 기억이 있다. 집에서 맥으로 다시 복기하면서 무엇이 문제인지 짚어갔다.

 

(1) Git 연동을 위한 초기 설정 코드

터미널에서 작성한다.

터미널은 command와 스페이스 바를 동시에 누르면 나오는 spotlight 검색에 '터미널'이라고 검색하면 바로 실행이 가능하다.

git config --global user.email githubemail@gmail.com
git config --global user.name github_id

 

 

 

(2) 바탕화면에 git 폴더 생성

윈도우와 마찬가지로 바탕화면에서 오른쪽 마우스를 클릭하고 새로운 폴더를 눌러 생성하면 된다.

사실 꼭 git이라는 이름으로 생성할 필요는 없다.

 

(3) 생성한 폴더를 로컬 리포지토리로 지정

VSC 터미널에서 작성해야하는 코드다. 만일 본인의 VSC에 터미널이 뜨지 않는다면, 마우스를 가장 위로 올리면 나타나는 Terminal을 눌러 New Terminal을 클릭하자.

 

세션 자료를 자세히 확인해보면 파일 경로가 \Desktop\git으로 되어있는 것을 알 수 있다. 만일 파일 경로가 어디인지 알 수 없는 상황이라면, VSC 터미널에 아래 코드를 입력하자.

pwd

 

이렇게 현재 경로가 어디인지 추적했을 때 git 폴더가 아니라면 경로를 바꾸어주어야한다.

아래 코드를 VSC 터미널에 입력하자. 이때 cd 는 change direction의 약자라고 배운 적이 있다.

cd /Users/사용자이름/Desktop/git

 

경로가 제대로 설정된 것을 확인하고 아래 코드를 통해 로컬 리포지토리로 지정한다.

git init

 

만일 git을 인식하지 못한다면 git이 제대로 설치되었는지 확인하자.

 

 

(3) 브랜치를 main으로 변경

git branch -M main

 

 

(4) txt 파일 만든 후 add & commit

반드시 txt 파일은 git 폴더 내에 저장하도록 하자.

git add [파일명] 은 해당 파일을 올리는 코드이고

git add . 은 해당 폴더에서 바뀐 파일을 전부 올리는 코드이다.

git commit -m "커밋 메시지"는 변경사항을 확정하는 코드다.

git add .
git commit -m "git-test"

 

 

(5) 원격 저장소 참조

이후 자료에 나와있는대로 깃허브 리포지토리를 복사해 아래 코드를 입력한다.

origin이라는 변수를 사용해 원격 저장소를 참조할 수 있다.

git remote add origin [원격저장소 주소]

 

 

(6) 푸시하기

실제로 깃허브 리포지토리에 올라가는 것이 push다. git push 변수명 브랜치 코드를 입력한다.

현재 브랜치가 main이기 때문에 main으로 작성한다.

git push origin main

 

푸시를 하고 나서 보니, 윈도우에서는 보이지 않았던 .DS_Store이 같이 add 되었다.

.DS_Store은 애플에서 정의한 파일 포맷으로, 설정 없이 push하게 되면 같이 push 된다.

깨끗하게 보이고 싶기도 하고, 만일 윈도우랑 같이 협업하였을 때 문제가 생길 수도 있을 것 같이 이미 push한 .DS_Store를 제거하고 싶었다.

 

-push한 .DS_Store 제거

아래 코드를 입력해서 올라간 파일을 제거하자.

git push origin --delete .DS_Store

 

-gitignore 사용하여 .DS_Store 이 push 되는 것을 막기

모든 작업에서 github에 해당 파일을 push하고 싶지 않다면 gitignore, 문자 그대로 git이 무시하는 파일로 만들어주면 된다.

아래 링크를 참조했다.

https://wooono.tistory.com/251

 

[GitHub] .DS_Store 파일 개념 및 삭제 방법

.DS_Store 파일이란? DS_STORE 파일이란 Desktop Services Store의 약자로, 애플에서 정의한 파일 포맷이다. 애플의 맥 OS X 시스템이 finder로 폴더에 접근할 때 자동으로 생기는 파일로써, 해당 폴더에 대한

wooono.tistory.com


2. 정기 세션 - 타인과 협업하기

(1) 팀원 폴더 생성 후 원격저장소 복제

git 폴더와 마찬가지로 바탕화면에 생성한다.

git을 init 했을 때처럼 경로가 중요한데, 만일 경로가 팀원 폴더가 아니라면 아까 사용했던 cd 코드를 사용해 경로를 바꿔주자.

원격저장소를 복제하는 코드는 아래와 같다.

git clone [원격저장소 주소]

 

해당 코드를 작성하면 팀원 폴더 안에 likelion13이라는 폴더가 하나 생성된다. 안에 들어가보면 내 코드 올리기에서 실습한 git.txt 파일이 첨부되어 있을 것이다. clone 그러니까 likelion13이라는 리포지토리가 복제되어 팀원 폴더 내에 들어갔다고 보면 된다.

 

만일 permission denied라는 오류가 발생한다면, 해당 폴더에 실행 권한이 없어서 발생하는 에러이므로 권한을 부여하면 된다.

 

-권한 확인하기

아래 코드로 팀원 폴더에 권한이 있는지 확인한다. 코드 결과가 Permission denied라면 부여된 권한이 없다는 뜻이다.

ls -l /Users/사용자이름/Desktop/팀원

 

-접근 권한 추가하기

+x +r은 각각 실행과 읽기 권한을 의미한다.

chmod +x /Users/사용자이름/Desktop/팀원
chmod +r /Users/사용자이름/Desktop/팀원

 

다시 실행하면 해당 오류는 발생하지 않을 것이다.

 

 

(2) 깃허브 내에서 커밋하기

세션 자료 그대로 해도 별다른 오류가 일어나지 않았다. 따로 주의해야하는 점도 없었다.

 

 

(3) txt 파일 생성 후 다시 add & commit

git3.txt파일은 팀원>likelion13 폴더 내에 저장되어 있어야한다. 세션 자료 git3.txt의 경로를 보면 likelion13>git3.txt라고 적혀있는 것을 확인할 수 있다. 이때 likelion13 폴더 전체를 add 하게 될 경우, 내부에 있는 git3.txt만 add되는 것이 아니라 폴더 자체가 다시 추가되는 것이기 때문에, 제공한 코드와 다르게 cd로 likelion13 폴더로 들어가 git add git3.txt로 해당 파일만 추가했다. add 및 commit는 내 코드 올리기에서 실습한 코드와 메시지만 다르므로 넘어간다.

 

 

(4) 원격저장소를 참조하고 pull

pull을 하는 이유는 2-(2)에서 해당 리포지토리 내에 변경사항이 있기 때문이다. 변경사항을 무시한 채 push를 해버리면 충돌이 일어날 수 있으므로 먼저 변경사항을 pull 로 받는다.

git remote add origin [원격저장소 주소]
git pull origin main

 

 

(5) 푸시

마찬가지로 push한다.

나는 여기에서 오류가 발생했다.

error: src refspec main does not match any라는 오류였는데, 이는 로컬에서 main 브랜치가 존재하지 않거나 커밋이 하나도 존재하지 않는 상태에서 푸시를 시도할 때 발생하는 에러다. commit은 확실히 했으니 로컬에 main 브랜치가 존재하지 않을 가능성에 무게를 두었다.

 

-현재 브랜치 확인

내가 지금 어떤 브랜치에서 작업하고 있는 건지 확인하는 코드다. 해당 코드를 실행해보니 master가 나왔다.

git branch

 

-main 브랜치 생성 및 변경

git checkout -b main

 

이후 다시 push 했으나...

 

error: Updates were rejected because the tip of your current branch is behind 라는 에러가 떴다.

원격 저장소 브랜치가 로컬보다 앞서 있어서 직접 푸시할 수 없을 때 발생한다. 원격 저장소 브랜치에는 이미 main이라는 브랜치가 있는데, 로컬은 방금 생성했으니 원격에서 작업한 내용이 로컬에 들어있지 않는 것이다.

 

-원격 변경 사항 가져오기

pull로 원격 저장소에서 변경 사항을 가져오는 것은 다루었다. 뒤에 붙는 --rebase는 로컬의 변경 사항을 원격의 최신 커밋 위에 쌓을 수 있도록 해주는 코드다.

git pull origin main --rebase

 

이렇게 다시 pull 을 받고 commit 후 push하자.


3. 브랜치로 협업하기

(1) 브랜치 생성 후 해당 브랜치로 전환

어쩌다보니 에러를 해결하면서 이미 실습해버린 부분이다.

 

git branch 는 현재 브랜치를 조회

git branch [브랜치명]은 브랜치 생성

git checkout [브랜치명]은 해당 브랜치로 전환

git status는 현재 브랜치에서 변경된 파일과 커밋 상태를 확인한다.


이렇게 첫 번째 정기 세션이 마무리되었다. 확실히 git 부터 다루기 시작하니 기초부터 차근차근 배워나가는 느낌이라 편안하다. 다음 주차에는 JAVA를 다루던데, 어떻게 다룰 지 궁금하다.