Skip to main content

분산 데이터베이스 투명성

· 3 min read

분산 데이터베이스 개념

  • 네트워크를 통해 물리적으로 분산되어 있는 여러 개의 데이터베이스 시스템을 논리적으로 연관시킨 통합 데이터베이스
  • 중복성, 지역독립성, 투명성

분산 데이터베이스 5가지 투명성

분위지중장병 분위복장병

분할 투명성

  • 하나의 논리적 릴레이션에 단편들로 분할된 데이터가 여러 사이트에 저장
  • Bottleneck 방지, 설계 기술 필요

위치 투명성

  • 사용자나 프로그램이 데이터베이스의 물리적 위치를 알 필요 없이 데이터 접근 가능
  • 분산 데이터 딕셔너리, 디렉토리 관리 필요

복제 투명성

  • 접근할 데이터가 물리적으로 여러 사이트에 복제되었는지 알 필요가 없는 특성
  • 점진적 일관성 유지, 전파 갱신 처리 부하

장애 투명성

  • 지역 시스템, 통신에 장애가 있어도 데이터 무결성을 보존하는 성질
  • 2 Phase Commit 활용, 장애 원인 규명 복잡

병행 투명성

  • 다수 트랜잭션 동시 수행시 결과에 이상이 발생하지 않는 성질
  • 리소스 사용 극대화, 병행 제어 활용

CAP 이론과 분산 투명성의 관계

구분내용관계
Consistency데이터 일관성 보장병행투명성, 복제투명성
네트워크 분할시 가용성 희생
Availability요청에 항상 응답분할투명성, 장애투명성
네트워크 분할시 일관성 희생
Partition Tolerance네트워크 분할시 시스템 동작 유지장애투명성
네트워크 분할시 C 또는 A 선택

데이터 모델링

· 4 min read

데이터 모델링 개념

  • 현실 세계 업무 프로세스를 추상화하여 물리적으로 데이터베이스화하기 위한 과정으로, 실체와 관계 중심으로 데이터 모형을 표현하는 모델링
  • 가시화, 명세화, 문서화, 추상화, 통합성, 이해성

데이터 모델링 단계, 식별/비식별 관계 비교

데이터 모델링 단계

단계설명산출물
개념 모델링요구사항을 데이터 모델로 변환ERD
엔티티와 속성 정의, 엔티티 간 식별/비식별 관계 설정개념 스키마
논리 모델링개념스키마를 실제 DBMS 스키마로 변환논리 스키마
데이터 구조와 무결성 제약 설정테이블 정의서
식별/비식별 관례를 기본키, 외래키로 추가
물리 모델링저장구조, 저장방법 기술, 성능 기준 충족접근 권한 매트릭스

식별/비식별 관계 개념 비교

식별 관계

  • 하위 엔티티의 PK 구성이 상위 엔티티의 PK에 포함되는 관계

비식별 관계

  • 하위 엔티티의 일반 속성에 상위 엔티티의 PK가 포함되는 관계

식별/비식별 관계 상세 비교

구분식별 관계비식별 관계
결합도강한 연결관계약한 연결관계
표기법실선 표현점선 표현
PK하위 엔티티 PK 구성 포함미포함
관계자식 엔티티가 부모에 종속적자식 엔티티가 부모에 독립적
데이터 무결성부모 엔티티 삭제시 자식 엔티티 함께 삭제부모 엔티티 삭제시 자식 엔티티 유지, 관계 해제
예시Order 와 OrderItemCustomer 와 Order

데이터 모델링시 고려사항

비지니스 측면

  • 비지니스 요구사항
  • 엔티티 속성 정의
  • 관계 설정: 엔티티 관계, 키 설정
  • 무결성 제약조건: 개체, 참조, 속성 무결성

기술 측면

  • 성능: 정규화, 반정규화, 인덱싱, 연결함정, 파티셔닝
  • 용량관리: 데이터 양, 저장소, 확장성

CRUD 매트릭스

· 3 min read

