-
EKS의 IP 할당 이슈
지난 달, 현재 운영하고 있는 고객사의 서비스가 DevOps 팀의 EKS로 넘어오는 작업이 있었습니다. 해당 작업 진행 후 EKS IP가 부족하여 Pod가 제대로 뜨지 못하는 이슈가 발생했고, 재발 방지와 동일한 이슈 발생시 빠른 해결을 위해 이 문제의 원인과 해결 방안에 대해 공유하는 글을 작성하게 되었습니다.... Read More
-
Keycloak Google 로그인 연동
쿠버릭스는 기본적으로 Google Workspace 계정을 발급받아 Jira, Confluence, Slack과 같은 협업 도구도 Google 로그인을 통해 사용하고 있습니다. 이 문서에서는 Gitlab, Harbor와 같은 직접 설치한 툴도 keycloak을 거쳐 Google 계정을 통해 로그인 할 수 있도록, Int... Read More
-
Keycloak Harbor 연동
harbor Authentication 설정을 통해 Keycloak OIDC Client와 연동하는 방법을 설명합니다. Configure OIDC Provider Authentication 문서와 Keycloak as OIDC Provider for Harbor 블로그를 참고하였습니다. Keyclo... Read More
-
Docker Compose를 사용한 Keycloak 설치
keycloak 설치를 위해 Getting started 문서를 찾아보면 docker, kubernetes, openjdk, openshift, podman 5가지 방법이 소개되어 있습니다. 이중 docker를 사용한 문서를 확인해보면 빠른 시작을 위해 dev모드 기준으로 설명되어 있으며, doc... Read More
-
GitLab version upgrade
2022년 8월 말, GitLab에서 보안 취약점에 대한 업데이트를 발표했습니다. 해당 발표는 GitLab의 GitHub API 엔드포인트에서 가져오기 기능을 이용해 발생하는 원격코드 실행 취약점 (CVE-2022-2992) 등 15개를 조치했다는 내용입니다. 영향 받는 버전은 GitLab CE/... Read More
-
Chatgpt를 활용한 크롤러 제작기
그룹장님의 요청으로 CNCF 멤버 중 오픈소스 컨설팅 분야의 회사들을 리스트 업을 하기 위해 크롤러를 제작하게 되었다. 처음에 듣고 어떻게 소스 구성을 할까 고민했는데, 그룹장님께서 ChatGPT를 활용하면 된다고 알려주셔서 이번기회에 활용해보았다. ChatGPT란? 간략하게 인공지... Read More
-
분산 트랜잭션 환경에서의 데이터 일관성 유지방안
분산 트랜잭션 환경에서의 데이터 일관성 유지방안 Read More
-
AWS 레드시프트 스펙트럼 실습해보기
AWS 레드시프트 스펙트럼 실습해보기 AWS 레드시프트 스펙트럼을 현장에서 사용한지 6개월 가량이 넘어갔습니다. 업무 인수인계시 작성한 부분을 일부 수정하여 공유합니다. AWS 레드시프트 생성과정과, 접속환경 가이드는 생략하였습니다. 접속툴은 Intellij 의 데이터베이스 ... Read More
-
데이터 웨어하우스와 BPMN 을 기반한 이커머스 업무자동화 시스템 개발기
데이터 웨어하우스와 BPMN 을 기반한 이커머스 업무자동화 시스템 개발기 아래의 내용은 실제 프로젝트 도메인과 연관성이 없는 각색한 내용입니다. 기업 측면에서의 수요의 예측은 생산, 자재 및 물류 등의 계획과 관리 측면에서 중요합니다. 수요예측을 데이터를 기반하여 합리적으로 판단함으로써, 판매 목표설정,... Read More
-
Poi-mapper(Excel model mapper) 라이브러리 개발기
Poi-mapper(Excel model mapper) 라이브러리 개발기 깃허브 주소 poi-mapper (좋아요 Github Star 클릭 한번씩 해주시면 감사합니다 ^^) 최근 프로젝트를 진행하면서, 다소 복잡한 요구사항의 엑셀작업을 필요로 하는 어플리케이션을 구축해야 할 일이 생겼습니다. 물류관련 업무에서... Read More
-
Spring Security 다중인증수단 적용기
Spring Security 다중인증수단 적용기 최근 프로젝트를 진행하면서, 다소 복잡한 요구사항의 인증수단을 필요로 하는 어플리케이션을 구축해야 할 일이 생겼습니다. 물류관련 업무에서는 재고자산 수불수등 회사 내부의 인력과 회사 외부 (거래처) 가 동시에 지표를 확인하고 발주,정산등... Read More
-
YouTube Data API v3 사용해보기 (1/2)
최근 프로젝트에서 YouTube 동영상의 링크 정보로 특정 동영상의 재생시간을 가져와야 하는 요구사항이 있었는데요. 이 계기로 YouTube Data API v3를 접해 볼 기회가 있었습니다. YouTube Data API v3 의 상세한 문서는 아래 링크를 참고 하세요. 정리가 잘 되어있더라구요. https... Read More
-
YouTube Data API v3 사용해보기 (2/2)
앞서서 YouTube Data API v3를 사용하기 위해서, 구글 계정으로 프로젝트와 API Key, YouTube Data API v3 서비스 등록을 진행하였습니다. 이전블로그 참고 : https://megazonedsg.github.io/tutorial-youtub... Read More
-
동적처리 Enum 만들기
동적처리 Enum 만들기 최근 프로젝트를 진행하면서, 초기 구축때부터 메타데이터 처리를 동적으로 해야할 것을.. 잊고있다가 뒤늦게 적용해야 할 일이 생겼습니다. 이미 모든 메타데이터가 다음처럼 소스코드에 Enum 으로 하드코딩 되어있는데 말이죠.. switch(foo){ ... Read More
-
Oauth2.0 기반의 SSO 솔루션 구축기
Oauth2.0 기반의 SSO 솔루션 구축기 최근 모 대기업의 국내사이트 통합인증 프로젝트가 오픈하였는데, 핵심 모듈인 SSO 기능구현에 메가존에서 구축한 SSO 솔루션이 사용되었습니다. 기존 B2C 커머스사이트 5곳, 800만 회원을 통합하는 프로젝트였으며, 현재 분당 평균 2000 건의 인증처리를 안정적으로 수행하... Read More
-
[Tutorial] QueryDSL 적용하기 - [3/3]
[Tutorial] QueryDSL 적용하기 - [3/3] 마지막으로 QueryDSL 적용 튜토리얼을 작성해보겠습니다. QueryDSL 적용을 통해 Left Join을 구현해보고자 합니다. QueryDSL의 정의를 먼저 살펴보았습니다. QueryDSL ... Read More
-
[Tutorial] JPA - CRUD RestController 만들기 [2/3]
[Tutorial] JPA - CRUD RestController 만들기 [2/3] 이번에는 JPA를 쉽고, 편하게 구현하기 위해 Spring Data JPA를 활용해보았습니다. JPA를 사용하기에 앞서, Object Relation Mapping에 대해 살펴보면 좋을 것... Read More
-
[Tutorial] 개발환경 구성 - Spring Boot, Git, Maven [1/3]
[Tutorial] 개발환경 구성 - Spring Boot, Git, Maven [1/3] 첫 개발환경 구성에 필요한 Spring Boot, Git, Maven 설치 튜토리얼입니다. 입사 후 개발환경이 바뀌면서 windows, mac 두 가지 os에 설치하게 되었습니다. 때문에 제가 설치했던 과... Read More
-
3# 데이터 엔지니어와 마이크로 서비스 구축 SI 프로젝트
2# 데이터 엔지니어와 마이크로 서비스 구축 SI 프로젝트 이전 포스팅에서 데이터 엔지니어링에 대해 알아보았습니다만, 이 글의 주제는 어디까지나 데이터 마이그레이션에 대한 것이지 데이터 엔지니어링에 대한 것이 아닙니다. 디지털 트랜스포메이션 절차에서 데이터 엔지니어 투입 타이밍 웹 로그 수집을 통해 구글의 빅쿼리(Big... Read More
-
2# 데이터 엔지니어와 마이크로 서비스 구축 SI 프로젝트
1# 데이터 엔지니어와 마이크로 서비스 구축 SI 프로젝트 많은 경험있는 프로젝트 리더들은 이전 포스팅 된 글에서 나온 실시간성 데이터 이관 문제를 해결하기 위해 ETL(Extract, Transform, Load) 과정을 떠올릴 수 있습니다. 그리고 ETL 을 수행하기 위해 어떠한 유형의 솔루션을 선택해야 할 지 ... Read More
-
1# 데이터 엔지니어와 마이크로 서비스 구축 SI 프로젝트
본 글은 이커머스 업체의 ERP 정산 시스템 노후화 개선 에 대한 해결 가능성을 문의받고, 문제를 해결하기 위해 여러 자료를 분석 후 개인적인 경험과 함께 정리하여 남기는 글 입니다. 파일럿의 함정 메가존은 2020 년 목표를 디지털 변혁을 선도하는 클라우드 네이티브 SI 기업으로 슬로건을 내 걸었습니다. 디지털 변... Read More
-
API Gateway,Lambda,S3, DynamoDB 사용기(3)
API Gateway, Lambda, S3, DynamoDB 사용기 multipart로 request를 받기 위한 busboy java에서 nodejs로 갈아탄 이유 multipart로 오는 데이터형식은 예제와 같이 구성되어있는데, 자바로 할 경우 boundary로 잘라서 필요한 data를 꺼내서 가공하는 과정을... Read More
-
API Gateway,Lambda,S3, DynamoDB 사용기(2)
API Gateway, Lambda, S3, DynamoDB 사용기 1. eclipse AWS 계정 설정 window 메뉴바의 Preferences를 클릭 후 정보를 입력합니다. 이렇게 설정하면 S3나 dynamodb같은 AWS Service에 진입할 때 별도의 계정정보를 입력하지 않아도 접근이 가능... Read More
-
3# KubeCon + CloudNativeCon North America 2019 참가기
1# KubeCon + CloudNativeCon North America 2019 참가기 2# KubeCon + CloudNativeCon North America 2019 참가기 행사장 풍경 행사장에는 수 많은 IT 기업들이 부스를 차려 놓고, 자사의 제품 홍보와 정보 교환을 하고 있었습니다. 구글… MS… 아... Read More
-
2# KubeCon + CloudNativeCon North America 2019 참가기
1# KubeCon + CloudNativeCon North America 2019 참가기 세션에 관한 이야기 자~ 그럼 저희가 참석한 세션들 중, 인상 깊었던 세션들 몇 가지에 대해서 적어 보겠습니다. Running Istio and Kubernetes On-prem at Yahoo Scale 예전에 명성에 미치지... Read More
-
1# KubeCon + CloudNativeCon North America 2019 참가기
KubeCon + CloudNativeCon North America 2019 참가기 2019.11.19(화) ~ 2019.11.22(금) 4일간 미국 San Diego에서 열린 KubeCon + CloudNativeCon North America 2019 컨퍼런스를 웹서비스 부문 정문석 부문장, 이병욱... Read More
-
2# Kafka 를 활용한 OCR 검수 시스템 만들기
지난 블로그에서 Kafka 를 활용한 OCR 검수 시스템을 만드는 대략적인 아키텍처를 살펴보았습니다. 이번 글에서는 프로덕션 적용 후 나온 문제점과 해결법을 적어보도록 하겠습니다. 가끔, 매우 긴 웹페이지의 상품 정보를 처리해야 할 일이 있습니다. 가상화 브라우저를 통해 이미지를 캡쳐하고, Google Vision API 로... Read More
-
Atlassian 제품군 플러그인 개발환경 구축하기
Atlassian 제품군 플러그인 개발환경 구축하기 구글,페이스북,Jira 플러그인 등 3th Party 클라우드 제품과 연계된 어플리케이션을 개발할 때, 로컬 데스크탑에서 개발하는 것에는 한계가 있습니다. 우리가 타사이트의 클라우드를 향해 일방적으로 요청을 할 때는 문제가 없지만, JIRA 플러그인 개발 등... Read More
-
API Gateway,Lambda,S3, DynamoDB 사용기(1)
API Gateway, Lambda, S3, DynamoDB 사용기 프로젝트 개요 DSG 그룹의 Communication App을 만드는 프로젝트에서 서버를 구현하는 역할을 맡게 되었다. Application에서 json이나 multipart로 전송되는 Data를 서버에서 처리하면 되는데 문제는 AWS의 La... Read More
-
2# Google Translation Api 적용기
좌충우돌 GCP Translation 적용기 지난 글에서 번역 시스템을 만들기 위한 Google Translation API 환경 변수 세팅에 대해 적었다. 이번 글에서 같은 세팅을 EC2에 한 경험을 적어본다. EC2에 GCP 환경 설정하기 Linux에서 환경변수를 넣듯이 아래와 같이 해도... Read More
-
Kafka 를 활용한 OCR 검수 시스템 만들기
쇼핑몰 사이트에서 상품 등록자가 허위 광고문구가 포함된 이미지를 올리거나, 불건전한 이미지를 올린다면 어떻게 검수할 수 있을까요? 여기 이런 고객사의 요구가 있다고 해봅시다. “특정 카테고리의 모든 제품에 대해, 제품 상세 페이지의 주소를 통해 이미지를 캡쳐해서 부적절한 텍스트를 필터링 해 주세요” 가상화 브라우저를... Read More
-
Node.js
이번 포스트에서 알아볼 내용은 Node.js 이다. Node.js의 등장은 Javascript 역사 중 중요한 포인트이다. 말그대로 스크립트 언어에서 어떠한 환경에서도 사용 할수 있는 언어 로써 발 돋음 할 수 있게 만들어준 굉장한 녀석이다. 그 이유는 Node.JS 는 웹브라우저에 종속적인 자바스크립트에서 외부에서 실행할 수 있는 Runtime 환경... Read More
-
Android Dependency Injection Framework Dagger2
Android Dependency Injection Framework Dagger2 What is Dependency Injection Framework? Dependency injection is a technique where objects are created by an external e... Read More
-
What is Javascript
자바스크립트(영어: JavaScript)는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. -wikipedia.org 이번 포스트에서 알아볼 내용은 Javascript 이다. 최근 가장 인기 있는 Web ... Read More
-
Android ViewModel & LiveData
ViewModels & LiveData : 패턴 + 안티 패턴 View & ViewModel 책임 배분 그림 1) 아키텍처 컴포넌트로 빌드 된 앱에서 엔티티의 일반적인 상호 작용 이상적으로 ViewModels는 Android에 대해 아무것도 몰라야 합니다. 이는 테스트 가능성, leak s... Read More
-
Android App Best practices of Development
Android App Best practices of Development Programming is a creative field, and building Android apps isn’t an exception. There are many ways to solve a problem, be it c... Read More
-
1# 그럭저럭 돌아가는 Kafka 운영 환경 빨리 만들기
이 글은 다음과 같은 분들을 위해 쓰였습니다. Kafka 운영환경을 당장 구축해서 써먹어야 한다. Kafka 를 아주 자세하게 공부할 시간은 없다. Kafka 운영환경에 많을 돈을 쓸 예산은 없다. 저도 현재 위와 같은 상황에 직면 했는데요, 저와 같은 상황에 놓이신 분을 ... Read More
-
Android Room 기술
Room을 사용하여 로컬 캐시에 데이터 저장 Room은 SQLite에 대한 추상화 계층을 제공하여 SQLite의 모든 기능을 활용하면서 유연하고 능숙하게 데이터베이스 액세스를 허용합니다. 쉽게 말하면 SQLite의 기능을 모두 사용할 수 있고, DB로의 접근을 편하게 도와주는 라이브러리 입니다. 또한 구글이 안... Read More
-
Android Advanced Architecture Guide
Android Advanced Architecture Guide Architecture 원칙 관심사 분리 따라야 할 가장 중요한 원칙은 관심사 분리입니다. Activity 또는 Fragment 에 모든 코드를 작성하는 실수는 흔히 일어납니다. 이러한 UI 기반의 클래스는 UI 및 운영체제 상호작용... Read More
-
QR code(Quick Response code) 생성
회사에서 운영업무를 하면서 유저들어게 QR 코드를 발급하여 통역기를 대여하는 서비스를 개발하게 되었다. QR 코드를 생성하는 방법은 간단하고 여러가지가 있다. API를 통해 QR을 생성할 수도 있고 라이브러리를 사용해서 생성 할 수도 있다. 보통 API를 사용한 경우가 많으나 버전업 될때 갑자기 생성이 안되는 경우 ,d... Read More
-
[iOS] Webview에서 구현 가능한 URL 호출 처리방식
iOS Webview에서 구현가능한 URL 호출 처리방식 아래 4가지 방식에 대해 알아보겠습니다. 사파리 호출 기존 브라우저 앱을 통한 특정 URL 노출 방식, 기존 앱에서 포커스가 벗어나 다른 앱으로 이동하는 결과를 도출 let url = URL(string: "https://megazonedsg.gith... Read More
-
1# Google Translation Api 적용기
좌충우돌 GCP Translation 적용기 Google Translation API 를 적용하여 고객사 글로벌 번역 시스템을 만들기 시작한지 2달 정도 지났다. 어려운 과정이 많았는데, 그동안 나타났던 문제들과 해결했던 경험을 적어본다. GCP 환경 설정의 어려움 Credential File P... Read More
-
The responses to the Foldable Android Device
Make your app resizable You should ensure that your app works in multi-window mode and with dynamic resizing. Do this by setting resizeableActivity=true. This provides ... Read More
-
Devops 문화 정착에 실패했던 경험담
직업이 DEVOPS 아키텍트이다 보니 MSA 를 전환을 시도하거나, 애자일 방법론을 도입하려는 기업을 많이 접해왔다. 그런 곳에 투입되거나 간접적으로 연관되어 내 할일을 하면서, 조직이 어떻게 실패하게 되고 성공하게 되는지 많이 봐왔다. 좋은 이야기는 아니지만, “애자일 성공하는 필수 공식” 같은 글을 쓰는 것 보다 경험에서 나... Read More
-
JIRA Agile Software Development
추석 연휴 마지막 날이다. 3일간 가족들에게 열심히 봉사했으니, 마지막 날은 나만의 시간을 가지리라 생각하고 커피숍으로 향했다. 오늘 하고자 했던 일은 인수인계 받게 될 프로젝트의 히스토리 파악하기였다. 초기 개발팀의 컨플루언스에 남겨진 이벤트스토밍, 회의록 등을 보면서 참 재밌게 일하는 팀이라는게 느껴졌고 보는 나도 즐... Read More
-
QueryDSL Example
이번에는 JPA 에서 한 발자국 더 옮겨 보자. Unified Queries for Java.Querydsl is compact, safe and easy to learn. -http://www.querydsl.com QueryDSL 의 장점은 code completion in IDE (코드를 작성하... Read More
-
Spring-boot-data-jpa Example
앞서 ORM의 개념을 살펴 보았으니 실재적으로 어떻게 사용하는지 알아보도록 하자. SpringBoot를 이용하여 대표적인 ORM 인 JPA를 사용하여 보자! 샘플 프로젝트를 만들어 보자. 1. 프로젝트 생성 New Project Springboot Component 선택 ... Read More
-
Object Relation Mapping
ORM (Object Relation Mapping) 객체 관계 매핑 객체 관계 매핑은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 >프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 “가상” 객체 데이터베이스를 구축하는 >방법이다. -wikip... Read More
-
리눅스 CronTab 으로 스케쥴러 실행하기
최근에 회의가 많아 사내 DEVOPS 시스템 유지관리에 소홀했었는데, 회의 중 형상관리 사이트가 안들어가진다고 팀원에게 연락이 왔다. 사내 DEVOPS 시스템은 사이트는 여러개인데, AWS 로드밸런서 가격도 아깝고 사내 인원만 쓰는거니 1cpu, 1GB 짜리 인스턴스에 Nginx Docker 를 설치하여 AWS 로드밸런서 가... Read More
-
AWS ACM 인증서 만료 방지하기
프로젝트 진행 중 인증서가 만료되어 장애가 일어나, 팀원이 주말에 급히 출근하는 불상사가 일어났다. AWS ACM 에서 발급하는 인증서를 사용 중이었는데, 알아보기로는 AWS ACM 은 자동으로 만료 시간을 갱신 해 준다고 알고있었는데 매년 같은 사고가 일어났다는 이야기를 듣고 의아했다. 관련 내용에 대해 다시 한번 찾아보니 ... Read More
-
AWS SES 이메일 반송 및 스팸 신고에 대응하기
출처: https://medium.com/@serbanmihai/how-to-handle-aws-ses-bounces-and-complaints-53d6e7455443 AWS Simple Email Service 를 구현하려는 경우, SES 계정을 샌드 박스 모드에서 해제하기 전에 이메일 반송 및 불만 사... Read More
-
Docker Services 고가용성 테스트하기 [6/6]
Docker Services 고가용성 테스트하기 안녕하세요. DSG 웹서비스부문 개발 2팀 사원 손다연입니다. [챕터 5]에서 배운 Service의 상태를 잘 전환해보셨나요? 이번 챕터에서는 Docker 서비스 노드의 고가용성 테스트를 해보도록 합시다. 목차는 다음과 같습니... Read More
-
Docker Services 상태 전환하기 [5/6]
Docker Services 상태 전환하기 안녕하세요. DSG 웹서비스부문 개발 2팀 사원 손다연입니다. [챕터 4]에서 배운 Service로 Rolling Test를 잘 해보셨나요? 이번 챕터는 Docker 서비스 상태를 전환해 보도록 합시다. 목차는 다음과 같습니다.... Read More
-
Docker Services Rolling 테스트하기 [4/6]
Docker Services Rolling 테스트하기 안녕하세요. DSG 웹서비스부문 개발 2팀 사원 손다연입니다. [챕터 3]에서 배운 Service가 잘 생성되었나요? 이번 챕터는 Docker 서비스를 Rolling test 해보도록 합시다. 목차는 다음과 같습니다. 1... Read More
-
AWS EC2 인스턴스에 Docker Services 생성하기 [3/6]
AWS EC2 인스턴스에 Docker Services 생성하기 안녕하세요. DSG 웹서비스부문 개발 2팀 사원 손다연입니다. [챕터 2]에서 배운 Docker-Swarm이 잘 생성되었나요? 이번 챕터는 Docker Services를 만든 후에, Docker-Swarm으로 Nod... Read More
-
AWS EC2 인스턴스에 Docker-Swarm 만들기 [2/6]
AWS에서 EC2 인스턴스에 Docker-Swarm 만들기 안녕하세요. DSG 웹서비스부문 개발 2팀 사원 손다연입니다. [챕터 1]에서 배운 Docker-machine으로 EC2 인스턴스 노드까지 생성이 잘 되었나요? 이번 챕터는 그 노드로 Docker-Swarm을 만들어보도록 합시다.... Read More
-
AWS EC2 인스턴스에 Docker 설치하기 [1/6]
AWS에서 EC2 인스턴스에 Docker 설치하기 안녕하세요. DSG 웹서비스부문 개발 2팀 사원 손다연입니다. 오늘은 AWS에서 EC2 인스턴스를 사용해서 Docker를 설치하는 방법을 배워보겠습니다. 우선 사용 전에, OS가 Windows인 경우에는 가상머신을 사용하는 방법을 권장드립니다... Read More