Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 카프카강의
- 자바21
- 개발자
- 스프링배치 5
- 코딩테스트
- Git
- SSAFY
- 검색 도메인
- 백준
- 글또OT
- 유데미
- 글또
- 오프라인밋업
- 검색도메인
- BOJ
- 글또 다짐
- 자바17
- 코드트리
- 자바
- 스프링 핵심 원리 - 고급
- 글또후기
- 알고리즘
- 코드트리x글또
- 검색개발
- 제네릭
- 글또 OT 후기
- 글또10기
- 글또9기
- 글쓰는또라이
- 배치
Archives
- Today
- Total
영주의 개발노트
Mac Terminal Theme 변경 & Git 기초 본문
들어가기 앞서, 필자는 맥을 처음 사용하여 맥북에 익숙치않음을 알립니다....⚠️
신입 개발자 교육을 받으며 공부한 내용들을 두서없이 정리하는 글입니다.
일자 | 주제 및 내용 | 시수 |
---|---|---|
Day 1 | - Shell command, Vim command - Bitbucket 가입 및 GIt 설치, 기본 명령어 - 프로젝트를 시작하는 법(1): git init / git remote - 프로젝트를 시작하는 법(2): git clone |
3 H |
Goal
- git을 사용하기 위해 CLI Shell command와 Vim editor를 다룰 수 있다. ❌
- 코드 관리를 위한 git의 정확한 사용법을 이해한다.
- git의 저장소 개념을 이해하고, 원격 저장소 서비스의 차이를 인식한다.
- git을 사용하면서 발생하는 다양한 상황을 해결할 수 있다.
- commit의 보편적인 작성법을 이해하고 이를 활용하여 commit을 작성할 수 있다.
- git의 branch model을 활용해 능숙하게 코드관리할 수 있다. ❌
- git의 다양한 branch 전략을 이해하고 널리 사용되는 git flow 전략을 활용하여 프로젝트를 수행할 수 있다. ❌
- jira와 bitbucket으로 프로젝트를 관리할 수 있다. ❌
- git으로 타인과 협업하며, 다른 프로젝트에 기여할 수 있다.
Before Start
MacOS로 개발할 때 꼭 필요한 도구 & 설정
- iTerm : 기본 터미널의 대체재
- OhMyZsh : zsh Customize
What is zsh ❓# spaceship 사용 & Oceanic-Next 사용 ZSH_THEME="spaceship"
터미널 shell 환경의 사용성을 개선한 것 (zsh를 더욱 편리하게 해주는 것인 oh-my-zsh)
가볍고 빠르지만 예쁘지는 않은... ! bash 쉘의 기능을 포함하여 편리한 기능이 추가된 Shell 환경 - Homebrew
- vim colorscheme 설정 (링크🔗: 해당 테마 사용)
Recap -Zsh Shell Command
/ : 디스크의 최상단 디렉토리
~ : 최상단 디렉토리 (~인 상태에서 pwd로 어디인지 확인 가능)
- : 옵션을 의미 (e.g. ls -a / ls -al / ...)
# ls : list segement
ls -a # 숨김 파일 모두 포함한 모든 파일
ls -l # 상세 정보
ls -al # 숨김파일까지 모~두 상세한 정보까지 다
# mv : 이동 & 이름변경도 가능
# mv 파일명 경로
mv readme.md bin/
# mv 파일명 새로운파일명
mv README.md ./README.txt # ./ 뺴도 같은 디렉토리 내에 README.txt 파일로 변경
# cp : 복사 & 이동하면서 이름변경 가능
# cp 파일명 경로
cp readme.md bin/
# cp 파일명 경로/새로운파일명
cp readme.md bin/readme.txt
# 파일 생성
touch readme.md
# cat : 파일 열기
# vi : 파일 편집 (=> python, node 등 열고 싶은 언어로 열 수 있음?)
# vimium => vim 명령어 연습 가능!
# 파일 지우기
rm readme.txt
# 모든 파일 지우기
# 1. 연달아 파일명 적기
# 2.
rm ./*
# 특정 파일 지우기
# 특정한 파일확장자
rm *.md
# 특정한 파일명
rm test.*
# !! 디렉토리
# rm으로는 지워지지 않음! 왜? 파일들이 경로를 잃게 되므로!
rm -r 경로
rm -rf 경로 # 강제로 지우는 것이므로 조심!
rm -ri 경로 $ 경로 안에 있는 파일 하나하나 확인하며 삭제
# rmdir vs rm
# rmdir : 비어있는 디렉토리만 삭제
# rm : 비어있지 않은 디렉토리여도 삭제
# 파일 숨김처리
mv live.md .live.md
# 숨김 해제
mv .live.md live.md
Q1. 다음 절차를 수행하여 최종 디렉토리와 파일 구조를 완성하세요.
- cli-practice/ 디렉토리 생성
- 생성된 디렉토리에 README.md 파일 생성
- bin/ 디렉토리를 생성하여 README.txt 를 복사하여 introduce.md 로 이름 변경
mkdir cli-practice/ cd cli-practice/ touch README.md mkdir bin cp README.md bin/introduce.md
Recap - Vim command
- normal mode: ESC
h j k l : left / down / up / right i : insert mode v : visual mode d : delete dd : delete a line yy : 커서가 있는 라인 전체 선택 & 복사 p : 붙여넣기 u : 취소 a : 커서 뒤에 삽입 A : 커서가 있는 라인 맨 뒤에 삽입
Git
Linux Kernal을 만들기 위해 Subversion을 쓰다 화가 난 리눅스 토발즈는 2주만에 git이라는 버전관리 시스템을 만듦
리눅스도 만들고, git도 만들고 ;;; 자기 혼자 다 해먹네.... 멋진 사람...
Git의 특징
- 빠른 속도, 단순한 구조
- 분산형 저장소 지원
- 비선형적 개발 (수천개의 브랜치 생성 가능) 가능
Git의 장점
- 소스코드 주고받을 필요 없이 동시 작업이 가능해짐 ➡️ 생산성 증가
- 수정내용은 commit 단위로 관리, 배포 뿐만 아니라 원하는 시점으로 Checkout 가능
- 새로운 기능 추가는 Branch로 개발하여 편안한 실험이 가능 & 성공적으로 개발 완료 ➡️ Merge 하여 반영
- 인터넷 연결이 되어 있지 않아도 개발 가능!
git objects
- Blob : 파일 하나의 내용에 대한 정보
- Tree : Blob이나 subtree의 메타데이터 (디렉토리 위치, 속성, 이름, ...)
- Commit : 커밋 순간의 스냅샷
git Process Flow and Command
- Local : 로컬에서
git init
으로 레포를 만들면 remote repo가 없다! ➡️ local과 remote를 연결할 작업 필수❗️git remote add origin 주소 # origin : 별명 git remote / git remote -v # 확인 git remote remove 별명 # 지우기
- git init으로 local에서 repo를 만들고 첫 push ❗️
➡️git push -u origin master/main/...
: -u (upstream set) 옵션 = local & remote에 쓰고있는 master/main/...은 같다! 라고 명시하는 역할
Commit
git commit
:git commit -m ""
➡️ 얘를 사용하지 말자❗️
Conventional Commits
- commit의 제목은 commit을 설명하는 하나의 구나 절로 완성
- 내용의 시작 => 대문자
- prefix 꼭❗️ 달기
- feat: 기능 개발 관련
- fix: 오류 개선 혹은 버그 패치
- docs: 문서화 작업
- test: test 관련
- conf: 환경설정 관련
- build: 빌드 관련
- ci : Continuous Integration 관련
- commit은 동작 가능한 최소단위로 자주 할 것.
- 해당 작업단위에 수행된 모든 파일 변화가 해당 commit에 포함되어야 함.
- 모두가 이해할 수 있는 log를 작성할 것
- Open Source Contribution 시 영어가 강제되지만, 그렇지 않을 경우 팀 내 사용 언어를 따라 쓸 것.
- 제목은 축약하여 쓰되 (50자 이내), 내용은 문장형으로 작성하여 추가설명 할 것.
- 제목과 내용은 한 줄 띄워 분리할 것.
- 내용은 이 commit의 구성과 의도를 충실히 작성할 것.