전체 글96 데이터 중심 애플리케이션 설계 - 파티셔닝 파티셔닝 샤딩 : 데이터를 파티션으로 쪼갤 필요가 있다. 파티션 : region, tablet, vnode, vbucket 처럼 서비스마다 쓰이는 용어가 다양하다. 데이터 단위가 하나의 파티션에 속한다. 파티셔닝을 원하는 주된 이유는 확장성이다. ⇒ 분산하여 질의 부하를 감소시킴 트랜잭션 기반인지, 분석 기반인지에 따라 시스템을 튜닝하는 방법은 다르지만, 기본적으로 둘ㄷ ㅏ파티셔닝의 원칙이 적용된다. 파티셔닝과 복제 보통 복제와 파티셔닝을 함께 적용해 각 파티션의 복사본을 여러노드에 적용한다. 한 노드에 여러 파티션을 저장할 수도 있다. 각 파티션마다 리더파티션이 있는 구조 키-값 데이터 파티셔닝 파티셔닝의 목적은 질의부하를 노드사이에 고르게 분산시키는 것이다. Skewed: 파티셔닝이 고르게 이루어지지.. 2023. 4. 24. 데이터 중심 애플리케이션 설계 - 복제 - 다중 리더 복제 다중 리더 복제 리더에 대한 의존성이 높다. 리더가 여러개: 다중리더설정, 마스터미스터 액티브/액티브 복제 다중 리더 복제의 사용사례 다중 데이터센터 운영 데이터 센터마다 리더를 두고 복제를 진행 오프라인 작업을 하는 클라이언트 인터넷이 끊어진 동안 앱이 계속 동작해야하는 경우 이 경우 로컬 데이터베이스가 있다. 아키텍처 관점에서 보면 근본적으로 다중 리더복제와 동일하다.(구글 캘린더?) 협업 편집 실시간 협업 편집 애플리케이션: ex 구글독스 오프라인 사용 사례와 공통점이 많다. 로컬에 적용하고 이후 비동기방식으로 타 사용자의 db와 연동한다. 충돌이 없으려면 편집전 문서의 lock을 얻어야한다. [펌] 파일락(File Lock) 쓰기 충돌 다루기 동기 대 비동기 충돌감지 단일 리더: 들어온 순서대로 .. 2023. 4. 21. 데이터 중심 애플리케이션 설계 - 복제 - 복제 지연 문제- 복제 지연 문제 리더기반 복제 : read-scaling 아키텍처 쓰기는 하나의 노드에서(리더기반) 나머지 복제된 노드는 읽기 처리만 진행하면 됨 쓰기비율이 낮고 읽기 비율이 높은 경우 유용하다. 실제로는 비동기식 복제에서만 동작한다. 동기식으로 처리시 네트워크 중단 등으로 시스템 불안정 초래 또한 비동기 처리 후 과거 데이터를 보여줄 수 있음.(불일치 발생=일시적인 효과 ⇒ 최종적 일관성) 자신이 쓴 내용읽기 일반적으로 사용자는 사용자가 제출한 데이터를 읽을 수 있음. 이때 종종 새로운 데이터는 리더에게 전송하지만 팔로워에서 읽을 수 있도록 함 ⇒ 데이터가 팔로워에 반영되지 않을 경우 유실된 것처럼 보이기도 함. 이 경우 입력은 보장하나 읽기는 보장할 수 없다 ⇒ 쓰기 후 읽기 일관성의 필요성 수정 시.. 2023. 4. 20. 데이터 중심 애플리케이션 설계 - 복제 - 리더와 팔로워 복제: 네트워크로 연결된 여러 장비에 동일한 데이터의 복사본을 유지한다는 의미 복제가 필요한 이유 지리적으로 가깝게 유지해 지연 시간을 줄임 장애가 발생해도 지속적으로 동작하여 가용성 높임 장비의 수를 확충하여 읽기 처리량을 늘림 큰 데이터를 볼 때에는 파티셔닝을 살펴본다. 복제의 어려움은 변경처리에 있다. 복제를 위한 알고리즘 단일리더(single-leader): 다중리더(multi-leader) 리더없는(leader-less) 리더와 팔로워 replica: 복제된 데이터를 저장하는 각 노드 일반적인 해결책 리더기반 복제(leader-based replication) active , passive, master, slave) 리더가 되는 서버를 하나 지정한다(master, primary) 리더는 데이터.. 2023. 4. 18. [Codewars 6kyu / Python]- datetime 패키지로 날짜 빼고 시간만 처리하기/시간 연산하기 문제 여러분은 한 기업의 컴퓨팅 전문가입니다. 특정 시간들에 대한 인풋값을 입력하면 해당 시간의 range, avg, median 값을 출력해야 합니다. 예상되는 input과 output의 형태는 아래와 같습니다. "01|15|59, 1|47|6, 01|17|20, 1|32|34, 2|3|17" => "Range: 00|47|18 Average: 01|35|15 Median: 01|32|34" - 이 문제는 날짜를 다룰 필요가 없습니다. - 시간은 60진수 바탕이기 때문에 일반적인 숫자처럼 다루기 보다는 time 형태로 변환하여 연산해야합니다. Codewars - Achieve mastery through coding practice and developer mentorship A coding pract.. 2023. 4. 16. 데이터중심 애플리케이션 설계 - 데이터플로 모드 데이터 플로란? 하나의 프로세스에서 다른 프로세스로 데이터를 전달하는 방법 데이터 베이스 호출을 통해, 서비스 호출을 통해, 비동기 메시지 전달을 통해 전할 .. 다양한 방법이 있다. 데이터 베이스를 통한 데이터플로 데이터베이스에 뭔가를 저장하는 일을 미래의 자신에게 메시지를 보내는 ㅣㅇㄹ처럼 생각할 수 있다. 데이터 베이스는 저장 후 미래의 자신에게 메시지를 보내는 일로 생각해보자 여기서 하위호환성이 필요하다. 복호화를 위해서 데이터 베이스는 동시에 다양한 프로세스가 접근할 수 잇다. 새로운 버전의 코드가 기록된 다음 현재 수행중인 예전 버전의 코드로 그 값을 읽을 가능성이 있다는 의미이다 따라서 상위 호환성도 필요하다. ⇒ 여기까지 데이터 베이스에서 상위 및 하위 호환성이 필요하다는 말 그런데, 새로.. 2023. 4. 15. 데이터 중심의 웹 애플리케이션 설계 - 1장 데이터 모델과 질의언어 부분 관계형 모델과 문서 모델 데이터 모델은 작성 뿐만 아니라 문제를 어떻게 생각해야하는지에 대해서도 지대한 영향을 끼친다. 각 계층은 명확한 데이터 모델을 제공해 하위 계층의 복잡성을 숨긴다.(잘된 추상화) 각 계층의 핵심적인 문제는 다음 하위계층 관점에서 데이터 모델을 표현하는 방법이다. 다양한 유형의 데이터모델이 있고, 각 데이터 모델은 사용 방법에 대한 가정을 나타낸다. 관계형 모델과 문서 모델 sql : 관계(relationship, columns)로 구성되고 각 관계는 튜플(tuple, rows)로 구성된다 관계형 데이터베이스의 근원은 컴퓨터에서 수행된 비즈니스 데이터처리에 있다.(트랜잭션 처리와 일괄처리) 1970~1980: 네트워크 모델, 계층 모델 ⇒ 관계형모델 1980~1990: 객체 데이터.. 2023. 4. 15. NLP study load-map : nlp 스터디로드맵 https://github.com/graykode/nlp-roadmap GitHub - graykode/nlp-roadmap: ROADMAP(Mind Map) and KEYWORD for students those who have interest in learning NLP ROADMAP(Mind Map) and KEYWORD for students those who have interest in learning NLP - GitHub - graykode/nlp-roadmap: ROADMAP(Mind Map) and KEYWORD for students those who have interest in learning NLP github.com 2023. 4. 8. [Git] commit author 수정하기 프로젝트가 많아지다보면 여러개의 깃 계정을 사용하게 될 수도 있다. (가령 private gitlab이라던가...) 이럴때 git 에서 초기에 설정한 global user 설정이 commit에 뒤집어 엎어질 때가 있다. 이럴 때는 git config --global user.name을 통해 수정하는 것도 있지만 하나만 수정하고 싶다면 아래와 같이 써보자 $ git commit --amend --author="hoseung2 " 다만 바로 이전 커밋에만 해당된다. 2022. 9. 13. Elastic beanstalk 적응기 [1 - 진짜 간단히만 보았다] 회사에서 데이터 기술팀이 형성되고 이관받아야 할 업무가 생겼다. 알음알음 기술들을 읽으며 찾아가다보니 오류가 자주나는 지점이 발견되었는데, elastic beanstalk에 앱이 올라가 있었다. 하지만 그게 뭔지 아무것도 모르는 나! 때문에 나름 로그를 받아보아도 이걸 어떻게 수정하면 좋을지 감이 잘 오지않았다. 그래서 공부해보자! Elastic Beanstalk 소개 및 개념 aws 공식 문서인 개발자안내서에서 요약적으로 내용을 발췌해보았다. 큰 역할: Elastic Beanstalk를 사용하면 AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있습니다. 용어 및 개념 ( 알면 좋을 것만 가져왔다.) 어플리케이션이란? - 개념적으로 폴더와 유사 어플리케이션 버전이란? - APP의 코드 배포.. 2022. 8. 20. [python/리눅스]HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules _________________________________ ERROR collecting tests/test_settings.py __________________________________ import file mismatch: imported module 'test_settings' has this __file__ attribute: /home/hoseung2/cc/tests/test_settings.py which is not the same as the test file we want to collect: /home/hoseung2/test_release/cc/tests/test_settings.py HINT: remove __pycache__ / .pyc files and/or use a u.. 2022. 8. 12. TypeError: descriptor '__init__' of 'super' object needs an argument 제목과 같은 에러가 나와서 호잇! 했는데, 해결방법은 쉽다! # 수정전 def __init__(self): super.__init__() # 수정전 def __init__(self): super().__init__() super를 선언하는 것을 잊지 마시길 ㅎㅎ 2022. 7. 29. 이전 1 2 3 4 5 6 7 8 다음