Node.js 패키지 매니저 비교: npm vs yarn vs pnpm
·
TIL/기타
Node.js 환경에서 패키지 매니저는 의존성 관리, 설치 속도, 협업 방식에 큰 영향을 준다.대표적인 패키지 매니저인 npm, yarn, pnpm의 특징과 차이점을 정리하고, 프로젝트 유형에 따라 어떤 도구를 선택하면 좋은지 살펴본다. npmnpm은 Node.js의 공식 패키지 매니저로, Node.js 설치 시 기본적으로 함께 제공된다.가장 널리 사용되며 생태계와 호환성이 뛰어남별도 설치 없이 바로 사용 가능레거시 프로젝트부터 최신 프로젝트까지 범용적으로 사용됨# 프로젝트 초기화npm init -y# 패키지 설치npm install react# 패키지 삭제npm uninstall react# 스크립트 실행npm run start yarn (classic / berry)yarn은 기존 npm의 단점..
SQL | WITH, WITH RECURSIVE를 사용해 임시 테이블 만들기
·
TIL/기타
PCSQL을 준비하며 프로그래머스 SQL 문제들을 격파하는 중 WITH문을 사용한 풀이가 굉장히 많아서 간단하게 정리해 보았다. 일단 WITH는 임시 테이블을 만들 때 사용된다.WITH 이름 AS ( SELECT ...) WHERE절에 서브쿼리를 사용하거나 JOIN 할 때도 복잡한 쿼리문이 사용되는 경우가 종종 있는데,이럴 때 WITH를 사용해 만든 테이블을 사용하면 쿼리가 훨씬 가독성이 좋아지고 머리도 덜 복잡해질 수 있을 것이다. 다음으로, WITH RECURSIVE는 일종의 재귀함수라고 볼 수 있다. WITH처럼 임시테이블을 만드는 것은 똑같지만, REVURSIVE라는 영단어의 뜻에서도 알 수 있듯이 반복적으로 값을 만들어내야 하는 경우에 사용된다. 이 글을 쓰게 된 이유가 바로 ..
SQL | ORDER BY 절에서 별칭을 사용할 땐 문자인지 숫자인지 확인하세요
·
TIL/기타
또 ORDER BY 절의 함정에 빠졌다. 관련 문제 - [프로그래머스] 노선별 평균 역 사이 거리 조회하기 내가 제출한 코드SELECT ROUTE, CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE, -- 총 누계 거리 CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCE -- 평균 역 사이 거리FROM SUBWAY_DISTANCEGROUP BY ROUTEORDER BY TOTAL_DISTANCE DESC; -- 여기가 문제 문제에서는 총 누계 거리를 기준으로 내림차순 정렬을 요구했다. 그래서 당연히 GROUP BY 절에 TOTAL_DISTANCE 컬럼명을 써주었지..
SQL | ORDER BY 절에서 별칭을 사용할 땐 따옴표를 쓰지 마세요
·
TIL/기타
프로그래머스 SQL 문제를 풀던 중 잘못된 게 없는 거 같은데 계속 틀렸다고 나와서GPT선배에게 코드 리뷰 요청드렸더니 ORDER BY 절이 잘못되었다고 답변 주셨다. 관련 문제 - [프로그래머스] 진료과별 총 예약 횟수 출력하기 내가 제출했던 코드select mcdp_cd as 진료과코드, count(mcdp_cd) as 5월예약건수from appointmentwhere apnt_ymd > '2022-04-30' and apnt_ymd 결론부터 정리하자면, ORDER BY 절에서 별칭(alias) 사용은 가능그러나, 별칭은 그대로 줘야 하며 따옴표를 사용하면 안 됨select mcdp_cd as 진료과코드, count(mcdp_cd) as 5월예약건수from appointmentwhere apn..
javascript | splice 메소드
·
TIL/javascript
자바스크립트에서 splice()는 배열의 요소를 추가, 제거하거나 교체할 때 유용하게 쓰이는 메소드이다.array.splice(start, deleteCount, [item1, item2, ...])start: 시작 인덱스음수인 경우 배열의 끝에서부터 세어나감배열의 길이보다 큰 경우 0으로 간주deleteCount: 제거할 요소의 개수0이면 제거되지 않음생략하면 배열의 끝까지로 간주item1, item2, ...: 배열에 추가할 요소지정하지 않으면 삭제 기능만 수행 1. 요소 삭제2번 인덱스에서부터 2개의 요소를 삭제한다.** splice 메소드는 삭제된 요소를 반환한다.let array = ['a', 'b', 'c', 'd', 'e'];let removed = array.splice(2, 2); con..
javascript | 문자열 반복 repeat()
·
TIL/javascript
자바스크립트에서 문자열을 원하는 만큼 반복시키고 싶으면 repeat 함수를 사용할 수 있다.파이썬에서 문자열에 *를 사용하는 원리와 같다.str.repeat(n)  이때, n은 0 이상의 양수이어야 하며 양의 무한대보다 작아야 한다.그렇지 않으면 RangeError가 발생할 수 있다.  'hello'.repeat(3); // 3번 -> 'hellohellohello''hello'.repeat(1.7); // 1번 -> 'hello''hello'.repeat(5.2); // 5번 -> 'hellohellohellohellohello''hello'.repeat(0); // 0번 -> ''  n이 소수인 경우에는 소수점 아래는 버리고 정수 부분만큼만 반복한다.또한, n=0이면 결과값이 빈 문자열이 되는 ..