본문 바로가기

분류 전체보기60

[Docker] Container를 로컬(Host)에 설치된 서비스를 기반으로 구동하기 이전 포스팅에서 Tomcat을 예시로 직접 Custom docker image를 빌드하여 컨테이너를 실행하는 과정을 정리했습니다. 본론으로 들어가기에 앞서 이전 포스팅에서 빌드한 Custom docker image를 만드는 과정(Dockerfile에 작성한 command step)을 간단하게 정리해보면 아래와 같은 과정을 거쳐 image를 빌드합니다. 1. openjdk:8-jdk 베이스 이미지 다운로드 2. apt (ubuntu package manager) 업데이트 3. wget 설치 4. Apache Tomcat CDN 서버로부터 Tomcat 설치 압축파일 다운로드 5. 압축 해제 및 디렉토리명 변경 6. 사용할 포트 설정 7. Container Entrypoint 설정 그럼 로컬에 설치된 서비스를.. 2021. 1. 30.
실전 부하테스트 경험 및 후기 (Apache JMeter) 이번 포스팅은 얼마전 진행했던 부하테스트에 관한 이야기를 하고자 합니다. 들어가기에 앞서 실제 부하 테스트 경험이 전무한 상태로 진행하여 놓치거나 실수한 부분이 굉장히 많았습니다. 테스트 환경 CentOS 7 Apache Apache Tomcat 테스트 Tool & Utility Apache JMeter : 부하 발생기 BlazeMeter (Chrome Extenstion) - JMeter Thread Group 시나리오 간편 녹화 기능 Elasticsearch, Logstash, Kibana - Apache access log 실시간 모니터링 용도 Prometheus, Grafana - 시스템 리소스 사용량 모니터링 용도 Node Exporter, JMX Exporter, MySQL Exporter, .. 2020. 11. 26.
[ReactJS] react-router 활용하여 게시글 상세 페이지 구성 및 마무리 (React로 아주 간단한 게시판 만들기 - 4) React는 SPA(Single Page Application) 시스템 구성에 최적화 된 Framework로서 페이지를 이동할 때 일반적인 웹 페이지의 페이지 전환과는 조금 다른 방식으로 구성을 해야됩니다. 혹은 React의 가상 DOM이 최종 Mounting 되는 HTML 페이지를 여러개 만들어 특정 URL을 특정 HTML에 매핑해주고 각 HTML 페이지마다 index Componnet를 구성하는 방법도 있겠으나 간단하게 react-router를 사용하여 URL에 따라 컴포넌트를 각 URL에 해당되는 페이지로 사용될 수 있도록 할 수 있습니다. 이전글 2020/10/29 - [ReactJS] - [ReactJS] useState(), useEffect() 사용하여 데이터 요청 및 관리 (ReactJS로.. 2020. 10. 29.
[ReactJS] React Hook useState(), useEffect() 사용하여 데이터 요청 및 관리 (React로 아주 간단한 게시판 만들기 - 3) 이번장에서는 React의 핵심 기능이라고 할 수 있는 컴포넌트에서 사용되는 useState()와 useEffect()를 활용하여 이전에 게시글 목록 구성에 사용되었던 mock 데이터 구조를 변경하도록 하겠습니다. 우선 해당 포스팅은 React에만 초점이 맞춰져 있기 때문에 별도의 API는 구성하지 않을겁니다. 따라서 통상적으로 이루어지는 useEffect 과정에서의 ajax 요청 대신에 소스상에 게시글 목록 데이터를 가지고 있는 전역변수를 두고 해당 값을 사용하는 방향으로 작성됩니다. 이전글 2020/10/29 - [ReactJS] - [ReactJS] 핵심 Component 만들기 및 게시글 목록 페이지 구성 (ReactJS로 아주 간단한 게시판 만들기 - 2) [ReactJS] 핵심 Component.. 2020. 10. 29.
[ReactJS] 핵심 Component 만들기 및 게시글 목록 페이지 구성 (React로 아주 간단한 게시판 만들기 - 2) 구조화된 React Component 생성 및 게시글 목록 페이지 구성하기 이전글 2020/10/29 - [ReactJS] - [ReactJS] React 프로젝트 생성 및 실행 (ReactJS로 아주 간단한 게시판 만들기 - 1) [ReactJS] React 프로젝트 생성 및 실행 (ReactJS로 아주 간단한 게시판 만들기 - 1) ReactJS로 게시판 만들기입니다. (극도로 단순한 구성 주의) NPM (Node Package Manager) 설치 확인 npm -v 6.14.8 create-react-app 모듈 설치 sudo npm install -g create-react-app create-react-app 을 활용한.. antdev.tistory.com 먼저 사용할 컴포넌트 목록입니다. Po.. 2020. 10. 29.
[ReactJS] React 프로젝트 생성 및 실행 (React로 아주 간단한 게시판 만들기 - 1) ReactJS로 게시판 만들기입니다. (극도로 단순한 구성 주의) NPM (Node Package Manager) 설치 확인 npm -v 6.14.8 create-react-app 모듈 설치 sudo npm install -g create-react-app create-react-app 을 활용한 프로젝트 생성 프로젝트 (디렉토리 명) - react-simple-blog create-react-app react-simple-blog Creating a new React app in /Users/imchaehun/workspace/react/react-simple-blog. Installing packages. This might take a couple of minutes. Installing react.. 2020. 10. 29.
[Spring] @RequestBody를 사용하여 Entity로 변환시 enum 타입 Mapping 재미삼아 Slack Bot을 활용한 API를 개발하면서 작성하는 글이다. 아래의 Controller Method 는 Slack Bot의 Event Receive Endpoint로 만든 메소드이다. 간단하게는 Post 요청을 받아 @RequestBody 어노테이션으로 form data를 EventReceiveMessage로 받는다. @RestController @RequestMapping(value = "/event") public class EventController { @PostMapping(value = "/receive") public void receive( @RequestBody EventReceiveMessage message) { } } 해당 메소드에 다음과 같은 Json 형태의 form .. 2020. 10. 24.
[Docker] Tomcat을 Container로 구동하기 위해 Tomcat Docker Image 만들기 Docker Custom Image는 Dockerfile을 통해 생성할 수 있음 이미지를 만드는 방법은 간단하다. 평소에 로컬에 특정 Platform을 설치하고 구동하는 일련의 과정들을 Dockerfile에 그대로 옮겨주면 된다. 예를들어 평소에 로컬에 Tomcat을 설치하고 운용하는 과정을 간추리면 다음과 같다. 톰캣을 tar.gz 파일로 설치 혹은 apt를 이용하여 설치 톰캣 설정 변경 (Port, Logging, Context Path 등) 이 작업들을 Dockerfile에서 처리할 수 있도록 해주면 된다. 혹은 로컬에 설치된 Tomcat Directory를 Base로 Docker Container로 구동할수도 있는데 이 과정은 추후에 다루도록 할 예정. Dockerfile 작성 작업 디렉토리 이동.. 2020. 10. 23.
[Docker] Ubuntu Linux 18.04 도커(Docker) 설치 및 핵심 명령어 Docker 설치하기 curl -fsSL https://get.docker.com/ | sudo sh 스크립트를 통해 자동으로 설치 프로세스가 진행됨 docker -v Docker version 19.03.9, build 9d988398e7 sudo 권한 없이 사용하기 docker는 기본적으로 root권한이 필요합니다. root가 아닌 사용자가 sudo없이 사용하려면 해당 사용자를 docker그룹에 추가합니다. sudo usermod -aG docker username 핵심 명령어 목록 설치된 이미지 목록 docker images 설치된 이미지 목록 - 특정 이미지만 조회 docker images [image name 또는 image id] 실행중인 컨테이너 목록 docker ps 전체 컨테이너 목록 (.. 2020. 10. 23.
[Jenkins] SSH Jump Host 간단하게 설정과 SSH Proxy (Jenkins SSH Proxy) SSH Jump Host 간단하게 설정하는 방법 회사에서 Jenkins를 관리하면서 마주한 문제가 있었습니다. 우선 서버 인프라가 망분리(dmz, priv) 구조로 구성되어 있고 zone간의 통신은 망연계를 통하여 이루어지고 있습니다. Jenkins는 기본적으로 소스 배포 용도로 하나의 서버에서 기동이 되면서 모든 서버에 SSH/SFTP 접근이 필수로 요구되는 경우가 존재합니다. 그런데 Jenkins가 현재 구성상으로 Direct로 모든 서버에 SSH 접근이 이루어지지 못하는 상황이라 Bridge나 Proxy와 같은 설정이 필요로 하다고 생각했습니다. 아래에 간단하게 정리해놓은 Infra 구성도를 보면서 이어가도록 하겠습니다. 위는 현재 구성된 서버들을 간략하게 시각화 해놓은것입니다. (IP 및 inst.. 2020. 10. 20.