ETC

ETC

쿠버네티스(k8s)의 간단한 동작 방식 및 etcd - 쿠버네티스 시리즈(2)

쿠버네티스의 동작 방식 사용자는 kubectl을 통해 쿠버네티스 클러스터와 통신 클러스터 내의 Master는 쿠버네티스의 설정 환경을 저장하고, 전체 클러스터 관리 각 Node들에서는 쿠버네티스 위에서 동작하는 워크로드(pod)들이 실행 쿠버네티스는 기본적으로 내가 원하는 상태(Desired State)와 현재 상태(Current State)를 비교 만약 상태가 서로 다르다면, 현재 상태를 원하는 상태로 변경하는 기능 수행 etcd에 api의 내용 저장 api server에 선언형 api로 요청이 들어올 경우, 바로 동작을 실행하지 않고 etcd에 들어온 내용을 저장 etcd를 감시하는 controller 동작 controller는 etcd에 내가 담당하는 resource가 들어왔는지를 감시하다가, 해당..

ETC

ORM(JPA)방식과 Query Mapping(Mybatis)방식의 차이

영속성(Persistence)이란? 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 개념을 영속성(Persistence) 이라고 한다. 자바는 데이터의 영속성을 위해 JDBC 를 지원하는데 이는 매핑 작업을 개발자가 일일히 해야하는 불편함이 존재한다. 따라서 개발자가 이러한 JDBC 프로그래밍을 하지 않도록 도와주는 프레임워크를 영속성 프레임워크(Persistence Framework) 라고 하며 대표적으로 ORM 과 Query Mapping(SQL Mapping) 방식이 존재한다. 즉, 둘 다 JDBC 가 불편해서 나온 기술!! Query Mapping 이란? 객체와 쿼리 수행 결과를 매핑시키는 기술 SQL 문을 직접 작성하고 쿼리 수행 결과를 어떠한 객체에 매핑할 지 바인딩하는 방법..

ETC

QueryDSL이란?

QueryDSL란 ? Query Domain Specific Language SQL, JPQL 등을 코드로 작성할 수 있도록 해주는 빌더 오픈소스 💡 JPQL이란 ? JPA에서 지원하는 다양한 쿼리 방법 중 가장 단순한 조회 방법으로, SQL의 경우에는 DB 테이블을 대상으로 쿼리를 질의하지만, JPQL은 엔티티 객체를 대상으로 쿼리를 질의 JPQL String username = "java"; String jpql = "select m from Member m where m.username = :username"; List result = em.createQuery(query, Member.class).getResultList(); QueryDSL String username = "java"; List..

ETC

쿠버네티스(k8s)의 구조 - 쿠버네티스 시리즈(1)

용어 뜻 컨테이너 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술 컨테이너 런타임 컨테이너를 다루는 도구 도커 컨테이너를 다루는 도구 중 하나 쿠버네티스 컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 도구 오케스트레이션 여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위 Pod 파드(Pod)는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위 쿠버네티스 ≠ 도커 관리 툴 정확하게는 도커를 관리하는 도구가 아니라, 컨테이너를 관리하는 도구 쿠버네티스란 ? 컨테이너화 된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향 컨테이너로 이루어진 것들을 손쉽게 담고 관..

ETC

Docker의 컨테이너 격리

Virtual Machine(가상머신) Host OS : 가상머신이 구동되는 PC 의 운영체제 Guest OS : 각 가상머신 내에서 구동되는 별도의 운영체제 하이퍼바이저(Hypervisor) : 가상머신을 생성하고 구동하는 소프트웨어 위 그림처럼 가상머신은 애플리케이션과 OS 가 함께 가상화 된 것이다. 따라서 각 가상머신의 Guest OS 는 다른 가상머신들의 Guest OS 와 완전히 독립된 공간과 시스템 자원을 할당받고 사용한다. 즉 하이퍼바이저는 애플리케이션과 OS 를 같이 가상화하여 각 가상머신을 격리시킨다. 따라서 각 가상머신은 Guest OS 로 인해 Host OS 에게 많은 리소스를 요구하며 실행 시 부팅이 필요하다. Container(컨테이너) Docker Engine : 컨테이너를 구..

ETC

Redis vs Memcached

정의 Redis 와 Memcached 는 대표적인 오픈소스 기반의 인메모리 데이터 저장소이다. 둘 다 사용하기 쉽고 고성능을 자랑하지만, 꽤나 많은 차이점이 존재한다. 결론적으로는 Redis 가 거의 모든 면에서 우수하다. 주요 특징 비교 항목 Memcached Redis 데이터 분할 O O 다양한 데이터 타입 X O 멀티 스레드 지원 O X 데이터 저장(영속성) X O 데이터 복제 X O 트랜잭션 지원 X O pub/sub 구조 지원 X O 공통점 오픈소스이며, 인메모리 데이터 저장소이다. NoSQL 을 사용하여 key-value 형태로 데이터를 저장한다. 데이터를 분할하여 저장할 수 있다. 차이점 확장성 Memcached - scale up 방식 사용 사양을 업그레이드해서 확장하는 방식 Memcach..

ETC

TDD(Test Driven Development)

TDD 란? TDD 란 Test Driven Development 의 약자로 '테스트 주도 개발' 이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 실제 코드에 추가하는 단계를 반복하여 기능을 구현한다. TDD 의 적용 방법 예를 들어 클라이언트에게 제공한 프로그램에 “태어난 년도를 입력하면 현재 나이가 출력” 되는 기능이 있는데, 클라이언트가 “95년생을 입력하니까 31살이라는 잘못된 결과가 나옵니다(95년생 = 29살)” 라는 요청을 했다고 가정해보자. 이 문제를 TDD 방식으로 해결해보는 시나리오이다. 일반적으로 TDD 는 총 3단계의 테스트를 통해 하나의 이슈를 처리한다. assert(A, B) 메서드 A == B 이면 succe..

ETC

그라파나와 프로메테우스

프로메테우스는 데이터 수집과 통합 도구 그라파나는 데이터 시각화 도구 위 두 가지를 사용하여 시스템 모니터링 환경을 구축할 수 있음 프로메테우스(Prometheus) 시계열 DB를 내장하고 있음 중앙 서버에서 에이전트를 통해 노드와 컨테이너 상태를 모두 수집 내부 메트릭을 외부로 노출하기 때문에, 사용자가 수집 대상에 접속할 수 있다면 개인 컴퓨터에서도 메트릭을 가져올 수 있음 💡 메트릭이란? 현재 시스템의 상태를 알 수 있는 측정 값 시스템 매트릭(System Metric) : CPU와 메모리 사용량 표시 서비스 메트릭(Service Metric) : HTTP 상태 코드와 같은 상태 표시 💡 시계열 데이터베이스란? 시간을 축으로, 시간의 흐름에 따라 발생하는 데이터를 저장하는데 최적화 된 데이터베이스 ..

D_Helloper
'ETC' 카테고리의 글 목록