Intro Node.js로 작성한 웹 어플리케이션을 간단하게 도커 이미지로 만든 후에 해당 이미지를 도커 허브에 push 해서 어디서나 받아서 사용하는 방법을 알아 보도록 하겠습니다. 1. Node.js 웹 어플리케이션을 도커 이미지로 Node.js App 생성 일단 준비된 Node.js 웹 어플리케이션이 없다면 테스트를 위해 생성 해 줍니다. 준비된 어플리케이션이 따로 있다면 이 과정은 생략 하실 수 있습니다. Node.js 앱을 생성 할 빈 폴더를 생성 한 뒤 해당 폴더에 package.json 파일을 생성 해 줍니다. { "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "First L..
Development/DevOps 32
Intro 부하테스트는 여러명의 사용자가 동시에 어플리케이션에 요청을 보내는 상황을 시뮬레이션 하여 다양한 부하조건에서의 응답을 테스트 하는 과정 입니다. 얼마만큼의 요청을 견딜 수 있는지 테스트 함으로서 병목 구간을 찾아 성능 개선을 하거나 서버를 증설하는 등의 필요한 대응을 할 수 있습니다. 다양한 테스트 툴이 있지만, 사용하기 쉬운 JMeter를 활용해 간단한 테스트를 진행 해 보겠습니다. 설치 Apt-cache로 검색을 해 봤더니 이미 apt 저장소에 있길래 apt를 이용해 설치 해 보았습니다. sudo apt install jmeter https://jmeter.apache.org/download_jmeter.cgi MacOS 유저라면 brew로 설치 하셔도 되고, Apache 홈페이지를 통해 ..
Intro 입사 전 국비학원에서 Oracle Database 교육을 몇주간 짧게 받은게 전부였는데 입사 후에도 맡은 프로젝트들에서 JPA를 사용하다 보니 쿼리를 직접 짤 일이 많지 않았습니다. 데이터베이스 공부를 따로 하려고 했는데 자바 심화과정, 스프링, JPA, 운영체제, 자료구조 및 알고리즘 등 평소 너무나도 공부하고싶었던 것들이 너무나도 많았다보니 자연스레 우선순위에서 밀려 아직까지도 손을 대지 못하고 있습니다. 업무중에 드문 드문 조금이라도 복잡한 쿼리를 짜내야 하는 일이 생길 때 마다 개념은 어렴풋 알고 있어도 정확한 사용법을 모르는 문법이나 함수 등을 매번 검색하다보니 병목이 생기는 구간이라는게 명백해졌습니다. 병목구간을 알면서도 외면하기엔 양심의 가책이 큽니다. 학습도 중요하지만 꾸준히 사..
Intro 프론트엔드와 백엔드의 업무가 점점 더 구분되어가고, MSA가 보편화되고 있는 지금의 추세에서 RESTAPI의 쓰임이 점점 더 많아지고 있습니다. 외부에 공개하는 API 뿐만 아니라 소프트웨어 내부적으로만 사용하는 API라고 해도 어플리케이션이 점점 커질수록 개발자의 기억력에만 의존하기에는 그 규모가 점점 버거워지기 마련입니다. 특히나 API를 공개하거나 개발자간의 협력에서 필요한 상황이 오면 체계화된 읽기 좋은 API Document의 작성은 선택이 아닌 필수입니다. 마침 회사에서 진행중인 프로젝트에도 조금의 여유가 생겨 API Document 정리를 해야할 때가 왔습니다. 여러가지 오픈소스 선택지가 있습니다만 이번에는 Swagger를 선택해서 테스트를 진행 해 보았으며 꽤나 만족스러웠습니다...
Intro 파일들을 주고 받다보면, 사용하고 있는 운영체제와 상관 없이 한글 파일명이 알아볼 수 없게 깨져있는 경우가 종종 있습니다. 특히 인터넷에서 파일을 다운받았을 때 그런 일이 많은데.. 모두 아시는 것 처럼 인코딩 문제 입니다. 파일명이 중요하지 않다면 그냥 한번 열어보고 말면 되지만, 파일명이 중요해서 꼭 알아야 할 때는 굉장히 절망적입니다. 다행인 것은 단방향 암호화처럼 원본 데이터가 손상된게 아닌 단지 인코딩문제로 못 알아보는 것 이기 때문에 다시 디코딩을 해 주면 원래의 파일 명을 알아 낼 수 있습니다. 원인 왠만한 인코딩 문제는 이렇게 못 알아 볼 정도는 아닌데. euc-kr로 인코딩 되어 있는 경우에는 이런 상황이 됩니다. 요즘에는 흔하게 일어나지 않는데, 오래된 소프트웨어를 사용하다 ..