CRUD 매트릭스 개념

  • 데이터 엔티티와 각 기능 간의 상관관계를 매트릭스 형태로 나타내어 데이터 모델링 과정을 검증하는 도구
  • 데이터와 프로세스 관계 명확화, 기능별 데이터 활용 파악, 테스트 시나리오 도출, 성능 최적화

CRUD 매트릭스 작성 절차, 표현 방법, 분석 사례

CRUD 매트릭스 작성 절차

  1. 데이터엔티티/기능정의: 시스템 관리되는 주요 엔티티, 기능 식별
  2. CRUD 관계식별 : 각 기능과 엔티티에 수행하는 작업 정의
  3. CRUD 매트릭스 작성: 엔티티/기능 매트릭스 작성, CRUD 표기
  4. 중복, 누락, 불필요 작업 파악 및 개선

CRUD 매트릭스 표현 방법

엔티티/기능고객 등록상품 조회주문 생성주문 조회
고객C, R-
상품R-
주문RCR, U
  • 행에는 프로세스, 열에는 엔티티, 교차점에 트랜잭션 표시

CRUD 매트릭스 분석 사례

구분사례해결방안
요구검증고객 등록, 상품 조회, 주문 생성, 주문 조회 기능 검증미비 기능 구현
무결성검증상품 엔티티는 R만 존재C, U 기능 추가
성능튜닝주문 엔티티는 트랜잭션이 몰려 부하 발생 가능파티션 추가, 테이블 분리
불필요 작업 제거주문 조회시 업데이트 발생R만 수행하도록 수정

NoSQL 모델링

· 3 min read

NoSQL 유형, 모델링 절차

NoSQL 유형

유형특징대표 도구
Key-Value키와 값의 쌍으로 데이터 관리, 빠른 조회 성능Redis, DynamoDB
Column Family열 기반 데이터 저장, 키 범위 처리 개선, 유연성 극대화HBase, Cassandra
Document문서 형태 데이터 저장, JSON/XML/BSON 형식 지원, 빠른 조회MongoDB, CouchDB
Graph노드와 간선으로 관계 저장, 모든 노드와 간선에 고유 식별자 부여Neo4j
Vector데이터 간 유사도 계산, 고차원 벡터 검색 최적화HNSW, Milvus

NoSQL 모델링 절차

구분절차설명
탐색도메인 모델 파악데이터 개체 간 관계 분석, 도메인 파악,
ERD 작성하여 결과 도식화
설계쿼리 결과 디자인도메인 모델 기반 쿼리 결과값 정의
데이터 출력과 저장에 효율적인 구조로 디자인
패턴 기반 데이터 모델링I/O 횟수를 최소화하기 위해 반정규화, 데이터 중복 저장
기능 최적화필요시 Secondary Index 활용하여 전체 데이터 Scan 최소화
최적화후보 NoSQL 선정구조, 특징 분석 후 부하테스트, 안정성테스트 수행
후보쿼리 선정
데이터모델 최적화선정된 쿼리에 적합한 데이터 모델 최적화,
어플리케이션 인터페이스 설계
설정 및 HW 튜닝NoSQL 설정 및 HW 튜닝
  • 쿼리 성능 최적화를 위해 중첩데이터와 반정규화된 데이터 구조로 디자인 필요

SOM, 자기조직화지도

· 3 min read

SOM 개념

  • 고차원 데이터의 위상을 보존하여 저차원 그리드로 매핑하는 비지도학습 기반 인공 신경망
  • 차원축소, 위상보존, 경쟁학습, 시각화 및 군집화

SOM 구성도, 구성요소, ANN과의 차이점

SOM 구성도

SOM

  • 경쟁층 뉴런들이 2차원 격자구조로 배열, 고차원 입력 데이터를 저차원 공간에 시각적으로 표현하는 구조

SOM 구성요소

