분류 전체보기 58

[typescript] 깊은 복사와 얕은 복사, 그리고 JSON (feat. 얕은복사의 최상위 속성)

typescript로 개발중에앞서 개발했던 함수에서는 전혀 문제가 되지 않았던 부분이그와 유사한 다른 함수를 개발할 때 동일한 로직으로 개발을 하려니 웬 갑자기 얕은복사로 애를 먹고 있는데챗 GPT가 문제가 되던 부분을 짚어줬다. 깊은복사처럼 실행되던 나의 얕은복사 코드;다시는 이런 일이 없도록 포스팅해두기로 한다.    제공해주신 코드의 전반적인 구조는 잘 작성되어 있지만, 얕은 복사로 인한 문제가 발생할 가능성이 있습니다. 특히, 중첩된 객체인 object_statistics와 event_statistics와 같은 속성이 참조를 공유하기 때문에, 예상치 못한 상호 간섭이 발생할 수 있습니다.코드를 살펴보면 아래와 같은 문제가 있을 수 있습니다:1. 중첩된 객체의 얕은 복사 문제regionStatTem..

기술공부/언어 2024.09.10

[Node.js] 왜 pg 라이브러리에서 bigint를 string으로 인식할까?

현재 진행하고 있는 프로젝트에서 postgresql의 stored procedure를 활용하는 케이스가 많은데,집계함수 sum을 사용해 반환되는 값은 integer가 아닌 bigint로 반환이 된다.이를 node.js에서 받아서 처리하려고 하다 보니 return값이 string으로 오는 것을 발견했다.(나는 분명 count를 누적했는데 01011201 이런값으로 누적이 되네..?) 원인을 좀 찾아보니 node.js에서 사용중인 pg라이브러리의 처리 로직이 bigint를 string으로 받아 처리한다는 게 원인이었음을 알았다. 데이터 소실 이슈 발생을 막기 위해서라는데. 내가 문서를 제대로 읽지 않은 탓이겠지..? 아래는 chatGPT에서 답변한 내용이다. 나의 질문_PostgreSQL에서 sum() 함수..

기술공부/언어 2024.08.26

[Node.js] jsonpath 패키지 사용 시 pkg build Error (Error: Cannot find module 'esprima' Require stack:- aesprim) 발생 해결 방법

jsonpath 패키지를 설치하고 나서부터 pkg로 빌드한 exe가 실행이 안 되는 문제가 발생. 원인을 찾아보고자 애꿎은 Visual studio 2022도 재설치 해보고,,[C++를 사용한 데스크톱 개발] 워크로드도 재설치 해보고..어떤 StackOverflow 답변에서는 개별 설치에서 SDK for Windows 10도 체크 후 설치해야한다는 최신 댓글도 달렸길래 추가 설치도 해봤는데 해결될 조짐이 1도 안 보였다. 그러다가 발견한 아래 글.. I found a pretty good workaround for my use case. Instead of require("jsonpath"), use require("jsonpath/jsonpath.min")The latter is basically th..

기술공부/언어 2024.06.25

[PostgreSQL] Insert 쿼리에서 Serial 컬럼 값 삽입하기

일반적으로 Auto Increment column일 경우 컬럼값이 자동증가하게 되는데 Insert query를 활용하려고 할 때 귀찮아지는 경우가 있다. INSERT INTO tmptable(column1, column2, ....) values(value1, value2, ...); 이런 귀찮은 상황을 모면하게 해 줄 방법 중 신박한 방법을 알게 되어 포스팅으로 기록하려고 한다. 아래와 같이 해주면 되는건 알고있었지만, INSERT INTO problem VALUES ( nextval('problem_id_seq'), 'Hello World', 'unknown', '/var/www/files/problems/' || lastval(), 'Python' ); 이는 sequance 명을 넣어주어야 해서 이..

기술공부/DB 2023.08.22

[Node.js] Express app에서 정적 라우트 경로값을 동적으로 변경하기

Chat GPT는 어떻게 활용하느냐에 따라 옳은 정보를 주기도 하고, 되려 더 돌아가는 정보를 주기도 하는 듯 하다. 오늘 chat GPT의 덕을 톡톡히 봤는데, 그 중에 하나가 바로 express.static()를 동적으로 활용하는 방법이다. 처음 가이드 해 준 방법 Q. nodejs 에서 이벤트가 발생했을 때 express static path를 바꾸고싶은데 방법이 있을까? // 기본 정적 경로 설정 app.use(express.static(path.join(__dirname, 'public'))); // 이벤트 발생 시 정적 경로 변경 function changeStaticPath(newPath: string) { app._router.stack.forEach((middleware) => { if ..

기술공부/언어 2023.06.16

[나들이] 오랜만에 자전거를 타보았다. (feat. 팔당역~능내역~물의 정원~두물머리까지 남한강 자전거길 나들이🚴‍♀️🚴‍♀️)

