Scouter APM(Application Performance Monitoring)을 이용한 Java 서비스 모니터링

소개 JVM 기반 WAS, OS 모니터링 시스템으로 Opensource APM(Application Performance Monitoring)입니다. APM은 응용 프로그램 성능 모니터링 또는 응용 프로그램 성능 관리를 의미합니다. Scouter는 Server(Collector), Agent, Client(Viewer)로…

Continue Reading Scouter APM(Application Performance Monitoring)을 이용한 Java 서비스 모니터링

aws lambda 개발하기(6) – Multi Endpoint Restful api 개발

람다 함수는 함수 자체만으로는 동작할 수 없습니다. 람다의 실행을 촉발시키는 트리거가 필요합니다. 따라서 람다로 Rest api를 만들기 위해서는 트리거로 aws gateway(이하 gateway)를 설정해 주어야 합니다.…

Continue Reading aws lambda 개발하기(6) – Multi Endpoint Restful api 개발

aws lambda 개발하기(5) – serverless plugin (offline, prune plugin)

이번 장에는 lambda를 좀더 쉽게 개발하고 관리하기 위하여 serverless에서 제공하는 몇가지 plugin을 사용해 보겠습니다. serverless에서 제공하는 plugin은 종류가 엄청나게 많으므로 자세한 내용은 아래 링크에서 확인하시면…

Continue Reading aws lambda 개발하기(5) – serverless plugin (offline, prune plugin)

aws lambda 개발하기(4) – serverless로 트리거(trigger), 대상(destination), 실행역할(role), VPC, 기본 설정

이번 장에는 serverless의 기능을 이용하여 lambda 코드가 동작하기 위해 필요한 환경설정을 자동으로 적용하는 방법에 대하여 실습하겠습니다. lamdba 페이지의 Designer 영역을 통해 트리거와 대상 추가가 가능한데…

Continue Reading aws lambda 개발하기(4) – serverless로 트리거(trigger), 대상(destination), 실행역할(role), VPC, 기본 설정

aws lambda 개발하기(3) – node package(모듈)설치 및 개발, 환경변수 적용

이번장에서는 node.js에 package(이하 모듈)를 설치하고 테스트 코드대신 실제 코드를 넣어보는 실습을 해보겠습니다. 그리고 환경별로 달라지는 변수에 대한 처리를 어떻게 할것인가도 살펴보겠습니다. node 초기화 node에서 여러가지…

Continue Reading aws lambda 개발하기(3) – node package(모듈)설치 및 개발, 환경변수 적용

aws lambda 개발하기(2) – hellolambda, Gateway 트리거

이번시간에는 아주 간단한 lambda를 만들어 보겠습니다. 이전시간에는 로컬에 lambda를 개발하기 위한 환경을 구축하였지만, 사실 브라우저를 통해 aws console에서도 개발이 가능하므로 둘다 진행해 보겠습니다. aws console에서…

Continue Reading aws lambda 개발하기(2) – hellolambda, Gateway 트리거

aws lambda 개발하기(1) – 로컬 개발 환경 구축(node.js + serverless)

AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. 일반적으로는 개발 코드가 실행되는 서버 환경의 구축이 필요한데 lambda로 개발하면 실행할 서버에 대해서는…

Continue Reading aws lambda 개발하기(1) – 로컬 개발 환경 구축(node.js + serverless)

Ansible을 이용한 시스템 구성관리(4) – wordpress (nginx+mariadb+php) 설치 자동화

이전 장에서 실습한 nginx, mariadb 설치 내용을 기반으로 하여 php를 추가로 설치하고 wordpress를 구축하는 실습을 해보겠습니다. 이 실습을 통하여 총 4개의 task가 순차적으로 실행되어 wordpress…

Continue Reading Ansible을 이용한 시스템 구성관리(4) – wordpress (nginx+mariadb+php) 설치 자동화

Ansible을 이용한 시스템 구성관리(3) – ansible로 mysql(mariadb) 설치 자동화

이번장에서는 ansible을 이용하여 centos7기반에 database 설치를 자동화 해보겠습니다. centos7부터는 기본 database가 mariadb로 변경되었습니다. 따라서 yum install mysql 명령을 통해 database를 설치해도 mariadb가 설치됩니다. 사용자 입장에서는…