구분구성요소설명
레이어입력층고차원 입력 특성을 받는 층
경쟁층(출력층)2D 그리드 구조로 입력 데이터와의 거리 측정 후 가장 가까운 뉴런 선정
연결요소연결가중치입출력층 연결, 초기 무작위 가중치 설정 후 경쟁학습을 통해 업데이트
BMV입력벡터와 가장 유사한 출력층 뉴런, 유클리드 최소 거리 계산
  • 역전파와 체인룰 없이 승자 독식 경쟁학습 알고리즘 사용

SOM과 ANN의 차이점

구분SOMANN
학습방식비지도학습비지도/지도학습
학습알고리즘경쟁학습역전파 등 오류수정기반
주요목적시각화, 군집화, 차원축소분류, 회귀, 예측
출력구조2차원 격자다층 퍼셉트론
데이터 요구사항레이블 불필요레이블 필요
활용사례데이터 시각화, 군집 분석이미지 인식, 음성 인식, 자연어 처리
해석가능성결과의 직관적 해석블랙박스, 해석 어려움

다차원 색인 구조

· 4 min read

다차원 색인구조 개념

  • 이미지나 멀티미디어 등 비정형 데이터의 효율적 검색을 위해 다차원 필드를 동시에 키로 사용한 색인 구조
  • 차원확장성, 유사성 기반 내용 검색, 다양항 데이터 처리, 저장공간 절감, RAG, Vector DB 활용

다차원 색인구조 유형

구분개념도설명
Point Access Method (PAM)PAM다차원 점 데이터 저장 및 검색
K-D 트리, K-D-B 트리, Grid File, 사분트리
Spatial Access Method (SAM)SAM선, 면 등 크기를 갖는 다차원 공간 데이터 저장 및 검색
R-Tree, R*-Tree, R+Tree, X-Tree

다차원 색인구조 상세

PAM 기반 다차원 색인구조

구분개념도설명
K-D 트리K-D Tree이진탐색트리 BST를 다차원 확장하여 K차원 점 데이터 색인
트리 레벨과 값을 번갈아 비교
Grid FileGrid File데이터포인트를 다차원 그리드 공간에 매핑하여 저장
각 차원 범위를 선형눈금계로 나눠 격자 배열 생성
사분트리Quad Tree공간을 반복적으로 4개의 하위 영역으로 분할하는 자료구조
고차원 데이터 부적합, 공간 분할로인한 비효율적 메모리 사용

SAM 기반 다차원 색인구조

구분개념도설명
R 트리R TreeMBR을 구하여 인덱스를 엔트리로 저장하는 자료구조
완전균형트리로 데이터 객체를 여러 차원의 구간들로 표현
R+ 트리R+ Tree여러 MBR과 중첩되는 데이터는 여러 노드에 중복 저장하는 자료구조
K-D 트리와 R 트리의 중간 형태
R* 트리R* TreeR 트리와 구조, 연산은 유사하나 삽입 삭제시 노드 간 MBR 중첩 최소화한 자료구조
  • X 트리는 고차원 데이터를 다루는 슈퍼노드를 사용한 R 트리 확장 구조

다차원 색인구조 활용분야

구분사례설명
지리 정보GISR트리 활용 지리 정보 저장 및 검색
위성영상분석사분트리, 위성데이터 분할 저장
멀티미디어이미지K-D 트리, 사분 트리, 이미지 속성 저장
비디오K-D 트리, 메타데이터 인덱싱

HNSW

Hierarchical Navigable Small Worlds

개념도개념
hnsw계층적 그래프와 Small World Network 기반의 근사 최근접 이웃 검색(ANN)을 수행하여 대규모 벡터 데이터에서 빠르고 정확한 검색 제공
  • 다층 그래프 사용 저장
  • 지역최솟값을 찾을 때까지 가까운 정점으로 Greedy 탐색
  • 메모리 기반, 빠름, 고차원 데이터 효율적 처리
  • Milvus, Pinecone 방식
  • Pinecone: Hierarchical Navigable Small Worlds

트랜잭션 격리수준

· 3 min read

트랜잭션 격리수준 개념

