SpringBoot Popular

SpringBoot2로 Rest api 만들기(8) – SpringSecurity 를 이용한 인증 및 권한부여

이번 시간에는 SpringSecurity를 이용하여 api 서버의 사용 권한을 제한하는 방법에 대해 알아보도록 하겠습니다. 지금까지 개발한 api는 권한 부여 기능이 없어 누구나 회원 정보를 조회,...

KUBERNETES + DOCKER

Docker로 빠르게 개발환경 구성하기(mysql, redis, rabbitmq, mongoDB)

이번 시간에는 docker를 이용하여 로컬PC에 개발환경을 빠르게 구성하는 방법에 대하여 실습하겠습니다. 일반적인 웹서비스 구축시 DB로는 Mysql, MongoDB를 캐시 서버로는 Redis를 그리고 메시지큐로는 RabbitMQ를...

EKS에 ALB 적용하여 서비스 노출하기(Ingress Application Loadbalancer)

EKS에서 ALB를 이용하고싶은 경우 alb-ingress-controller을 배포한 뒤, Ingress를 통해 사용할 alb에 대한 rule을 설정을 해주어야합니다.Ingress는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출합니다. 트래픽 라우팅은 Ingress 리소스에...

EKS Cluster에 Docker Image 배포하기

kubernetes cluster를 구동시키면 그 위에 컨테이너화된 애플리케이션을 배포할 수 있습니다. kubectl 명령으로 ECR에 업로드된 Docker Image를 Cluster node에 배포하는 절차를 실습해보겠습니다. namespace 생성 k8s(kubernetes)에서는 오브젝트들을 논리적으로...

SPRING OAUTH2

Spring Boot Oauth2 – AuthorizationServer

Spring 프레임웍에서 제공하는 Oauth2 프로젝트를 이용하여 Oauth Authorization Server를 구축해 보겠습니다. Oauth Authorization은 클라이언트가 서비스 제공자로부터 회원 리소스를 제공받기 위해 인증 및 권한 부여를...

Spring Boot Oauth2 – AuthorizationServer : DB처리, JWT 토큰 방식 적용

앞 장에서는 테스트를 위해 메모리에 정보를 올려놓고 테스트하였으나, 이번에는 DB를 사용해 처리할 수 있도록 개선해 보겠습니다. 최신 소스는 아래 GitHub 주소를 참고해 주세요. https://github.com/codej99/SpringOauth2AuthorizationServer.git 클라이언트...

Spring Boot Oauth2 – ResourceServer

이번 장에서는 Spring Oauth2를 이용한 ResourceServer(api서버) 구축을 실습해보겠습니다. 이전 장에서 만든 AuthorizationServer와 연동하여 실습은 진행됩니다. 실습은 bearer 토큰 방식부터 진행합니다. 최신 소스는 아래 GitHub...

Lambda

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

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

SPRING CLOUD

Spring Cloud MSA(1) – Configuration server 구성

과거에 분산시스템이란 개인이 접근할 수 없는 전문적인 분야로, 복잡하고 정교한 시스템으로 구성되어 있어 개인 개발자 혼자 구축하거나 운영할 수 없는 영역이었습니다. 그러나 Spring Cloud가...

Spring Cloud MSA(2) – Gateway(Routing & Filter) Server by Netflix zuul

이번장에서는 Spring Cloud를 이용하여 Gateway(Routing & Filter)서버를 구축해 보도록 하겠습니다. SpringCloud에서 Gateway는 서로 분산되어있는 서비스들을 하나로 모아주는 관문같은 역할입니다. 기존의 로드밸런서, 리버스 프락시 기존의 리버스...

Spring Cloud MSA(3) – Service Discovery by Eureka

