2022.5.9. (월)
1. 오늘의 소감
- 익혀야할 새로운 용어들도 많았고 설치할 것도 많아서 바빴던 하루😢
- 터미널 명령어 익히는 부분은 재밌었다. 개인적으로 터미널창을 사용할 때야말로 굉장히 개발자... 뽕...이 차기 때문에...ㅎㅎ... ‘오, 나 좀 간지나~’ 이런 느낌으로 배웠던것 같다.
- 오늘 공부는 앞으로 코딩을 위해 필요한 여러 프로그램들과 패키지 매니저들을 설치하는 게 주된 진도였다. 잘 진행하다가 node.js 의 버전 관리 매니저인 nvm 을 설치하는 부분에서 문제가 생겼다. nvm 설치 완료후 잘 되었는지 nvm --version 으로 확인하니까, zsh: command not found: nvm 라는 메시지만 출력는 것이다! 분명 설치 완료까지 떴는데!!!
- 이것저것 구글링해도 잘 해결이 안되었는데, 다행이 나와 같은 증상을 겪는 동기분의 질문에 다른 분들이 도움이 되는 블로그 링크를 달아주셨다. palette 님의 zsh: command not found: nvm 오류해결법
- “이 'command not found' 오류는 MacOS Mojave 운영체제부터 환경변수가 적용되어 터미널을 새로 실행시킬 때마다 .bash_profile 혹은 .zshr이 새로 로드되기 때문에 발생한다.” 고 한다.... 사실 읽고도 무슨 소린지 모르겠다.... 하지만 블로그 따라서 열심히 진행해보니 짠하고 해결되었다!! 링크를 알려주신 동기분들과 친절하게 블로깅해주신 palette님에게 무한한 감사를..
- 이번 파트는 코드스테이츠 강의 자료가 정말 좋았다. (그동안은 빈약하다고 궁시렁댔는데..ㅎㅎ) 독학하면서 nvm, npm, node.js 가 뭔지는 접해봤지만 제대로 활용한 적이 없다보니 자꾸 개념이 혼동되었는데, 오늘 강의에서 예시까지 들어서 찬찬히 설명해주니까 이해하기 쉬웠다. 게다가 npm install이란 명령어로 관련 모듈을 한 번에 받아오는 것도 편리하고 신기했다! 협업 능력있는 개발자로 한발짝 다가선 기분.
2. 학습한 키워드
- GUI, CLI, 프롬프트, CLI 명령어, 명령어 -h, pwd, cd, ls -la, mkdir, rm -rf, open ., touch, cat, mv, cp, whoami, sudo, 관리자 권한, 루트폴더
- 패키지와 패키지 매니저, apt, homebrew, npm
- 런타임, node.js, nvm, npm, package.json
3. 키워드를 바탕으로 학습 내용 설명해보기
- 컴퓨터를 사용하는 방법으로 두 가지 인터페이스가 있다.
- GUI(graphic user interface) ↔ CLI(command-line interface)
- GUI 로 할 수 있는 것 CLI 로 다 할 수 있다. 반대도 마찬가지.
- 단, CLI로 삭제한 파일은 휴지통으로 가지않고 즉시 삭제된다.
- 대표적인 GUI = windows, 대표적인 CLI = Linux
- 프롬프트는 터미널에서 키보드로 입력할 수 있는 한 줄의 공간을 말한다.
- CLI 의 이점은 입출력 소스(마우스, 키보드 등)를 따로 부착할 필요하 없다는 것이다.
- 또한 CLI는 서버 컴퓨터와 원격으로 소통할 수 있다. 이 때 출력소스로 자신의 모니터를 이용한다.
- 대부분의 서버컴퓨터에는 무료로 이용할 수 있는 Linux 가 설치되어 있다.
- CLI 명령어
- 명령어 -h : 명령어 옵션 보기.
- pwd : print working directory
- ls : list, -l 옵션으로 포맷 표기가능, -a 옵션으로 숨긴 파일&폴더까지 표시 가능, -la 둘다가능
- cd : change directory. 폴더 진입하기. 파일인 경우 진입 불가
- mkdir : 폴더 만들기
- rm : 제거하기. 폴더없애려면 -rf 옵션 붙여야함.
- open . : 현재 위치 GUI 로 열기
- touch : 파일 만들기
- cat : 파일 내용 터미널에 출력
- mv [파일&폴더이름] [폴더이름] → 파일을 폴더로 옮겨라
- mv [파일이름1] [파일이름2] → 파일이름1을 파일이름2로 변경
- cp : 복사하기. 폴더 복사시 -rf 옵션 필요.
- whoami : 현재 사용자 알려줌
- sudo 명령어~ : 일시적으로 사용자가 관리자 권한을 갖게 해준다.
- 관리자 권한이 필요한 이유? 사용자가 프로그램을 맘대로 설치, 변경, 삭제 할 수 있는 권한을 차단하여 시스템을 안전하게 보호할 수 있다.
- 관리자 권한 = 루트 권한
- /Users/[사용자이름]/ 아래에서는 사용자 권한으로 폴더나 파일을 생성, 변경, 삭제 가능하나
- /다른이름폴더 에서는 관리자 권한이 필요하다.
- / = 루트 폴더 = 관리자의 영역
- Linux 관리자 권한의 특징? 절대로 사용자에게 관리자 권한을 완전히 넘겨주지 않는다.
- 패키지는 하나의 소프트웨어, 또는 다른 소프트웨어가 완성되기 위해 필요한 부품인 소프트웨어다.
- 패키지에는 하나의 프로그램이 정상적으로 실행되기 위한 파일들이 모아져 압축되어 있다.
- 패키지 기본 구성
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램의 정보를 담은 파일
- 패키지 매니저는 패키지의 설지, 업데이트, 삭제 등의 관리를 도와주는 도구(프로그램)이다.
- 패키지 매니저는 모든 저장소의 위치를 기억하고 있다.
- 패키지 매니저를 통해 특정 패키지의 설치를 명령하면, 패키지 매니저가 해당 저장소에 가서 패키지를 다운받고 설치 프로그램을 실행한다.
- Linux의 패키지 매니저 = apt, macOs의 패키지 매니저 = homebrew, node.js의 패키지 매니저 = npm
- 패키지 매니저가 없다면 우리는 프로그램을 설치, 업데이트, 삭제할 때 일일이 각각의 파일 위치를 찾아서 확인해야한다.
- 런타임은 프로그래밍 언어의 실행 환경이다.
- 자바스크립트의 대표적인 런타임은 웹 브라우저(크롬, 사파리 등등)와 node.js 가 있다.
- nvm 은 node.js 의 버전 관리 매니저다.
- nvm 을 통해 node.js 의 버전들을 설치하고, 관리하고, 변경할 수 있다.
- nvm 이 필요한 이유? node.js가 다른 버전에서 에러가 나는 경우 그걸 확인하기 위해 node.js 를 삭제하고 에러가 나는 버전으로 다시 설치해야되는 매우 번거로운 과정을 필요한데, nvm이 있으면 기존 버전을 삭제하지 않고도 사용하는 버전을 변경할 수 있다.
- nvm 명령어
- nvm install 버전넘버(혹은 --lts) : 해당 버전 node.js 설치하기
- nvm use 버전넘버 : 해당 버전 node.js 로 변경하기
- nvm ls : 지금까지 설치한 node.js 버전들 확인하기
- node -v : 현재 node.js 버전 확인하기
- node 파일.js : js 파일 실행하기
- npm 은 node.js 패키지 매니저다.
- npm은 필요한 모듈을 다운받을 수 있는 모듈 스토어다.
- package.json 은 해당 모듈에 대한 정보를 담은 파일이다.
- 이 안에는 해당 프로그램을 실행하기 위해 필요한 모듈은 무엇인지, 어떻게 실행시키는지, 테스트 방법은 뭔지 등이 들어있다. 마치 제품 카탈로그와 같다.
- package.json 에 모듈이 직접 들어있는 게 아니다. 어떤 모듈이 필요한지에 대한 정보만 있다.
- “우리 코드는 여기에 있고, 필요한 모듈은 package.json에 적어뒀으니 알아서 다운받아.”라고 볼 수 있다.
- package.json 을 사용하면 일일이 필요한 모듈을 전달하지 않아도 되서 편리하다.
- 실제 모듈은 node_modules 라는 폴더에 저장되어 있다.
- package.json 의 주요 항목 : devDependencies, dependencies, scripts
- devDependencies 는 개발에 필요한 모듈 의존성 모듈을 명시한다. 이때 키가 모듈명, 값이 버전이다.
- devDependencies는 실제 프로그램 동작에 영향을 주지 않는다.
- npm install [패키지네임] --save-dev 으로 설치하면 자동으로 devDependencies에 추가된다.
- dependencies 는 프로젝트 실행에 꼭 필요한 의존성 모듈이다.
- npm install [패키지네임] 또는 --save 옵션을 붙이면 dependencies에 추가된다.
- npm install 을 하면 이 dependencies 바탕으로 프로그램이 설치된다.
- dependencies 를 잘 작성해놓지 않으면 협업할 때 다른 동료가 이 프로그램을 실행하고 개발하기 위해 어떤 모듈이 필요한지 알 수 없다.
- scipts 항목은 CLI 에서 사용가능한 npm 명령어를 모아놓는다. = 이를 npm script 라고 한다.
- npm run <script명> 이렇게 실행한다.
- 주로 start, test 등의 명령어 사용.
4. 어려웠던 키워드
- 레포지토리를 받아오는 입장이 아닌, 제공해야되는 입장에서 package.json 활용하는 방법을 잘 모르겠다.
- npm init 하면 내 디렉토리에 package.json 파일이 생기는 건가? 아님 내가 package.json 이라는 파일을 만드는 건가?
- git 파트를 다 보지 못했다. 그리고 아직도 활용방법이 헷갈린다.
728x90
반응형
'TIL' 카테고리의 다른 글
[TIL] #11. 객체 (0) | 2022.12.06 |
---|---|
[TIL] #10. 배열 (0) | 2022.12.05 |
[TIL] #8. 계산기를 만들자! (0) | 2022.12.04 |
[TIL] #7. CSS 적용해보기 (0) | 2022.12.03 |
[TIL] #6. CSS flexbox (0) | 2022.12.01 |