Isolation Levels

  • 병행 트랜잭션 실행 시 데이터를 일관성 있게 읽을 수 있도록 고립성을 유지하기 위한 데이터 허용 수준
  • Dirty Read, Non-Repeatable Read, Phantom Read 등 이상 현상 발생 가능

트랜잭션 격리 수준 상세

Read Uncommitted

  • 트랜잭션이 완료되지 않은 데이터를 다른 트랜잭션이 참조하는 것을 허용하는 격리수준

Read Committed

  • 트랜잭션이 완료된 데이터만 읽을 수 있는 격리 수준

Repeatable Read

  • 동일한 행을 여러 번 읽을 때 항상 동일한 값을 반환하도록 보장하는 격리수준

Serializable

  • 여러 트랜잭션이 순차적으로 하나씩 실행되도록 보장하는 격리수준
  • 동시성이 낮아 거의 사용되지 않음

트랜잭션 격리수준 고려사항

  • Locking, 2PL, Timestamp Ordering, 낙관적 기법 등 병행제어 필요

두바이 여행 팁

· 7 min read

숙소

  • 두바이에는 지하철이 있고, 레드라인 주변으로 잡으면 된다.
    • Mall of Emirates Station 부터 Max Metro Station 까지 사이에서 어떤 관광지를 주로 볼지에 따라 달라진다.
    • Business Bay Station, Burj Kahalifa Station이 가운데라 좋다.

교통

지하철

  • 여자끼리만 여행한다면 실버 NOL 카드에 여성 전용칸을 타면 된다.
  • 아니라면 무조건 골드 NOL 카드 사자. 출퇴근시간 강남역 생각났다.
  • 택시비로 어딜가든 2만원씩 나오기에 지하철을 이용하는 것이 좋다.

버스

  • NOL 카드 내릴 때 찍어야한다.
  • 생각보다 지연이 많아 잘 안 이용했다.

택시

  • Careem 앱 전화번호 없어도 이용 가능하다.
  • Bolt 앱 10번 탑승까지 50% 할인된다.

두바이-아부다비

  • IBN Station 에서 E101 버스를 타면 25디르함에 아부다비로 갈 수 있다.
    • 한 시간 반 정도 걸리는데, 일찍 출발했다가 일찍 돌아오자.
    • 아부다비에서 두바이로 다시 돌아오는 버스는 사람이 많아 두 대를 더 기다렸다.
  • Internet City Station의 Mercure Dubai Barsha Heights Hotel 앞에서 09:30에 Yas Island Abu Dhabi로 출발하는 무료 버스가 있다고 하는데 도전은 못 해봤다.

식사

식당

  • 두바이 물가가 원래 한국보다 약간 비쌌고, 원화가치도 폭락하면서 더 비싸졌다.
    • 2인 기준 최소 4만원, 괜찮은 음식점에서 먹으면 7만원, 분위기 내려면 15만원정도 든다.
  • 식당에 가는 것보다 Deliveroo 앱 또는 Careem 앱을 이용하여 배달로 저렴하게 먹는 것이 더 괜찮았다.
  • 에어비엔비 숙소나 취식 가능이라면 근처 마트에서 고기를 직접 사서 구워먹는 것이 가장 저렴하다.
  • 양고기는 RAWABI AL SHAM RESTAURANT & BUTCHERY가 정육식당 느낌인데, 가성비 있고 현지인들도 많고 굉장히 맛있었다.
  • 수크 쪽에서는 Al Bait Al Qadeem Restaurant가 현지식 도전하기에 좋았다.
    • 한국인들도 많이와 단체로가면 비빔밥도 해준다고 한다.
  • 영국인들이 많이있는 식당인 Arabian Tea House Restaurant는 가격만큼 서비스와 맛이 좋았다.
    • 아침은 좀 아까웠고, 점심/저녁 추천.
  • 부르즈할리파를 배경으로 사진을 찍고 싶다면 56층에 위치한 CÉ LA VI를 가면 된다.
    • 아시안들이 밥을 많이 시키고 현지인들은 음료만 시키고 사진 찍고 가는 것 같았다.

