2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net // 1. const fs = require('fs'); let dwarfs = fs.readFileSync('/dev/stdin') .toString() .trim() .split('\n') .map(i => parseInt(i)) .sort((a, b) => a - b); // 2. const over = (dwarfs.reduce((acc, curr) => acc + curr) - 100); // 3. for(let now = 0; now < dwarfs.lengt..
개인 기록용 const puppeteer = require('puppeteer'); const iPhone = puppeteer.devices['iPhone 6']; (async() => { const browser_options = { headless: false }; const browser = await puppeteer.launch(browser_options); const page = await browser.newPage(); await page.emulate(iPhone); await page.goto('https://naver.com'); await browser.close(); })(); 결과
참고 https://pptr.dev/ pptr.dev Troubleshooting | Tools for Web Developers | Google Developers Troubleshooting Guide developers.google.com puppeteer로 크롤링을 연습하던 중 다음과 같은 이슈가 있었다. 1. docker-compose up시 node main.js가 실행되지 않음. 2. 1.을 해결했더니 puppeteer.launch가 동작하지 않음. 3. 2.를 해결했더니 screenshot의 한글이 깨짐. 4. 3.을 해결했더니 screenshot 이미지가 일부만 찍히고 나머지는 하얗게 잘림. 코드 injuk/gt_crawler crawler for guardian tales. Contri..
package.json은 디펜던시(종속성)를 포함한 패키지의 정보를 나타내는 파일이다. npm init을 통해 최초의 package.json을 생성할 수 있다. { "name": "my-crawler", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "ingnoh", "license": "ISC", "dependencies": { "axios": "^0.21.1", "cheerio": "^1.0.0-rc.10", "node-cron": "^3.0.0", "slack-node":..
Dockerfile 간단한 크롤링 코드를 도커 이미지로 만드는 예시이다. #Dockerfile FROM node:14-alpine MAINTAINER ingnoh "ingnoh@tistory.com" WORKDIR /crawler COPY ./package*.json ./ COPY ./crawler.js ./server.js RUN npm install CMD [ "npm", "start" ] FROM: 현재 LTS 버전인 14를 사용하였음. WORKDIR: 컨테이너 내부의 워킹 디렉토리 경로를 /crawler로 명시하였음. COPY (1): npm install을 위해 package.json을 복사하였음. COPY (2): 로컬 PC의 현재 경로에 있는 crawler.js를 컨테이너 내부에 복사할 때 ..
1. Promise 코드 예시 promise[명사] 약속 단어의 의미로 보아, javascript와 무엇인가 약속을 하는 것으로 짐작해볼 수 있다. 우선 다음의 코드 블록을 보자. function getMessage() { return "hello monkey"; } console.log("start"); console.log(getMessage()); console.log("end"); 절차적으로 실행되는 javascript의 특성상 start, hello monkey, end가 순서대로 console에 출력될 것을 어렵지 않게 짐작할 수 있다. getMessage 함수가 Promise 인스턴스를 반환하도록 다음과 같이 수정하여 실행해보자. function getMessage() { return new..
docker 기반 redis 컨테이너 실행 -d: detached 모드로 컨테이너 실행 -p: 외부 접속을 위한 포트 매핑 [~] docker run -d -p 6379:6379 redis:alpine Unable to find image 'redis:alpine' locally alpine: Pulling from library/redis 540db60ca938: Pull complete 29712d301e8c: Pull complete 8173c12df40f: Pull complete a77b7ddf4978: Pull complete 3f34a000c6b3: Pull complete 275dfaedaf41: Pull complete Digest: sha256:f8f0e809a4281714c33edf8..
logback-spring.xml에 ${LOG_PATH}를 사용하고 이를 application.yml 등에서 명시적으로 선언하는 아래의 예시와 같은 경우, /tmp/ingnoh/logs/mylogs/에 ingnoh.log를 생성하는 것을 의도했지만 엉뚱하게도 LOG_PATH_IS_UNDEFINED가 생성된다. # application-local.yml # 생략 logging: path: /tmp/ingnoh/logs/mylogs/ ----- # logback-spring.xml ${LOG_PATH}/ingnoh.log [~] tree -L 1 . ├── Dockerfile ├── LOG_PATH_IS_UNDEFINED
- Total
- Today
- Yesterday
- Docker
- mysql
- AWS
- kotlin
- JPA
- Git
- JEST
- Vault
- postgresql
- 코딩테스트
- AWS IoT
- Database
- Puppeteer
- jQuery
- eureka
- terraform
- etc
- Node.js
- spring boot
- Gradle
- Spring Cloud Config
- pgloader
- react
- Linux
- javascript
- Java
- hashicorp
- shell
- IntelliJ
- dev
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |