moonscode 236

[NodeJS] NVM(Node Version Manager)

NVM GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active nod... github.com NodeJS를 사용하다보면 버전을 변경해야할 일이 간헐적으로 발생합니다만 매우 번거롭고 까다로운 일입니다. 이 때 도움을..

NodeJS 2022.06.20

[JavaScript] Promise - callback 우아하게 처리하기

callback 함수를 우아하게 처리할 수 있는 Promise에 대해 소개합니다. A, B 라는 두 가지 상황이 있다고 가정하겠습니다. 우리는 A라는 상황이 실행되고 A의 결과에 따라 B가 실행되기 희망합니다. 이 때 어떠한 방식으로 이를 구현할 수 있을까요? 대표적으로 callback 함수를 이용하는 방법이 있습니다. A 함수의 Parameter에 B 함수를 넣고 A 함수가 완료되면 B 함수를 실행하도록 하는 것이죠. callback은 비동기 상황을 해결하는 가장 간단한 방법입니다. 하지만 A, B라는 두 상황이 A, B, ... F 까지 있다면 어떨까요. callback으로 이 상황을 표현할 수 있을까요? 물론 표현할 수 있습니다. 하지만 상당히 많은 callback을 중첩해서 사용해야 할 것입니다...

[JavaScript] Map & WeakMap, Set & WeakSet

Map&Set은 ES6에서 새롭게 추가된 데이터 구조입니다. Map Key-Value로 구성된 데이터구조입니다. WeakMap (WeakMap에 대해 설명하기전에 먼저 Deep Copy, Weak Copy에 대해 이해하면 아래 내용을 쉽게 이해할 수 있을 것 입니다.) 객체만을 키로 사용할 수 있습니다. (Primitive 타입은 키로 사용할 수 없습니다) 가비지컬렉션의 대상이됩니다. Enumerable 하지 않습니다. (열거할 수 없습니다) 위의 사전적정의를 이해해보도록 합시다. 먼저 Map은 n개의 key배열이 있다면 반드시 n개의 value배열이 있을 것입니다. 만약 우리가 n-1번째 value값을 찾고자 한다면 key배열을 순회하여 일치하는 key를 찾고 그 인덱스를 이용하여 value배열에서 ..

[JavaScript] Object Property enumeration (객체 속성 열거)

JavaScript를 사용하다보면 객체의 Property를 나열하는 경우를 자주 만나게 됩니다. Array라면 순서가 있어 나열이 가능하지만 Object는 Key-Value로 구성되어 있어 순서가 보장되지 않는데 어떻게 나열할 수 있을까요? Object.keys (for ... in) - key 배열 반환 Object.values - value 배열 반환 Object.entries - [key, value] 배열 반환 Object 객체는 객체의 Property를 나열하기 위에 keys, values, entries 3가지 함수를 제공합니다. const obj = { a : 'apple', b : 'banana', c : 'coconut' } const keys = Object.keys(obj) // ['..

[JavaScript] Iterator & Generator

ES6에서 추가된 Iterator & Generator 이해하기 Iterator 특징 Iterable의 이해 (for...of) - 순회(Iterate) 할 수 있는? next 함수의 이해 반복문 비동기 처리 활용할 수 있는 경우 앱 사용설명 튜토리얼 페이지 Generator 특징 return Iterator function*, yield 명령어의 이해 반복문 비동기 처리 통신 - Lazy Parameters? (임의로 지어봤습니다) 활용할 수 있는 경우 끝말잇기 (or 베스킨라빈스 31 게임) 단순히 보면 next 메소드를 지닌 객체이며, 하나의 패턴에 가깝지 않나하는 생각이 듭니다. 정형화되어 자주 사용되기 때문에 ES6에서 하나의 문법으로 정의된 것 같습니다. 사용법을 익혀둔다면 비슷한 상황이 생겼..

[MacOS] Amethyst (1) - 마우스없이 화면포커스컨트롤하기

