일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- AWS
- 프로그래머스
- node
- cognito
- icrawler
- domtoimage
- react-sortable-hoc
- timeinput
- TypeScript
- zerocho
- dynamodb
- react-hook-form
- axios
- electron
- jimp
- API Gateway
- electron-builder
- xlsx
- readableStream
- react-admin
- yml
- react
- Route53
- react DOM
- react-xml-parser
- signIn
- window.postMessage
- gitignore
- 가상 DOM
- Today
- Total
목록전체 글 (43)
꾸준히 공부하는 개발자
저번에 dynamo db를 연결하여 lambda까지 연결하는 것을 해보았다. 이번에는 실제로 web에서 api 를 받아오는 것 까지 해보겠다. 일단 웹에서 코드를 생성하였다. 웹에서 테스트하기 힘들다면, 아래 구글확장프로그램을 설치해도 좋다. https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm Talend API Tester - Free Edition Visually interact with REST, SOAP and HTTP APIs. chrome.google.com const doc = require('dynamodb-doc'); const dynamo = new doc.D..
큰 이미지를 규격에 750 사이즈를 맞춰 잘라 앱에 효율적으로 보이게끔 하고 싶어서 jimp내의 crop이라는 함수를 사용했다. crop(x,y,w,h) 으로 사진 왼쪽위가 0,0 기준이다. 또 이미지가 잘려서 리턴되는게 아니라 원본이 이미지가 바뀌는 거라서 처음에 깊은복사로 cloneDeep을 사용했지만, 너무 무거워서 찾아보니 img.clone() 을 이용하니 한결 가벼워졌다. export const cutImages = async (options, data) => { const cutImage = await Promise.all(options.data.images.map(async (image) => { let imageArray = [] if (image.rawFile) { const rawFil..
rawfile을 비율에 맞게 resize 할 일이 생겨 jimp 라는 모듈을 사용하게 되었다. const imageResize = async (rawFile, strictSize) => { const resizeImage = await Jimp.read(rawFile.preview) let {width, height} = resizeImage.bitmap if (width > strictSize && width > height) { height = strictSize / width * height width = strictSize } else if (height > strictSize && height > width) { width = strictSize / height * width height = s..
처음에는 aws document를 따라하다가 하던 도중 blue print 라는 좋은 기능이 있길래 바로 사용하였다. - lambda 에서 함수 생성에 들어가 블루프린트 사용을 눌러 microservice-http-endpoint 를 선택한다. 보안에 api 키로 열기 누르면 나중에 gateway api에서 사용하는 api-key가 저절로 생성된다. - cors 활성화를 누른 후 api 배포를 선택하면 모든 준비가 된다. - Lambda에서 TEST버튼을 누른 후 TableName에 DynamoDB의 테이블 네임을 넣어주면 연결이 끝난다. 테이블을 아직 생성하지 않았다면, dynamodb로 가서 생성해주면 된다. - Post 일 때, 삽질을 조금해서 lambda 함수에서 event.body 를 json...
인턴쉽 도중 사수가 스네이크 케이스로 되어 있는 변수를 카멜 케이스로 변경하라고 하였다. 하지만 네이밍명에대해 처음들어본 나는 뭔지몰라 가만히 있었더니 언더바를 빼고 원래대로 하라고 말씀을해주셨다. 그래서 오늘은 변수 명명 규칙에 대해 알아보고자 한다. 헝가리안 표기법 프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙이며, MS사에서 처음 시작했다고는 하는데, 지금은 효율성이 떨어져 MS에서도 쓰지말라고 한다. const strTest const intTest javascript에서도 이렇게 쓰이는지는 잘 모르겠다. 카멜 표기법 현재 필자의 회사에 사용하는 표기법이며, 첫글자는 소문자 구분을 해줄때는 대문자를 사용해 가독성이 높은 것 같다. const testValue..
react admin 을 사용중 엑셀을 받으면 blob 으로 와서 이 엑셀을 읽는데 삽질을 꽤 많이 했다. 이런 blob 형식으로 읽는거는 처음이였으며, 경로로 읽는건 안되길래 검색도중 XMLHTtpRequest로 읽는 것을 보고 바로 적용해 보았더니 읽혀서 사용했다. 아직 blob, local, 통신방식을 나 자신은 잘 이해하지 못한것같아 나중에 공부하는 포스팅을 올리겠다. params = "blob:localhost:3000/asfasfsdfsad" // 이런식이였던 것 같다. const asyncRequestExcel = (params) => { return new Promise(function (resolve, reject) { const excelUrl = params.data.excel.src..
프론트에서 데이터를 받아와 버튼을 누르면 직접 엑셀을 만들어 엑셀을 다운로드 받아야 할 일이 생겼다. 구글링을 하던 도중 좋은 오픈소스를 발견하여 해결하였다. const data = [[],[],[]] R) range.s.r = R; if (range.s.c > C) range.s.c = C; if (range.e.r < R) range.e.r = R; if (range.e.c < C) range.e.c = C; const cell = {v: data[R][C]}; if (cell.v == null) continue; const cell_ref = XLSX.utils.encode_cell({c: C, r: R}); if (typeof cell.v === 'number') cell.t = 'n'; else..
학교에서 친구와 aws 프로젝트 중 image 수집을 도와달라길래 귀찮은 저는 crawling 을 하기로 마음먹었습니다. 그래서 찾는도중 icrawler 라는 좋은 오픈소스가 있길래 pycharm 을 바로 설치하여 crawling 을 하여 친구에게 image를 줬습니다. # -*- coding: utf-8 -*- from icrawler.builtin import GoogleImageCrawler def main(): word = '국밥' dir_name = '/Users/baro/Desktop/크롤링/국밥' google_crawler = GoogleImageCrawler( feeder_threads=1, parser_threads=1, downloader_threads=4, storage={'root_..