이전 블로그에 작성했던 글을 옮깁니다. 본 작성일은 2023.12.06 입니다. 개요오랜만에 코딩테스트를 응시했습니다. 알고리즘 공부를 관둔 지 1년 정도 흘렀는데요, 하루하루 실력에 하락을 느끼고 있었습니다. 그래서 어려운 코테로 분류되는 카카오 코테를 응시하고 실력을 가늠하고 싶었습니다. 결과는 5솔로 모두 해결했습니다. 주관적으로 이번 코딩테스트는 쉬웠습니다. 이전에 카카오 공채 코테를 응시한 적이 있는데, 구현 난이도가 어려운 문제가 다수 출제됐습니다. 그때는 7개의 문제로 구성되어 있었는데, 이번엔 5개로 시간도 널널했습니다. 다만, 해결하는 과정에서 이전보다 실력이 떨어졌다는 생각이 여러 번 들었습니다. 응시 환경에서는 아무래도 긴장할 수밖에 없지만,, 사실 긴장하지 않았습니다. 그럼에도 1..
저는 불과 어제, 빼앗겼습니다. 작은 서비스를 운영하고 있습니다. 올클이라는 서비스로 수강 신청을 연습할 수 있는 서비스입니다. 교내 학우들을 대상으로 서비스합니다. 일 최대 6000명의 사용자가 있었고, 가입자 수는 3천 명 정도입니다. 올클의 탄생부터 지금까지작년, 학교 서버 해킹 사태로 수강 신청 시스템 보완이 강화되었습니다. 강화된 만큼 수강 신청 절차는 복잡해졌고, 이 페인 포인트를 직접 겪은 저는 수강 신청을 연습하고자 서비스를 만들었습니다. 당시 개발 경험이 없었습니다. Spring Boot와 Thymeleaf, 그리고 약간의 자바스크립트를 곁들여 정적인 페이지를 서비스했습니다. 굉장히 부족한 서비스였죠. 서비스라고 하기에도 부끄러웠습니다. 그래도 개발 처음 시작한 사람이 어떻게든 만..
Real MySQL 8.0을 읽고 저의 뇌구조에 맞게 정리한 내용입니다. 목차언두 로그가 어떻게 사용되는지언두 테이블스페이스 관리언두 로그로 발생할 수 있는 문제발생하는 문제를 MySQL 8.0 버전에서 해결언두 로그 모니터링하기읽으면서 생긴 질문 언두 로그가 어떻게 사용되는지DML(INSERT, UPDATE, DELETE) 실행으로 데이터가 변경되기 전에 이전 버전 데이터를 백업한다. 백업된 데이터를 언두 로그라고 한다. 트랜잭션 보장트랜잭션이 롤백되면 트랜잭션 도중 변경된 데이터를 변경 전 데이터로 복구해야 한다.이때 언두 로그에 백업해둔 이전 버전의 데이터를 이용해 복구한다. 격리 수준 보장특정 커넥션에서 데이터를 변경하는 도중 다른 커넥션에서 데이터를 조회하는 경우에, 트랜잭션 격리 수준에..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
어제(6월 27일) 대규모 시스템 설계 스터디를 종료했습니다! 🎉🎉 약 1달 간의 스터디가 잘 마무리되어 뿌듯합니다. 우테코 레벨1부터 여러 스터디에 참여했지만, 이번 스터디는 여러 면에서 인상적인데요. 제가 시작하기도 했고, 주제도 재밌었고, 우테코에서 배운 가치를 녹여내어 그런 것 같습니다. 대학생 때부터 여러 스터디에 참여했지만 스터디의 마침표를 찍는 것은 참 어려운 것 같습니다. 이번 경험을 기록으로 남겨 다음 스터디에 좋은 피드백이 되었으면 좋겠습니다. 그럼 그동안의 여정을 간단하게 정리해 보겠습니다. 어떤 스터디를, 왜 하게 되었는지대규모 시스템 설계 스터디를 했습니다. 우리의 나침반은 「가상 면접 사례로 배우는 대규모 시스템 설계 기초」라는 책이었습니다. BE 크루 망쵸(저)와 리니..
목차트랜잭션 스케줄Serial / Nonserial 스케줄Serial / Nonserial 스케줄 성능 비교Nonserial 스케줄의 문제점Conflict serializableSerializable 스케줄로 Nonserial 스케줄의 문제 해결 설명을 위해 예시사용자 A의 계좌에는 100만원, 사용자 B의 계좌에는 200만원이 있다.사용자 A는 사용자 B에게 20만원을 송금한다. 동시에 사용자 B는 자신의 계좌에 30만원을 예금한다. 1. 트랜잭션 스케줄여러 트랜잭션이 동시에 실행되는 경우에 각 트랜잭션에 속한 작업들의 실행 순서다. 각 트랜잭션 내의 작업들의 순서는 바뀌지 않는다. 여러 트랜잭션에 대해 스케줄은 수많은 조합이 나올 수 있다. 트랜잭션 스케줄은 DB 동시성 제어 이론의 근간이고, 범용..
보호되어 있는 글입니다.