monolithic 아키텍쳐로 이루어진 시스템은 자원을 동적으로 할당하거나 해제하는 일이 빈번한 환경에서 유연하게 대처하기가 어렵습니다. 예를 들면 로드 밸런싱을 하거나 장애 복구 등이 빈번한 환경을 구축하려면 가용한 서비스 인스턴스에 대한 정보(host, port)를 누군가가 관리하고, 해당 정보를 동적으로 제공할 수 있어야 합니다. 그런데 monolithic 시스템은 처음부터 그러한 점을 고려하여 설계된 시스템이 아니기...

Websoket

Spring websocket chatting server(1) – basic websocket server

Spring에서 제공하는 Websocket을 이용하여 간단한 채팅 서버를 구현해 보도록 하겠습니다. 일반적인 http통신을 하는 서버들과 달리 채팅 서버는 socket통신을 하는 서버가 필요합니다. 통상적으로 http통신은 Client의 요청이 있을 때만 서버가 응답하고 연결을 종료하는 단방향 통신입니다. 따라서 클라이언트가 서버에 접속해 콘텐츠를 요청하고 결과를 받아 소비하는 구조의 서비스에서 많이 사용됩니다. 그에 반해 socket통신은 Server와 Client가 지속적으로 연결을 유지하고 양방향으로 통신을 하는 방식입니다. 주로 채팅 같은 실시간성을 요구하는 서비스에서 많이 사용됩니다.  Websocket Websocket은 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜입니다. 일반 socket통신과 달리 HTTP 80 Port를 이용하므로 방화벽에 제약이 없으며 통상 Websocket으로 불립니다. 접속까지는 HTTP 프로토콜을 이용하고 그 이후의 통신은 자체적인 Websocket 프로토콜로 통신하게 됩니다. Springboot Websocket 서버 구축 다음과 같이 Websocket서버를 구축합니다. 일반적인 boot구성과 별다를 게 없으므로 쉽게 구축 가능합니다. 신규 프로젝트를 초기 구성하는데 어려움이 있다면...

Spring websocket chatting server(2) – Stomp로 채팅서버 고도화하기

이전 장에서 websocket을 통하여 간단한 서버/클라이언트 통신을 구현해 보았습니다. 메시징 방식을 잘 정의한다면 websocket만으로도 충분히 좋은 서버/클라이언트 소켓 서버를 완성할 수 있습니다. 하지만 단순한 통신 구조로 인해 Websocket만을 이용해 채팅을 구현하면 해당 메시지가 어떤 요청인지, 어떻게 처리해야 되는지에 따라 채팅룸과 세션을 일일이 구현하고 메시지 발송 부분을 관리하는 추가 코드를 구현해 줘야 합니다.  이번 장에서는 Websocket의 프로세스를 좀 더 고도화하고 메시징에 좀 더 최적화된 방식을 구현하기 위해 Stomp를 적용해 보겠습니다. Stomp Stomp는 메시징 전송을 효율적으로 하기 위해 나온 프로토콜이며 기본적으로 pub/sub 구조로 되어있어 메시지를 발송하고, 메시지를 받아 처리하는 부분이 확실히 정해져 있기 때문에 개발하는 입장에서 명확하게 인지하고 개발할 수 있는 이점이 있습니다. 또한 Stomp를 이용하면 통신 메시지의 헤더에 값을 세팅할 수 있어 헤더 값을 기반으로 통신 시 인증처리를 구현하는 것도 가능합니다. pub/sub란 메시지를 공급하는 주체와 소비하는 주체를 분리하여 제공하는 메시징 방법입니다. 기본적인 콘셉트를 예로 들면 우체통(topic)이 있으면 집배원(publisher)이 신문을 우체통에 배달하는 액션이 있고, 우체통에 신문이 배달되는 것을 기다렸다가 빼서 보는 구독자(subscriber)의 액션이 있습니다. 여기서 구독자는 여러명이 될 수 있습니다. pub/sub 콘셉트를 채팅룸에 대입하면 다음과 같습니다.  채팅방을 생성한다 - pub/sub 구현을 위한 Topic이 하나...

