[SEB] Today I Learn

Chipmunk_jeong·2021년 4월 5일
0

TIL

목록 보기
38/62
post-thumbnail

오늘부터 이머시브(다음기수부터는 SEB로 통합)코스가 시작되고,
매일 배웠던 내용을 복습과 정리하는 블로깅을 작성할 것이다.

  • 좋은 질문을 하는 방법
  • Package Manager
  • Node.js와 관련도구

좋은 질문을 하는 방법

앞으로 내가 개발자가 된다고 한다면, 항상 선임개발자에게 물어보는것은 옳지 않다. 또한 해당 문제를 선배님에게 물어본다고 해결이 될수 있다고 100% 확신할 수 없다. 하지만! 나에게는 Google Search라는 엄청난 선생님이 항상 곁에 존재한다.
어떠한 문제나 모르는것이 생겼을때

  • 내가 개발하고있는 로직이 무엇인가?
  • 해당 로직의 문제점이 정확히 무엇인가?
  • 무엇을 시도해보았는가?

이 세가지를 정확히 정리를 해야겠다고 생각을 했다.
이렇게 정리가 되어있고, 이걸 바탕으로 질문을 한다면,
문제에 대한 해결책을 빠르게 찾을 수 있다.

좋은 질문 방법? -> 우선 검색!

검색을 해야한다.
개발자로 살아가는데 검색을 안하는것은 주관적으로는 틀렸다고 생각한다.
내가 현재 모르는점이 발생한다면, 오버해서 세계에서 몇천 몇만명이 동일하게 문제가 생겨 커뮤니케이션이 일어났을 확률이 높다.

그러므로, 질문을 한다는범위를 현재 나의 주변으로 좁히지 말고, 전세계를 대상으로 하는것이 좋다.
현재 우리는 인터넷이라는 좋은 도구를 이용해 전세계와 실시간으로 통신이 가능하다. 이렇게 좋은 환경이 있는데 왜 검색을 안해보겠는가
90% 이상의 대부분 문제는 이미 온라인으로 질문이 되고 답변이 되어있을 가능성이 높다
검색에 시간을 소비한다라고 생각하지말고, 또 다른 공부방식이라 생각하여 문제해결능력을 키우는것이 중요하다고 생각한다.

질문 자체를 개선하기 위한 노력 -> 검색 키워드

질문을 개선하기 위해서 검색은 필수이다.
검색을 통해 답을 얻는것도 목적이지만 검색을 통하여 키워드를 잘 접근할수 있는 능력을 키워야한다.
좋은 키워드는 좋은 질문으로 이어지고, 원하는 답을 빠르게 얻을수 있을것이다.

정성을 들이지 않는 질문

본인이 질문을 계속 하는데 개선이 되지않는가면?
이것은 본인의 질문방법과 질문의 답변을 제대로 작성하고 어떤 시도를 해보았는지 생각해봐야한다.
제대로 된 제목과 명확한 내용을 담아 질문을 해야되는것을 명심하자

질문에 좋은 제목 달기

질문의 첫번째 조건은 좋은 제목!
타이틀이 좋아야 한다. 제목을 보고 어떤 문제가 발생한지 알 수 있도록 키워드를 잘 조합하여 작성한다.
또한
엄청 바쁜 동료에게 물어본다고 생각하고 요점을 잘 정리하여 질문 하자

만약에 질문의 제목을 작성하기가 힘들다면, 내용을 먼저 작성한 뒤 해당 내용을 읽으보며 정리하여 제목을 작성해보는것도 좋을것 같다.

질문에 코드만 적어두지 말자

코드를 붙여넣기 전에 나의 상황과 스토리를 먼저 설명하자.
어떤것을 개발하고 있으며, 어떤 문제점이 생겼는지
내가 무엇을 시도하였는지, 그 시도들로 인해 얻었던 오답등을 정리하여 같이 질문을 해보자

온라인 컴파일러를 이용하면 더더욱 좋다.

나의 에러를 공유하는것이다. 온라인 텍스트에디터를 통하여 코드와 그 상태를 공유할 수 있다면, 더욱더 빠르게 상황을 이해해주고 해결을 도와줄 수 있을것이다.

해결이 되었다면

어떤 답안으로 해결이되었다면! 답변으로 이 답변으로 어떤 문제를 해결하고 어떻게 잘 해결되었는지 서술하여 답변을 작성한다면 나뿐만 아니라 같은 문제를 겪는 다른사람이 검색을 통해 해당 솔루션을 찾을수도 있고 문제를 해결할 수도 있을것이다.


Package Manager

패키지 매니저란?
윈도우의 앱 추가/제거기능과 비슷하게 프로그램을 삭제하거나 관리하며, 앱스토어에서 새로운 프로그램을 추가하듯이 CLI환경에서 패키지를 관리하는 도구이다.

운영체제 별 패키지 매니저

  • macOS: homebrew
  • ubuntu, Linux계열: apt

나는 macOS를 사용하기에 맥을 기준으로 블로깅을 해보겠다.

homebrew

homebrew를 설치하기 전에 Xcode Cokmand Line Tools를 먼저 설치해야 한다. git을 CLI에서 사용할 수 있다면 이미 설치가 완료된 것이다

