개요Node.js 환경에서 바닐라 자바스크립트를 이용해 내가 직접 만든 js 모듈을 불러오는 과정에서 다음과 같은 에러가 발생했다.SyntaxError: Unexpected token 'export' 당시에 내가 작성한 코드는 다음과 같다.// 모듈 파일export const 모듈이름 = [ ... ]// app.jsimport 모듈이름 from "./파일이름";에러 메시지에서 export가 예기치 않은 토큰이라는데, 이게 대체 무슨 말일까?우선 해당 오류가 왜 생기는지부터 알아보자.SyntaxError: Unexpected token 'export' 발생 이유해당 오류는 Node.js 환경에서 ES6 모듈 구문을 사용하려 할 때 발생한다.Node.js는 기본적으로 CommonJS 모듈 시스템을 사용하기..
전체 글
프론트엔드 개발, 컴퓨터공학 전공 공부를 기록하고 있습니다😉
자바스크립트의 랜덤 함수 Math.random() 사용법과 예시개요자바스크립트에서는 난수를 생성하기 위해 Math.random() 메서드를 사용한다.Math.random() 메서드는 기본적으로 0 이상 1 미만의 랜덤 한 부동 소수점(float)을 반환하는데, 사실 실생활에서 0.344558 같은 랜덤 수는 쓸모가 없다. 이 글에서는 Math.random() 메서드를 사용해 보다 의미 있는 난수를 생성하려면 어떻게 해야 하는지를 알아본다.Math.random()을 그대로 사용한다면?console.log(Math.random()); // 0 이상 1 미만의 랜덤한 부동 소수점앞에서 말했던 대로 0 이상 1 미만의 랜덤한 부동 소수점을 생성한다.나는 살면서 어떤 서비스를 이용할 때 0.556822997012..

자바스크립트에서 아스키코드를 활용하는 방법아스키(ASCII) 코드란?정의아스키코드란 미국 ANSI에서 표준화한 정보 교환용 7비트 부호체계를 말한다.7비트만 사용되는 이유나머지 1bit는 패리티 비트로 사용된다.출력 가능한 문자영문 알파벳 대소문자 52개 (65 ~ 90, 97 ~ 122)숫자 10개 (48 ~ 57)특수문자 32개공백문자 1개 (32)아스키코드 표charCodeAt() : 문자의 아스키코드 번호 반환console.log('A'.charCodeAt()) // 65매개변수에 index 넣으면let str = "Hello";console.log(str.charCodeAt(0)); // 출력: 72 (H의 ASCII 코드)String.fromCharCode(아스키번호) : 해당 번호의 아스키..
자바스크립트 for문 순회 메서드 종류개요자바스크립트에는 배열이나 유사 배열 객체를 순회할 때 사용할 수 있는 다양한 메서드가 존재한다.이 글에서는 for, forEach, map, filter, reduce, for...of에 대해 알아볼 것이다.+ 유사 배열 객체란?유사 배열 객체(Array-like-object)란 배열처럼 동작하지만 진짜 배열(Array)은 아닌 객체를 말한다.이 객체들은 다음과 같은 특성을 갖는다.인덱스와 길이 속성 : 유사 배열 객체는 length 속성을 가지며, 정수형 인덱스를 갖고 있다.배열 메서드 미지원 : push, pop 같은 대부분의 배열 메서드와 속성을 직접적으로 사용할 수 없다. 만약 사용하고 싶다면 Array.prototype에 있는 메서드들을 호출하며 객체를 ..

·CS
2의 보수 :: 컴퓨터에서 음수를 표현하는 방법개요음수를 표현하는 대표적인 방법은 세 가지가 있다.부호 있는 절대치1의 보수(1's Complement)2의 보수(2's Complement)이 중에서 컴퓨터가 음수를 표현하기 위해 사용하는 것은 2의 보수다.이번 포스팅에서는 2의 보수가 무엇인지, 2의 보수 연산은 어떻게 하는지에 대해 알아본다.2의 보수란?2의 보수를 위키백과에 검색해 보면 어떤 수를 커다란 2의 제곱수에서 빼서 얻은 이진수라고 나온다. 이 설명만으로는 이해가 잘 안 된다. 그냥 NOT 연산 후 1을 더해서 부호를 바꿔주는 방법이라고 생각하면 속 편하다. 더 쉽게 말하면 0과 1을 반전시킨 후 맨 마지막 비트에 1을 더하는 방법이다.2의 보수 구하는 방법8비트 이진수 01001011(십..
자바스크립트 배열의 특정 요소 제거(splice)개요아쉽게도 자바스크립트에는 파이썬의 remove 같은 편리한 메서드가 존재하지 않는다. 따라서 자바스크립트에서 배열의 특정 요소를 제거하고자 한다면 splice 메서드를 사용해야 한다. 이 글에서는 splice 메서드를 통해 배열의 특정 요소를 제거하는 방법을 알아본다.splice로 배열의 특정 인덱스 제거splice() 메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.slice() 메서드와는 다르게 원본 배열의 변경을 일으킨다는 점에 주의하자.만약 원본 배열을 건드리지 않고 특정 인덱스를 제거한 새 배열을 반환하고 싶다면 filter 메서드를 이용해야 한다.splice 사용 구문array.splice(star..

[프로그래머스] 2018 KAKAO 뉴스 클러스터링 문제 자바스크립트 풀이2018 KAKAO 1차 뉴스 클러스터링 문제를 자바스크립트로 풀어본다.문제 설명여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해 보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자..

[프로그래머스] 2018 KAKAO 캐시 문제 자바스크립트 풀이개요프로그래머스의 KAKAO 기출문제인 캐시 문제를 자바스크립트로 풀어본다. 문제 설명지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이..