목록전체 글 (518)
개발놀이터
compilation : 편집, 편집물 frequency : 빈도수 availability : 유용성 accommodated : 수용하다, 태우다 / 편의를 봐주다 infrastructure : 기반 시설 redundancy : 여분 / 과잉 Furthermore, if the data required for the query is horizontally partitioned across multiple shards, the router must then query each shard and merge the result together 게다가 만약 데이터가 여러개의 샤드로 수평적으로 나눠진 쿼리를 요구한다면, 라우터는 각각의 샤드로 쿼리를 나눠서 보내고 각각의 결과를 병합해야한다. A poor choi..
Compliant : 표준, 준수 proprietary : 독점, 소유 solely : 단지 respective : 각각의 outperformed : 성능이 우수한 aggregation : 집합, 집단, 집적 fraud : 사기, 기만, 사기 행위, 부정 수단 financial : 금융의 precise : 정밀한 scalability : 확장성 criteria : 기준 auditing : 회계 감사, 감사 conclude : 결론을 내리다 confidential : 기밀의 conduct : 행위, 행실, 품행 / 행동하다 / 지휘하다 -> conducted : 행해진 generate : 일으키다. 초래하다 advent : 출현, 도래 vary from : ~와 다르다 refined : 정제된 redund..
오늘 포스팅에서는 데이터베이스 튜닝 방법인 Clustering, Replication, Sharding에 대해서 알아보도록 하겠습니다. 제가 설명할 이 세가지는 바로 분산시스템을 구현하는 방법들입니다. 분산시스템 혹은 분산환경이라고 불리는데, 여러개의 데이터베이스로 쪼개는 작업을 일컫습니다. 즉, MVCC와 마찬가지로 특별한 기술이 아닌 방법론으로 이 방법론들을 개발자들은 Architecture라고 하는 듯 합니다. 따라서 이 셋을 구현하는 방법은 정말 여러가지로 많고 우리는 그중에서 가장 대표적인 것들을 위주로 알아볼 예정입니다. Clustering Clustering (이하 클러스터링)은 하나의 데이터베이스 인스턴스 혹은 시스템 서버를 더많은 과정으로 쪼개는 작업입니다. 보통 데이터베이스 클러스터 안..
이번 포스팅에서는 흔히 NoSQL이라 불리우는 비관계형 데이터베이스에 대해서 알아보도록 하겠습니다. 원래는 NoSQL에 대해서 공부할 생각이 없었지만 트위터에서 개발자가 꼭 알아야할 내용중에 NoSQL이 있는 것을 보고 내가 생각했던것만큼 중요하지않은게 아니구나 싶어서 공부하게 되었습니다. 이번 포스팅에서는 NoSQL이 무엇인지, 기존 관계형 데이터베이스와 무엇이 다른지, NoSQL의 타입, 마지막으로 MicroService Architecture의 저변확대로인한 NoSQL의 입지에 대해서 알아보겠습니다. DBMS의 역사 우리는 NoSQL을 알아보기에 앞서 NoSQL 전에 관계형 데이터베이스 그리고 더 이전인 과거 이야기부터 시작해야합니다. 관계형 데이터베이스 이전, 기업들은 데이터를 관리하는 방법으로 ..
consecutive : 연속적인 / 일관된 substitute : 대신쓰다, 대체하다 / 바꾸다 in terms of : ~인 측면에서 negate : 부정하다 / 취소하다 abort : 유산(낙태)하다 / 중단하다 rigorous : 엄격한 / 혹독한 mature : 성숙한 / 잘 익은 / 완전히 발달한 ephemeral : 명이 짧은 / 덧없는 recursive : 순환의 stand out : 두드러지다 integrity : 고결 / 성실 / 청렴 -> 컴퓨터사이언스에선 데이터 무결성과 같이 사용 duration : 지속 / 계속 conversion : 전환 / 변환 numerous : 다수의, 수많은 This level is different from Read Committed in that a ..
이번 포스팅에서는 Repeatable Read 격리수준에서 발생하는 부정합 문제인 Phantom Read를 Oracle에선 어떤 방식으로 해결했을지에 대해서 알아보도록 하겠습니다. Oracle은 전 세계에서 가장 많이 사용하는 데이터베이스 중 하나로 오랜시간 사랑받은 데이터베이스입니다. Phantom Read 해결방안 In Oracle 데이터를 잠근다는 것은 같은 리소스에 접근하는 트랜잭션 사이에서 일어날 수 있는 해를 끼치는 상황들을 막아줍니다. 이러한 모든 상황에서 오라클은 SQL문이 처리될 때 필요한 락을 자동적으로 얻을 수 있습니다. 그래서 오라클을 사용하는 유저는 세세한 것까지 걱정할 필요가 없어지죠. 오라클은 자동적으로 가장 낮은 수준의 제한정도를 가장 높은 수준의 데이터 정합성으로 바꿔줍니다..
이번 포스팅에서는 Repeatable Read 격리수준에서 발생하는 부정합 문제인 Phantom Read 를 PostgreSQL과 MSSQL에서는 어떻게 해결했는지에 대해서 포스팅해보겠습니다. 우선 PostgreSQL과 MSSQL을 묶은 이유는 두개의 데이터베이스가 Phantom Read 부정합문제를 같은 방식으로 해결했기 때문입니다. 우선 저는 이번에 PostgreSQL에 대해서 자세히 알게 되었습니다. 얼마전까진 있었는지도 몰랐구요. 그래서 간단하게 PostgreSQL에 대해서 정리하고 본격적으로 해결방안에 대해서 말씀드리겠습니다. PostgreSQL이란? PostgreSQL은 RDBMS 중 하나입니다. 기존 Postgres에서 SQL을 지원하게 된 것이 지금의 PostgreSQL이라고 합니다. 초기..
Subsequent : 이후, 그후 intact : 손대지 않은, 손상되지 않은 populate : 거주시키다 / 장소를 차지하다 diminish : 감소하다 / 권위가 떨어지다 bloated : 부풀어오른 / 오만한 intuitive : 직관적인 simultaneous : 동시의 coordinate : 조정하다 / 동등한, 대등한 exclusive : 독점적인 ↔ exclusion : 제외, 베재, 추방 precede : 앞서다 / 우선하다 -> preceding : 이전의 span : 기간 purged from : ~에서 제거된 denotes : 표시하다, 나타내다 / 의미하다 One way is to create a new table and pre-fill it with data to act as ..
이번 포스팅에서는 Mysql에서 Phantom Read 부정합 문제를 어떻게 해결하고 있는지에 대해서 알아보도록 하겠습니다. 굳이 Mysql에서 라고 글을 쓴 이유는 공식문서를 여러개 찾아보던 중에 PostgreSQL과 Oracle 에선 다른 방식으로 이 Phantom Read 부정합 문제를 해결했다는 듯이 쓴 글을 몇개 봤기 때문입니다. PostgresSQL은 얼마나 smoothly 하게 이슈를 해결했는지 꼭 알고싶어서 말이죠 따라서 이번 포스팅에서는 우리가 흔히 접하게 되는 Mysql에서 Phantom Read를 어떻게 해결했는지에 대해서 알아보겠습니다. Phantom Read란? 격리 수준에 대해서 포스팅할 때나, @Transactional 에 대한 포스팅을 할 때 잠깐잠깐 등장하고 아주 간략하게 ..
오늘 포스팅에서는 흔히 Read Committed 격리 수준에서 생기는 부정합 문제인 Non-Repeatable Read 문제를 해결하기 위해 사용하는 방법이라고 알려져있는 MVCC에 대해서 알아보도록 하겠습니다. 이 포스팅에서는 MVCC가 무엇인지, 사용하면 어떤 이점이 있는지, 동작원리 등을 알아볼겁니다. MVCC에 대해서 깊게 알고싶지 않으신 분들은 그냥 Non-Repeatable Read 문제를 해결하기 위해서 Undo영역 혹은 Xmin, Xmax를 이용해 해결하는 방법론이라고 알고 계시면 될 것같습니다. 그럼 시작해보죠 MVCC란? MVCC란 Multiversion Concurrency Control의 약자로 해석해보면 "여러개의 버전으로 동시성문제를 해결하는 방법"이라고 할 수 있습니다. 왜 ..