Spring websocket chatting server(3) – 여러대의 채팅서버간에 메시지 공유하기 by Redis pub/sub

앞 장에서 실습을 통해 채팅을 구현해 보았습니다. websocket과 Stomp를 이용한 구현만으로도 채팅의 기본 기능은 충분히 구현할 수 있는 것을 확인할 수 있었습니다. 하지만 서비스에 사용하려면 좀 더 쓸만하게 변경이 필요합니다. 앞장에서 만든 채팅 서비스는 몇 가지 문제가 있습니다.  서버를 재시작 할때마다 채팅방 정보들이 리셋됨 채팅방의 메인 저장소가 없으므로 서버의 메모리에 적재된 채팅방은 서버를 재시작할 때마다 초기화되는 이슈가 있습니다. DB를 이용하거나 다른 저장소를 이용하여 채팅방이 계속 유지되도록 처리가 필요합니다. 여기서는 Redis를 저장소로 이용해 보겠습니다.  채팅서버가 여러대이면 서버간 채팅방을 공유할수가 없음 현재는 채팅방을 websocket과 Stomp pub/sub를 이용하여 구현하였습니다. 그런데 이러한 구조는 pub/sub가 발생한 서버 내에서만 메시지를 주고받는 것이 가능합니다. 즉 구독 대상인 채팅방(topic)이 생성된 서버 안에서만 유효하므로 다른 서버로 접속한 클라이언트는 해당 채팅방이 보이지도 않고, 채팅방(topic) 구독도 불가능합니다. 즉 구독 대상(채팅방 : topic)이 여러 서버에서 접근할 수 있도록 개선이 필요합니다. 요구조건을 해결하려면 공통으로 사용할 수 있는 pub/sub 시스템을 구축하고 모든 서버들이 해당 시스템을 통하여 pub/sub 메시지를...

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에 대해서는 요청 내용을 처리하지 않습니다.  SpringSecurity 및 Jwt토큰을 적용하여도 서비스에 사용하기에는 보안이 취약합니다. 서비스에서 사용하기 위해서는 위 내용은 기본으로 적용하고 서버에 HTTPS(SSL) 프로토콜을 적용하여 요청과 응답 데이터가 네트워크 단에서 암호화되도록 하는 것을 추천합니다. 추가로 가능하다면 서버-클라이언트 간에 주고받는 메시지 자체를 암호화하는...

Most Popular

Redis – cluster

Redis single instance 구성에 이어 cluster를 구성하는 방법을 실습해 보겠습니다. Cluster란 각기 다른 서버를 하나로 묶어 하나의 시스템처럼 동작하게 함으로써 클라이언트에게 고가용성을 제공하는 것을 말합니다....

Clean architecture 1부 – Intro

저자소개 로버트C 마틴 “밥 아저씨(Uncle Bob)”로 불리기도 한다. 1970년부터 프로그래머로 활동했다. 전 세계 콘퍼런스에서 호평받는 연사이며, 《클린 코드》, 《UML 실전에서는 이것만 쓴다》, 《클린 코더》, 《클린 소프트웨어》의...

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

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

RECENT COMMENT

REDIS

Redis – install

Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 in-memory 데이터 구조 저장소입니다. string, hashes, lists, sets, sorted sets 데이터 구조를 지원하며. pub/sub를 통한...

Redis – Reactive redis

이번 장에서는 Spring2.0의 주요 feature중 하나인 reactor(reactive)가 spring-data-redis에 어떻게 적용되어 있는지 실습을 통해 확인해 보겠습니다. redis에서 reactive를 사용하면 대용량의 요청을 처리할때 non block으로 처리하므로...

Performance Training

Gatling을 이용한 웹 애플리케이션 부하 테스트(2) – Scala로 테스트 코드 작성하기

이전에 실습한 Gatling 웹페이지 부하 테스트에 이어 이번장에서는 Scala로 작성한 테스트 코드로 Rest API 서버에 부하를 주는 테스트를 진행해보겠습니다. 일단 테스트할 Rest API가 필요하므로...

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

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

