| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
- 방콕
 - codebuild
 - 페이페이
 - 체코
 - typescript
 - pyenv
 - 三井住友カード
 - 일본
 - Python
 - 뮌헨
 - PostgreSQL
 - javascript
 - react.js
 - 메르페이
 - Selenium
 - 태국
 - documentdb
 - PayPay
 - JenkinsFile
 - 미츠이 스미토모
 - CSV
 - 熱海
 - markdown
 - 아타미
 - terraform
 - 프라하
 - node.js
 - vba
 - duckdb
 - local
 
- Today
 
- Total
 
목록Tech (191)
도쿄사는 외노자
일단 링크는 아래 참조. Ricty Diminished 뭐 이래저래 장점이 있지만, 일단 가장 중요한 것은... 일본어와 영어를 병기할 때, 전각&반각의 존재로 인해 줄 맞추기가 쉽지 않다. 근데 이 폰트는 전각 : 반각 = 2 : 1 로 비율을 딱 맞춰놓아서 코드의 오와 열이 잘 맞는다. 폰트 설치 방법은 아래와 같다. 위 링크에서 코드를 ZIP으로 다운로드한다. 다운받은 폰트의 압축을 풀고, 제어판 > 데스크탑의 커스터마이즈 > 폰트 이 위치에서 다운받은 폰트를 드래그&드롭하면 끝. 이걸로 일단 컴퓨터엔 적용완료. 다음은 VSCode에 폰트를 설정해 보자. VS Code에서 파일 > 유저 설정 > 설정 (Ctrl + ,) settings.json에서 아래와 같이 에디터의 폰트를 적용해 주고, 한번 껐..
대충 이런 형태로 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를 개발중이다. RDS에서 데이터 검색 후 Lambda에서 데이터를 기존 준비된 엑셀 파일에 넣어 DL까지. 데이터 취득 후엔 xlsx-populate를 사용하여 리스트째로 엑셀에 넣었고, 작성된 엑셀 파일을 export하는데에는 exceljs를 사용하였다. 근데 exceljs를 사용해서 export를 해 보니, 조건부서식이 다 작살나더라. 내가 이 조건부서식 만들려고 얼마나 개고생을 했는데... 처음엔 전송방법에 문제가 있나 싶어 Header를 이리저리 바꿔보았는데, 결과는 다 똑같았다. 그래서 혹시나 하여, 그냥 exceljs로 멀쩡한 파일을 읽은 후, 그대로 다시 아웃풋해보니 박살나있는 것을 확인. exceljs의 문제더라. 알아보니 나와 같은 피해자들이 많았다. https://g..
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' }..