Continue Reading Ansible을 이용한 시스템 구성관리(3) – ansible로 mysql(mariadb) 설치 자동화

Ansible을 이용한 시스템 구성관리(2) – ansible로 nginx 설치 – roles, handler, template, vars

이번장에는 ansible playbook을 작성하여 nginx를 구축하고 role을 이용하여 playbook 구조를 개선해 보겠습니다. 아래 이미지는 ansible server의 hosts파일에 정의된 [webserver] inventory를 읽어 nginx 애플리케이션을 설치하는 과정을…

Continue Reading Ansible을 이용한 시스템 구성관리(2) – ansible로 nginx 설치 – roles, handler, template, vars

Ansible을 이용한 시스템 구성관리(1) – Vagrant를 이용한 테스트 가상환경 만들기

Ansible이란? Ansible은 Devops도구로서 IT인프라를 쉽게 관리하기 위한 도구입니다. 코드로서 인프라를 구축하기 때문에 infrastructure as code라고 불리기도 합니다. 시스템 구성시 다양한 애플리케이션을 환경에 맞게 설치하고 관리해야…

Continue Reading Ansible을 이용한 시스템 구성관리(1) – Vagrant를 이용한 테스트 가상환경 만들기

Spring Rest api + Angular framework로 웹사이트 만들기(6) – 개선사항 적용 (loading spinner)

이번 장에는 페이지가 완전히 로딩되기전에 보여지는 로딩 스피너를 웹화면에 적용해 보겠습니다. 현재까지 개발된 화면들은 모두 가벼운 로직으로 이루어진 화면들이라 빠르게 로딩되지만 무거운 로직이 필요한 화면이나,…

Continue Reading Spring Rest api + Angular framework로 웹사이트 만들기(6) – 개선사항 적용 (loading spinner)

Spring Rest api + Angular framework로 웹사이트 만들기(5) – 개선사항 적용 (custom alert/confirm dialog, resolve, 404page)

이번장에서는 지금까지 개발한 내용에 대해서 개선사항을 적용해 보겠습니다. 첫번째로 현재 사용중인 시스템 alert 및 confirm 다이얼로그를 Material Dialog를 이용하여 커스텀 모달 다이얼로그로 변경해 보겠습니다. 두번째로는…

Continue Reading Spring Rest api + Angular framework로 웹사이트 만들기(5) – 개선사항 적용 (custom alert/confirm dialog, resolve, 404page)

Spring Rest api + Angular framework로 웹사이트 만들기(4) – 게시판(CRUD)

이번장에서는 Angular로 간단한 게시판을 만들어봄으로써 CRUD(Create/Read/Update/Delete) 실습을 해보겠습니다. 게시판의 기능은 총 4가지로 구성되며 각각 게시글 조회, 게시글 쓰기, 게시글 수정, 게시글 삭제로 이루어지며 하나씩 구현해보겠습니다.…

Continue Reading Spring Rest api + Angular framework로 웹사이트 만들기(4) – 게시판(CRUD)

Spring Rest api + Angular framework로 웹사이트 만들기(3) – 내정보(Interceptor, Router Guard)

이번 장에서는 로그인한 회원의 정보를 표시하는 내정보 화면을 구현해 보겠습니다. Interceptor를 이용하여 인증이 필요한 API의 Http Header 세팅을 공통화하고, 인증(로그인)이 필요한 페이지에 대한 접근을 처리하는…

Continue Reading Spring Rest api + Angular framework로 웹사이트 만들기(3) – 내정보(Interceptor, Router Guard)

Spring Rest api + Angular framework로 웹사이트 만들기(2) – 로그인/가입(HttpClient, Proxy, Validation)

이번 장에서는 가입과 로그인 기능을 추가하여 Rest API와 연동하는 방법을 실습하겠습니다. 이번 실습 부터는 리소스를 제공할 rest api가 필요하므로 아래 내용을 참고하여 서버를 띄우고 실습하겠습니다.…

Continue Reading Spring Rest api + Angular framework로 웹사이트 만들기(2) – 로그인/가입(HttpClient, Proxy, Validation)

Spring Rest api + Angular framework로 웹사이트 만들기(1) – 프로젝트 구성 및 반응형 레이아웃 구현

