Yangeok
Development Blog
-
Node.js에서 multer로 S3 버킷에 데이터 추가하기
Node.js 웹서버에서 프로그래밍적으로 S3 버킷 데이터를 사용하기 위한 전처리 작업입니다. S3 버킷에서 데이터를 추가하는 작업을 할 예정입니다. 실제 데이터를 브라우저를 통해 POST요청을 보낼떄 버킷에 업로드함과 동시에 업로드된 이미지 url을 데이터베이스에 추가하기 위해 필요합니다. 작업환경 koa koa-router aws-sdk multer multer-s3 작업순서 S3 버킷을 만들었다면 accessKeyId와 secretAccessKey를 다운받기 위해 우측상단에 있는 내... -
Jekyll 블로그 이미지 호스팅하기
블로그에 코드만 올리다 점점 스크린샷을 찍어 올려야 할 일이 점점 많아집니다. 처음에는 티스토리 블로그에 호스팅을 해서 이미지를 가져와서 사용했습니다. 물론 현재도 사용하고 있는 블로그에 비공개로 해서 올려놓기 때문에 3자가 본다면 아무것도 안보이겠죠. 제 눈에는 너무 지저분해보이고 티스토리가 날아간다면 이 블로그에 있는 이미지들도 다 날아가겠죠. 그래서 생각해냈던 방법이 다음과 같습니다. 드롭박스... -
Sequelize 테이블 컬럼 추가시 에러 해결하기
작업환경 sequelize sequelize-cli mysql 테이블 정의 cli로 model:create 명령어를 사용하면 /migrations, /models, /seeders 폴더에 각각 파일이 하나씩 생성됩니다. 우선 우리가 다룰 파일은 /migrations, /models에 있는 파일들입니다. 우선 테이블 생성을 위해 다음과 같이 입력합니다. 테이블명은 단수로 입력하면 자동으로 복수로 저장됩니다. sequelize model:create\ --name ProductColor\ --attributes productId:integer,productColor:string &&\ seqeulize init:seeders &&\ sequelize... -
코드워즈 알고리즘 문제 JS, Java, Python으로 풀어보기
문제해결능력의 부족함을 느껴 코드워즈 문제풀이를 시작했습니다. 제 정답과 베스트 솔루션을 비교해보니 코드양이 너무 비교되더라구요. 다음과 같은 조건에 부합하는 코드를 작성해야 합니다. 우선 Javascript로 먼저 작성해본 다음 Python과 Java로도 작성합니다. 조건 x와 o가 둘 다 적어도 1개 이상 포함되어야 하고 갯수가 같아야한다. 메서드는 불리언을 리턴해야만 한다. 테스트 케이스 Test.assertEquals(XO('xo'), true); Test.assertEquals(XO('XO'),... -
윈도우에서 PuTTY를 통해 AWS 인스턴스 접속하기
AWS 자체 튜토리얼에 나온대로 인증키쌍을 생성했는데 안되더라구요. 리눅스나 맥에서는 쉘을 통해 간단한 명령어를 통해서 바로 인스턴스에 접속할 수 있지만 윈도우는 그렇지 못합니다. 그래서 우리는 아래와 같은 4단계를 거쳐 윈도우에서 인스턴스에 접근할 수 있게 되는 튜토리얼을 AWS 튜토리얼에서 볼 수 있습니다. AWS에서 SSH키를 다운받는다. PuTTY를 설치한다. PuTTYgen에서 .pem파일을 .ppk로 변환시킨다. PuTTY에서... -
MySQL 외부에서 접속할 수 있게 세팅하기
현재 Ubuntu 16.04가 설치된 AWS Lightsail에 MySQL을 설치한 상태이고 로컬에서 인스턴스에 설치된 MySQL로 접근을 하고자 합니다. 외부에서 접근을 허용하기 위해 4가지 일이 필요합니다. AWS 웹페이지에서 방화벽을 열어준다. 인스턴스 내 config 파일을 수정한다. MySQL에 유저권한을 등록한다. MySQL을 재시작한다. 첫번째부터 시작하겠습니다. 우선 인스턴스를 하나 만들고 인스턴스 설정으로 들어갑니다. 상단에 네트워킹 탭이 있습니다.... -
Javascript 배열 가공하기
본 포스팅은 ES5 문법과 ES6 문법을 병용함을 참고하시길 바랍니다. 또한 의도하지 않은 객체의 변경이 생기는 것을 막기 위해 객체를 참조하는게 아니라 복사해서 불변객체를 만들어줘야 하지만 따로 객체를 복사해서 사용하진 않았음을 확인 부탁드립니다. 데이터베이스에서 나온 정보를 그대로 사용하지 않고 프론트단에서 쓰기 좋게 가공해서 보내줘야하는 경우가 있습니다. 누구보다도 정보가 멋있게 나왔다고 해도... -
Sequelize 쇼핑몰 상품 옵션 설계 MySQL 쿼리문 바꾸기
실제 서비스에 들어가는건 아니지만 쇼핑몰 구축하는중 상품은 옵션이 있다는걸 깜빡하고 테이블을 설계했습니다. 작업환경은 MySQL, Sequelize.js를 사용하고 있습니다. 아직까지는 faker로 페이크데이터만 만들었습니다만. 상품 색상과 사이즈를 그냥 생각없이 랜덤한 문자열로만 넣어서 상품 색상과 사이즈는 단일 색상, 단일 사이즈가 되버렸습니다. 실제 서비스같이 만들려면 다채로운 색상과 사이즈가 필요합니다. 뷰로 보내줄때는 배열로 보내주는게 프론트에서 사용하기에... -
Docker 컨테이너에서 깃 사용하기
바쁜 일상을 살아가고 강박적으로 깃헙에 커밋을 올리는 병에 걸린 사람이 한 명 있습니다. 항상 늦게까지 약속이 있는 날은 노트북을 챙겨 다닙니다. 하지만 그날따라 약속도 없을 것같고 커밋도 올리기 싫어 늑장부리고 싶어지는 날이었습니다. 갑자기 급약속이 생깁니다. 약속이 금방 끝날 것같아 노트북은 챙기지 않습니다. 자정이 지나서야 집에 들어올 수 있었습니다. 그날 해야할... -
Node.js와 Python 바인딩 하기
데이터 관련 라이브러리를 쓰려면 역시 python이 필요합니다. python을 node.js에서 사용하려면 어떡하지 하고 node.js python 바인딩이란 키워드로 구글링하다보니 결국 이거더군요. python-shell이었습니다. 2014년에 만들어졌고 그전부터 생각을 해왔을텐데 선구자시네요. 사용방법은 아주 간단합니다. 구동환경은 python 3.6.5, node.js 8.11.3 입니다. 이 환경과 달라도 충분히 잘 돌아갈겁니다. 아래와 같이 설치를 합니다. yarn add python-shell 다음과 같은...