Googling

Googling/Node.js

[Node.js] ES모듈(ESM) 사용하는 방법

Javascript는 ES 모듈 시스템을 공식 모듈 시스템으로 사용하고 있고, Node.js는 CommonJs 모듈 시스템을 표준 시스템으로 사용하고 있다. //CommonJs const gulp = require('gulp'); const babel = require('gulp-babel'); //ESModule import gulp from 'gulp'; import babel from 'gulp-babel'; Node.js 에서 ES모듈 시스템을 활용하려면 Babel이라는 별도의 도구가 필요했는데, Node.js 13.2 버전(2019-11-21) 부터 손쉽게 ES모듈을 활용할 수 있게 되었다. package.json 파일에 type 항목을 module로 설정하면 바로 활용 가능하다. { //.....

Googling/postgresql

[RDBMS] PostgreSQL vs MySQL 차이 (fear. 버전을 막론하고)

둘 다 사용경험은 있는데, 사용 경험상으로는 큰 차이가 있다고 보기는 어려웠다. 구글링을 통해 차이를 찾아보면 좋지않을까 하여 이곳 저곳 뒤져보았고, 같은 관계형 데이터베이스(RDBMS)로서 어떤 차이가 있는 것인지 정리해보려 한다! 👨‍💻 0. 소프트웨어는 버전이 몇 인지가 중요하다. 항상 느끼지만 소프트웨어는 계속 발전하고, 부족한 부분들이 보완 업그레이드되는 방향으로 흘러간다. 그래서 이전에는 단점이었던 부분들이 업그레이드를 통해서 좋아지는 경우가 많다. MySQL의 경우에는 2020년 8.0 버전업을 하면서 이전에는 단점이라 꼽던 많은 부분들이 개선이 되었다. (그만큼 하위 호환이 안 되는게 많다고 한다.) 그 부분들은 고려해서 차이를 찾아볼 필요가 있다. 다른 블로그들의 비교 글들이 이 부분을 ..

Googling/postgresql

[postgreSQL] 카운트 쿼리 쓸 때 알아두면 좋은 것 (null, limit)