$ xcode-select --install
  • 1. 터미널 실행

  • 2. homebrew 설치 코드(스크립트) 복사
    homebrew사이트에서

    위의 코드를 복사하여 터미널에 붙여넣기

  • 3. 설치
    위의 코드를 입력하고 Password를 입력하면 설치가 진행된다.
    중간중간에 키를 입력하라고 나오는 메세지가 있으면 해당키를 입력해주자.

    혹시라도 잘못되고 있다고 생각한다면 ctrl + c를 눌러 설치를 취소하자

  • 4. 설치완료

해당 문구가 뜨고 터미널에 brew를 입력했을 때

위와 같이 나온다면 성공적으로 설치한 것이다.

  • 5. 명령어
    brew search 검색어 : 프로그램 검색
    brew info 프로그램이름 : 프로그램 정보 확인
    brew install 프로그램이름 : 프로그램 설치
    brew update : brew 자체 업데이트
    brew upgrade 프로그램이름 : 프로그램 업그레이드
    brew uninstall 프로그램이름 : 프로그램 삭제
    brew list : 설치된 프로그램 보기

M1 Chip Mac

M1칩이 탑재된 맥을 사용한다면, 인텔과 아키텍처가 다르기 때문에 아직 인텔기반의 아키텍처만 지원하는 프로그램은 Error가 발생한다.
이를 해결하기위해 가상에뮬레이터인 Rosetta(로제타)를 설치한 뒤 brew를 사용하기 전 arch -x86_64를 적어줘야 한다.

$ softwareupdate --install-rosetta
$ arch -x86_64 brew install 프로그램명

Node.js와 관련 도구

Runtime?

프로그래밍 언어가 구동되는 때 혹은 환경이라고 할수 있다.
어떠한 프로그램이 동작할 때, 프로그램이 동작하는 곳
JavaScript를 이용해서 코드를 작성하고 이 코드가 실행되는 곳이 런타임이다.

대표적으로 웹 브라우저가 런타임이다.
평소 사용하는 chrome은 대표적인 웹 브라우저 런타임인것이다.
지금까지 나는 JS 런타임은 웹 브라우저였다.
하지만 node.js라는 새로운 js 런타임이 등장했고, 나는 이것을 이용해 웹 브라우저 뿐만이 아닌 서버와 같은 프로그램도 만들 수 있게 되었다.
이는 JavaScript코드를 웹 브라우저와 node.js환경 모두에서 실행시킬 수 있다.
html<script>태그 내에 작성된 코드는 웹브라우저에서 동작한다.
CLI환경에서 node fileName명령을 입력하면 node.js런타임에서 실행이 된다.

// fileName : runnode.js
const testFunction = function(arg) {
  console.log("Arg is : ", arg);
}
testFunction(20);

위와같이 runcnode.js라는 파일을 만들었다.
이것을 CLI에서

$ node runnode.js

라고 입력을 하면 터미널에 "ARG is : 20"이 출력이 된다.

이로써 node.js는 JavaScript 런타임이며,
런타임은 프로그래밍 언어가 실행되는 환경이다.

nvm

Node Version Manager의 명령어로써
node.js의 버전을 관리할 수 있다.

1. nvm설치
wget 명령어를 이용하여 터미널에서 설치를한다.
해당 명령어는 공식 문서에서 확인할 수 있다.

$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

2. 설치 확인하기
설치가 끝난뒤 터미널을 재실행한다.
그 다음 아래와 같이 명령어를 입력한다면 버전정보가 나올것이다.

$ nvm --version
$ nvm -v

3. node.js설치
nvm을 이용해 node.js를 설치해보자.
버전은 node.js 공식사이트에서 확인할 수 있고, 지원기간이 긴 LTS버전을 설치해보자.

nvm install --lts

최신 lts버전이 설치된다.

설치가 완료되었다면 node -v를 입력하여 버전을 확인해보자.

M1 Chip mac
m1칩을 사용하면 생기는 이슈가 15버전 이하의 버전은 제대로 설치가 안될수도 있으니 15버전 이후의 버전을 사용하자

nvm을 활용하는 방법

node.js는 하나의 프로그램이며 버전들이 있다.
개발을 하다보면 다양한 버전에 대응해야 할 경우가 있다.
예를들어 12.18.3버전에서 작성한 코드가 14.15.3버전에서는 에러가 날 경우 과거에 작성한 코드가 정상인지 확인하기 위해 이전버전이 필요하다.

버전을 업그레이드하는 경우는 nvm install --lts를 이용해 최신버전을 설치할 수 있다.
그러나 이전 버전을 사용하려면 원래라면 원래버전을 삭제한 뒤 다른버전을 재설치하는 방법이 있지만, nvm은 그러한 것을 안하더라도 가능하게 한다.
NVM이란 Node Version Manager의 약자이며 풀 네임에서도 보이듯이 버전을 관리해주는 매니저이기 때문이다.

nvm설치후 아래의 명령어를 입력해 보자

nvm ls

현재 nvm을 통해 설치한 node의 버전이 나온다.

특정 버전의 노드를 설치하고싶다면

nvm install 버전

위와같이 입력하면 이전버전을 삭제하지 않고, 우리가 원하는 node version을 설치할 수 있다.

그렇다면 현재 노드버전에서 다른 노드의 버전으로 변경하려면

nvm use 버전넘버 #12.18.3등등

해당 버전넘버를 입력한 명령어를 입력하면 변경이 된다.

설치된 노드의 버전들을 확인하고 필요한 버전은 설치하고 해당 버전으로 변경하면 된다.

정리하자면 nvmnode version을 설치하고 관리할수 있는 프로그램이다.

profile
Web Developer

0개의 댓글