DocumentDB Connect in Local PC ( MAC OS )
·
Javascript/Node.js
PROBLEM Local에서 MongoDB를 사용하다 AWS DocumentDB 도입 AWS DocumentDB는 같은 VPC내에서만 접근 가능(private) 같은 VPC 내의 EC2에서 터널링을 사용하여 접근 가능 Application에서 접속하는 방법이 필요 PREPARATION 실행 전 Local MongoDB를 종료해야함 brew services stop mongodb-community DocumentDB와 Tunneling이 되어있는 EC2가 존재해야함 AWS 보안 설정을 해야함(inbound/outbound) SOLUTION 1.EC2 Tunneling ssh -i "EC2ConnectKey" -L :: @ -N Option -L : Local Port Forwarding -N : Do no..
NPM node-schedule
·
Javascript/Node.js
ERROR TypeError: this.job.execute is not a function ~ CODE const schedule = require('node-schedule') schedule.scheduleJob('*/1 * * * *', test(1)) const test = async (val) => { console.log(val) } SOLUTION const schedule = require('node-schedule') schedule.scheduleJob('*/1 * * * *', function(){ test(1) }) const test = async (val) => { console.log(val) } REFERENCE ht..
Closure 란
·
Javascript/Study
Javascript Closure 클로저(Closure) ? 변수의 Scope를 확장해주는 기능이다 예를 들어, 지역변수는 함수가 실행될 때 생성되고, 종료 될때 사라진다. 예시 여기서 `test` 는 console.log에 정확하게 출력이 된다. function closer_study1(){ var test = "클로저 테스트" console.log(test) } closer_study1() 하지만, function closure_study1() { var test = "클로저 테스트" } closure_study1() console.log(test) 다음의 코드에서는 test 가 정의되어 있지 않은 오류가 발생하게 된다. 그 이유는 test 라는 변수는 closure_study1() 함수 속에서 선언..
[BOJ] 16234 인구 이동
·
Algorithm/Baekjoon
문제 바로가기 서론 BFS를 사용해서 전체적인 구현을 하는 시뮬레이션 문제이다. 처음 4번의 실패가 있었지만, 조금 생각만 달리한다면 풀 수 있는 문제 였다. 풀이 시뮬레이션 문제 특성상 문제에서 주어진 조건만 충족하면 문제는 해결된다. N x N 크기의 땅이 있고, 각 나라는 1 x 1 크기로 나누어져 있다. 각 땅에는 n 명이 살고 있으며, 이중 배열로 표현 되어있다. void init() { cin >> N >> L >> R; for (int i = 1; i map[i][j]; visit[i][j] = 0; } } } int map[51][51] 이중 배열을 만들어서 각 나라의 인구를 적어주었고, int visit[51][51] 배열을 만들어 BFS를 위한 접근 기록도 관리하여 주었다. 문제의 조건..
[BOJ] 20055 컨베이어 벨트 위의 로봇
·
Algorithm/Baekjoon
[BOJ] 20055 컨베이어 벨트 위의 로봇 오랜만에 하는 알고리즘 문제 풀이이다. 문제바로가기 #### 풀이 시뮬레이션 문제이다. 벨트에 올라가는 로봇들을 순서대로 조절해야 했기에 나는 vector 와 queue를 사용했다. 시뮬레이션 문제는 문제를 잘 읽고 순서대로만 구현하면 된다. 0. 기본 구조 queue robot; vector belt; vector empt; `robot`은 순서대로 올라가는 로봇의 idx를 관리해주는 `queue` 이다. belt는 벨트의 내구도를 관리한다. empt는 벨트가 비었는지를 관리한다. (벡터는 인덱스 1부터 진행했다.) 1. 벨트가 회전한다. void rotate() { int f; tmp = *(belt.end() - 1); belt.pop_back(); b..
# 공공 API를 통해 카카오 지도에 선별진료소 표기하기 - (3)
·
Javascript/Node.js
지난번에 크롤링해서 데이터 읽어오는 부분까지 구현이 완료되었다. 이제 제일 핵심 기능인 카카오 Local API를 사용하여 병원의 이름을 위도, 경도로 표기하는 일이 남았다. 카카오 API를 사용하기 위해서는 우선 Kakao Developers에 가입해서 인증키를 발급받아야한다. 로그인을 한뒤 애플리케이션 추가하기를 선택하고 앱 이름, 아이콘등을 선택하여 저장한다. 저장한 다음 추가한 애플리케이션을 선택하게 되면 다음과 같이 4가지의 키가 생성되어 있음을 확인할 수 있다. 이 4가지중 우리는 API 를 사용하기에 REST API키를 복사하여 사용한다. API key를 가지고 바로바로 개발에 들어가는 고수들도 있지만, 나는 그렇지 않기에 기본 코드를 복사해서 사용한다. 상단에 메뉴에서 문서 -> 아래로 스..
공공 API를 통해 카카오 지도에 선별진료소 표기하기 - (2)
·
Javascript/Node.js
지난번에 작성했던 코드로는 계속된 오류가 발생했다. 혹시나 API key 가 더이상 동작을 안하는 가 해서 새로 발급을 받고, ec2를 재부팅 했으나 오류는 계속 진행되었다. 여러번 새로고침을 하면 가끔씩 데이터가 나오긴 했지만, 가끔씩이였었다. 그래서 자꾸 읽어오지 못하는 오류가 발생함... (개짜증) 결국 다른 방법을 사용해야 했다. 선별진료소 목록의 신뢰성을 높이기위해 보건복지부 홈페이지의 선별진료소 리스트를 긁어오기로 했다. 사용한 모듈은 axios와 cheerio 를 새롭게 사용했다. npm install axios cheerio 우선 모듈을 다운로드 받아주었다. var axios = require('axios'); var cheerio = require('cheerio&#..
공공 API를 통해 카카오 지도에 선별진료소 표기하기 - (1)
·
Javascript/Node.js
소마 프로젝트를 진행하며 기능중 가까운 선별진료소를 나타내주는 기능을 구현해야 했다. 선별진료소 목록은 공공데이터포털에서 제공해주는 API를 사용할 예정이다. 현재 공공데이터포털에서 제공하는 데이터 형식은 XML형식이기에 가공하기 편하게 JSON으로 바꿔주는 작업이 필요하다. npm install xml2js 우선 xml2js 패키지를 다운받아준다. var xml2js = require('xml2js'); var parser = new xml2js.Parser(); 공공데이터포털에서 데이터를 받아오는 형태를 활용하여 정보를 받아온다. 자료의 형식은 이러하다. 00 NORMAL SERVICE. 20200104 강남구 서울 99 02-3423-7200 강남구보건소 1 1 652 parser.p..
[더블릿] - CSKYLINE
·
Algorithm/ETC
문제 풀이 자료구조에 대한 지식만 있다면 아주 간단하게 풀 수 있는 문제였다. 하지만, 처음엔 입력크기를 생각하지 못해서, 2차원 배열을 만들어 직접 그려가며 문제를 해결하는 바람에 시간초과가 발생했다. 점의 총 갯수가 500,000개가 되고 길이가 1,000,000이 되기에 1초란 시간은 매우 짧았다. 생각을 전환하여 나보다 낮은 층수가 나오기 전까지는 같은 건물 이라는 해답을 찾았다. 이를 해결하기 위해 stack을 생각했다. vector와 stack은 같은 동작을 하기에 평소 자주 사용하는 vector를 사용했다. 점의 좌표 중 y값을 stack에 담으며 top의 값과 비교하여 top이 클 경우 pop()연산과 함께 건물의 수를 카운트 한다. 반대로 top이 작을 경우에는 stack에 담아주며 다음..
Markdown 기초
·
IT/개인 공부
Soma 활동 중 개발하는 프로젝트의 형상관리를 깃랩을 통해 진행하고있다. 중간평가를 위해서 코드를 깃랩에 업로드 했고, Readme.md 파일을 정리하며 Markdown 문법에 대해 알게 되었다. 문법도 쉽고, 작성도 간단해서 같은 팀원의 맥북에서 Typora를 사용하는 모습을 보고 바로 윈도우 버전을 다운받았다. 간단하게 문법을 살펴봐야겠다. Markdown 장점 쉬운 문법 html 보다 쉽고, 복잡하지 않다. 지원 가능한 곳이 많다. 많은 곳에서 마크다운 형식을 지원하고 있어서 간단하게 작성이 가능하다. 단점 표준이 없다. 정해진 표준이 없기 때문에 작성자에 따라서 문법이 다를수가 있다. 모든 HTML 마크업을 할 수는 없다. Markdown 문법 1. Header # Header 1 ## Head..
늦은 Software Maestro 11th 지원 후기
·
Daily/일상
벌써 Soma 11기 활동을 시작한지 4개월 차에 접어 들었다. 조금 늦은 감이 있지만 경험을 적어본다. 서류 지원 SW 마에스트로 11기 접수기간은 20. 2. 5 ~ 3. 4 까지였다. 학력, 전공, 경력 등의 제한은 없었으나 어느정도 개발능력을 갖추어야 했다. 어딜가나 빠지지 않는 자기소개서는 다음과 같은 질문이 있었다. 전문성을 키우기 위한 특별한 노력 장래희망 어떤 프로젝트를 어떻게 수행할 것인지 SW마에스트로 6개월간 이루고자 하는 목표 (기타) SW대회 수상 내역 등 자기소개서는 문항은 적었지만, 3000자 제한이 있었기에 꾹꾹 채워 담느라 너무 힘들었었다. 몇일 후, 딱! 서류합격 메일이 왔다. (후에 들어보니까 적당히만 적으면 어느정도 통과라더라) 코딩테스트 1차 합격하고 약 10일 후 ..