1. 카운트 쿼리에 사용되는 데이터가 null 일 경우 건수에 포함되지 않는다. 이 점을 활용하여 (case when ~ then 1 else null end) 활용 필터링이 가능하다. count(1), count(*), count(column) 모두 실행계획과 실행시간이 동일하니, column 쓸 때만 null로 개수 빠지는지 확인만 하면 된다. --null 상관없이 전체 건수를 셈 SELECT count(*) FROM board; SELECT count(1) FROM board; --contents 중 null 인 데이터를 빼고 셈 SELECT count(title) FROM board; --contents 중 null 인 데이터를 빼고 중복 제거하여 셈 SELECT count(distinct tit..

Googling/javascript

[JavaScript] 오픈소스 활용 json 엑셀파일로 내보내기 (feat. SheetJs)

협업툴 서비스를 개발하면서, 업무 목록을 엑셀로 내려받을 수 없냐는 문의도 많았고, 어드민에서 각종 통계 데이터들을 수시로 엑셀로 내려받고 싶다는 니즈가 있었다. 서버 단에서 엑셀을 내려주는 모듈 같은게 있긴 했는데 쓰기가 매우 어렵고 뷰 화면을 따로 그려서 다운 받는 방식이라 간단하다고 느껴지지 않았다. 분명, json 데이터를 간단하게 excel로 다운받을 수 있는 오픈소스가 있을거라고 생각했다. 찾아보니 SheetJS라는 오픈소스는 엑셀과 관련한 엄청나게 많은 기능을 가진 javascript 오픈소스가 있었다. 하지만, json을 엑셀로 손쉽게 내려받을 수 있는 방법을 찾지 못했다. (2019년 상반기쯤 찾아봤을때 기준) 그래서 안에 있는 기능들을 활용하여 우리 팀이 쓰기 좋게 함수를 하나 만들어야..

Googling/postgresql

[postgreSQL] 재귀쿼리 만들기 (Recursive) ( + 매우 주의해야하는 케이스 : 무한루프)

재귀쿼리를 쓸 경우가 종종 있는데 나같은 경우에는 조직도 트리와 폴더 트리에 사용해본 적이 있다. 간단하게 사용법을 설명하고 실제 케이스에서 엄청난 오류?를 만들어냈던 경험을 공유해보려고 한다. 0. 재귀쿼리를 테스트해보기 위한 사전 작업 조직도가 제일 무난할 것 같아 심플한 데이터를 준비해보았다. CREATE TABLE division ( division_code character varying(20) NOT NULL PRIMARY KEY, division_name character varying(20) NOT NULL, upper_division_code character varying(20) NOT NULL ); INSERT INTO division VALUES ('develop_division',..

Googling/Android

[Android] 안드로이드를 영화에 내맘대로 비유 (feat. 매니페스트, 액티비티 등)

안드로이드 vs 안드로이드스튜디오 ? 충분히 다르다는 것은 알지만 어떻게 다른지에 대해 좀 더 생각해보기로 했다. 먼저, 안드로이드는 모바일 운영체제(OS;Operating System)다. 비유하자면 애플리케이션이 '영화'라고 했을때 '영화의 제작스탭진'이다. 시청자는 잘 모르지만 수많은 제작스태프의 참여로 한 영화가 만들어진다. 코드들이 제작스태프를 의미하고 그들의 모든 실행들과 유기적인 연계들을 모두 합하여 의미하는 것이 '안드로이드'다. 중요한 스태프 중 '패키지매니저'와 '액티비티매니저'가 있는데, 각각 영화의 구성요소를 찾거나 활성화시키는 역할을 하며, '인텐트'라는 요소는 이런 스탭진들과 구성요소 사이에 오고가는 쪽지를 말한다. 안드로이드를 모바일 오픈소스 플랫폼(OpenSource Flat..

Googling/cs

[하드웨어] 보조기억장치 인터페이스 이해 (feat. HDD, SSD, NVMe, PCIe, M.2, SATA)

보조기억장치? 인터페이스? 보조기억장치는 컴퓨터에서 'HDD(하드디스크), SSD'를 말하는 것으로 데이터를 보관하거나 보관한 데이터를 원할때마다 꺼내주는 역할을 한다. 작업을 위한 주기억장치(램, 메모리)와 차이가 있는데, 사람으로 비유하면 보조기억장치는 뇌, 주기억장치는 손이라 볼 수 있다. 인터페이스는 규격, 연결단자, 연결방식 등을 의미하는데 요소간의 연결을 목적으로 한다. 여기서 인터페이스는 컴퓨터의 메인보드와 보조기억장치를 연결하는 것을 목적으로 하는 인터페이스를 말한다. 아래에 언급하는 모든 것들은 인터페이스를 의미하며, 인터페이스 속에서도 역할이 달라 같이 쓰일 수도 있다. PATA → SATA 불과 십년전만 해도 왼쪽과 같은 넓은 선을 활용해서 보조기억장치를 활용했다. 하지만 이 장치는 ..

Googling/cs

[DATA] 데이터양 단위 이해 (feat. B, MB, GB, TB + LTE 속도?)

비트 = bit = binary digit 하나의 비트는 0이나 1의 값을 가질 수 있다. 즉, 두 가지 경우의 수를 가진다. 모스부호에서 짧게 누르거나 길게 누르는 두 가지 경우로 문자들을 만드는 것과 같은 원리다. 이 원리는 한 가지 경우를 '무언가'로 약속할 수 있다는 것을 의미한다. 0을 'a'로, 1을 'b'로 약속할 수도 있고, 0을 '$', 1을 '?'로 약속할 수도 있다. 세상에 많은 문자를 저장하기 위해 우리는 많은 경우의 수가 필요하고 그 경우들을 문자 하나하나와 약속할 수 있다. 바이트(byte) = 8bit = 데이터 기본 단위 1비트로는 단 2가지 경우 밖에 약속할 수 없어 효용성이 적다. 그래서 문자를 표현하는 최소 단위를 정해줄 필요가 있었다. 최초 ASCII코드라는 알파벳 문..

날개단
'Googling' 카테고리의 글 목록 (3 Page)