코드스테이츠 프론트엔드 부트캠프 - Day 10

정우시·2022년 7월 5일
1

2. 코드스테이츠

목록 보기
12/52

[SEB FE] Section 1

Unit8 - [Linux/Git] 기초

  • Command-Line Interface
  • 패키지와 패키지 매니저
  • Node.js
  • Git

회고

오늘은 CLI, 패키지와 패키지 매니저, Node.js, Git에 대해서 배웠습니다. 본 과정을 통해 언어 외적인 부분도 배울 수 있어서 좋은 거 같습니다. 배우는 것에 그치지 않고 과제를 통해 node.js 환경에서 자바스크립트 프로그램을 실행하고 npm 패키지 중 하나를 직접 설치하는 연습을 하였습니다.

터미널 자체를 많이 사용하지 않아서 조금 어려웠지만... 그래도 같이 한 페어분이 리딩을 잘 해주셔서 무사히 설치, 실행 그리고 과제 제출까지 할 수 있었습니다. 아마 오늘이 지나면 언어를 중점적으로 배우는 거 같지만 그래도 개발에서 중요한 부분이기에 잊지 않고 잘 숙지하도록 하겠습니닷!


Command-Line Interface

학습목표

  • 리눅스 터미널을 실행할 수 있다.
  • CLI를 이용한 작업과 GUI를 이용한 작업이 동일함을 이해할 수 있다.
  • 리눅스 터미널에서 기본적인 명령어를 사용할 수 있다.
  • 명령어를 사용할 때, 등장하는 키워드에 대해 이해할 수 있다.
  • 관리자 권한을 이해할 수 있다.
  • 절대 경로와 상대 경로의 차이를 이해할 수 있다.
  • 텍스트 에디터 nano를 이용해 파일을 수정하고, 저장할 수 있다.

개념학습

Command-Line Interface

  • CLI 방식이 서버 컴퓨터를 관리하기에 GUI 방식보다 좋다.

터미널 실행하기

  • 맥의 경우 런치패드(Launchpad) 또는 스포트라이트(Spotlight search)를 이용해 터미널을 실행할 수 있다.
  • macOS는 독(dock)에 터미널을 고정하는 것을 권장한다.

프롬프트(Prompt)

  • 터미널은 CLI(Command-Line Interface)입니다. 입력하는 글자와 출력되는 글자로 컴퓨터와 소통할 수 있다.
  • 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간을 프롬프트(Prompt)라고 한다.

pwd: 현재 위치 확인하기

  • CLI인 터미널에서는 간단하게 pwd를 프롬프트에 입력하고, 엔터 키를 누르면 현재 경로가 나온다.
  • pwd는 print working directory의 약자이다.
pwd

---

현재 위치를 확인할 수 있는 명령어 pwd

절대 경로와 상대 경로

  • 절대 경로: 특정 폴더나 파일이 루트 폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타낸다.
    • /Users/[username]/helloWorld/hello/
  • 상대 경로: 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타낸다. 현재 위치한 폴더는 점(.)으로 표현하고, 상위 폴더는 두 개의 점(..)으로 표현한다.

mkdir: 새로운 폴더 생성하기

  • CLI에서 폴더를 생성하기 위해 사용하는 명령어인 mkdir은 make directories의 약자이다.
  • 명령어 mkdir은 생성할 폴더의 이름을 함께 입력한다.
  • CLI에서는 명령어와 폴더의 이름을 스페이스 키로 구분한다.
mkdir helloWorld

---

"helloWorld"라는 이름의 폴더를 생성하라는 명령을 컴퓨터에 전달한다.

ls: 특정 폴더에 포함된 파일이나 폴더 확인하기

  • 명령어 ls는 list의 약자로, 특정 폴더에 포함된 파일, 현재 위치에 포함된 파일, 하위 폴더의 리스트를 출력한다.
  • ls -l을 입력했을 때 포맷으로 rw-r--r--이 출력되었다면 파일이라는 것을 의미하므로, cd 명령어로 진입할 수 없다.
  • 명령어 ls를 이용해 mkdiw을 통해 생성한 폴더 "helloWorld"를 확인할 수 있다.
  • 명령어 ls에는 자주 사용하는 옵션 la가 있다. CLI에서 특정 명령어의 옵션을 사용하는 경우에는 -를 이용해 옵션을 입력했다고 컴퓨터에 전달한다.
  • 명령어 ls의 옵션 a는 "all"이라는 의미이다. 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력한다.
  • 옵션 a와 함께, 자주 사용하는 옵션 l은 폴더나 파일의 포맷을 전부 표현하라는 의미이다.
