패키지 잠금 파일 (package-lock.json, yarn.lock)

자바스크립트 프로젝트에서 개발을 하따보면 package-lock.json 또는 yarn.lock 파일을 자주 접하게 됩니다.일부 개발자들이 이 파일을 대수롭지 않게 생각하고 그냥 무시하거나, 심지어 무심코 지웠다가 낭패를 보는 경우가 종종 발생하는데요.이번 포스트에서는 패키지 잠금을 위해서 사용되는 이러한 패키지 잠금 파일(package locks)에 대해

[파이썬] 단위 테스트의 기본 (unittest)

어느 언어로 코딩을 하든 단위 테스트는 신뢰할 수 있는 애플리케이션을 개발하기 위해서 필수적으로 습득해야하는 기술입니다.파이썬에서는 내장 모듈인 unittest을 통해서 다른 라이브러리 없이 비교적 간단하게 단위 테스트를 작성할 수 있습니다. unittest 모듈unittest 모듈은 Java의 JUnit, JavaScript의 Jest 또는 Mocha와

패키지 배포하기 (npm publish)

대부분의 자바스크립트 개발자들은 자신의 프로젝트에 주로 다른 패키지를 설치 후 사용하기 위해서 npm(Node Package Manager)을 사용합니다.이것이 가능한 이유는 고맙게도 다른 개발자들이 어딘가에서 우리가 사용하는 패키지를 열심히 npm에 배포해주고 있기 때문입니다.오늘은 한번 이러한 개발자의 입장이 되어 자신이 직접 개발한 자바스크립트 패키지

바벨(Babel 7) 기본 사용법

개발자들이 실행 환경에 구애받지 않고 항상 최신 문법의 자바스크립트로 코딩할 수 있도록 도와주는 유용한 도구인 바벨(Babel)에 대해서 알아보겠습니다. 자바스크트 개발자의 딜레마자바스크립트 언어의 문법은 빠르게 진화하고 있지만 정작 자바스크립트 코드를 실행해주는 환경은 이를 받쳐주지 못하는 경우가 많습니다.예를 들어, 브라우저의 경우 종류가 워낙 다양해서

[Jest] jest.mock() 모듈 모킹

지난 포스트에서 jest.fn()과 jest.spyOn() 함수를 어떻게 사용하는지 배웠습니다.이번 포스트에서는 Jest에서 제공하는 또 다른 모킹 함수인 jest.mock()를 활용해서 좀더 다양한 상황에서 모킹을 해보도록 하겠습니다. 자바스크립트 모듈먼저 자바스크립트에서 모듈이 무엇인지에 대해서 간단하게 개념만 짚고 넘어가겠습니다.모듈이란 어떤 코드를

GraphQL 서버의 사용자 인증/인가 (Apollo Server Authentication/Authorization)

서버 애플리케이션을 개발할 때 사용자 사용자 인증(authentication)과 인가(Authorization)는 데이터 보안을 위해서 매우 핵심적인 기능입니다.따라서 GraphQL API를 설계하거나, GraphQL 서버를 개발할 때도 사용자 인증/인가 부분에 대해서 여러가지 고려가 필요합니다.이번 포스트에서는 Apllo Server를 이용하여 Graph

GraphQL 서버의 오류 처리 (Apollo Server Error handling)

GraphQL 서버에서 클라이언트로 부터 요청받은 쿼리(Query)나 뮤테이션(Mutation)을 실행하다가 오류가 발생할 수 있습니다.이런 경우, GraphQL 서버에서 해당 오류에 대한 정보를 응답해줘야 클라이언트에서도 그에 상응하는 화면 처리를 할 수가 있을 것입니다. 이번 포스트에서는 Apollo Server로 개발된 GraphQL 서버에서 어떻게

React Hooks: useMemo 사용법

React Hooks 중 하나인 useMemo 함수를 왜/언제/어떻게 써야하는지 알아보겠습니다. MemoizationuseMemo 함수에 대해서 알아보기 전에 알고리즘 시간에 자주 나오는 메모이제이션(memoization) 개념에 대해서 잠깐 짚고 넘어가겠습니다.memoization이란 기존에 수행한 연산의 결과값을 어딘가에 저장해두고 동일한 입력이 들어오

[자바스크립트] Prettier로 코딩 스타일 통일하기

자바스크립트에서 최근 가장 인기를 얻고 있는 코드 포멧터인 Prettier에서 대해서 알아보겠습니다. 코딩 스타일자바스크립트와 같이 사용자층이 넓은 범용 프로그래밍 언어의 경우, 개발자들이 선호하는 코딩 스타일이 다양해지게 됩니다.예를 들어, 개발자 A는 문자열을 쌍따움표로 감싸줘야 한다고 주장하는 반면에, 개발자 B는 홑따옴표를 사용해야 된다고 주장합니

웹팩(Webpack) DefinePlugin, EnvironmentPlugin 사용법

웹팩에서 자주 사용되는 플러그인인 DefinePlugin과 EnvironmentPlugin에 대해서 알아보도록 하겠습니다. 관련 포스트웹팩에 대한 지식이나 경험이 전혀 없으신 분들을 아래 포스트를 먼저 읽어보시면 따라오시기가 좀 더 수월하실 겁니다. 웹팩(Webpack) 기본 사용법 (CLI) 웹팩(Webpack) 기본 설정법 (Entry/Output/L