일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 페이페이
- 카마츠루
- duckdb
- 三井住友カード
- vba
- 프라하
- 체코
- typescript
- 미츠이 스미토모
- react.js
- Python
- local
- JenkinsFile
- 아타미
- terraform
- 熱海
- 태국
- PostgreSQL
- node.js
- 釜つる
- documentdb
- Selenium
- CSV
- 뮌헨
- 메르페이
- javascript
- codebuild
- 방콕
- PayPay
- pyenv
- Today
- Total
목록Tech/JavaScript (29)
도쿄사는 외노자
2023-09-11T13:34:51.892305+00:00 위와 같은 형식의 ISO time 을 Local timezone과 Format을 지정하여 출력하고 싶다. 방법은 두가지. 여기선 일본 시간, YYYY/MM/DD HH:mm:ss로 출력해 보자. dayjs 를 사용하는 방법 import dayjs from 'dayjs'; import timezone from 'dayjs/plugin/timezone'; import utc from 'dayjs/plugin/utc'; const isoToLocalDatetime = (timestamp: string): string => { dayjs.extend(utc); dayjs.extend(timezone); const tz = 'Asia/Tokyo'; cons..
대충 이런 형태로 SQL작성 SELECT id, memo, updated_by, to_char(updated_at, 'YYYY/MM/DD HH24MIss') AS updated_at FROM memo WHERE memo_category = 'normal' AND logical_delete_flag = false ORDER BY id DESC ; UI쪽에서 moment를 사용하여, UTC를 로컬 시간으로 변경 import moment from 'moment'; // ... const updatedTime = moment.utc(actionMemo.updatedAt, "YYYY/MM/DD HHmmss"); const adjustedUpdatedTime = updatedTime.local().format('Y..
일단 이번에 사용하게 된 녀석 소개. Ant Design Components Overview - Ant Design antd provides plenty of UI components to enrich your web applications, and we will improve components experience consistently. We also recommend some great Third-Party Libraries additionally. ant.design 이번엔 테이블 구현을 위해 사용하였다. MaterialUI와도 별 위화감 없이 섞어쓸 수 있고, 데이터테이블 기능이 어느정도 다 구현되어 있어서 좋더라. 일단 기본적인 로딩 기능 구현은 아래를 참조하면 된다. https://ant.d..
API를 Lambda에 올려서 돌리고 있다. 데이터가 6MB를 넘으면 Network Error가 나오는데... API에서 데이터를 압축해서 보낸 후, 화면쪽에서 압축 풀면 되지 않나? 라는 생각에, 일단 시도해 보았다. 처음엔 이거를 참조해서 gzip이라던가 써 봤는데... 소스코드도 길어지고, 압축 푸는데 뻑나고 그러더라. 그래서 그냥 pako를 사용해서 해결했다. API (Lambda) import pako from 'pako'; // Zip const zippedData = pako.deflate(JSON.stringify(targetData)); result.status = RESPONSE_STATUS.OK; result.response = { targetData: zippedData, } // ..
API개발중, 유저ID를 코그니토에서 가져오기로 했다. 일단 디코드용 코드를 대충 이런 느낌으로 만든다. 이쪽을 참조했다. export default function (event: any): object { const token = event?.headers["Authorization"]; const base64Url = token.split('.')[1]; const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16))...
아래의 파라메터를 필요로 하는 API를 만들고 있다. { "country": "string", "date": "string", "type": [ "string" ], "color": [ "string" ], "def": "string" } 해당 파라메터의 Validation을 위해 class-validator를 사용하고 있는데, 여기서 조건이 한 가지. 기본적으로 모든 항목에 not empty를 걸고 싶은데, type과 color는 둘 중 하나만 있어도 OK로 하고 싶다. 뭐 해결방법은 아래와 같다. import * as v from "class-validator"; import { RequestModel } from "../models/RequestModel" import { countryCode } ..
뭐 일단 간단하게 자바스크립트로 적어보면 아래와 같은 느낌. import pg from 'pg'; async function SearchData() { const client = new pg.Client({ user: 'postgres', // 유저명 password: 'postgres', // PW host: 'aaaabbbbcccc123123.ap-northeast-1.rds.amazonaws.com', // RDS 엔드포인트 port: 5432, database: 'postgres' }); await client.connect(); const result = await client.query('select * from dbname.tablename'); console.log(result.rows);..
MongoDB에 넣을 쿼리를 만드는 중이었다. Curl로 날린 파라메터를 받아서 쿼리 오브젝트에 집어넣는데... 오브젝트에 멤버를 넣어버리면 그걸 그대로 검색조건으로 박아버리니까, 값이 없는 경우도 다 조건이 되어버린다. 이걸 해결하려면 애초에 내용이 없는 데이터는 쿼리에 넣어선 안된다. 일단 그냥 자바스크립트면 심플하게 아래의 방법을 쓸 수 있다. const obj = { ...(input.name && input.name !== '') && {name: input.name}, ...(input.hobby && input.hobby.length > 0) && {hobby: input.hobby}, } 근데 타입스크립트면 위 방법이 에러가 나더라. 뭐 어찌어찌 하면 된다곤 하는데, 타입가지고 시간끄는건 ..
테스트데이터를 만드는데, Bash가 MongoDB shell버전이랑 server버전이랑 맞질 않아서 안돌아가더라. 뭐 고칠라면 고치는데, 어차피 데이터 구조 바뀔때마다 반복작업 해야하는거, 그냥 JS로 돌려야겠다 싶었다. 그래서 대충 만들어본게 이거. /testData/testData.js const testData = [ { xxx_cd: '01', xxx_name: 'xxx01', xxx_type: '1', xxx_start_date: '2021-01-01', xxx_end_date: '2021-12-01', xxx_operation: [ { date: '2021-06-01', operaton_type: '1' } ], category: { id: 'categoryA', label: '카테고리A' }..
AWS DocumentDB의 정보 보관을 위해 AWS Secrets Manager를 사용하게 되었다. SecretsManager의 정보 자체는 Lambda의 환경변수로 아래와 같이 설정하면 된다. 현재 Lambda를 Serverless를 써서 올리기로 하고 그냥 다 코드 자체는 로컬에서 작성하고 있기 때문에, 사실 테스트를 하려면 그냥 env같은거 만들어서 정보 다 넣어두고 쓰면 되지만서도, Secrets Manager를 한번은 테스트 하고 싶으니까 Credential까지 넣어서 한번 적어 봤다. import * as aws from 'aws-sdk'; import { DatabaseInfoModel } from '../models/DatabaseInfoModel'; export default async..