IT,프로그래밍

    [프로그래머스] 깊이/너비 우선 탐색(DFS/BFS) - 네트워크

    참고 자료 [알고리즘] 깊이 우선 탐색(DFS) 과 너비 우선 탐색(BFS) [알고리즘] 깊이 우선 탐색(DFS) 과 너비 우선 탐색(BFS) ※ 그래프의 개념 - 정점과 간선으로 이루어진 자료구조의 일종. G = (V, E) ※ 그래프 탐색 - 하나의 정점으로부터 시작하여 차례대로 모든 �� yunyoung1819.tistory.com 나의답 function solution(n, computers) { // n: 컴퓨터 개수 // computers[i][j] // i칸의 수와 같은 j 는 무조건 1임. -> 자기 자신이기 때문에 // 한쪽이 연결되면 반대쪽은 반드시 연결되어있음 -> 2번찾을 필요없음 let answer = 0; const check = (computers, root, n) =>{ fo..

    [Lambda + S3] 람다로 S3 버킷내에 파일 다른 버킷으로 옮기기!

    참고자료 : http://jeonghwan-kim.github.io/node/2017/08/12/node-stream-you-need-to-know-3.html 개발을 하는 기능중 S3 버킷의 파일을 다른 버킷으로 이동시키는 기능을 개발 했었다. 기존의 소스의 경우 getobject 를 해서 파일을 메모리에 buffer로 가지고 있다가 putobject로 옮길 버킷에 업로드 하고. deleteObject로 기존 버킷의 파일을 삭제한다 get,put,delete object static async getObject(type, fileKey) { try { const config = await utils.getEnvConfig(type); const result = await s3 .getObject({ B..

    [Lambda + RDS] connect ETIMEDOUT ERROR 해결법

    람다 함수를 개발해서 RDS에 접근한뒤 데이터를 가져오는 코드를 작성했는데 동작을 안하는거다. 그래서 클라우드와치(cloudwatch) 를 확인해보니 아래와 같이 Error: connect ERIMEDOUT 에러가 발생한것이다. 물론 RDS를 사용하기 위해서 설정해야 하는 VPC설정은 해놨었다. 이유는 AWSLambdaVPCAccessExecutionRole – Permission to manage elastic network interfaces to connect your function to a VPC. 즉, 람다가 VPC엑서스 권한이 없다는 메세지였다. 따라서 람다가 사용하는 권한의 role에 VPCAccess 를 추가해줬다. 이제 람다가 VPC에 접근이 완료되고, 같은 VPC 내부에 있는 RDS에..

    [Lambda + AWS SDK S3] 람다로 S3 접근가능 url 가져오는법

    AWS S3는 기본적으로 퍼블릭 권한이 차단되어있다 즉, 개발하고 있는 서비스에서 S3에 저장되어있는 리소스를 일반 유저들에게 제공을 해야 하는 상황에서 단순하게 S3의 있는 파일의 링크를 주려고 해봤자 AccessDenied 가 나올뿐이다. 이럴때 사용하기 위해서 있는것이 Pre-signed url이다. S3에서는 미리 인증이 되어있는 url을 제공해 줄 수 있는데 방문자등에게 S3에 있는 리소스를 제공할때는 이와 같은 방법을 사용하면 된다. AWS-SDK S3 getSignedUrl documentation link → https://docs.aws.amazon.com/ko_kr/AWSJavaScriptSDK/latest/AWS/S3.html#getSignedUrl-property documentat..

    express-validator 에서 array 내부 object 검증 하는법

    express-validator 라는 모듈은 미리 명시해준 기준에 따라 검증을 할수있게 해주는 모듈입니다. 예를 들어 body에 전달되는 값중 age 이라는 키의 값이 반드시 Integer형만 와야 한다고 한다면 body('age').isInt() 라고 표현해주면 body에 전달되는 값중 age는 반드시 숫자형이 와야 한다는 뜻이고 아닐경우 핸들링 해주는 기능을 제공합니다. 더 자세한 내용은 이번 글에서 다룰내용이 아니기에 API Document 링크를 첨부합니다 -> https://express-validator.github.io/docs/validation-chain-api.html#isstring 이번글의 주제는 만일에 Array 내부에 들어가는 object의 값을 검사하고 싶으면 그러면 어떻게 해..

    [Azure + AWS] Azure Devops 파이프라인 에서 ECR로 push하기

    repo 생성 2. 파이프라인생성 → docker 로 선택 3.이때 node를 선택안하는 이유는 npm 과 같은 node명령어를 실행시킬것이 아닌 docker 이미지 빌드 명령어를 실행 시킬것이므로 node가 아닌 docker를 선택해준다 4.Amazon ecr push를 추가 해준다. 사진과 같이 azure의 파이프라인에서 tasks 를 추가하면 amazon ecr에 다이렉트로 push와 pull을 할수있다. 이때 amazon 계정을 미리 등록을 시켜놔야 하는데, 사진과 같이 미리 IAM에서 만든 AWS계정을 등록시켜 놓으면 된다. - task: Docker@2 displayName: Build an image inputs: command: build #빌드 repository: 'creatable-s..

    [ AWS + Serverless.js ] 3.소스 코딩 1

    이전글들 [ AWS + Serverless.js ] AWS람다 + 서버리스 로 배포하기! 1. serverless 설치 및 AWS연결 https://burning-camp.tistory.com/38 2. 환경설정 https://burning-camp.tistory.com/39 테스트 코드 작성 test/utils/db 디렉토리에 dbmanager.test.js 파일을 만든다. const dbClient = require('serverless-mysql')({ config: { host: 'localhost', user: 'mj', password: 'asdf12', port: 3306, database: 'testdb', }, }) test('DB Connection', () => { expect(typ..

    [ AWS + Serverless.js ] 2. 환경설정

    우선 도커를 이용해서 Mysql 을 설치해주도록 하자. 도커 mysql 링크 이미지를 받은 후 run 해준다. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name minjunKim-mysql -v /Users/minjunKim/datadir:/var/lib/mysql mysql:8.0.17 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 이후 mysql에 접속한뒤에 DB 를 만들어주자 방금 만든 testdb 에 table을 하나 만들어 주자. create table test( id int unsigned auto_increment comment 'ID (PK)' p..