Develop 26

M1 MAC OS Rancher desktop 사용

이전에 docker-compose를 이용하여 ELK를 구성하고 동작하는 예제에 대해 진행했었다. 그때의 예제는 docker-desktop을 이용하여 예제를 진행하였는데 docker-desktop은 현재 기업을 상대로는 유료이다. 2020년 8월 31일부터 도커 데스크톱 이용자를 대상으로 유료 요금제 가입을 유도하기 시작했다. 250명 이상의 직원이 속한 매출 1,000만 달러 이상의 도커 데스크톱 고객은 2022년 1월 31일까지 유료 구독에 등록해야 애플리케이션을 계속 사용할 수 있다. 단 소규모 기업, 개인용, 교육, 그리고 “비상업적 오픈소스 프로젝트” 분야의 고객들은 계속 무료로 이용할 수 있다. 회사에 따르면 무료 대상 고객은 도커 사용자 기반의 약 절반 정도에 해당한다. 원문보기 개인적으로 사..

Develop/infra 2023.01.04

앰플리튜드(Amplitude)란?

이벤트 분할 분석 (Event Segmentation) 이벤트에 대한 다각적인 분석을 유연하게 표시가 가능하다. 이벤트에 대해 클릭 몇 번이면 SQL에서 지원하는 모든 종류의 데이터 분석이 가능하다. 잔존율 분석 (Retention) 코호트별 잔존율, 제품 사용 주기 등에 대해 파악이 가능하며 방문 또는 앱 오픈, 앱 종료 뿐만니라 모든 종류의 이벤트를 기준으로 잔존율 분석이 가능합니다. 퍼널 분석 (Funnel) 원하는 이벤트를 퍼널로 설정하고 각 퍼널별 전환율을 확인가능하다. 퍼널 기반의 A/B 테스트 결과 분석, 특정 퍼널에서의 Group By 적용도 가능하다. 사용자 구성 분석 (User Composition) 전체 유저 혹은 특정 코호트 내에서 특정 사용자 속성값의 분포 양상등 원하는 사용자 속..

Develop/기타 2022.05.17

Datadog 이란?

Datadog 이란? 클라우드 규모 인프라에 대한 완전한 가시성 확보 웹 및 모바일 애플리케이션의 사용자 여정에 대한 종단 간 가시성 확보 분산 클라우드 환경에서 네트워크 트래픽 흐름 시각화 실시간으로 보안 위협 및 구성 오류 자동 감지 Datadog은 Docker, containerd를 포함한 K8s 클러스터 구성요소 및 워크로드, 네트워크 트래픽, 엔드포인트 모니터링 등을 지원하는 종합 모니터링 서비스이다. Datadog Kubernetes 설정 - datadog-agent : 데이터독 에이전트는 각 노드의 메트릭, 분산 추적 및 로그를 수집하고 서버 리소스(CPU, Memory등) 메트릭을 자동으로 수집 - datadog-node-agent : daemonset으로 각 노드 마다 실행되며 노드 레벨..

Develop/infra 2021.08.23

DDD Start (Domain-Driven Design) 도메인 주도 설계

계층(아키텍처) 구성 계층(Layer) 설명 사용자 인터페이스(UI), 표현(Presentation) 요청을 처리하고 사용자에게 정보를 보여준다. (Controller) 응용(Application) 요청한 기능을 도메인 계층을 조합해서 기능을 실행한다. 업무 로직은 도메인 계층에서 구현한다. (Service) 도메인 시스템에 제공할 도메인 규칙을 구현한다. (Aggregate, Entity) 인프라스트럭쳐(Infrastructure) 데이터베이스나 메세징 시스템 같은 외부시스템과 연동한다. (JPA, Message Queue, External API) 계층 구조는 그 특성상 상위 계층에서 하위 계층으로의 의존만 존개하고 하위 계층은 상위 계층에 의존하지 않는다. 표현계층은 응용계층에 의존하고 응용 계층이..

Develop/java,spring 2020.12.29

