일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring Batch
- 웹해킹
- 프로그래머스
- Batch
- programmers
- 파이썬
- cloud run
- hackctf
- docker
- 백준
- nodejs
- sequelize
- 회고
- 웹보안
- kotest
- gcp
- Baekjoon
- 네트워크
- pwnable.xyz
- 보안
- 포너블
- 시스템 해킹
- 리버싱
- gcp cloud build
- gcp ci/cd
- 스프링 배치
- Python
- 사이버보안
- node.js
- webhacking.kr
목록전체 글 (112)
uju's Tech
지금까지 Node.js를 기반으로 개발을 진행할 때 항상 Post man으로 Api 응답을 하나하나 확인했었다. 테스트 코드를 사용하면 이와 같은 반복적인 행위를 줄여주고 빠른 오류와 버그 확인이 가능하다. 제일 중요한 부분이라고 생각했던 것은 리팩토링의 기초가 된다는 점이었다. MOCHA를 찾아보니 Node.js의 test 프레임워크로 가장 많이 사용되는 테스트 도구라는 것을 알게되었다. MOCHA를 설치하고 간단하게 코드를 작성해보도록 하겠다. https://mochajs.org/ Mocha - the fun, simple, flexible JavaScript test framework Mocha is a feature-rich JavaScript test framework running on Nod..
개발을 진행할 때 항상 mysql 을 연동하게 진행하다가 최근 aws 과금이 되어버린 경험으로 인해 sqlite3을 이용하여 로컬 db를 생성했다. brew instll sqlite3 을 통해 sqlite3을 설치한다. 위의 사진과 같이 memeber이라는 table을 생성해주고 data를 insert 해주었다. var router = express.Router(); const path = require('path'); const dbPath = path.resolve(__dirname, 'test.db'); var db = new sqlite3.Database(dbPath,(err)=>{ if(err){ console.log(err); }else{ console.log('success'); } }); ..
json객체의 반환 값을 살펴보면 { "status": 200, "success": true, "message": "조회 성공", "data": [ { ... } ] } 이러한 형태로 반환 됨을 확인할 수 있다. 조회를 한다고 가정해보면 "data" 내부에 조회한 데이터의 객체가 들어오게된다. 근데 이러한 형식이 아닌 아래와 같이 데이터 객체의 내용만 반환하고 싶다. { .... 데이터 ..... } 방법은 매우 간단하다. (매우 간단한데 엄청 애먹었다. ,,,:(... .. 구글링해도 별로 안나오고.. 그래서 포스팅한다.._) Tags.readAll() .then(({ code, json, }) => res.status(code).send(json.data)) json 으로 response 하던 것을 ..
1. sudo apt install xinetd telnetd 2. vi /etc/xinetd.conf 기존에 작성되어 있는 것을 살펴보겠다. 여기서 추가로 아래의 사진 처럼 작성해준다. 3. /etc/init.d/xinetd restart 위 와 같은 단계를 거치면 텔넷 서버 구성이 완료 되었다.
1. ESLint global로 설치 sudo npm install -g eslint 2. sudo npm install --save-dev eslint 3. ./node_modules/.bin/eslint --init 4. 3을 실행하면 질문이 나오면서 선택을 해야한다. 필자는 아래 그림과 같이 설정하 였다. 5. 적용된 모습은 아래와 같다. 6. arbinb 적용 module.exports = { env: { browser: true, es2020: true, }, extends: 'airbnb-base', parserOptions: { ecmaVersion: 11, sourceType: 'module', }, rules: { }, };
1.Python 버전 확인 3.x.x ~ 로 설치 후 버전 확인 2.가상환경 실행 Python3 -m venv 생성하려는가상머신 이름 -> 맥의 경우python3 이라고 명시 필요. 3.가상환경으로의 접속 Source ~ 4.접속후 (myvenv) 가 앞에 있는 것을 확인 - 접속 5.Django 설치 6.설치된 Django 버전 확인 7.가상환경 종료하기
먼저 Batch의 사전적 의미는 무엇일까? => 일괄처리 단점을 생각해봐도 잘 모르겠어서 서칭해보았는데 서칭 결과 데이터를 얻는데 오랜 시간이 걸린다? 였었다. 음... 개인적으로는 잘 동감이 안된다. 수 많은 데이터를 사람이 하기에는 너무 비효율적이니 Batch 프로그램을 하는 것이라고 생각하는데 사람이 하는것보다는 훨씬 적게걸리니 단점이라고 말할 수 있을까? (개인적인 생각..) 좀 더 쉽게 이해해보자! 우리가 흔히 듣는 뮤직 앱의 구독 서비스를 예로 들 수 있을 것 같다. 매일매일 수 많은 사람들을 하나하나 구독 갱신을 해줘야 한다고 생각을 해보면 그 만큼 노가다인 일도 없을 것 같다 .. 이러한 경우 매일 Batch를 실행해서 그 날 갱신해야할 사람들을 찾아서 자동으로 구독 갱신을 해주고 있다. ..
개발 중에 기존에 static final로 선언해두었던 JobName과 StepName 변수를 동적으로 할당하고 싶은 경우가 발생하였다. 다른 서비스에서도 해당 클래스를 활용할 수 있도록 확장성을 높이기 위해 static final로 지정되어있던 것을 들어오는 파라미터에 따라서 동적으로 사용해 줄 수 있도록 개발하고 싶었다. 일단 개발하고 있는 것이 Batch라는 것을 생각해본다면 우리는 Job을 가지고있고 그에 따른 JobExecution 또한 가지고있다. JobExecution은 많은 정보를 담고있다. JobInstance, 배치 실행 상태, 시작 시간등 다양한 정보등을 담고있습니다. JobInstance를 보면 jobname 정보를 담고있음을 확인할 수 있다. 그렇다면 StepName은 어떻게 알 ..