[TIL]200804 CLI,Git,Koans

Chaegyeom·2020년 8월 26일
0

TIL

목록 보기
8/77
post-thumbnail

CLI

Command Line Interface(CLI)는 Graphic User Interface(GUI)와는 다르게, 마우스와 각종 UI 컴포넌트 대신, 표준 입출력 시스템(Standard I/O)을 통한 입력과 그에 따른 결과를 출력하는 형태이다.

컴퓨터의 시작은 GUI가 아닌 CLI였다고 하는데, 어렸을 때 본 DOS의 느낌이 생각났다. 곧바로 window98이 나와서 나는 DOS를 써본적이 거의 없었기 때문에 CLI는 굉장히 낯선 방식이었다.

하지만 CLI는 여러가지 측면에서 유리하고, 개발자라면 반드시 배워야 할 주요 스킬이며, Unix/Linux 시스템을 깊이 알기 위해서는 CLI를 써야하기에 배워야 한다고 한다.
또한, 서버에 들어가면 UI가없기때문에 CLI로밖에 할수없기 때문이라고 한다.

아래는 오늘 배운 CLI 커맨드들이다.


  1. ls : 현재 디렉토리의 파일들을 보여준다.
  2. cd [가고자하는 디렉토리명] : 해당 디렉토리로 이동할 수 있다.
  3. touch [file_name] : 빈 파일 생성
  4. mkdir [dir_name] : 디렉토리 생성
  5. cat [file_name] : 텍스트 형태의 파일확인
  6. mv [file_or_dir][target_dir] : 파일이나 디렉토리 옮기기
  7. mv [file_or_dir][new_name] : 파일이나 디렉토리 이름 바꾸기
  8. cp [file][target_dir], cp -r [folder] 복사
  9. rm [filename] : 파일삭제(삭제할건지 물어보지 않는다! 휴지통에도 없다!)
  10. rm -r [dirname] : 폴더삭제(삭제할건지 물어보지 않는다! 휴지통에도 없다!)
  11. sudo : 관리자 권한으로 실행
    등이 있다.

내가 오늘 사용해본 거라곤 ls, cd, code ., mkdir정도 뿐이었는데 이걸 다사용하려고 하니 벌써부터 머리가 아픈것 같다.


Git

Git은 가장 많이 사용되는 Version Control System으로 여러명의 공동작업의 편리함과 강력한 백업기능이 있기 때문에 많이 사용된다고 한다.

  • 각각의 버젼을 저장하고 다시 되돌릴수 있음 > 백업
  • 어떤 변경사항이 있는지 확인가능
  • 여러사람들이 함께 작업할때에도 대응이 가능하다

Distributed 분산시스템

위 사진에서
Fork : 다른 메인테이너가 관리하고 있는 리파지토리를 내것으로 가져오는 것
Clone : fork해온 리파지토리를 내컴퓨터에서 작업할 수 있도록 컴퓨터로 가져오는 것이다.


내 pc에서 작업하여 변경된 내용을 내 리모트 리파지토리에 변경사항을 만들고 싶다면 push를 사용한다


누군가와 공동작업을 하는 도중 변경사항을 내PC로 가져오고 싶을때는 pull을 사용한다


Git pull = git merge + git fetch이다.

Staging Area는
이전에 충돌을 해결하거나 버전관리를 위해 만들어졌다.
어떤 파일이나 디렉토리를 버전관리를 위해 버전 컨트롤를 하기 위해서는 스테이징 에어리어에 파일을 추가해야하고,
add 명령어로 스테이징 에어리어에 추가할 수 있다.


위 사진은 Git 워크플로우를 도식화한 모습
이러한 기록과 작업흐름을 모두 포함하고 있는 개념을 repository라고 한다.
사진에서 동그라미 하나하나가 커밋기록이다.

가지를 새로치는 것을 브랜칭(Branching)이라고 하며
갈라진 가지를 새로 합치는 것이 머지(Merging)이다.
마스터 브랜치에는 사용자들에게 직접 배포해야할 프로그램의 소스가 담겨있고
디벨롭 브랜치에는 개발중인 버젼의 소스코드가 담겨있다
피쳐브랜치는 하나하나의 기능들을 담고있다

사실 강의는 봤지만 정확하게 이해는 되지 않아서 시간을 들여 다시한번 공부해야겠다고 생각했다....


Koans

koans에서는 오류들을 내가 수정해보는 시간을 가졌다.
예상외로 쉽게 해결되어서 알고리즘에서 떨어졌던 자신감을 다시 찾을 수 있었다.

profile
주니어 개발자가 되고싶은

0개의 댓글