카페

  • 동남아와 다르게 과일스무디, 과일쥬스들이 엄청 비싸다. 한 잔에 최소 12,000원 정도.
  • 아이스 아메리카노도 그란데 사이즈 기준 8,000원 정도.
  • 마트 내 카페는 상대적으로 저렴하고, Soft Drink가 저렴해서 제로콜라를 많이 먹게 되었다.

관광지

두바이 프레임

  • 올라가지 말고 Zabeel Park 들어가서 사진찍으면 잘 나온다.
  • 유료 공원이라 관리도 잘 되어있다.

시장

  • 골드수크와 스파이스수크는 호객문화가 심해서 이런 문화가 있다 정도로만 둘러보면 된다.
  • Deira Old Souq Marine Transport Station에서 1디르함에 바지선을 타고 두바이크릭을 건너오는 건 좋았다.

아쿠아벤처

  • 아쿠아벤처 워터파크는 무조건 오픈런해야한다.
    • 총 3개의 아일랜드가 있는데, 오후엔 슬라이드 하나 타는데 최소 30분 대기 해야하기 때문이다.
    • 모노레일은 가성비 안 나온다. 택시 타자.
  • 워터슈즈는 나눠주는걸로 충분했다.
  • 밥은 스타벅스 가서 샌드위치 먹는게 가성비 좋다.

악어공원

  • Dubai Crocodile Park은 공항 옆이라 첫날, 마지막날 시간 뜰 때 가면 좋다.
  • 16:30 에 악어 직접 만져볼 수 있다. 특정 요일엔 먹이도 줄 수 있다고 한다.
  • 조경도 잘 해놓고 관리가 잘 된 느낌이라 좋았다.

기타

불꽃놀이

  • 신년행사로 불꽃놀이는 두바이 어느 해변이나 명소에 가도 한다.
  • 두바이몰은 16:00 이후로 교통 통제 된다.
    • 사람이 워낙 많아 불꽃놀이 끝나고 주요 지역을 빠져나오는데 3시간 이상 걸린다.
    • 1박이라도 호텔을 잡는게 낫다.
  • 아부다비에선 50분동안 불꽃놀이를 한다고하기에 나중엔 아부다비에서 신년을 맞이하는게 나아보였다.

경찰서

  • 두바이엔 Smart Police Station, SPS가 경찰서다.
  • 야간에도 운영하는데, Dubai Police 앱을 다운받고 가거나 직접 앱으로 민원을 접수할 수 있다.
  • Dubai SPS Muraqqabat가 우리나라의 경찰서와 규모가 비슷한 느낌이었다

여담

  • 여행객을 위한 도시, Dubai Night를 위한 도시
  • 사람 사는 맛은 아부다비에 더 있었다.

End of Year Retro 2024

· 5 min read

두드러기로 고생하며 신년을 지나, 새로운 직장에서 커리어를 시작했다. 이커머스 업계에서 오래 일했기에, 새로운 도메인은 모든 것이 생소했다. 하나의 제품을 완성하기 위한 재료와 그 여정은 엄청났다. 자동차에도 관심이 없었으니 트림, 외내장, 옵션 등도 생소했다. 줄임말로 표현되는 다양한 용어도 난해했다. 프로젝트 도중 투입되어 외주에서 껍데기만 만들어 놓은 기능들을 하나씩 정리하며 정신없이 상반기를 보낸 것 같다.

집에 와서도 쉴 수 없었다. 기술사 강의와 숙제, 블로깅, 코딩 등 여러 가지를 병렬로 진행하며 기계처럼 살았다. 디스크 재활을 통해 단련된 강한 멘탈 덕분에 버틸 수 있었다. 그렇게 시간을 녹이며 1년을 달리다가, 와이프가 예약해둔 여행 덕에 잠깐씩 현실을 잊을 수 있었다. 시험을 앞두고 5일간 휴가를 내어 스터디카페에서 마지막 열정을 불태웠다. 그러나 합격 점수에서 4점이 부족해 아쉬움이 많이 남았다.

3분기 내용 비공개