Gatling을 이용한 웹 애플리케이션 부하 테스트(1) – 환경 구축 및 Recorder를 이용한 테스트코드 생성

개요 Gatling은 부하 테스트(Load Test)를 통해 웹 서버의 성능을 체크하는 OpenSource Solution입니다. 웹 사이트나 Rest API 등 HTTP 기반 서비스의 성능을 테스트하기 위해 사용되며 실제...

소나큐브(Sonarqube)를 통한 코드 분석 및 코드 품질 향상

소나큐브는 지속적으로 코드의 품질을 높이고 유지 보수하는데 도움을 주는 정적 분석 애플리케이션입니다. 분석 기능이 탁월하고 개선사항도 자세하게 안내해 줍니다. 간단하게는 코딩 컨벤션부터 코드의 잠재적인 위험 사항까지 안내해주어 올바른 코딩 습관과 코드의 품질향상에 많은 도움을 줍니다. Sonarqube features Linux, Window, Mac 등 다양한 환경에서 모두 구동이 가능합니다. 20개가 넘는 프로그램 언어에 대한 코드 분석을 지원합니다. 개발된 코드의 품질을 어드민을 통해 확인해 볼 수 있고 지속적으로 관리가 가능합니다. 품질 게이트를 통해 표준화된 코드 품질 요구사항을 설정할 수 있습니다. Jenkins 같은 CI엔진과 통합되어 분석이 가능합니다. IDE와 연동되는 다수의 Plugin을 통해 분석이 가능합니다.  다운로드 및 설치 https://www.sonarqube.org/downloads/ 에서 다운로드하고 압축을 해제합니다. 소나큐브 서버 실행 실습은 윈도우 환경하에서 진행합니다. 서버 실행 후에는 어떤 플랫폼이든 사용에 별 다른 점은...

WORDPRESS

WordPress Plugin Review & Recommend(추천)

근 일 년간 워드프레스를 운영해 오면서 여러 가지 plugin들을 지우고 깔기를 꽤 많이 했었다. 처음에는 이것저것 관심 있는 것들은 다 설치해보았었는 데 사용하지 않는 plugin이 넘치고 사이트 퍼포먼스에도 영향을 줄 수 있어 필요 없는 plugin은 조금씩 정리를 하게 되었다. 이제 어느 정도 사이트도 안정화되었고 plugin의 변화도 거의 없는 상태다. 그래서 쭈욱 사용하고 있는 살아남은 Wordpress plugin에 대해 정리를 해보려고 한다. Excellent!! = 매우 만족 (★★★★★) Disqus for WordPress Disqus는 블로그 등에 필요한 댓글 시스템을 전문으로 제공하는 업체로서 Disqus가 회사명이자 댓글 시스템의 이름이다. Disqus plugin을 이용하면 워드프레스에서 제공하는 기본 댓글 시스템을 교체할 수 있다. 워드프레스에서 제공하는 기본 댓글 시스템은 일단 디자인이 구닥다리이며 대 댓글에 대한 지원도 미미하고 알림 기능이 없어 누가 댓글을 남기더라도 빨리 알기가 힘들다. 기능 자체가 심플해서 블로그에 댓글을 남긴다 정도의 의미만 있었다. Disqus는 나처럼 개발 관련 내용을 제공하는 사이트에서 댓글로 소통을 해야 하는 경우 유용하게 사용할 수 있다. Disqus는... Design x UX가 훌륭하다. 대 댓글을 제공한다.댓글이 달리면 메일로 알려줘 바로 대응이 가능하다. 댓글에 대한 승인기능, 댓글이 달린 포스트에 대한 추천 기능, 리액션 기능을 제공한다. 댓글 통계(analytics), 입력단어...

WordPress에 Google Login 추가하기(NextEnd Social Login plugin)

