본문 바로가기

전체 글79

데이터중심 애플리케이션 설계 - 6장 [파티셔닝] 리뷰 - 2 인덱스와 파티셔닝의 상호 작용 key - value 데이터 모델에 의존한 파티셔닝 방식 = 기본키를 통해 레코드를 식별한다. 파티셔닝과 보조 색인 보통 보조색인의 역할 : 특정한 값이 발생한 항목을 검색하는 수단으로 이용 ex) user_123 의 실행 액션 조회 / 'water' 가 들어간 글을 모두 조회 보조 색인이 있는 DB 색인 방식 2가지 문서 기반 파티셔닝 [local Index] 용어 기반 파티셔닝 [Global Index] 문서 기반 보조 색인 파티셔닝 문서 파티셔닝 색인 local index(지역 색인)으로 칭하기도 함 각 파티션은 본인의 보조 색인을 유지 보조 색인은 해당 파티션이 속하는 document만 담당 [Create, Update, Delete 시의 파티션만 다루면 된다] 장점.. 2022. 10. 21.
데이터중심 애플리케이션 설계 - 6장 [파티셔닝] 리뷰 - 1 5장 리뷰 작성을 미루다가 6장을 먼저 공부해버렸다. 이후에 5장도 마저 작성하도록한다... 6장 preview 파티셔닝 방법 인덱스와 파티셔닝 간의 상호 작용 재균형화 데이터베이스가 올바른 파티션을 찾아 요청을 전달하고 질의를 실행하는 방법 파티셔닝 데이터 셋이 크거나, 질의 처리량이 매우 높은 경우 데이터를 작은 단위[파티션]으로 쪼개는 작업 (≒ 샤딩) ex) - 샤드(MongoDB, Elasticsearch, Solr), 리전 (Hbase), 태블릿 (Bigtable) - 브이노드 (Cassandra, Riak), 브이버켓 (Couchbase) 파티션은 보통 각 데이터 단위(record, row, document)가 하나의 파티션에 속함 물론 파티셔닝과 샤딩의 정확한 의미의 차이는 존재합니다. 파.. 2022. 10. 20.
프로그래머스 - KAKAO 두 큐 합 같게 만들기 [파이썬] 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 : 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구.. 2022. 9. 26.
데이터중심 애플리케이션 설계 - 4장 [부호화와 발전] 리뷰 Data outlives code (데이터는 코드보다 오래 산다) 최근 서비스는 무중단배포(ex_ 블루그린배포) - staged rollout 방식과 마이크로서비스와 같은 구조적 차이를 띈다. 그만큼 서비스 내부 코드는 더욱 자주 바뀐다. # 호환성 상위 호환성 : 이전 코드는 새로운 버전의 데이터를 읽을 수 있어야한다. 하위 호환성 : 새로운 코드는 예전 버전의 데이터를 읽을 수 있어야한다. # 직렬화(부호화), 역직렬화(복호화) 직렬화(부호화, 마샬링) : 데이터를 인메모리 표현 -> 바이트열 변환 역직렬화(복호화, 언마샬링) : 데이터를 바이트열 -> 인메모리 표현으로 변환 데이터 부호화 4가지 방식 언어별 내장 라이브러리 JSON, XML, CSV binary Encoding Libaray bas.. 2022. 9. 25.
프로그래머스 - KAKAO 성격 유형 검사하기 [파이썬] 2022 KAKAO 테크 인턴십 코딩테스트 문제 - 성격 유형 검사하기 / 파이썬 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일반적인 구현 문제. 하지만 레벨 1 치고는 읽어야하는 문제의 길이가 길다. 최근 MBTI 검사를 겨냥한(?) 문제로 최신 트렌드를 잘 반영해주는 것 같았다. 정답 코드 : from collections import defaultdict def change(problem, score): # 지표, 점.. 2022. 9. 18.
백준 11053번 - 가장 긴 증가하는 부분 수열 [파이썬] 문제 링크 : https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 기본적인 LIS 문제이다. 따라서 DP 로 접근할 수 있다 # 코드 import sys n = int(sys.stdin.readline()) seq = list(map(int, sys.stdin.readline().split())) dp = [1 for _ in range(n + 1)] for i in r.. 2022. 9. 15.