마지막 분기에는 루틴이 다소 소홀해졌지만, 1년 넘게 기술사 공부에 매진했던 시간 덕분에 기술을 보는 눈이 열렸다. 이는 사내 기술과 거버넌스를 이해하는 데에 도움을 주었을 뿐 아니라, 도메인 지식과 밸류체인이 머리 속에서 거미줄처럼 연결되어 있어 투자에도 많은 통찰을 주었다.

연말에는 드디어 아랍에미리트를 다시 방문했다. 신혼여행 중 "3일이나 여기서 보내느니 그리스 북부를 더 둘러보자"고 투덜댔던 내가, 여행 일정의 일부였던 이곳에 완전히 매료되었다. 2년 만에 다시 찾은 이곳은 여전히 안전하고, 차별 없으며, 모든 문화가 어우러진 곳이었다.

신년을 맞이하기 직전, 새로운 롤모델도 만날 수 있었다. 20년 전, 31살에 인도에서 아랍에미리트로 이직한 엔지니어는 지금은 팀장을 맡고 있다고 했다. UAE를 바라보는 관점이 나와 같아 비자가 있는지 물었고, 그는 2년 전에 받은 골드 비자를 보여주었다. 그 비자는 노동자로서 월 1,000만 원을 비과세로 번다는 걸 증명하기에, 내 꿈이 눈앞에 있다고 말했다. 그렇게 인도, 이집트 출신의 케미컬 엔지니어들과 이야기하다가 루마니아 출신 일본 은행 직원과 그의 남편인 벨기에인을 만났다. 버즈 알 아랍 앞에서 같이 잊지 못할 셀피도 남겼다.

2025년은 2024년의 결과를 마주할 한 해이기에 기대가 되면서도, 실패로 인해 과정이 더 길어질까 두렵기도 하다. 모든 일은 준비되면 성취할 수 있고, 미리 예비되지 않으면 실패한다. 열매를 맺기 위해 誠을 다하자.

맨체스터 코딩, 차등 맨체스터 코딩

· 3 min read

맨체스터 코딩 개념

  • 각 비트의 중간 시점에 전압 레벨을 반전시켜, 동기화와 오류검출에 이점을 가진 라인코딩 방식
  • 클록 동기화 용이, 오류 검출 유리, DC(직류성분) 감소, NRZ 대비 대역폭 2배 필요

맨체스터 코딩 구조도, 동작 원리

맨체스터 코딩 구조도

Manchester code

  • 비트 중간에서 하향 전이하면 0, 상향 전이하면 1로 부호화

맨체스터 코딩 동작원리

순서절차설명
1인코더에 데이터 입력이진 데이터 입력, 비트별 부호화 수행
2비트상태 변환 및 전송0 비트 하향 전이, 1 비트 상향 전이 후 전송
3데이터 신호 해석비트 중간 반전 시점 해석, 데이터 추출
4이진 데이터 비트 출력추출 데이터를 비트로 출력하여 원 데이터 수신

차등 맨체스터 코딩 구조도

Difference Manchester code

  • 0: 시작점에서 전이, 1: 시작점에서 전이 없음, 모든 비트 중간점에서 항상 전이

맨체스터 코딩, 차등 멘체스터 코딩 비교

구분맨체스터 코딩차등 맨체스터 코딩
개념비트 중간 신호를 상하향 전이, 시간 정보와 데이터 전달 역할 수행인접 신호의 변화를 표현하기 위한 차등 인코딩과 맨체스터 코딩 결합
신호표현0: +전압에서 -로 하향 전이
1: -전압에서 +로 상향 전이
0: 비트 시작 전이 없음, 비트 중간 전이 발생
1: 비트 시작, 중간 모두 전이
장점설계, 구현 단순
에지 검출로 클록 동기화 용이
빠른 전송 속도
극성 반전 없음, 노이즈 강건성
단점낮은 대역폭 효율성높은 구현 복잡도, 초기 상태 의존성
활용 분야초기 이더넷, RFIDToken Ring LAN, 극성 완전 네트워크