Rest, Restful, Restful API 차이

Rest란? 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 소프트웨어 아키텍처로 자원지향구조(ROA: Resource Oriented Architecture)이다. HTTP Method, Status Code를 용도에 맞게 써야하며 6가지 제약 조건이 있다. - 클라이언트/서버 구조 : 일관적인 인터페이스로 분리되어야 한다 서버는 API제공과 제공한 API를 이용해 비즈니스 로직을 처리하거나 저장하는 역할 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보) 등을 관리하는 역할 - 무상태(Stateless) : 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안되며 통신에는 상태가 없어야하고 필요한 모든 정보는 요청에 담고있어야 한다. - 캐시 처리 가능(Cacheable) ..

Develop/java,spring 2020.12.29

Nginx 튜닝, 보안 설정 및 Docker-compose 실행

Nginx.conf 설정 worker_processes는 CPU 갯수, worker_connections는 1프로세스당 클라이언트 갯수를 넣으면 된다. access.log 파일을 json 형식으로 출력하였다. json_combined gzip 옵션 on 설정을 해주었다. server_tokens off 설정을 통해 버전이 노출되지 않도록 한다. client_max_body_size 를 설정하여 파일 업로드 크기 설정을 한다. X-Frame-Options, X-Content-Type-Options, X-XSS-Protection 옵션을 설정하여 보안을 추가하였다. charset은 utf-8로 설정한다. "/" 요청은 GET 메소드만 허용하도록 하였다. js/css/image 파일은 access 로그에서 제..

Develop/infra 2020.12.16

Docker Compose 이용한 ElasticSearch Cluster, Kibana 구성

2020-12-15 현재 공식 ElasticSearch, Kibana Docker 이미지 최신 버전은 7.10.1 이다. ElasticSearch 7.10.1 Docker Compose 가이드에 따라 클러스터 구성을 하고 Kibana 설정을 한다. docker 컴포즈를 실행하기 전에 docker engine 메모리가 4GB 이상이 설정되어 있는지 확인해야한다. 4GB 이하로 설정이 되어있다면 정상적인 실행이 되지 않는다. 최종 구성은 아래와 같다. ElasticSearch Master 노드 1 ElasticSearch Data 노드 2 Kibana 1 version: '2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.10..

Develop/infra 2020.12.15

JWT(Json Web Token) 이란?

JSON Web Token (JWT) 은 웹표준 (RFC 7519) 으로서 두 개체에서 JSON 객체를 사용하여 가볍고 자가수용적인 (self-contained) 방식으로 정보를 안전성 있게 전달해준다. Base 64로 인코딩시 = 문자가 나올때가 있는데 URL safe 하지 않으므로 삭제 해야한다. 삭제해도 디코딩은 정상적으로 수행된다. JWT - JSON Web Token 으로 토큰의 형태이다. Cookie - 사용자 컴퓨터에 방문 기록, 로그인 정보 등과 같은 데이터를 기록할 수 있는 작은 파일 형태를 나타낸다. XSS - Cross Site Scripting 으로 사용자의 정보(쿠키, 세션)를 탈취하는 것이 목적인 공격 기법이다.(document.cookie를 사용한 정보 탈취) CSRF - Cr..

Develop/java,spring 2020.12.15

git 명령어

git 구성 git은 아래와 같은 구조로 구성이 되어있다. 기존에 git repository의 기본 브랜치는 master 브랜치였지만 whitelist/blacklist(인종차별), master/slave(주종관계) 의 의미를 담고있는 용어를 제거하기로 결정되어서 현재 기본 브랜치는 main 브랜치로 변경이 되었다. .git : git 디렉토리(히스토리) 관리가 된다. .gitignore : git commit시 ignore 지정 (*.txt, build/ 등) working directory : 작업할 파일을 관리, git add 명령어를 통해 staging area 로 옮길 수 있다. untracked : 트래킹 되지 않는 버전 tracked : 트래킹 된 버전 staging area : 버전 히스토..

Develop/java,spring 2020.12.01