Google Login을 WordPress에 설정하는 방법을 진행하겠습니다.아래 링크 내용 중 0. 선결 과제에 해당하는 내용은 중복되는 내용이라 따로 진행하지 않습니다. 워드 프레스 사이트가 https를 지원하지...

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

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

JAVA

OpenJdk 설치, 삭제, 업데이트

Oracle에서 Java를 유료화 하면서 상업적인 목적의 서버에 Java를 설치하고 사용할 경우 주의해야 합니다. 로컬 PC에서의 개발은 oracle, openjdk 상관없이 사용해도 문제가 없지만, 서버 환경에서의...

SpringBoot2로 Rest api 만들기(5) – API 인터페이스 및 결과 데이터 구조 설계

이번 시간엔 api 서버 개발을 본격적으로 진행해 보기 위해 현재 api 인터페이스 및 결과 데이터의 구조를 살펴보고 확장 가능한 형태로 설계해 보겠습니다. api는 제공...

Java Collections – List, Map, Set, Tree, Stack, Queue, Deque

Java에서 데이터의 목록을 저장하는 자료구조인 Collections에 대하여 알아봅니다. Collection에 속해있는 다양한 자료구조를 살펴보고 특징 및 사용법에 대하여 실습해 보겠습니다. List Collection 다수의 데이터(객체)를 순서대로 저장하는 자료구조.저장...

SpringBoot2로 Rest api 만들기(7) – MessageSource를 이용한 Exception 처리

이번 시간에는 Spring에서 메시지를 처리하는 방법에 대해 알아보고, MessageSource를 이용하여 Exception Message를 고도화해 보도록 하겠습니다. Spring에서는 다국어를 처리하기 위해 i18n 세팅을 지원하고 있습니다. i18n이 무엇인가...

Angular

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

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

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

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

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

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

Angular2 정리(3) – 컴포넌트간 데이터 전달( @Input, @Output, Observable )

Angular는 화면을 구성하는 최소 단위가 컴포넌트입니다. 클라이언트에게 보이는 최종 화면은 하나의 html로 보이지만, 내부적으로는 여러 개의 컴포넌트들로 이루어져 있을 수 있습니다. 따라서 컴포넌트 간에 데이터를 교환해야 하는 이슈가 발생할 수 있습니다.  이번 장에서는 컴포넌트간에 데이터를 교환하는 방법에 대해 알아보겠습니다. 부모 -> 자식 컴포넌트로의 데이터 전달 parent, child 컴포넌트 2개를 생성합니다. $ ng g c...

DEVOPS

thumbor+varnish를 이용한 이미지 처리 서버(thumbnail server) 구축

이번 장에서는 서비스 구축시 클라이언트에게 최적의 이미지를 제공하기 위해 필요한 이미지 처리서버를 구축해 보겠습니다. 현대의 서비스들은 웹, 모바일 웹, android, ios등 다양한 다양한 플랫폼으로...

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

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

Gatling을 이용한 웹 애플리케이션 부하 테스트(2) – Scala로 테스트 코드 작성하기

이전에 실습한 Gatling 웹페이지 부하 테스트에 이어 이번장에서는 Scala로 작성한 테스트 코드로 Rest API 서버에 부하를 주는 테스트를 진행해보겠습니다. 일단 테스트할 Rest API가 필요하므로...

Gatling을 이용한 웹 애플리케이션 부하 테스트(1) – 환경 구축 및 Recorder를 이용한 테스트코드 생성

개요 Gatling은 부하 테스트(Load Test)를 통해 웹 서버의 성능을 체크하는 OpenSource Solution입니다. 웹 사이트나 Rest API 등 HTTP 기반 서비스의 성능을 테스트하기 위해 사용되며 실제...

LATEST ARTICLES

AuroraDB Migration – Using Kafka as a target for Database Migration Service