Angular 프레임워크를 이용하여 Front 웹사이트를 만드는 실습을 해보겠습니다. Angular는 Front 웹을 만드는 프레임워크 이므로 데이터와 비즈니스 로직을 적용하려면 리소스를 제공하는 API서버가 따로 필요합니다. 리소스를 제공할…

Continue Reading Spring Rest api + Angular framework로 웹사이트 만들기(1) – 프로젝트 구성 및 반응형 레이아웃 구현

Spring websocket chatting server(6) – Nginx+Certbot 무료 SSL인증서로 WSS(Websocket Secure) 구축하기

이번 장에서는 지금까지 만든 웹소켓 채팅 서버를 실제 서버에 올려보고 SSL을 적용하는 실습을 진행해보겠습니다. 실습 내용은 다음과 같습니다. 서버에서 Executable Jar로 Websocket 채팅서버를 실행CertBot을 설치하여 무료 SSL 인증서 발급Nginx의 ReverseProxy를 이용한 WSS( WebsocketSecure ) 구축 실습 환경 Instance - AWS Freetier…

Continue Reading Spring websocket chatting server(6) – Nginx+Certbot 무료 SSL인증서로 WSS(Websocket Secure) 구축하기

Spring websocket chatting server(5) – 채팅방 입장/퇴장 이벤트 처리, 인원수 표시

이번 장에서는 채팅방의 기능을 좀 더 고도화하는 실습을 진행하겠습니다. 기존 채팅방에서는 메시지 전달이 무조건 클라이언트에서 서버 측으로 전달된 후에 처리되었는데요. 이번에는 서버에서 처리할 수 있는 메시지와 클라이언트에서 처리할 수 있는 메시지를 구분하여 좀 더 효율적으로 프로세스를 개선해 보겠습니다. 그리고 채팅방 입장 시 클라이언트의 숫자를 표시할 수 있도록 기능을 추가해보겠습니다.  채팅방 입장/퇴장시 알림 메시지를 서버에서 처리하도록 개선채팅방 입장/퇴장시 인원수 표시 채팅 메시지는 현재 ENTER(입장), TALK(대화) 두 가지 타입을 가지고 있습니다. 여기에 QUIT(퇴장)을 추가하여 총 3가지 타입을 사용하도록 합니다. 그리고 채팅방에 메시지가 전달될 때 인원수 정보도 포함되도록 하여 실시간으로 인원수가 갱신되도록 합니다.  채팅방 인원수의 갱신은 입장, 퇴장 이벤트에 한 번씩만 갱신해도 됩니다. 다만 채팅방에 입장한 모든 클라이언트가 입장, 퇴장 이벤트를 수신 못하는 경우를 대비하여 비효율적이긴 하지만 메시지가 수신될 때마다 갱신하도록 처리하겠습니다. ChatMessage…

Continue Reading Spring websocket chatting server(5) – 채팅방 입장/퇴장 이벤트 처리, 인원수 표시

Spring websocket chatting server(4) – SpringSecurity + Jwt를 적용하여 보안강화하기

이번 장에서는 SpringSecurity와 Jwt를 이용하여 Web 및 Websocket의 보안을 좀 더 강화하고. 기존의 복잡한 로직을 간소화하는 작업을 진행해 보겠습니다. 크게 아래의 3가지 작업을 진행하겠습니다.  SpringSecurity를 통한 로그인 및 간단한 회원 정보 연동Jwt Token을 이용하여 websocket 통신 보안 강화Redis Topic 공유를 통한 메시지 전송 프로세스 간소화 간단하게 요약하면 채팅과 관련된 웹페이지의 접근권한은 SpringSecurity를 통해 통제합니다. 즉 로그인한 회원만 채팅 화면에 접근 가능하도록 처리합니다. 그리고 WebSocket 연결 및 메시지 전송은 Jwt 토큰을 통해 통제합니다. Websocket 접속이나 메시지 전송 시엔 헤더에 유효한 Jwt Token을 보내야 하며, 유효하지 않은 token에 대해서는 요청 내용을 처리하지 않습니다. …

Continue Reading Spring websocket chatting server(4) – SpringSecurity + Jwt를 적용하여 보안강화하기