Archives
2022 June
화면캡쳐 후 클립보드로 복사
2022 June 16 - [image, clipboard, dom-to-image]전체 화면을 캡쳐해서 클립보드에 복사해 넣는 방법입니다.
리액트 프로젝트에서 빌드타임에 환경변수 검증하기
2022 June 15 - [dotenv-validator, env, react, cra]CRA 프로젝트의 환경변수는 `.env`, `.env.production`, `.env.development` 등의 파일로 정의할 수 있다. 환경변수의 개수가 적지 않을 때는 문제가 없겠지만 보통 애플리케이션의 규모가 커짐에 따라 환경변수의 개수도 함께 증가하게 된다.
2022 May
리액트 프로젝트에 SWC 적용하기
2022 May 31 - [swc, cra, react]리액트 프로젝트에 SWC 를 적용하며 경험한 삽질을 공유한다. Background 지난 FEConf2021 에서 강동윤님의 발표를 통해서 SWC 에 대하여 처음 알게 되었다. https://min9nim.vercel.app/2021-11-0…
husky pre-commit 에서 yarn: command not found 오류
2022 May 26 - [husky, macos-updated]MacOS 를 업데이트하고 나면 꼭 뭐 하나씩 되던 것이 안 되는 것 같다. 이번에는 리액트 프로젝트에서 커밋을 만들 때 husky 의 pre-commit 이 돌면서 아래와 같이 에러를 뿜었다 pre-commit 의 내용은 아래와 같다. yarn…
react-query suspense mode 테스트 삽집 후기
2022 May 24 - [react-query, suspense, test]다음과 같이 suspense 모드를 사용하는 커스텀 훅이 있다고 해보자 그리고 테스트케이스를 아래와 같이 작성했다. 우선 undefined 에서 current 를 읽을 수 없다는 이상한 오류가 뜬다면 react 버젼과 react-test…
A함수가 B함수보다 반드시 먼저 호출되어야 하는 테스트
2022 May 20 - [jest-extended, react, test]Background 특정 로직에서 A함수가 B함수보다 반드시 먼저 호출되어야 함을 보장하는 테스트케이스를 작성하고 싶다. 어떻게 작성할 수 있을까 Solution 간단하게는 jest 에서 제공하는 toHaveBeenCalledBefore…
2022 April
macOS Monterey 업그레이드 후 만난 문제
2022 April 11 - [monterey, yarn, webstorm]혹시 버젼 업그레이드하고 이상한 문제 터질까봐, 미루고 미루던 macOS Monterey 업데이트를 마쳤다. 별 문제가 없나 싶었는데.. 웹스톰에서 문제가 터졌다. 일단 웹스톰에서 명령어 설정하는 곳에서 프로젝트, node interpreter…
TypeScript 쓰면서 OpenAPI Generator 는 안 쓴다고?
2022 April 07 - [swagger, openapi-generator]RESTful API 를 이용하는 프론트엔드 개발의 어려움 JavaScript 의 런타임에러가 프론트엔드 개발자들을 오랫동안 괴롭혀 온 것 같이, RESTful API…
2022 March
react-query 와 suspense 옵션 그리고 Non-null assertion operator
2022 March 25 - [non-null-assertion]react-query 에서 suspense 모드를 사용할 때, reqct-query 가 리턴하는 데이터는 undefined 일 수 있기 때문에, 이후 로직에서 data 를 사용할 때는 data 가 undefined…
2021 November
FEConf 2021 리뷰
2021 November 01 - [feconf2021, review]A5 왜 나는 React를 사랑하는가 https://www.youtube.com/watch?v=1ZHunr78Ias&list=PLZl3coZhX98p6gwel6QW86QUwuAmTEZBo&index=…
2021 October
2021 July
자주 사용하는 터미널 명령어 별칭
2021 July 09 - [command, alias]자주 사용하는 터미널 명령어들에 별칭을 생성해서 사용하면 손가락 건강에 이롭다.
2021 May
Github packages 로 npm 패키지 배포
2021 May 17 - [github, npm, package]여러 프로젝트에서 반복적으로 사용되는 공통모듈이 있다면 Don't repeat your code 원칙에 따라 npm 모듈로 배포해서 사용하고 싶어진다. npmjs 를 통해 패키지를 만들고 배포할 수 있지만 npmjs 는 비공개 레포의 패키지 지원에 대해서는 유료 플랜을 사용해야 한다.
2021 January
[React] ErrorBoundary
2021 January 15 - [react, ErrorBoundary]리액트는 렌더링시 오류가 발생할 경우 오류가 발생했던 일부 컴포넌트만 렌더링을 하지 않는 것이 아니라 전체 화면 모두를 아예 렌더링하지 않는다. 잘못된 화면을 사용자에게 보여주는 것보다는 아예 보여주지 않는 것이 더 나은 사용자경험이라는 판단에서이다. 이것은 리액트가 화면을 렌더링할 때 오류를 만나면 아무것도 그리지 않기 때문에 사용자는 그저 흰화면을 보게 된다는 의미이다.
[React] import React from "react" 제거시 웹스톰 오류
2021 January 15 - [react, jsx]CRA4.0 부터는 jsx 를 사용할 때 `import React from 'react'` 를 더이상 사용하지 않아도 된다. 별 것 아닌 것 같지만 그동안 신규 컴포넌트 작성시마다 해당 `import` 구문을 삽입하는 것은 참 귀찮은 일이었기에 무척 반가운 소식이었다. 하지만 해당 구문을 지웠을 때 유독 img 태그 사용시 웹스톰에서 예민하게 경고메세지를 띄어주었다.
2020 December
[React] `pages` 폴더 경로를 이용한 동적 라우팅
2020 December 18 - [react, routing, lazy, Suspense]React 를 이용한 SPA 웹프로젝트를 개발한다고 할 때 react-router 를 이용한 라우팅은 웹 개발시 거의 필수적인 요소라고 해도 과언이 아닐 것입니다. 그리고 프로젝트가 점차 커지고 라우팅 패스가 하나 둘씩 많아 지게 되면, 자연스럽게 클라이언트 라우팅만을 담당하는 별도 컴포넌트를 생성하여 관리하게 될 것입니다.
2020 November
구글설문지 제출시 결과를 DB로 자동 수집하기
2020 November 30 - [google-form]특별히 구글 설문지 양식이 제출될 때의 이벤트를 이용해 설문지 응답결과를 api 호출을 통해 DB에 자동으로 적재하는 방법에 대한 방법을 안내합니다.
Nodejs 에서 optional chaining 사용하기
2020 November 18 - [js, nodejs, aws-lambda, optional-chaning]AWS Lambda 에서 optional chaining 연산자를 사용하고 싶어서 잠깐 알아봤다. optional chaining 은 Node14 부터 사용이 가능하다고 한다. https://stackoverflow.com/a/5957416…
[react] CRA앱 런타임에 마지막 커밋 정보 표시
2020 November 11 - [react, commit, craco, child_process]CRA 앱 런타임에서 해당 앱의 정확한 버젼을 확인하여 비교해 보아야할 필요가 있었다. 간단하게 현재 런타임의 커밋정보를 로그상에 표시하려면 어떻게 해야할까. 런타임 중에 동적으로 커밋버젼을 확인하는 것은 불가능하므로 웹팩 컴파일타임을 커밋정보를 확인하고 이를 환경변수로 전달하는 방법이면 가능하다.
[js] `e` 를 이용한 숫자표기법이 필요한 이유
2020 November 11 - [js, number, float]자바스크립트는 문법적으로 여러가지 애매한 특징들을 가지고 있다. 특별히 소수점 처리가 범상치 않다는 것은 이미 대충은 알고 있을 것이다. 왜 유독 14 에 0.1 을 곱할 경우만 결과가 이상하게 떨어지는 걸까? 위 문제가 현실 세계에서 어떤 문제를 발생시킬 수 있을 지 직접 예시를 통해 확인해 보자.
2020 October
Redux 를 넘어 SWR 로(2)
2020 October 05 - [react, swr]앞서 첫번째 글에서는 Redux 를 사용할 때 일반적으로 경험할 수 있는 몇가지 문제들을 언급하였습니다. 이번 글에서는 SWR 은 무엇이고 SWR 이 어떻게 Redux 를 대체할 수 있는 지에 대해 설명해 보겠습니다. SWR은 무엇인가? SWR…
Redux 를 넘어 SWR 로(1)
2020 October 03 - [react, swr]이 글에서는 오랫동안 Redux 를 이용한 상태관리를 해오다가 최근 SWR을 만나고, 프로젝트에서 Redux 의존성 모듈을 완전히 제거하기 까지 이른 과정과 경험을 공유하고자 합니다. 이 글이 도움이 되실 독자들 Redux…
2020 September
알쏭달쏭 js 퀴즈
2020 September 16 - [js, quiz]알쏭 달쏭 js 퀴즈 정리. 결과값을 예상해 봅시다 :)
자바스크립트와 타입스크립트의 한계
2020 September 10 - [JavaScript, TypeScript]자바스크립트는 타입이 없기 때문에 타입오류를 오직 런타임시에만 확인 가능하다는 약점이 있습니다. 개발자는 모든 함수나 변수의 타입을 정확하게 인지하고 코딩을 할 수가 없습니다. 그렇기 때문에 우리는 자바스크립트 코딩을 할 때 본인도 모르게 수많은 타입에러 가능성들을 마치 지뢰를 설치하듯 여러 로직들 가운데 심어두게 됩니다. 결국 우리는 언제나 런타임에 언제 터질 지 모르는 타입에러에 대한 불안감에서 벗어날 수가 없습니다
페이스북 광고 웨비나 후기
2020 September 10 - [facebook, ads, marketing]타게팅 설정은 띠로 하지 않고 최대한 넓게 잡는 것이 더 광고효율이 높음. 페북 머신러닝이 타게팅을 알아서 잘 해주는 것 같음. 광고효율을 높이려면 광고소재가 사실상 중요. 캠페인 목표에 따라 주목해야할 성과지표가 달라지는 것
리액트 리얼타임 상태관리 SWR
2020 September 04 - [react, swr]리액트를 이용한 개발시 가장 힘들고 귀찮은 부분이 바로 컴포넌트간의 상태관리라고 해도 과언이 아닐 것이다. 리액트는 기본적으로 컴포넌트간 공유해야할 상태가 있다면 프롭을 통해 위에서 아래로 전달한다. 부모 컴포넌트에서 자식 컴포넌트로 상태 전달의 불편함을 해소하기 위해 리액트는 Context API 를 제공한다. Context API 의 기본컨셉은 부모의 상태를 프롭을 통한 전달없이도 자식 컴포넌트들이 해당 상태를 접근할 수 있게 하는 것이다.
SW 아키텍쳐란 무엇인지 왜 중요한 지
2020 September 01 - [sw, architecture]SW 아키텍쳐란 무엇인지 그리고 왜 중요한 지에 대한 짧은 영상입니다. https://www.youtube.com/watch?feature=youtu.be&v=4E1BHTvhB7Y&app=desktop TL;DR; SW…
2020 August
[리액트] jsx 없이 js 만으로 html 작성하기
2020 August 30 - [react, react-hyperscript, jsx]리액트에서 JSX 는 컴포넌트가 렌더링하는 dom 구조를 정의할 때 사용된다. 순수 JS에서 html 을 마크업하는 것은 여간 귀찮 일이 아니기 때문에 JSX 는 리액트에서 정말 유용하다. 필자는 개인적으로 XML(HTML…
canvas 이미지 다운로드
2020 August 14 - [js, download, canvas]canvas 의 이미지를 클라이언트에서 바로 다운로드 하는 방법 dom 구조가 아래와 같을 때, 이렇게 처리한다. a 태그의 속성을 이용하는 것이 포인트! Ref https://stackoverflow.com/questions/812662…
유용한 ramda 확장 함수들
2020 August 14 - [ramda, js, function-programming]ramda 를 응용한 몇가지 유용한 확장함수들 go noop except propNotEq OR AND isNotNil peek 사용시 중간에 전달되는 값을 로그로 찍어서 확인할 때 필요한 함수 hasProps
2020 July
RegExp 객체의 exec 사용
2020 July 29 - [js, regexp]주어진 문자열에서 매칭되는 문자열을 전부 찾아내는 방법 메소드는 실행될 때마다 다른 결과를 순차적으로 리턴한다. 전체 문자열을 대상으로 매칭되는 문자열이 없을 때까지 주어진 문자열을 순회하며 매칭된 문자열을 찾아야 한다. Ref https…
리액트 컴포넌트 npm 패키지 만들기
2020 July 28 - [react-library]리액트 라이브러리를 만들고 배포하는 작업 진행시 참고한다. 리액트 컴포넌트는 결국 순수한 자바스크립트 객체이기(함수는 일급객체) 때문에 일반적인 npm 모듈을 만드는 과정과 동일하다. 한가지 특이할 점은 리액트 컴포넌트 내부에서 jsx…
2020 June
PWA 를 만드는 방법
2020 June 26 - [pwa]웹앱이지만 앱처럼 디바이스에 설치가능 모바일장비 & 데스크탑 장비 모두 설치가능 앱처럼 설치 가능하지만 앱스토어나 플레이스토어에 등록할 필요가 없다
자동 코드 포매팅
2020 June 19 - [standard]프로젝트 코드의 포매팅 스타일을 일관되게 유지하면 코드 가독성을 높이는데 크게 도움이 된다. 자동 포매팅 도구들은 여러가지가 있다. eslint, prettier, standard…
[js] parse url
2020 June 15 - [js, URL, url-parse]URL 스트링 파싱할 때 옛날엔 url-parse 모듈을 이용했었는데.. 요즘은 URL 객체가 기본적으로 지원이 되는구나! 브라우져와 노드 모두 사용가능하구나! 👍
[react] dark 모드 구현
2020 June 09 - [react, dark-mode, dark]요즘 유행하는 다크모드를 리액트에서 구현하는 방법입니다. 기본적인 컨셉은 설정된 테마에 따라 body…
[react] useEffect 사용시 로직의 흐름
2020 June 04 - [react, hook, useEffect, order]useEffect hook 을 사용할 때 호출순서를 확인한다. 출력 결과는?? Note) 호출 이후 즉시 은 다시 렌더링된다 값이 변경되지 않을지라도 은 호출과 동시에 렌더링된다. 하지만, Virtual dom 에 의해 dom…
[js] generator 의 yield* 문법
2020 June 03 - [generator, yield]generator 에서 문법의 의미를 알아보자. 아래와 같이 제너레이터 안에서 for ~ of 를 이용해 이터레이터의 요소를 반복적으로 해야 할 경우 아래와 같이 로 축약하여 사용할 수 있다.
AWS Amplify x GitHub 기반 CI/CD 설정
2020 June 02 - [AWS, amplify, GitHub, CI/CD]GitHub의 특정 레포지토리(애플리케이션)를 AWS Amplify 에 등록한 후 특정 브랜치를 연결 설정 하면 해당 브랜치에 코드가 푸시될 때 자동으로 배포가 수행된다. 하지만 master…
[create-react-app] pages 폴더 구조대로 라우팅
2020 June 02 - [create-react-app, CRA, pages, route]Nextjs 를 사용할 때 라우팅은 기본적으로 폴더 구조를 그대로 따른다. CRA 만을 이용해서 리액트 프로젝트를 생성하면 라우팅을 직접 하나씩 설정해 주어야 하는데 path…
[react-router-dom] 라우트 우선순위
2020 June 02 - [react-router-dom]컴포넌트에서 , , 가 함께 사용될 때 우선순위는 아래와 같다. children > component > render 예) 아래와 같이 라우트가 정의될 때 우선순위는 C > B > A
2020 May
[create-react-app] 코드 자동 포매팅 설정
2020 May 29 - [webstorm, lint-staged, prettier, create-react-app, CRA]CRA 프로젝트에서 커밋 전 자동포매팅을 설정하는 방법과 현재 열린파일에 대해 포매팅을 적용하는 방법을 공유한다. 커밋 전에 자동포매팅 적용 관련 모듈 설치 package.json 에 설정 추가 .prettierrc…
Python 스터디
2020 May 23 - [python, syntax]python 을 새롭게 공부하면서 특별히 기억할 만한 요소들을 정리해 본다. 변수의 선언 없이 바로 사용 다른 언어들(C/C++, JAVA, JavaScript)과 다르게 변수의 특별한 선언없이 바로 사용 comment 연산자 power…
Promise 에서 에러 핸들링
2020 May 22 - [promise, error]Promise 의 then 에서 오류가 발생할 경우 오류 처리 방법
텍스트 줄임 처리 .. (ellipsis)
2020 May 20 - [gatsby, utterances]일반적으로 텍스트의 양이 많아서 주어진 영역을 벗어나면 아래와 같이 표시된다.. 해당 영역을 벗어나는 텍스트를 잘라내기 위해 스크립트를 이용하는 것도 가능하다. 하지만 해당 영역의 너비가 달라져서 뿌려줘야 할 텍스트의 길이가 늘어나거나 줄어들 경우 스크립트를 다시 수정해야하는 불편함이 있을 수 있다.
About this blog..
2020 May 15 - [about]기술로 사람들의 일상을 변화시키는 일에 관심이 있습니다. 일상을 바꾸는 힘은 가볍고 기발한 창의적 아이디어로부터 시작됩니다. 그리고 그 아이디어는 인간과 사회를 바라보고 이해하는 인문학적 통찰력에 기반합니다.
Gatsby 블로그 댓글 플러그인(utterances)
2020 May 14 - [gatsby, utterances]최민규님 글을 보고 utterances 댓글 플러그인을 알게 되었다. 이전 jekyll 블로그에서는 DISQUS 댓글을 사용했었는데, utterances 가 왠지 조금 더 사랑스럽다. utterances…
Gatsby 블로그 페이징처리(dynamic routing)
2020 May 13 - [gatsby, dynamic-route]요즘 여기저기서 개츠비에 대한 칭찬이 많아서 꾸준히 관심을 가지고 있었다. Dan Abramov 의 핑크빛 블로그에 대한 인상도 좋았고 무엇보다도 리액트 기반인 만큼 필요할 때 어렵지 않게? 주물럭 거릴 수 있을 것이라 기대하고 개츠비 블로그로 이사를 결심하였다.
JavaScript 세미콜론 사용
2020 May 07 - [js, semicolon]자바스크립트는 문장(statement)의 구분을 위해 세미콜론 `;` 을 사용한다. 일반적으로 코드의 가독성을 위해 한줄에 하나의 문장만 사용한다.
2020 April
[react] 컴포넌트별 scoped 스타일 사용
2020 April 29 - [react, react-scoped-css]css 는 언제나 전역으로 사용되기 때문에 리액트 컴포넌트별로 css 를 사용하더라도 경우에 따라 실렉터가 충돌날 수 있다. 이를 해결하기 위한 다양한 방법이 있겠지만 이 글에서는 사용방법이 간단한 scoped-css-loader 모듈을 이용하는 방법을 소개한다.
RxJS 의 이해와 사용
2020 April 24 - [react, RxJS]RxJS 는 이벤트 기반 프로그래밍에서 함수형 프로그래밍을 이용해 보다 선언적으로 이벤트를 처리할 수 있도록 도와준다. RxJS는 모든 이벤트를 observable…
redux-saga 가 해결하는 문제
2020 April 23 - [react, redux-saga, generator]본 글에서는 redux-saga 를 알고 싶지만 왠지 높아 보이는 진입장벽으로 마음이 불편한 개발자들을 위해 작성되었다. redux-saga 가 필요한 이유와 redux-saga 가 어떤 문제를 해결하는 지에 대한 이해를 돕고자 한다. redux…
[CRA] create-react-app 프로젝트에 module-alias 적용하기
2020 April 21 - [js, react, create-react-app, module-alias]프로젝트의 폴더 구조를 개선해 나가다 보면 폴더 구조의 depth 가 깊어짐에 따라 와 같이 보기 싫은 코드가 만들어 질 수 있다. 프로젝트/src…
[react] Context api 사용 방법
2020 April 21 - [js, react, context]Context api 를 이용하면 mobx, redux 없이도 애플리케이션 상태를 공유할 수가 있다. 하지만 상태를 업데이트하기 위해서는 공유되는 컨텍스트 안에 상태 변경 메소드까지 포함하여야 하는데 이를 통해 애플리케이션의 전체 상태를 관리하기가 불편할 수 있다.
[react] mobx 개발환경 설정
2020 April 19 - [js, react, mobx]create-react-app 으로 시작해서 mobx 를 사용하기 위한 기본적인 세팅방법 기록해 둠 1. 앱생성 2. CRA 기본 앱 설정 추출 3. mobx, mobx-react 설치 4. 데코레이터 사용 설정 preset 설치 package…
[mobx-react] 리액트 컴포넌트에 상태 주입
2020 April 19 - [js, react, mobx]mobx-react 를 이용해 리액트 컴포넌트에 상태를 주입하는 방법 1. 함수형 컴포넌트 2. 클래스 컴포넌트
[mobx] enforceActions
2020 April 17 - [js, mobx]mobx 는 우리를 의 늪에서 꺼내 주었다. 충분한 자유함과 유연함은 좋지만 그 것이 좋은 것이 되려면 언제나 책임을 전제로 해야한다. observalbe…
[react] PureComponent
2020 April 17 - [js, react, PureComponent]일반적인 리액트 클래스 컴포넌트는 React.Component 를 확장하여 정의한다. React.Component…
[react] React.memo
2020 April 17 - [js, react, memo]함수형 컴포넌트는 부모 컴포넌트가 렌더링될 때 무조건 함께 같이 렌더링이 됩니다. 하지만 함수컴포넌트의 경우 props 가 다르지 않다면 항상 같은 결과를 리턴하므로 부모 컴포넌트가 re-render 되더라도 함수 컴포넌트의 props…
[react] render props
2020 April 17 - [js, react, render-props]react 에서 코드 재사용을 위해 적극적으로 권장하는 방법 Render Props. 리액트는 prop 을 통해서 primitive…
bind, apply, call 중복 사용시 this 바인딩의 우선순위
2020 April 09 - [js, bind, apply, call]…
image lazy load
2020 April 08 - [js, image-lazy-load]image lazy load 란 사용자가 보여지는 화면 영역 안에(viewport…
2020 February
play sound with JavaScript
2020 February 28 - [js, sound]안 되는 줄 알았는데.. 찾아보니 간단히 되는구나! 요즘 웹으로 정말 안되는 게 없는 듯~ Ref. https://stackoverflow.com/questions/9419263/playing-audio-with-javascript
URL에 포함된 id/pw 를 fetch 함수로 보내기
2020 February 18 - [fetch, authrization]과 같이 url에 포함된 id/pw 를 fetch 함수로 요청하는 방법
2020 January
npm 버젼의 캐럿(^) 의미
2020 January 29 - [npm, version]아웃사이더님이 잘 정리해주신 글 보고 배운 내용 요약 npm 버젼 의미 MAJOR: 하위호환성이 보장되지 않는 변경사항 발생시 MINOR: 하위호환성 보장 하면서 기능추가 PATCH: 하위호환성 보장 하면서 버그수정 npm…
electron 시작하기
2020 January 17 - [electron]엘렉트론 소개 js 로 데스크탑 애플리케이션을 만들자! Nodejs + Chromium 일렉트론은 기본적으로 Nodejs 프로젝트 2014년 github 에서 Atom…
0부터 99까지 배열을 만드는 가장 간단한 방법
2020 January 16 - [js, array]0부터 99까지 배열을 만드는 방법(내가 아는 가장 간단한 방법)
2019 December
[js] buildErrorHandler
2019 December 27 - [js, error]프로젝트 공통에서 계층 구조적으로 에러를 핸들링하고자 하고자 한다면 함수를 이용할 수 있다 구체적인 설명은 귀찮아서 생략한다.
[js] custom Error
2019 December 27 - [js, error]js 에서 제공하는 클래스는 기본적으로 아래와 같이 문자열을 인자로 받는다 객체타입을 사용해 에러메세지를 입체적으로 정의하고자 한다면 클래스를 아래와 같이 확장하여 사용한다.
[typescipt] error stack 에서 .ts 파일 매핑하기
2019 December 27 - [typescript, source-map, source-map-support]tsconfig.json 에 설정이 되어 있다고 해서, 런타임의 오류스택에 .ts 매핑 정보가 바로 나오는 것은 아니다. error stack 에서 직접 .ts 매핑 위치를 찾고 싶으면 아래와 같이 추가 설정이 필요하다 1. source-map…
[kubernetes] 기본 명령어
2019 December 27 - [kubernetes, command]쿠버네티스 설치 https://kubernetes.io/docs/tasks/tools/install-kubectl/ 기본 명령어들 컨테이너 목록 확인 컨테이너 삭제 컨테이너 ssh 접속 kubectl 로그 확인 컨테이너의 파일을 로컬로 복사 ex…
[elm study] Types
2019 December 17 - [elm, type]타입선언 함수 정의시 아래와 같이 타입을 선언한다 타입 변수 ts의 generic 과 비슷하게 일반적인 타입 형태(list…
2019 November
[mac] 기본 shell 변경
2019 November 22 - [mac, shell]실수로 잘 사용하던 기본 shell 을 바꿔먹어서 이상한 shell 이 나타나 무척 당황했었다; 맥에서 기본 shell을 변경하는 방법을 간단히 정리하고 넘어간다. 맥 기본 bash 사용 기본 설치된 shell 목록 확인 Ref. https://www…
npm 모듈 배포
2019 November 22 - [npm, publish]처음으로 npm 모듈 배포를 실습해 보았다. 몰라서 고생했던 내용들만 내 맘대로(내가 이해한 만큼만) 축약해 정리해 본다. 배포명령 프로젝트 루트 경로에서 모듈 배포는 언제나 패키지명&버젼명이 유일해야 한다. 인증 npm 모듈을 배포하려면 우선 npm…
2019 October
[js] 비동기 함수의 순차적 실행 보장
2019 October 25 - [js, atomic, async]async/await 를 이용하면 간단하게 비동기함수를 순차적으로 실행할 수 있다. 하지만 이것은 caller…
[js] clipboard 읽기&쓰기
2019 October 08 - [Frontend, js]클립보드에 데이터를 읽고 쓰는 방법 클립보드에 데이터 쓰기(execCommand 이용) 크롬에서 정상 동작 클립보드 데이터 읽기(execCommand 이용) 크롬에서 정상 동작 파이어폭스 미지원 클립보드 데이터 읽기(clipboard API…
2019 September
[vue] composition-api 에서 watch 사용법
2019 September 14 - [Frontend, composition-api, vue]뷰의 composition-api 를 적극적으로 프로젝트에 적용해 보고 있는데 아직 관련 문서나 보고된 이슈들이 많지 않아 쉽지가 않다. watch 메소드를 이용할 때 state…
[now] Node 서버 배포
2019 September 09 - [zeit, now, deploy, node]작년 이 맘때 now 서비스를 사용하는 방법을 간단히 포스트 한적이 있다. 당시에는 1.0 버젼이었는데 최근? 2.0으로 버젼 업이 되면서 소소하게 적잖은 부분이 변경되었다. 최근 2.0 내용에 맞춰 express 서버를 간단히 now…
[vue] link 내용 요약본
2019 September 08 - [Frontend, vue, js, nuxt]아래와 같이 특정 URL의 부가정보를 가져와서 간략하게 보여주는 뷰를 작성해 보았다. https://news.v.daum.net/v/20190907135442277 코드 함수는 이전 포스트 를 참고한다.
URL 메타 정보 긁어오기
2019 September 06 - [js, Frontend]특정 URL의 타이틀, 이미지, 설명 정보를 간단히 긁어오는 웹스크래핑 소스를 작성해 보았다. 브라우져에서 사용할 경우에는 CORS 문제로 url의 응답을 가져오는데 제한이 있을 수 있다. 그럴 경우에는 URL…
[js] await 뒤에 동기함수가 오면?
2019 September 05 - [js]async/await 를 사용할 때, 일반적으로 프라미스를 리턴하는 비동기함수의 응답을 기다릴 때 비동기 함수 앞에 await 를 사용한다. 하지만, await 다음 함수가 프라미스를 리턴할 지 일반적인 value…
[Frontend] 파일 다운로드 downloadWithFetch
2019 September 04 - [frontend]별도 서버의 도움없이 클라이언트에서 파일 다운로드를 처리하는 함수를 찾아 보았다. downloadWithAxios 는 있는데 downloadWithFetch 가 없어서 하나 만들어 보았다. 파일 다운을 실행할 때마다 document.body…
[nuxt] 공통 에러 페이지 error.vue
2019 September 04 - [Frontend]nuxt 에서 처리되지 않은 예외는 모두 넉스트의 기본 에러페이지로 처리된다. 넉스트의 기본 에러 출력화면을 커스터마이징 하려면 아래와 같이 파일을 추가한다 prop error.vue 에 전달되는 prop은 클래스의 인스턴스가 아닌 error…
[vue-composition-api] computed 속성이 reactive 하지 않을 때
2019 September 03 - [vue, commposition]아래와 같이 속성을 정의하면 가 reactive 하지 않다(변경되는 prop값에 따라 반응하지 않는다) 아래와 같이 함수에서 를 직접 접근해야 reactive 해진다 이유는 뭐 잘 모르겠다. call-by-value vs call-by…
2019 August
graphql 쿼리객체 문자열 변환
2019 August 27 - [graphql]그래프큐엘 쿼리 객체를 문자열로 변환하는 방법 하나, 둘, Ref. https://github.com/apollographql/graphql-tag/issues/144
[js] 함수내에서 자신의 이름 참조하기
2019 August 23 - [js]디버깅용 로그를 남길 때 실행 중인 함수스코프 내의 해당 함수 이름을 참조하고 싶을 때가 있다. 함수 스코프 내에서 해당 함수의 이름을 참조하려면 어떻게 해야할까? 아래 방법이 가능하다 함수의 name 속성은 ES6부터 지원하지만 strict…
[vue] v-html 에서 필터 흉내내기
2019 August 15 - [vue, typescript]vue 에서 text 를 화면에 렌더링하기 위해서는 머시태그나 v-html 을 사용한다. 특별히 html 태그사용이 필요한 경우 을 이용해 html 문자열을 렌더링해야 한다. 뷰는 template 태그 영역 내에서 간단하게/직관적으로/readable…
[vue] 뷰 컴포넌트 이름이 필요한 이유
2019 August 14 - [vue, typescript, nuxt]뷰 컴포넌트 이름이 필요한 경우를 전혀 찾지 못하다가 필요한 경우를 발견해서 기록을 남겨둔다. 뷰 컴포넌트의 이름을 정의하는 2가지 방법(class based) 1. @Component 에 등록하는 방법 2. 클래스 이름으로 정의하는 방법…
2019 July
[css] 레이어 중첩 구조에서 z-index
2019 July 19 - [css, z-index]는 상위 요소에서 정의된 값이 우선한다. 예를 들면, 마크업이 아래와 같을 때 parent2 가 parent1 의 child 보다 위로 올라온다
더 나은 자바스크립트 코드에 대하여
2019 July 19 - [js, functional, typescript]https://medium.com/@rinae/번역-두려움-믿음-그리고-자바스크립트-언제-타입-시스템과-함수형-프로그래밍이-먹히지-않는가-dde33972301f…
[js] console.log 를 이용한 디버깅시 주의사항
2019 July 18 - [js]웹개발시 일반적으로 디버깅시 를 많이 사용하는데 주의해야 할 사항이 있다. 아래 코드를 보자 위와 같이 객체 자체를 직접 콘솔에 찍을 경우 브라우져(크롬)는 에 대한 참조를 이용해 console…
[js] 랜덤 문자열 생성함수
2019 July 18 - [vinillajs]간단하게 랜덤문자열을 생성하는 함수 오늘 갑자기 테스트코드에서 오류가 발생해서 봤더니.. forEach 루프 안으로 들어오지 않는 문제가 있었다. 잘 돌던 코드가 갑자기 왜 안 된거지..??? 갑자기 js…
[js] Octal literals are not allowed in strict mode
2019 July 17 - [es6, strict]과 같은 리터럴을 사용할 때 만날 수 있는 오류이다. 관련 디테일을 들여다 보자 원래 과 같이 으로 시작하면 8진수, 같이 로 시작하면 16진수 표기가 맞다. js스펙이 원래 이랬는데.. ES6부터는 8진수 표기를 , 16진수는 ,…
타입스크립트와 함수형프로그래밍
2019 July 17 - [typescript, funtional, ramda]…
[funtional] ramdajs 의 렌즈(lens)
2019 July 16 - [ramdajs, funtional]ramdajs 에서 제공하는 lens 에 대한 개념을 소개한다. lens 는 복잡한 객체(특별히 depth가 깊은 구조)를 다룰 때 아주 유용하다. 다음과 같은 객체의 내부 y속성 값을…
[vue] 부모 뷰인스턴스의 메소드 호출
2019 July 15 - [vue, vue-class-component, vue-property-decorator, mixins, typescript]타입스크립트를 이용해 뷰 개발을 하고자 한다면 당신은 아마 vue-class-component 를 사용하고 있을 것이다. 그리고 이보다 더 많은 기능을 포함한 vue-property-decorator 를 사용하고 있을 수도 있다. vue-class…
[js] array 를 초기화하는 방법
2019 July 11 - [js, array, initilaize]배열을 초기화하는 가장 쉬운 방법은 다음과 같다. arr 가 const 로 선언되어 있다면 아래와 같이 처리할 수 있다. 그런데 뷰에서는 length 를 초기화하는 방법으로 인한 변이가 reactive 하지 않기 때문에 splice…
[js] getQueryParam
2019 July 03 - [js, utils, replace]여기 소스 살펴보다가 replace 를 이렇게 활용할 수도 있구나.. 인상적이어서 공유해 봅니다 쿼리스트링을 파싱하여 리턴하는 유틸함수(원본 소스를 일부 수정함) URL이 아래와 같을 때 http://www.11st.co.kr/product…
2019 June
VirtualBox 로 MS Edge 테스트환경 구축
2019 June 28 - [edge, test, vitual-box]맥용 MS Edge 가 있기는 하지만 Windows10 에서의 동작과 100% 일치할 순 없기 때문에 MS Edge on Windows10 테스트환경을 갖추는 것이 필요하다. 본 글에서는 맥에서 Windows10 MS Edge…
[js] generator 를 이용한 iterator 구현
2019 June 07 - [generator, iterator]iterable 하지 않은 객체를 iterable 하게 만들려면 에 이터레이터를 리턴하는 함수를 작성해야 한다. ES6에서는 generator 를 이용하여 손쉽게 iterator를 리턴하는 함수를 작성할 수 있다. coll 은 아직 iterable…
[js] 맥 크롬 검색창(input)에서 enter키 입력시 요청이 2번 올라가는 문제
2019 June 07 - [generator, iterator]Vuejs 로 검색화면을 개발 중이었는데 한글 검색어 입력 후 엔터키를 입력하면 동일한 요청이 2번 올라가는 문제가 있었다. 재현조건 MacOS Mojave 10.14.5(18F132) 크롬: 현 시점 최신버젼, 74.0.3729.16…
2019 May
[js] spread operator 에 의해 열거되지 않는 속성이 있다?
2019 May 31 - [js]ES6에서 도입된 spread operator 는 객체를 다룰 때 상당히 유용하게 쓰인다. 하지만 정확히 알고 사용하지 않으면 오류를 발생시킬 수 있다. 특별히 프레임웍으로부터 전달받은 이벤트객체를 spread operator…
[js] 클래스 decorator의 호출시점에 대하여
2019 May 30 - [js]decorator를 이용하면 클래스 정의를 보다 예쁘게 할 수 있다. 그렇다면 decorator가 호출되는 시점은 정확히 언제일까? 다음 예제를 통해서 확인해 보자. 결과는 아래와 같다. 결론 객체가 생성될 때 가장 먼저 decorator…
[js] 함수 선언과 함수표현의 차이
2019 May 26 - [js]함수 선언은 호이스팅 된다. 결과) 하지만 함수표현식은 호이스팅되지 않는다. 결과)
[js] 자바스크립트 scope 퀴즈
2019 May 23 - [js]자바스크립트의 함수단위 스코프, 동적 this 바인딩, lexical scope 등 자바스크립트에서 scope 에 대한 개념을 정확히 이해하기 위해 알아야 할 사항들은 상당히 많다. 특별히 아래 퀴즈들을 통해 나는 자바스크립트 scope…
[js] https 에 사용자 인증을 설정할 때 문제
2019 May 15 - [js]크로스도메인 요청을 보낼 https 서버가 인증정보(id/pw)를 요구하는 경우에 필자가 경험했던 문제를 정리한다. 시나리오 현재 화면()에서 특정 데이터를 가져오기 위해 로 요청을 보내야 한다고 가정하자. 그리고 프론트에서는 fetch…
[GraphQL] subscription 테스트 클라이언트
2019 May 15 - [nodejs, client, graphql]본 글은 apollo-server-express 에서 subscription 기능을 사용할 때 테스트케이스 작성시 필요한 pubsub…
[js] var와 let, const의 차이
2019 May 15 - [js]var와 let의 구체적인 차이점을 확인해 보자 누구나 아는 내용 let, const 는 ES6부터 사용가능 var, let 은 변수 const는 상수 var 는 동일한 변수를 여러번 선언 가능하지만, let, const…
2019 April
Do you know `hello@gmail.com` is not a valid format?
2019 April 26 - [validator]테스트 중에 우연히? 시스템에서 `hello@gmail.com` 이 유효하지 않은 이메일이라고 오류를 뱉길래 뭐지? 하고 관련 내용을 뜯어보고 깨달은 내용을 정리한다. 처음에 필자는 이 건 당연히 로직의 버그라고 생각을 했었다. 해당 건을 당당히 이슈로 등록하려다가 돌다리도 두들겨 보고 가자는 마음으로 일단 관련 로직을 한 번 확인해 보기로 했다.
[nodejs] GraphQL 클라이언트 소개
2019 April 25 - [graphql]본 글에서는 Nodejs 에서 간단히 GrahpQL 서버에서 데이터를 fetch 하는 클라이언트 작성 방법을 소개한다. 필요 모듈 ts-node ts 를 컴파일 없이 바로 실행 type-script 본 예제에서는 단순히 import…
2019 March
[nodejs] EACCES: permission denied, mkdir
2019 March 25 - [error]특정 npm 모듈을 글로벌 설치할 때 아래와 같은 오류를 종종 만나곤 한다. sudo 를 이용해 수행하더라도 설치 과정에서 내부적으로 쓰기 권한이 없어 오류가 발생하는 것으로 보인다 해결책 아래와 같이 옵션을 추가해 본다 Ref https…
[vscode] 단축키로 터미널 명령 실행
2019 March 13 - [vscode]vscode 에서 단축키를 이용해 터미널 명령을 바로 실행하는 방법은 여러가지가 있겠지만 특별히 Command Runner 익스텐션을 사용하는 방법을 공유한다. Command Runner 설치 vscode extension 메뉴에서 Command…
[mac] 화면캡쳐
2019 March 01 - [mac]전체화면캡쳐 파일로 저장 클립보드로 저장 Note) 파일저장 경로는 데스크탑 선택윈도우 or 특정영역드래그 파일로 저장 클립보드로 저장 Note) 선택윈도우냐 특정영역드래그(default)냐는 스페이스키로 토글 동영상 캡쳐 Note…
2019 February
[nodejs] import 구문 사용
2019 February 14 - [nodejs]노드에서 import 구문을 사용하고자 할 경우 세팅 방법 @babel/preset-env 설치 .babelrc 설정 테스트 babel-node 를 이용하면 컴파일과 동시에 바로 실행할 수 있다 기타 preset-env 는 Babel7.x…
[mac] Finder에서 숨김파일 보기
2019 February 14 - [mac]맥의 파일탐색기인 Finder 에서는 기본적으로 숨김파일이 보이지 않는다. 숨김파일을 Finder…
[mac] 터미널 프롬프트 포맷 변경
2019 February 14 - [mac]터미널 프롬프트의 포맷을 변경하려면 파일을 만진다. ~/.bash_profile 에 아래 내용 추가 위와 같이 설정을 하면 아래와 같은 프롬프트를 얻을 수 있다 프롬프트 설정시 아래와 같은 값을 사용할 수 있다 Ref http://osxdaily…
2019 January
[js] optional-chaining 사용설정 방법
2019 January 31 - [js]설치 .babelrc 에 아래 설정 추가 vscode 에서 문법오류 optional-chaining 사용 설정을 완료하고 VSCODE에서 해당 문법을 사용하려고 하면 문법오류라고 지적을 해준다. 물론 현단계에서 optional-chaining…
[js] 소요시간 측정
2019 January 31 - [js]js 속도 튜닝이 필요할 경우 특별히 스크립트의 소요시간을 체크하고자 할 때 간단하게 사용할 수 있는 함수를 소개한다. 사용법 실행 결과 timelog.js…
[js] ManDay 계산
2019 January 11 - [js]어떤 작업을 수행했던 시작과 끝 시간이 주어지고 해당 기간에 소요된 공수를 일단위로 계산한 결과가 필요할 때 아래와 같이 계산할 수 있 다 요건 주5일(월~금) 하루 8시간 근무를 기준으로 계산한다 점심시간(12~1…
2018 December
[Nodejs] 프라미스 파일쓰기
2018 December 11 - [nodejs, file, promise]it works Ref. https://stackoverflow.com/questions/31978347/fs-writefile-in-a-promise-asynchronous-synchronous-stuff
[Nextjs] Nextjs 를 시작 해야하는 이유
2018 December 08 - [react, nextjs]SPA 앱을 만들려는 노력은 더 이상 특별한 일이 아닙니다. 다행히도 SPA앱을 간단하게 만들 수 있도록 도와주는 여러 프로젝트들이 있습니다. Create React App 이 그 좋은 예 입니다 그러나 CRA…
[React] super(props) 를 써야하는 이유
2018 December 03 - [super, props]이 글은 Dan Abramov의 Why Do We Write super(props)? 글을 충분한 의역으로 번역한 것입니다. 번역이 일부 자연스럽지 않은 부분이 있을 수도 있습니다. 정확한 내용은 원문을 참고하기 바랍니다 최근 Hooks…
2018 November
[JAVA] 터미널에서 컴파일하고 실행하기
2018 November 30 - [java]jdk 명령도구를 이용해 자바를 컴파일하고 실행하는 방법 컴파일 컴파일이 완료되면 Hello.class 파일이 생성된다 실행
[GIT] 여러가지 .gitignore 설정 옵션
2018 November 29 - [gitignore]git…
[JEST] Nextjs 에서 jest 사용하기
2018 November 29 - [jest, TDD, node, Nextjs]Nextjs 프로젝트에서 지난 포스트의 방법대로 jest 구성을 하니 Nextjs 프로젝트를 빌드할 때 아래와 같은 오류가 발생했다. 구글링 결과 Nextjs 에서 jest…
[JEST] ES2015 모듈 사용하기
2018 November 28 - [jest, TDD, node]테스트 대상이 되는 모듈을 테스트하기 위해서는 테스트코드에서 일단 해당 모듈을 불러올 수 있어야 한다. 하지만 JEST 는 기본적으로 ES6의 , 구문을 사용할 수 없다. 해당 구문을 사용하려면 , 를 commonjs…
[Nodejs] 특정폴더의 파일명 일괄 변경
2018 November 23 - [nodejs]노드를 이용하여 파일시스템을 만지는 소스 예제 요건 특정 경로의 폴더명들을 일정한 패턴에 따라 rename…
5분 만에 사이트 로고 디자인하기
2018 November 10 - [webfont]사이트의 로고를 멋지게 디자인 하는 것은 가게의 간판을 다는 것 같이 사이트의 첫인상을 결정 짓는 중요한 작업이다. 그런 만큼 별거 아닌 것 같아도 여러모로 신경이 많이 쓰이는 것이 사실이다.
[Nodejs] EUC-KR 웹페이지 웹스크래핑
2018 November 10 - [nodejs]Node 는 자바스크립트 기반이므로 기본적으로 UTF-8 인코딩을 사용한다. EUC-KR 인코딩을 사용하는 웹사이트를 스크래핑할 경우 한글이 깨지는 문제가 발생할 수 있다. 본 글에서는 EUC-KR…
[js] BASE64 인코딩/디코딩
2018 November 07 - [BASE64]클라이언트와 서버간에 한글이 포함된 전문을 주고 받을 때 한글이 깨지게 되는 경우가 종종 있다. 한글 인코딩이 깨지지 않기 위한 손쉬운 방법은 문자열을 서버로 전달하기 전에 BASE6…
[GCP] Nodejs Environment variables
2018 November 06 - [nodejs-env]The following environment variables are set by the runtime environment: Environment variable Description GAE_INSTANCE The name of the…
[Nextjs] getInitialProps 를 이용한 ServerSideReandering
2018 November 06 - [getInitialProps]Nextjs 에서 서버사이드렌더링을 가능케 하는 것은 비밀이 바로 에 있다. Nextjs에서 모든 스크립트 코드는 Nodejs…
[js] 배열의 마지막에 여러 요소 추가
2018 November 04 - [array, js]배열의 마지막에 2개 이상의 원소를 추가하는 방법 결론 4번이 가장 직관적으로 이해하기 쉽다고 생각한다.
초간단 의존성 그래프 그리기
2018 November 04 - [dependency-graph]Graphviz 를 이용한 의존성 그래프 그리는 간단한 방법을 소개한다. 무려 svg 포맷으로 :) 온라인 도구 온라인 도구가 제공된다. http://www.webgraphviz.com…
[react] 컴포넌트의 mount 여부 체크
2018 November 02 - [react]아직 mount 되지 않은 혹은 unmount 된 컴포넌트에 나 를 수행하려고 하면 아래와 같은 오류가 발생한다 난 전에 해당 컴포넌트의 mount…
nprogress 소개
2018 November 02 - [nprogress]프론트엔드 개발할 때 언제나 필요한 기능 중 하나가 서버의 응답을 기다리는 동안에 보여줄 진행중 표시이다. 특별히 개발 프레임웍에 종속적이지 않고 모든 웹개발 프로젝트에서 간단히 사용 가능한 nprogress…
초간단 숨김 애니메이션 처리
2018 November 02 - [animation]포스트의 삭제 처리시 이용할 수 있는 초간단 애니메이션 처리 예제 스크린샷 소소코드
[js] 배열에서 특정 요소 제거
2018 November 01 - [array, js]배열의 특정 요소를 제거하는 2가지 방법 결론 2번째 방법은 조건에 따라 여러 개를 한꺼번에 삭제하는 것도 가능하다. 읽기도 쉽고 코드도 더 짧다. 를 이용하자
2018 October
Node.js CORS setting
2018 October 30 - [nodejs, cors]Express 서버를 사용할 경우 cors 미들웨어를 이용해 간단하게 CORS 설정을 할 수 있다. 모든 요청에 대한 CORS…
Next.js + Sass
2018 October 28 - [nextjs, sass]Next.js 에서 scss를 사용하려면 next-sass 플러그인을 추가로 설치해야 한다. next-sass 플러그인을 설치하고 사용하는 방법은 다음과 같다. next-sass 세팅 모듈 설치 사용방법 파일 생성 export default…
토이 프로젝트용 클라우드 플랫폼 비교
2018 October 28 - [cloud-platform]…
[Now] 신규 배포앱에 간단한 URL별칭 부여하기
2018 October 27 - [zeit, now, domain]now 를 이용해 앱을 배포하면 아래와 같은 모양의 매번 새로운 URL을 생성된다. 앱을 업데이트할(배포) 때마다 URL…
[json-server] 30초 안에 RESTful API서버 만들기
2018 October 27 - [json-server]프론트엔드 개발자에게 백엔드서버 구축은 여간 귀찮은 일이 아니다. 백엔드 구축이 귀찮은 분들에게 json-server 라는 신박한 녀석을 소개한다. json-server 는 내부적으로 lowdb 라는 단순한 데이터베이스를 이용하며 최소한의 REST…
[Now] Global Serverless Deployments
2018 October 25 - [zeit, now]Next.js 를 공부하다가 재미있는 서비스를 만나서 소개보고자 한다. https://zeit.co Now…
[macOS]Mojave 업그레이드 후 이클립스 실행시 오류
2018 October 24 - [Mojave]macOS Mojave 업그레이드 이후 이클립스 실행시 아래와 같은 오류 해결책 아래 링크 들어가서 다운로드&설치 https://support.apple.com/kb/DL1572?locale=ko_KR Ref. https://stackoverflow…
[React] mobX를 이용하여 setState 없애기
2018 October 23 - [react, mobx]리액트에서 컴포넌트의 상태를 setState 를 이용해 변경하는 것은 functional 과 immutable…
[React] 함수형 컴포넌트와 클래스기반 컴포넌트의 차이점
2018 October 21 - [react]함수형 컴포넌트 순수 자바스크립트 함수를 이용하여 컴포넌트를 정의한 것 클래스기반 컴포넌트 를 상속받은 클래스를 이용하여 컴포넌트를 정의한 것 차이점 구분 함수형 컴포넌트 클래스기반 컴포넌트 장점 코드를 간결하게 작성할 수 있다. N/A…
mime type 설정
2018 October 16 - [mime-type]HTTP 응답헤더 중 Content-Type 은 서버의 특정 자원이 어떤 용도에 필요한지에 대한 부가정보를 제공한다. 브라우져는 이 정보를 기반으로 해당 자원을 어떤 용도로 해석하고 표현해야 할 지 결정한다. 한 예로 svg…
[java] 날짜를 문자열로 변환
2018 October 15 - [java]날짜를 문자열 포맷으로 변경하는 방법 Ref. http://nota.tistory.com/50
npm 최신버젼으로 업그레이드
2018 October 13 - [npm]오랜 만에 create-react-app을 이용해 react 개발을 시작하려고 하는데 시작부터 npx 가 갑자기 나온다. 근데 내 windows 머신에는 npx를 사용할 수 없었다. npm5.2 부터 사용이 가능 하다고 한다. 로컬의 npm 버젼은…
DApp이란 무엇인가
2018 October 01 - [DApp, blockchain]5 Reasons to Build Decentralized Apps 영상의 내용을 간략히 정리해 보았다 DApp…
2018 September
[React Native] ScrollView 사용시 스크롤이 bottom에 닿을 때 처리
2018 September 24 - [ScrollView]무한 스크롤링과 같이 스크롤이 마지막에 닿았을 때 처리를 하고자 할 때 고려해야 할 변수는 아래와 같다. no value 의미 1 e.nativeEvent.layoutMeasurement.height 현재 보여지는 화면의 높이값 2 e…
[React Native] onPress 이벤트에서 key값 참조 방법
2018 September 23 - [onPress]react-native 에서 루프 안의 key 값을 참조하는 방법을 몰라 한참 헤맸다. ReactNativeComponentTree 를 이용하거나 props 를 이용한 wrapper…
[java] ArrayList vs LinkedList vs Vector
2018 September 19 - [ArrayList, LinkedList, Vector]각 자료구조에 대한 차이를 정확히 알아야 적절한 자료구조를 선택할 수 있다 구분 ArrayList LinkedList Vector 동기화 미지원 미지원 지원 검색 빠름 느림 빠름 추가/삭제 무겁다 가볍다 무겁다 지원버젼 java1.2 java1.…
[java] HashSet 사용법
2018 September 19 - [HashSet]중복을 허락하지 않는 자료구조 Set 예제소스 출력
[java] HashMap 사용법
2018 September 19 - [HashMap]java에서 HashMap 사용법 기본 사용법 참고) 위에서 객체 생성시 사용된 유형 매개변수는 jdk1.5 이상부터 사용 가능 jdk1.4 에서 사용할 경우 아래와 같은 오류 발생 출력 순회방법 출력 Ref https://wikidocs.net…
[js] 배열에서 중복 제거
2018 September 13 - [array, filter, indexOf]filter 와 indexOf 를 이용한 중복제거 방법 Ref https://stackoverflow.com/questions/1960473/get-all-unique-values-in-a-javascript-array-remove-duplicates
XHR객체의 readyState, status 상태값
2018 September 12 - [XMLHttpRequest, status, readyState]서버로 요청을 수행할 때 XHR객체의 readyState, status 상태값의 변화는 다음과 같다 Value State Description 0 UNSENT Client has been created. open() not called yet.…
div 를 화면 정중앙에 위치시키는 방법
2018 September 11 - [css, scss]레이어를 정 중앙에 위치시키는 css
GCP App Engine 에 node_modules 폴더 배포 문제
2018 September 06 - [google-cloud, node_modules, deploy]이 글은 Google Cloud 의 App Engine 을 이용해 Node…
사용 중이던 npm 패키지 버젼 업그레이드
2018 September 06 - [nodejs, npm]으로 npm 프로젝트를 생성한 후 처음으로 필요한 npm 패키지를 설치할 때 를 사용하면 기본적으로 최신 버젼의 패키지가 설치된다. 하지만 시간이 흘러 사용 중이던 모듈을 최신버젼으로 업그레이드하고자 할 때 를 사용하면 package.json…
[js] The "new Function" syntax
2018 September 04 - [Function]함수를 정의할 때 일반적으로 사용하는 방법은 아니지만 자바스크립트는 함수를 동적으로 정의하는 방법을 제공한다. 어짜피 함수의 동작이라는 것이 입력으로 받아들이는 패러미터와 (외부변수를 사용할 경우엔) 함수가 정의될 당시의(Lexical…
[js] slice, substr, substring
2018 September 03 - [string, slice, substr, substring]자바스크립트에서 문자열의 일부를 추출하고자 할 때 사용할 수 있는 함수는 slice, substr, substring 3가지가 있다. 이 글에서는 3가지 함수의 용법을 정확히 이해하고 어느 경우에 어떤 함수를 사용하는 것이 좋을 지 안내한다 slice…
[알고리즘] Merge sort
2018 September 02 - [algorithm, merge-sort]정렬된…
Highest Value Palindrome
2018 September 02 - [palindrome]흔한 팰린드롬(좌우대칭 문자열) 관련 문제이지만 이틀 동안 너무 고생했던 문제ㅠ https://www.hackerrank.com/challenges/richie-rich/problem 문제 0~9 까지 숫자로 이루어진 문자열과 자연수 k…
js 진수변환
2018 September 02 - [진수변환]10진수 -> 16진수 // 아래와 같이 리터럴에서 직접 사용도 가능 (123).toString(2); // === “1111011” Ref http://unikys.tistory.com/334
Forming a Magic Square
2018 September 01 - [array, magic-square-forming]문제 아래와 같이 가로/세로/대각선의 합계가 모두 같은 행렬을 magic-square 라고 한다. 특정 3x3 행렬이 주어질 때 아래와 같이 magic-square 로 변환할 수 있다. 이 경우 변경이 필요한 숫자는 5,8,…
Caesar Cipher
2018 September 01 - [string, encrypt]문제 caesar 암호화 방법은 아래와 같다. 숫자 3이 주어 진다면 먼저 아래와 같이 알파벳의 순서를 3칸 rotation…
안전한 비밀번호 체크
2018 September 01 - [string]문제 비밀번호 문자열이 주어질 때 안전한 비밀번호를 만들기 위해 추가로 입력해야 할 문자의 최소 개수를 구하라 https://www.hackerrank.com/challenges/strong-password/problem 안전한 비밀번호 조건…
2018 August
삼항연산자 사용시 주의사항
2018 August 31 - [ternary-operator]주어진 배열에서 양수의 개수를 구하고자 할 때 reduce를 이용하여 아래와 같이 양수의 누적값을 카운트할 수 있다. 함수의 결과값을 잠시 예측해보자. 양수의 개수는 2가 맞지만 위 코드의 실행결과는 1이 된다. 왜 일까? 문제는 표현에 있다. a…
[js] How reduce() works
2018 August 31 - [array, reduce]초기값 없는 경우 다음 예제를 보자 첫번째 인자로 주어진 콜백함수는 총 4번 호출되며 이때 콜백함수에게 전달되는 인자와 결과값은 아래와 같다.(참고로 콜백함수를 호출할 때 3,4번째 인자는 생략가능하다) callback accumulator…
프로그래머에게 1분이란
2018 August 31 - [1minute, programmer]cartoon
Day of the Programmer
2018 August 31 - [calendar, leap-year, Gregorian, Julian]Day of the Programmer 매해 256번째 날은 국제 프로그래머의 날이다. 일반적으로 9월 13일이고 윤년의 경우에는 9월 12일이 된다. 256은 2의 제곱으로 표현 가능한 자연수 중 356을 넘지않는 최대값이다. 또한…
[어려운문제] max array sum
2018 August 31 - [array, max-array-sum]이웃하지 않은 2개 이상의 요소로 이루어진 부분집합 중 요소의 합계가 가장 큰 값을 구하는 문제 https://www.hackerrank.com/challenges/max-array-sum/problem 이 경우 subset 합계들의 최대값…
[알고리즘] 이진 검색
2018 August 30 - [algorithm, binary-search]퀴즈 https://www.hackerrank.com/challenges/ctci-ice-cream-parlor/problem 퀴즈풀이 단순하게 이중루프를 사용하여 문제를 풀 경우 O(n^…
java 파일처리
2018 August 30 - [java, file]자바는 뭐 이런 거 하나 하는게 이렇게 힘드냐. 왠지 정이 안가.. 파일읽기 함수 파일쓰기 함수 폴더생성 함수
[알고리즘] 삽입정렬
2018 August 29 - [algorithm, insertion-sort]…
[알고리즘] 선택정렬
2018 August 29 - [algorithm, selection-sort]…
메이븐 pom.xml 세팅 후 톰캣 기동시 오류
2018 August 29 - [maven, tomcat, repository]전자정부프레임워크(eGovFrameDev-3.7.0-64bit)에서 eGovFrame Web Project 를 생성하고, pom.xml…
[알고리즘] Quick sort
2018 August 29 - [algorithm, quick-sort]퀵소트는 아래와 같은 방법으로 정렬을 진행한다 배열의 요소 중 임의의 값을 pivot 으로 지정 pivot 값을 기준으로 pivot보다 작거나 같은 값들은 왼쪽에 큰값들은 오른쪽에 위치시킨다 각 왼쪽과 오른쪽 배열에 대해서 요소의 개수가 0 또는…
[알고리즘] 버블소트
2018 August 28 - [algorithm, bubble-sort]…
[js] Array.prototype.sort
2018 August 28 - [array, sort]자바스크립트는 Array.prototype.sort 를 통해 언어 차원에서 기본적인 정렬 기능을 제공한다. 배열의 sort 함수는 특별히 정확한 사용법을 익혀두는 것이 중요하다 sort…
[js] mutable vs immutable
2018 August 28 - [immutable, js, array, function]자바스크립트에서 제공하는 배열 함수는 original 배열의 상태를 변경시키는(mutable) 함수도 있고 기존 상태를 변경시키지 않고(immutable…
expo 개발환경 세팅
2018 August 27 - [expo, react-native]Expo는 React Native 를 사용하여 기본 iOS 및 Android 프로젝트를 구축 할 수 있는 빌드&테스트 환경을 제공한다. 장점 Xcode, Android Studio 없이도 iOS, Android 앱 개발이 가능하다. Windows…
react-devtools 설치시 permission denied 오류
2018 August 27 - [react-devtools, --unsafe-perm=true]react-devtools 설치시 아래와 같은 오류가 날 경우 electron@1.8.8 postinstall /usr/local/lib/nodemodules/react-devtools/nodemodules/electron node install.js…
ie11 팝업창 로딩 중 닫을 때 crash 문제
2018 August 24 - [ie11, HangRecovery, crash, popup]ie11 에서 팝업을(window.open) 사용할 때, 팝업창 로드가 끝나기 전에 브라우져의 닫기버튼을 클릭하면 ie11에서 crash 가 발생하며 부모창까지 닫혀 버리는 문제가 발생할 수 있다. 재현방법 부모창에서 window.open…
webpack 번들파일 size 분석
2018 August 15 - [webpack, bundle, analyzer]Intro 웹사이트 성능을 튜닝할 때 빌드한 번들파일의 용량 분석이 필요할 수 있다. 이 때 webpack-bundle-analyzer…
[jsp] 파일 다운로드
2018 August 11 - [java, jsp, download]흔한 jsp 파일 다운로드 소스
jekyll 블로그 tag 기능 추가
2018 August 10 - [jekyll, tags]Intro 얼마 전에 추가했던 카테고리 기능만으로는 왠지 아쉬움이 있어 태그 기능을 추가하기로 했다. 지킬블로그는 모 하나 기능 붙이려면 여간 귀찮은 게 아니다. 관련하여 여러가지 글들을 읽어 보았지만 johngrib…
[scss] 주요 문법 정리
2018 August 10 - [scss, syntax]변수 사용 scss css & 현재 적용 중인 실렉터 참조 scss css @mixin 재사용 가능한 css 블럭을 설정 scss css @content @mixin 구문 안에서 사용되며, @include 문의 중괄호 안에 정의된 내용을 참조 scss…
[linux] apt-get 사용법
2018 August 09 - [apt-get]Intro 리눅스에서 대표적인 패키지 관리 프로그램인 apt-get 명령 사용법 명령어 apt-get…
[linux] 권한파일을 이용한 ssh 접근 필요사항
2018 August 09 - [linux, ssh]Intro 대표적으로 aws 에서는 ssh를 통해 EC2인스턴스에 접근할 때, 비밀번호 방식이 아닌 권한파일(.pem)을 이용한다. 일반적으로 권한파일을 이용한 ssh…
[linux] 디렉토리 구조
2018 August 09 - [linux, directory]Intro 상세내용을 다루지는 않고 실용적인 내용만 소개한다. 디렉토리별 용도 /bin 시스템 사용자들이 주로 사용하는 기본적인 명령어 예) mv, cp, rm 등과 같은 명령어들 /boot 리눅스 부트로더(Boot Loader) /dev…
[fontello] 무료 아이콘 사용
2018 August 09 - [fontello, icon]intro 화면 디자인시 아이콘 사용은 거의 필수적인데 적절한 아이콘을 찾지 못해 허덕이던 중 fontello.com 이란 곳을 발견하고 사막에서 오아시스를 만난 것 같이 기뻣다. 그림1 내가 사용해본 바 fontello…
github 공개저장소에 공개하고 싶지 않은 정보가 있을 때
2018 August 08 - [github]Intro. 오픈소스 개발자에게 guthub…
[linux] 활용 팁
2018 August 08 - [linux, tip]2개 명령을 한 번에 실행 을 이용하면 두개 명령을 한번에 실행할 수 있다 표준 출력을 파일로 저장 를 사용 표준출력을 파일에 append 를 사용 현재 linux 시스템 모니터링 현재 사용 중인 shell 종류 확인 자주 사용하는 명령어 top…
[jekyll] Invalid CP949 character 오류
2018 August 08 - [jekyll, encoding, CP949]Intro 맥에서 jekyll 블로그 테마를 커스터마이징 했었다. 당시에는 문제가 없었는데 windows7 로컬환경에서 블로그를 가져와 빌드를 해보니 아래와 같은 오류가 발생했다 도대체 이 오류는 뭘까 @.@ 인코딩 관련 오류인 것 같긴한데 main…
[웹팩4] tree shaking 적용 방법
2018 August 05 - [tree-shaking, webpack, import]intro 웹 사이트의 성능 최적화를 위한 많은 시도가 있지만 특별히 tree shaking 은 무엇인지 알아보고 웹팩4에서 어떻게 이를 활용할 수 있는지에 대해 알아보자 tree shaking…
2018 July
jekyll 블로그 테마 변경
2018 July 27 - [jekyll, 테마변경]테마를 변경하고자 할 때 가끔 집안의 가구 배치를 바꾸면 새로운 기분이 드는 것 같이 블로그의 옷도(theme) 가끔씩 갈아 입혀주면 기분전환에 좋다. 지킬 블로그를 처음 개설하고 디폴트 테마인 minima…
[React] 코드 스플리팅
2018 July 26 - [code-splitting, react]Code Spliting 왜 필요한가 webpack 을 이용하여 spa 애플리케이션을 만들면 결국 모든 소스파일이 하나의 파일로 (ex, index.bundle.js…
[js] use strict 를 왜 사용하는가
2018 July 27 - [strict, js]충분한 설계없이 만들어진 자바스크립트 자바스크립트는 1995년 Brendan Eich…
npm command
2018 July 21 - [npm, command]npm 모듈 삭제 node_module 폴더에서 패키지 삭제. package.json 에서 내용을 삭제하지는 않는다 package.json 에서까지 삭제하려면 or 옵션을 주어야 한다 dependency 에서 삭제 devDependency…
[React] life-cycle method
2018 July 13 - [react, life-cycle]life-cycle 메소드 순서 컴포넌트를 생성 할 때 컴포넌트를 제거 할 때 컴포넌트의 prop이 변경될 때 state가 변경될 떄 도식 Ref. https://velopert.com/1130
[js] 일반함수와 화살표함수에서 this 의 차이점
2018 July 13 - [this]Point. 화살표 함수에서 사용된 this 참조는 해당 함수가 정의될 당시의 컨텍스트를 참조한다. function 함수에서 사용된 this…
[linux] 주요 명령어
2018 July 12 - [linux, command]현재 폴더 용량확인 특정폴더 용량확인 하위 폴더별 용량확인
[js] 배열의 마지막 요소 참조
2018 July 06 - [js]일반적으로 배열의 마지막 요소를 아래와 같이 인덱스 참조로 접근할 수 있지만, 배열이 특정 객체의 속성으로 depth 가 깊어지면 코딩이 불편해 진다. 이럴 때 활용할 수 있는 좀 더 깔끔한 표현을 찾아보았다. (es…
[express] https 세팅
2018 July 06 - [express, https, SSL]private key 생성 self-signed 인증서 생성 https 설정 Ref. http://blog.saltfactory.net/implements-nodejs-based-https-server/
[mongoDB] 자동 백업
2018 July 06 - [mongoDB, database, backup, 백업]backup.sh 작성 외부 몽고디비를 백업 crontab 에 등록 입력 후 반복작업 등록 등록된 계획 확인 복구 외부 몽고디비 서버로 복원 ex) Ref 리눅스 크론탭(Linux Crontab) 사용법 MongoDB 백업하고 복구하기
2018 June
Fuction.prototype.apply, call, bind 차이점
2018 June 28 - [apply, call, bind]Function.prototype.apply 문법 // 아래와 같이 배열을 인자로 전달해서 사용할 수 있다 var numbers = 5, 6, 2, 3, 7; Math.max.apply(null, numbers); // 7 Function…
[mongoDB] 모니터링 툴
2018 June 28 - [mongoDB, database, monitoring]간단하게 몽고디비 상태를 모니터링할 수 있는 도구들 mongostat 초당 쿼리 개수 확인 Ref) https://docs.mongodb.com/manual/reference/program/mongostat/ mongotop 초당 콜렉션 별 read…
ramdajs 주요 함수
2018 June 27 - [functional, ramdajs]흔히 사용될 수 있는 ramdajs 함수들을 알아본다 R.append 배열의 끝에 특정 요소를 추가한다 vs vanillaJS R.prepend 배열의 처음에 특정 요소를 추가 vs vanillaJS R.insert…
[linux] 셀스크립트 작성 방법
2018 June 20 - [shell, linux]초간단 hello.sh 예제 첫번째 줄에 입력하고 2번째 라인부터 스크립트 작성 실행권한을 부여한 후 아래와 같이 실행 if 조건문 사용예제 에서 공백문자 유무가 엄격함 Ref. http://blog.naver.com/PostView.nhn…
[js] 프라미스 then 함수가 프라미스를 리턴할 때
2018 June 20 - [promise, then]프라미스 체이닝에서 프라미스를 리턴하고 전달받을 경우에 대한 동작에 대해서 알아본다 CASE1) then 함수에서 문자열을 리턴하는 경우 앞서 리턴한 값을 다음 then 함수에서 인자로 받는다 실행결과) CASE2) then…
iOS 에서 입력컨트롤 테두리 그림자 제거
2018 June 11 - [border, shadow, ios]문제 입력 컨트롤의 테두리를 보시면(border-top) 어두운 그림자가 드리어져 있다 이후{: width=“300”} 해결책 아래 스타일을 사용 결과 그림자가 사라지고 훨씬 깔끔해 졌다 이후{: width=“300”} Ref. https…
remote 호스트의 mac address 얻어오는 방법
2018 June 11 - [macaddress, ARP]문제 서버에서 클라이언트의 mac address 를 알아낼 수 있을까 결론 같은 네트웍망에 물려있다면 가능하지만, 서로 다른 네트웍망에 속해 있다면 불가 배경지식 ARP란? Address Resolution Protocol IP…
[js] 불변성을 유지하며 array 순서 뒤집기
2018 June 07 - [array, reverse, immutability, 불변성]문제 배열의 순서를 뒤집기 위해 간단히 를 이용할 수 있지만 는 불변성을 유지하지 못한다. 해결책 불변성을 유지하는 slice() 를 이용한 방법 … (spread operator) 를 이용한 방법
[mongoDB] aws ec2 에서 mongoDB 세팅하기
2018 June 06 - [aws, mongoDB, ec2]mongodb 설치 root 권한으로 전환 입력 후 아래 내용 저장 yum 으로 설치 mongodb 서버시작 및 접속 서비스 시작 서비스 중지 서비스 재시작 서버접속 mongodb 보안 설정 설정을 수정하려면 root…
[mongoDB] 명령어
2018 June 05 - [mongodb, command]몽고디비 시작 및 접속(Linux) 서비스 시작 서비스 중지 서비스 상태확인 몽고디비 시작 및 접속(Windows…
2018 May
[AWS-EC2] 리눅스에 nodejs 설치
2018 May 31 - [aws, ec2, nodejs, linux]EC2 업데이트 프롬프트가 뜨면 ‘y’를 입력 설치에 필요한 패키지들 먼저 설치 Github 저장소에서 Node를 내려받고 어떤 버전의 노드를 설치할 것인지 선택한다. 명령을 사용하면 전체 노드 버전을 확인할 수 있다. 근데 위 git…
[vscode] java 사용시 세팅 관련
2018 May 30 - [vscode, java]특정 jar를 인식하지 못할 때, 작업폴더의 루트 경로의 파일에서 아래처럼 필요한 jar 파일들을 명시해 준다. 나 과 같이 설정은 안되더라 확장자별 인코딩을 변경하려면, 작영 영역 설정에서 아래와 같이 세팅한다. gw…
[mac] 열린 포트 확인
2018 May 17 - [mac, lsof]아래와 같이 lsof 명령으로 확인 Ref. http://new93helloworld.tistory.com/138
OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs
2018 May 15 - [SSL, CSR]CSR이 무엇입니까 CA로부터 SSL인증서를 발급 받으려면 먼저 CSR(Certificate Signing Requests) 이 필요합니다. CSR은 공개키와 몇가지 추가 정보로 구성되어있습니다. 그리고 그 정보들이 인증서 발급시 필요합니다. CSR…
[알고리즘] 야근지수
2018 May 08 - [algorithm]Problem 회사원인 수민이는 많은 일이 쌓여 있습니다. 수민이는 야근을 최소화하기 위해 남은 일의 작업량을 숫자로 메기고, 일에 대한 야근 지수를 줄이기로 결정했습니다. 야근 지수는 남은 일의 작업량을 제곱하여 더한 값을 의미합니다. 수민이는…
[알고리즘] 특정날짜 요일 구하기
2018 May 08 - [date]Problem 2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요? 두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON…
[알고리즘] 피보나치 수
2018 May 04 - [피보나치수열, fibonacci]Problem 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (…
[js] 객체와 prototype 의 이해
2018 May 04 - [prototype, 객체상속]이 글은 Douglas Crockford 의 The Good Parts 에서 prototype 관련 내용을 정리한 것이다. Intro 자바스크립트는 prototype…
Srting.prototype.replace 에서 function 활용
2018 May 03 - [replace]Problem 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않습니다. 보낼 문자열 s…
What is Elm?
2018 May 03 - [elm]Charles Scalfani의 글을 통해 Elm을 알게 되었다. 이 글을 꼼꼼히 번역해보고 싶지만, 바쁜 일정을 핑계로 번역은 다음으로 미루고 일단 몇가지 인상깊은 문장들을 중심으로 summary…
[알고리즘] 소수 찾기
2018 May 02 - [prime]Problem 1부터 n까지 모든 소수를 찾는 알고리즘 Concept 2부터 n까지 자연수를 요소로 갖는 배열 생성 빈 배열 를 생성 배열의 첫번째 요소()를 배열에 추가 배열에서 의 배수를 모두 제거 위 3~…
2018 April
Blockchain 학습 로드맵
2018 April 27 - [blockchain, roadmap]Intro 요즘 뜨거운 관심을 받고 있는 블록체인 발을 담가볼 준비가 되었다면 5 Technology Trends to Learn in 2018 If You Want a Great Career 에서 소개하는 학습로드맵을 참고해 보자 LoadMap
[알고리즘] 최대공약수 최소공배수
2018 April 24 - [gcd, lcm, 유클리드호제법]유클리드 호제법 두 자연수 a, b에 대하여 a가 b로 나누어 떨어진다면 두 수의 최대공약수는 b 이다 a가 b로 나누어 떨어지지 않았다면 두수의 최대공약수는 b 와 a%b 의 최대공약수와 같다 이를 js…
마크다운 주요 문법 정리
2018 April 23 - [markdown, syntax]마크다운 이미지 중앙정렬 방법 {: refdef: style=“text-align: center;“}
자바 vs 자바스크립트
What exactly is Node.js?
2018 April 23 - [nodejs]Node.js는 자바스크립트 실행 환경입니다. 멋진 말입니다. 그런데 그것이 의미하는 바는 무엇이며 어떻게 동작이 된다는 말일까요? Node.js는 자바스크립트를 이용해 프로그램을 작성하기 위해 필요한 모든 것을 가지고 있습니다. {: refdef…
postman 을 이용한 request 캡쳐
2018 April 20 - [postman]모바일에서 HTTP request 캡쳐 capturinghttprequests postman의 proxy 를 사용 모바일 장비와 postman이 설치된 PC가 동일한 네트워크 망내 물려 있어야 함 크롬에서 HTTP request…
[python] SimpleHTTPServer
2018 April 20 - [SimpleHTTPServer, python]Problem 로컬에 서버가 설치되어 있지 않지만 간단하게(3초 안에) 웹서버를 띄우고 싶다 Solution python 이 설치되어 있다면, DOCUMENTROOT_ 경로에서 를 실행한다. 브라우져에서 로 붙어 본다. Ref. http…
[js] getter와 setter 를 설정하는 방법
2018 April 19 - [getter, setter]getter와 setter 를 이용하면 객체의 속성값을 읽고 쓰는 방법을 새롭게 정의할 수 있다 아래 코드를 먼저 보자 객체는 아래 3가지 속성을 갖는다 — 숫자값 — 에 1을 더한 값을 리턴하는 getter…
[mySQL] 테이블 수정 쿼리
2018 April 16 - [mysql, query]이름 바꾸기 컬럼 속성 수정 특정 컬럼 인코딩 수정 컬럼 이름 바꾸기 CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다 컬럼 추가 ALTER TABLE tablename ADD 컬럼이름 컬럼속성 특정 컬럼 뒤에 새로운 컬럼 추가 num…
[windows] 특정 폴더에서 cmder 바로 열기
2018 April 12 - [windows, cmder]Problem 윈도우에서 기본으로 제공되는 터미널은 Copy & Paste 및 창사이즈 조절에 제한이 있어 불편 터미널에서 cd 명령을 이용해 특정 경로로 이동하는 것도 귀찮고 Solution 잘 알려진 윈도우용 터미널 cmder…
[mac] High Sierra 에서 telnet & ftp CLI 설치
2018 April 11 - [HighSierra, mac, telnet, ftp]Problem Mac High Sierra 는 보안 상의 문제로 터미널에서 telnet, ftp 명령어를 기본적으로 지원하지 않는다 Solution 아래와 같이 CLI…
[js] boolean 결과 값이 false 인 값들
2018 April 09 - [boolean]조건문에서 boolean 값으로 형변환 시, false를 리턴하는 값들 true를 리턴하는 것
크롬 개발자도구를 이용한 js beautify
2018 April 02 - [chrome, beautify]Summary 난독화된 js를 디버깅해야 할 경우 크롬 개발자도구의 beautify 기능을 간단히 이용할 수 있다. 특별히 오프라인 환경에서 beautify 도구를 사용할 수 없을 때 유용함 난독화된 $.clone…
[partialjs] webpack 빌드시 use strict 오류
2018 April 01 - [partialjs, webpack]Benefits to webpack 빌드 환경에서 partialjs 를 모듈로 사용하고자 할 경우 Problem 위와 같이 사용하고자 할 경우 webpack 빌드 시도시 아래와 같은 문제가 발생할 수 있다 Cause 1146L…
git 명령어 요약
2018 April 01 - [git, command]…
2018 March
ramdajs 라이브러리 forEach 버그
2018 March 31 - [ramdajs, forEach]예시 결과 질문 forEach 매뉴얼{:target=“_blank”} 을 보면 첫번째 인자 함수가 패러미터를 1개만 받는다고 나와있는데.. 저 경우에는 왜 3개를 받는 걸가? 버그라고 봐야하지 않을까
[crossBrowsing] safari 에서 가로스크롤 막기
2018 March 22 - [ios, safari, x-scroll]문제 위와 같이 태그에 를 적용하면 가로스크롤이 동작하지 않아야 하지만 사파리에서는 아래와 같이 여전히 가로스크롤이 동작하는 문제 iOS safari…
AMD 모듈 로드시 순서 관련
2018 March 21 - [AMD, module]예시 설명 위와 같이 모듈들을 불러 올때 mn.js가 실행되는 스코프에서는 vue.js 에서 사용한 전역변수를 참조할 수 없다 vue.js, mn.js, util.js 의 실행 순서가 보장되지 않기 때문에 물론 mn.js 모듈 정의 시 vue.js…
[crossBrowsing] 이벤트 처리시 주의사항
2018 March 21 - [event]문제 아래와 같이 event객체를 직접 참조하면 firefox에서 오류 발생 크롬에서는 정상 해결책 아래와 같이 패러미터로 전달된 이벤트 객체를 사용해야 한다 chrome & firefox 외 브라우져는 테스트 안 해봄
Bookmark
2018 March 17 - [bookmark, reference]Frequently pyhon 프로그래밍 강좌{:target=”_blank”} Medium{:target=”_blank”} es6 vs es5{:target=”_blank”} es5 core{:target=”_blank”} partial.js…
telegra.ph 에 대하여
2018 March 17 - [telegraph]telegra.ph 란 익명 기반 글 호스팅 서비스 https://telegra.ph Beauty is coming from simplicity 특성 한번 publish…
jekyll 사이트 favicon 추가하기
2018 March 17 - [favicon]jekyll 테마 변경 가이드 https://jekyllrb.com/docs/themes/#overriding-theme-defaults{:target=“_blank”} 기본테마 경로 해당 테마의 기본 템플릿 자원(아래…
블로그 관리
2018 March 16 - [memo]jekyll 서비스 시작 글 올리기
[crossBrowsing] Firefox 에서 contenteditable 안의 checkbox 가 선택되지 않는 문제
2018 March 16 - [firefox, checkbox]문제 파이어폭스에서는 아래와 같이 contenteditable 영역 안의 checkbox는 선택도 클릭 이벤트도 정상동작 되지 않는다 해결책 아래와 같이 해당 checkbox 를 span으로 감싼다 출처 https://stackoverflow.com…