AuroraDB(mysql)의 binary log(binlog)를 이용하면 database의 변경사항을 다른 시스템으로 쉽게 이관할 수 있습니다. binlog란 mysql에서 제공하는 데이터의 변경 event를 저장하는 로그 파일을 의미합니다. 데이터에 대한...

AWS App Mesh

AWS App Mesh AWS App Mesh는 애플리케이션 수준의 네트워킹을 통해 서비스가 여러 유형의 컴퓨팅 인프라에서 서로 원활하게 통신할 수 있게 지원하는 서비스입니다. App Mesh는 서비스의...

Istio Service Mesh

Istio Istio는 서비스 메시 분야에서 오랫동안 주요 역할을 해온 Opensource Solution으로서 기존 분산 애플리케이션 계층에 투명성을 제공하는 완전한 오픈 소스 서비스 메시입니다. Istio를 사용하면 서비스에...

서비스 메시(Service Mesh)

서비스 메시(Service Mesh)란? 서비스 메시는 서비스 간의 통신을 제어하고 표시하고 관리할 수 있도록 하는 데 특화된 마이크로 서비스를 위한 인프라 계층입니다. 기존의 서비스 아키텍처에서의 호출이...

Relational algebra – SQL Interpreter by Antlr

ANTLR Antlr( ANother Tool for Language Recognition : 언어 인식을 위한 또 다른 도구?)은 구조화된 텍스트 또는 이진 파일을 읽고, 처리하고, 실행하거나 번역하기 위한 강력한...

Relational algebra – 관계대수

Relational Algebra(관계대수) IBM의 에드가 F. Codd에 의해 처음 만들어진 관계형 대수학은 관계형 데이터베이스에 저장된 데이터를 모델링하고 쿼리를 정의하는 데 사용되는 수학적인 기호들로부터 만들어진 프로그래밍 언어의...

aws lambda 개발하기(8) – Asynchronous Tasks by SQS(Simple Queue Service)

이번 시간에는 AWS SQS와 Lambda 함수를 이용하여 작업을 비동기로 처리하는 방법에 대해 실습해 보겠습니다. SQS란 AWS에서 제공하는 Simple Queue Service의 약자입니다. Queue(메시지 대기열)는 아래...

Spring Boot – Intellij Gradle Multi module

이번 시간에는 Spring 프로젝트를 모듈로 변경하는 방법에 대하여 실습하겠습니다. 모듈이란 기능상 성격이 비슷하고 연관성 있는 부분들의 집합을 말합니다. 대부분의 프로그램은 작고 단순한 것에서 시작해서...

EKS에 ALB 적용하여 서비스 노출하기(Ingress Application Loadbalancer)

EKS에서 ALB를 이용하고싶은 경우 alb-ingress-controller을 배포한 뒤, Ingress를 통해 사용할 alb에 대한 rule을 설정을 해주어야합니다.Ingress는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출합니다. 트래픽 라우팅은 Ingress 리소스에...

WordPress Plugin Review & Recommend(추천)

근 일 년간 워드프레스를 운영해 오면서 여러 가지 plugin들을 지우고 깔기를 꽤 많이 했었다. 처음에는 이것저것 관심 있는 것들은 다 설치해보았었는 데 사용하지 않는 plugin이 넘치고 사이트 퍼포먼스에도 영향을 줄 수 있어 필요 없는 plugin은 조금씩 정리를 하게 되었다. 이제 어느 정도 사이트도 안정화되었고 plugin의 변화도 거의 없는 상태다. 그래서 쭈욱 사용하고 있는 살아남은 Wordpress plugin에 대해 정리를 해보려고 한다. Excellent!! = 매우 만족 (★★★★★) Disqus for WordPress Disqus는 블로그 등에 필요한 댓글 시스템을 전문으로 제공하는 업체로서 Disqus가 회사명이자 댓글 시스템의 이름이다. Disqus plugin을 이용하면 워드프레스에서 제공하는 기본 댓글 시스템을 교체할 수 있다. 워드프레스에서 제공하는 기본 댓글 시스템은 일단 디자인이 구닥다리이며 대 댓글에 대한 지원도 미미하고 알림 기능이 없어 누가 댓글을 남기더라도 빨리 알기가 힘들다. 기능 자체가 심플해서 블로그에 댓글을 남긴다 정도의 의미만 있었다. Disqus는 나처럼 개발 관련 내용을 제공하는 사이트에서 댓글로 소통을 해야 하는 경우 유용하게 사용할 수 있다. Disqus는... Design x UX가 훌륭하다. 대 댓글을 제공한다.댓글이 달리면 메일로 알려줘 바로 대응이 가능하다. 댓글에 대한 승인기능, 댓글이 달린 포스트에 대한 추천 기능, 리액션 기능을 제공한다. 댓글 통계(analytics), 입력단어...

