본문 바로가기

전체 글150

[Database] MVCC 란? 0. 한 문단 요약1. MVCC(Multi-Version Concurrency Control)는 데이터베이스에서 동시성을 효율적으로 관리하고, 트랜잭션 격리 수준과 데이터 일관성을 보장하기 위한 기술2. 데이터를 여러 버전으로 저장하여 읽기 작업과 쓰기 작업이 동시에 수행가능3. 이를 통해 잠금 경합 문제를 줄이고, 성능과 데이터 일관성을 동시에 확보 1. 동시성 제어란?먼저 MVCC(다중 버전 동시성 제어)를 알기 위해선 "다중 버전"을 제외한 "동시성 제어"에 대해 명확히 알 필요가 있습니다. 동시성 제어 : 데이터베이스 관리 시스템(DBMS)에서 여러 사용자가 동시에 데이터에 접근하거나 트랜잭션을 수행할 때 발생할 수 있는 문제를 해결하고, 데이터의 일관성과 무결성을 유지하기 위한 기술입니다. 데이.. 2024. 11. 23.
[Database] 실수하기 어려운 환경 만들기 서버 개발하면서 DB 관리와 관련된 중요한 부분을 간과하고 있었던 것이 있었습니다. 바로 로컬 환경에서 프로덕션 DB로의 연결이 쉽게 가능했고, ddl-auto 옵션을 사용하여 언제든지 DB가 초기화될 위험을 안고 개발해 왔던 점입니다.https://www.youtube.com/watch?v=SWZcrdmmLEU&t=32s 위 영상과 같이 ddl-auto: create로 인한 이슈는 흔치 않지만, 누구나 한 번쯤은 겪을 수 있는 문제라고 생각했어요. 저희 팀도 이 점을 알고 있었으나, 바쁜 기능 개발에 치여 이 문제를 나중에 개선하자는 식으로 미루어 왔습니다.문제 상황 발생결국 운영 DB에서 이슈가 발생하고 말았습니다. 테스트 편의성 때문에 프로덕션 DB에 직접 테스트를 진행하는 경우가 있었고, loca.. 2024. 9. 16.
우아한객체지향을 보고 남기는 액기스 1. 세팅된 환경개념객체들을 뽑아낸다. 개념객체간의 라이프사이클, 간섭, 응집 등을 고민개념들을 바탕으로 테이블 설계라이프사이클만 같으면 연관관계, 그 외에는 id값만 저장 -> id를 통해 연관관계 설정 특정 로직에 대해 협력을 설계해보자관계에는 방향성 필요, 관계의 방향 == 협력의 방향 == 의존성의 방향일반적으로 객체 참조를 통해서 연관관계를 구현한다.객체 참조는 방법, 연관관계 구현이다. 1:1 매핑 관계가 아님을 인지하자.모든 참조에는 이유가 있어야 함.객체 참조는 결합도가 가장 높은 의존성  2. 연관관계 개선하기2-1. 중간 객체를 이용한 의존성 사이클 끊기 2-2. 연관관계 끊기a. 문제점객체 참조로 구현한 연관관계는 두 객체 사이의 결합도가 높아진다.이는 하나의 객체를 수정하게 되면 다.. 2024. 6. 18.
BE로서 GraphQL 맛보기 0. 목표 graphQL이 무엇인지 누구한테 간단히 말할 수 있을 정도로 알아보자. graphQL를 통해서 실제 개발은 어떤식으로 하는지 감각을 가져보자. 1. GraphQL 그게 뭔데 1-1. 일단 REST API ? REST API에 대해서는 깊게 들어가면 끝이 없지만 다들 어느정도 알고 계시기도 하고, 이게 중요한게 아니니까 REST API 자체에 대한 자세한 설명은 넘어가겠습니다! 1-2. REST API 한계 OverFetching 문제 특정 API 의 응답값이 다음과 같다고 가정해보겠습니다! [ { "name": "송민규", "nickname" : "송민규짱짱맨", "generation" : 33, "part" : "server", "drinkingCapacity" : 2.5 "mbti": ".. 2024. 4. 22.