Amethyst Amethyst | ianyh Tiling window manager for macOS along the lines of xmonad. A quick screencast of basic functionality can be found here. (It's rough, and I'd love to see a better one if someone has the skills and inclination to make one.) Getting Amethyst Amethyst is avail ianyh.com 안녕하세요. 오늘은 Amethyst 앱에 대해서 소개하려합니다. 애플리케이션 창을 컨트롤할 때 제가 정말 좋아하는 Spectacle이란 앱이 있는데요. (Spectacle 소개글 https..

DevOps/MacOS 2022.06.15

[MacOS] Spectacle, Rectangle - 마우스없이 화면분할하기

Spectacle Spectacle www.spectacleapp.com 안녕하세요. 오늘은 MacOS에서 단축키로 화면을 분할할 수 있는 앱인 Spectacle에 대해서 소개해드리려 합니다. 사실 화면을 분할할 수 있는 앱은 다양합니다. 대표적으로 Better TouchTool이 있을 것 같네요. 그 중에서도 제가 Spectacle을 사용하는 이유는 설정이 필요없고 직관적인 화면분할을 지원한다는 점에서 더 마음에 들었습니다. 전체화면 전체화면 > cmd + opt + F 화면중앙위치시키기 > cmd + opt + C Full, Center의 앞자로 생각하면 기억하기 쉬울것 같아요. 화면분할 Spectacle은 크게보면 2분할, 3분할, 4분할 단위로 화면을 분할해줍니다. 그리고 분할방식에 따라 사용하는..

카테고리 없음 2022.06.15

[Git] Fork - facebook/react에 contributor 되보기

나도 오픈소스의 contributor가 될 수 있다? 혹시 Fork에 대해서 알고 계신가요. 오늘은 Fork의 개념에 대해 소개해드릴까 합니다. Fork란 타인의 repository(이하 repo)를 개인 저장소로 복사하여 가져오는 행위를 말합니다. 그럼 git clone을 통해 repo를 내려받는 것과 내려받은 소스를 자신의 repo에 직접 올리는 것과는 무엇이 다를까요? 먼저 git clone을 통해 내려받은 Copy Repo의 원격 저장소는 아직 Origin Repo입니다. (.git 파일에 정의되어있습니다) 그래서 코드를 수정하고 push를 하면 Origin Repo 저장소로 push 요청을 하게되고 권한이 없게되면 push 행위를 실패하게 될 것 입니다. 그럼 gitconfig의 remote 주..

DevOps/Git 2022.06.15

[Git] Better Pull Request for GitHub

큰 규모의 프로젝트에서 개발자간 협업은 필수요소입니다. 그렇기에 코드리뷰의 중요성이 점점 더 높아지고 있는 것 같은데요. Github의 웹페이지에서 다른 개발자가 작성한 Pull Request를 확인하는게 쉽지 않죠. 그래서 Github 페이지에서 Pull Request의 코드 변경사항을 쉽게 파악할 수 있게 도와주는 크롬 확장 프로그램 Better Pull Request for GitHub를 소개하려 합니다. 설치는 매우 간단합니다. 아래 페이지에서 크롬 확장 프로그램을 추가하면 됩니다. https://chrome.google.com/webstore/detail/better-pull-request-for-g/nfhdjopbhlggibjlimhdbogflgmbiahc Better Pull Request ..

DevOps/Git 2022.06.14

[MacOS] iTerm

iTerm은 다양한 기능을 담고 있는 터미널 애플리케이션입니다. https://iterm2.com/ iTerm2 - macOS Terminal Replacement iTerm2 by George Nachman. Website by Matthew Freeman, George Nachman, and James A. Rosen. Website updated and optimized by HexBrain iterm2.com Status Bar Status Bar는 Terminal에서 디바이스의 다양한 상태값을 볼 수 있도록 도와주는 설정입니다. 들어가는 순서는 좌상단 iTerm2 > Preferences... 메뉴로 들어가 Profile > Session > Status bar enabled를 활성화 해주면 됩..

DevOps/MacOS 2022.06.14