일상 다반사

학창시절 추억의 무협. 그리고 마영성의 풍운(風雲)에 대하여

남자라면 한 번쯤 학창 시절, 아니 학창 시절이 아니라도 일생에 한 번쯤은 무협에 푹 빠져 지냈던 시기가 있으리라 생각한다. 나는 80~90년대 홍콩 무협 영화를 어린 시절 비디오로 접했던 추억을 가지고 있는, 이제는 중년에 들어선 나이가 너무 적지도 많지도 않은 그런 나이 때의 사람이다. 천녀유혼 왕조현을 흠모했던. 이제는 아재가 돼버린 세대다. 그리고 이제 고인이 되어버린 장국영 형님도..ㅜㅜ 임청하 누님도 최애 배우중 하나였고, 무술 영화의 주인공으로서 많은 이름을 날렸던 이연걸의 팬이기도 했다. 연결형님은 이제 병마에 시달리시고...

모니터암 첫경험 후기 – Camel GMA 2D+ (27인치 듀얼)

구매 계기...나는 프로그래머다! 코로나 19가 창궐하면서 회사에서 쫓겨나 재택근무를 두 달 정도 했다. 뭐 그것까진 좋았는데 역시 일은 회사지. 아무래도 집에서는 업무환경이 최적화되어있지 않다 보니...

잉여 세차러의 자동차 세차 용품 정리^^;

집안에서 뒹굴고 있는 세차 용품을 정리해본다. 나름 유튜브에서 세차 콘텐츠를 보고 나도 열심히 셀프세차해야겠다고 결심하고 마련했지만... 육아 및 게으름으로 몇 번 써보지도 못하고 창고에서 잠들어 있는 아이들이다...ㅜㅜ 나는 프로세차러 가 아니므로 아래 정도만 구비해서 다니고 있다. 버킷도 2개 사서 투버킷 세차를 해보겠다고 한 건데. 한번 투버킷 세차 해본이후 이건 나의 길이 아니다 라고 생각하고 포기했다. 나의 체력으로 두 버킷 세차는 무리였다. --;; 18리터짜리 버킷 하나로도 나의 세차는 충분하다.... 가성비가 좋은 플래시 퀵 디테일러. 나에게 왁스질은 무리라고 생각하여 마련한 물 왁스. 뿌리고 쓱쓱 닦으면 끝난다.  플래시 유리세정제. 가성비 좋고 그냥저냥 쓸만하다. 어차피 세차하고 나서 깨끗한 상태에서 하는 거라 효과는 잘 모르겠다. 플래시 휠 클리너. 휠에 쓱쓱 분사해주고 몇 분 기다렸다가 물로 헹궈주면 된다. 휠 닦는 솔도 샀지만 역시 귀차니즘에 안 쓰게 된다. 욕심이...

한정판 오동통면과 함께하는 소확행+수박 좋아

오늘은 요즘 한창 핫한? 라면계의 신성! 오뚜기 오동통면 한정판을 먹어보았다. 다시마의 담백하고 맛있는 국물 + 탄력 있는 오동통한 면발을 앞세워 맛이 아주 좋다고 한다....