지난 3.25일 토요일(늦은 포스팅,,,ㅎ) 봄가을 계절만 되면 생각나는 자전거🚴‍♀️🚴‍♀️를 타러 팔당역으로 출발! 우리 그 이와 함께한 그날의 자전거 코스는 요렇다. 미밴드 차고 열심히 달렸는데,, 오랜만에 타서 그런가,,? 진짜 죽을뻔했다😇 진짜 너무힘들었다 ㅋㅋㅋ 좀 늦게 자전거를 타기 시작했다고 생각해서 쉬지않고 무작정 두물머리까지 달렸다.. 능내역에서도 안쉬고ㅠㅠ 평소같았다면 능내역에서 잠시 쉬어주어야 하는데,, 요즘 집에서 사이클을 좀 타시더니 우리 그 이가 체력이 너무 좋아지셔가지구😇 나는 그저 따라가기에 바빴다,,, 자전거는 팔당역 앞에 위치한 바이크토탈에서 대여했다. 전용 주차장에 주차 가능함! 일반자전거 종일권 12,000원 해서 두 대 빌렸고 고급자전거는 종일권이 2만원이었는데 뭐..

[PostgreSQL] 부분 인덱스로 유일성 체크하기

요즘은 웬만하면 ChatGPT가 알려주는 시대라고는 하지만, 그렇다고 곧이 곧대로 말을 들었다가는 낭패를 볼 수 있다. 최근 DB 작업 중에 아래와 같은 케이스가 있었는데, 이걸 코드단이 아니라 DB단에서 해결하고 싶어졌었다. 유저는 item type이 0인 상품은 중복으로 가질 수 있다. 단 item type이 1인 경우에는 단 한 개의 상품만 소유할 수 있으며, 만약 type이 1인 item이 이미 있을 경우에는 새 것으로 교환만 가능하다. 그러니까 item_type이 0이면 insert 허용, 1이면 update를 해야하는 상황. Partial Index 사용법 유일성 체크는 DB에서 하면 되지 않나? 싶어서 혼자 끙끙대다가 PostgreSQL에서 버전 11 이후부터는 ON CONFLICT 절에서도..

카테고리 없음 2023.04.12

[가산디지털단지] 쌀국수에 진심인 집 '포36거리' (feat. 내돈내산!)

가디역 4번출구인데 오늘은 쌀국수가 땡긴다 싶으신 분 계신가요? 그렇담 오늘은 여기입니다. 포36거리 가산디지털단지역점🍜 위치 서울 금천구 벚꽃로 286 삼성리더스타워 지하1층 112호 영업시간 매주 평일 11:00 - 20:30 / 브레이크타임 15:00 - 17:30 (주말 및 대체휴일 휴무) 전화번호 0507-1409-6117 11시에 오픈인데도 11시 30분이면 대부분의 좌석이 다 차는 것 같다! 메뉴판은 요렇게! 1번 메뉴에 별표★가 쳐져있당 저게 시그니처라는 거겠지?! 거침없이 1번으로 주문! 티는 적당히 몸을 데워줄만큼 따땃했당. 쌀국수에 넣어도 먹을 수 있고 찍어도 먹을 수 있는 소스는 두 가지(칠리+해선장) 칠리소스는 꽤 매움! 해선장소스는 달달구리했음. 그렇게 오래 기다리지 않고 쌀국수..

[가산디지털단지] 스시히또 내돈내산 후기

며칠 전 점심으로 스시를 먹을까~ 싶어서 근처에 스시집을 알아보던 중 역 바로 앞 건물 지하에 위치한 히또스시를 알게 됐음! 스시히또🍣 위치 서울 금천구 벚꽃로 286 리더스타워 지하1층 114호 영업시간 매주 평일 11:30 - 21:30 / 브레이크타임 14:30 - 17:30 / 라스트오더 20:00 (주말 휴무) 전화번호 02-838-0105 내부는 바 형태의 좌석과 테이블 형태의 좌석, 그리고 매장 안쪽으로는 룸도 있는 것 같았다. 혼자 오신 손님들도 꽤 있었고 오픈시간에 맞게 도착했는데 이미 우리 앞에 두 팀이나 더 기다리고 있었음 뭔가.. 유명한집인가..! 싶었다 스시히또는 오마카세로 유명한 집인 것 같았는데, 점심에도 런치 오마카세를 꽤나 합리적인 가격에 즐길 수 있어보였다. (런치 오마카..

[javascript] Object array 에서 특정 key-value를 만족하는 feature만 추출하기

아래와 같이 오브젝트 배열 속에서 원하는 요소만 갖는 배열을 만들 수가 있다. const people = [ { name: '홍길동', age: 32, job: '무직', married: true, }, { name: '김도끼', age: 20, job: '사무직', married: false, }, { name: '하아늘', age: 19, job: '학생', married: false, } ]; // 미혼만 추출 const happyPeople = people.filter((friend) => { return people.married === false; }) console.log('현재 미혼입니다. ', happyPeople); ps. Object를 copy하려면 아래와 같이 하면 된다. // as..

기술공부/언어 2023.03.03
728x90
반응형