ls -l
ls -a
ls -al 또는 ls -la

cd: 폴더에 진입하기

  • 명령어 cd는 change directory의 약자로, 프롬프트로 상호작용하는 폴더를 다른 폴더로 변경한다는 의미이다.
# pwd를 이용해 현재 위치를 확인합니다.
pwd

# [사용자명]은 처음 OS를 설치할 때 입력한 사용자 이름입니다.
# (macOS) /Users/[사용자명]

# ls를 이용해 현재 위치의 모든 폴더와 파일을 확인합니다.
ls

# cd를 이용해 폴더 helloWorld로 진입합니다.
cd helloWorld

# pwd를 이용해 현재 위치를 확인합니다.
pwd

touch: 파일 생성하기

  • 파일을 만들기 위해 touch라는 명령어를 사용한다.
touch hi.txt

cat: 파일의 내용을 터미널에 출력하기

  • hi.txt에 무언가를 작성했다면 명령어 cat을 통해 관련 내용이 나온다.
cat hi.txt

rm: 폴더나 파일 삭제하기

  • 명령어 rm은 폴더나 파일을 삭제할 때 사용한다.
  • CLI에서 삭제된 파일은 휴지통에 가지 않고, 즉시 삭제된다.

mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기

  • 명령어 mv는 move의 약자로, 폴더나 파일을 이동할 때 사용한다.
  • 명령어 mv를 이용해 파일의 이름을 변경할 때에는 이름과 확장자를 정확하게 넣어야한다.
  • mv 명령어로 파일이나 폴더의 이름을 변경하기 위해서는 mv [폴더나 파일의 이름] [변경하고자 하는 이름]을 입력해야 한다.

cp: 폴더나 파일을 복사하기

  • 명령어 cp는 copy의 약자로, 폴더나 파일을 복사할 때 사용한다.
  • 명령어 cp를 이용해 폴더를 복사할 때에는 옵션 -r이 반드시 포함되어야 한다.

패키지와 패키지 매니저

학습목표

  • 패키지와 패키지 매니저 필요성을 이해할 수 있다.
  • 각 운영체제에 맞는 패키지 매니저를 사용할 수 있다.

패키지

  • 패키지란? : 리눅스의 패키지는 여러 파일을 모아 하나의 파일로 저장하고 있는 압축파일이다.
  • 패키지 안에 들어 있는 파일의 구성
    • 프로그램 파일
    • 프로그램 설치 파일
    • 프로그램 설치 설명서
    • 프로그램에 대한 정보를 담은 파일

패키지 매니저

  • 패키지 매니저란? : 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구이다.

macOS의 패키지와 패키지 매니저 설치

  • macOS는 homebrew를 설치한다.

Node.js

학습목표

  • nvm, Node.js, npm을 설치히고, 버전을 확인할 수 있다.
  • 명령어 node를 이용해 JavaScript 파일을 Node.js 런타임에서 실행할 수 있다.
  • 과제 시작 전 package.json 파일을 확인하고, npm install을 사용할 수 있다.

개념학습

  • 런타임: 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳

  • 패키지 매니저처럼 node.js의 버전을 관리할 수 있도록 nvm(Node Version Manager)으로 Node.js를 설치한다.

  • nvm은 Node.js의 다양한 버전을 쉽게 설치할 수 있다.

    • 이전 버전 설치도 가능!
  • npm은 Node.js 생태계의 패키지 매니저 중 하나이다.

  • package.json의 실제 모듈은 package.json이 아닌 node_modules라는 폴더에 저장된다.

  • 프로젝트 코드를 서로 주고 받을 때 모든 모듈을 전달하는 것이 아니라 package.json에 있는 정보를 전달한다. 코드를 전달받은 사람은 package.json에 있는 정보에 따라 npm에서 직접 모듈을 다운받아 사용한다.


Git

학습목표

  • Git의 환경설정을 할 수 있다.
  • 버전 관리 시스템의 필요성을 이해할 수 있다.
  • Github과 Git의 관계에 대해 이해할 수 있다.
  • local repository와 remote repository의 차이를 이해할 수 있다.

개념학습

  • Git이란?

    • 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'이다.
  • Github

    • Git Repository를 관리할 수 있는 클라우드 기반 서비스
  • Remote Repository

    • 원격 온라인 서버 상의 저장소로 여러 사람이 함께 공유 가능
  • Local Repository

    	- 내 컴퓨터의 저장소로 내 개인 전용 저장소이다.
profile
프론트엔드 공부하고 있는 정우시입니다.

0개의 댓글