전체 글 235

전통 락킹(2PL) vs MVCC :동시성 제어 방식 비교

현재 읽고있는 데이터베이스 개론 3판 읽으며 동시성제어에 관한 짤막한 정리해놓기요약표(2PL vs MVCC) 2PL(2-Phase Locking)2PL 전통방식으로 read, write 모두 lock을 가짐, read는 S-lock(공유락), writ는 X-lock(배타락)S-lock은 read와 read끼리는 공유가능하여 트랜잭션중에도 해당 데이터에 대한 접근 가능.하지만 read시에 Write불가하여 X-lock을 얻기위해 read가 끝나도로 기다려야하고, 반대로 write시에도 read할수없도록 하기위해 X-lock이 반납되어 S-lock을 얻을때까지 기다려야한다.S: Shared 공유, X: Exclusive 배타적MVCC(Multi-Version Concurrency Control, 다중버전 동..

공부/DB 2025.11.19

AOP란 무엇이고 필요한 이유, 프록시패턴/데코레이터 패턴

요약코드의 횡단 관심사와 핵심 관심사가 섞이면 코드 중복과 결합도 증가하고 핵심 의도를 파악하기 어려워 가독성 과 유지보수가 저하된다. 따라서 핵심 관심사로부터 횡단 관심사를 분리하기 위한 목적으로 AOP를 적용한다.AOP는 실제 핵심 관심사를 프록시로 감싸 부가기능을 주입하는 구조를 가지고,AOP가 어떤 패턴인지에 대해서는 의도에 따라 달라지는데, 제어가 목적이면 프록시패턴, 부가 기능 확장이 목적이면 데코레이터 패턴으로 본다.이러한 개념을 바탕으로 스프링에서는 @Aspect, @Around 같은 어노테이션을 통해 AOP를 구현할 수있으며, @Transactional또한 프록시 패턴기반의 AOP가 적용된 사례이다.필요한 이유횡단 관심사여러부분에 공통적으로 적용되는 (부가적인) 기능횡단 관심사와 핵심 관..

Spring Framework가 탄생하게 된 배경/ 웹 변천사 및 동작 원리

스프링 탄생에 앞서 웹 역사..웹 초기 정적페이지 기반 사이트초기 인터넷 보급이 크지않았고 발달할 당시에는 간단한 HTML 방식의 정적페이지에서 이미 만들어져있는 css, image 등을 통해 정보를 제공하였다.동적 페이지 기반 사이트그런데 인터넷과 Web이라는 시장이 커지면서 2000년 초 HTML을 통해 정적인 파일들을 화면에 표시하는 정적 페이지 떠나 사용자의 반응에 동작(인터렉션)하는 동적 페이지가 필요했다.CGI이러한 동적페이지를 만들기위해 CGI(Common Gateway Interface)이라는 개념이 등장했다. CGI는 외부 프로그램과 연결해주는 인터페이스(API) 표준 방법 개념이고 이걸 바탕으로 만든 프로그램을 CGI 프로그램 이라한다. 사용자 요청에 웹서버가 파라미터를 통해 CGI로된..

객체지향의 사실과 오해

들어가기전에코드가아닌 글로써 객체지향에 대한 식견을 설명을 정말 잘한 책이라고 생각한다.읽으면서 느낀점이나 기억남는것을 써내려가기때문에 정확한 해석이나 순서는 보장하지않는다. 단순하게 개념의 정의로만 알던 혹은 오히려 클래스와 객체를 만들고 직접 코드를 짜면서도 단순히 모호한 형태의 덩어리처럼이해하던 객체지향을 글을 통해 좀더 깊게 생각하게 되었다. 다독을 통해 처음본것보다 2번째 봤을때 느끼고 이해가는게 다르듯이 한번 보고 나중에 한번더 읽으면 좋을거같다. 해당 책의 일부분만 적은것이고 추후 느낀점을 더 쓸거같다. 이상한나라의 앨리스이책은 이상한나라의 앨리스를 예시를 통해 객체지향의 특색과 의도 목적 등을 다양한 시각으로 설명을 시작하였다.앨리스가 시계를 보며 허겁지겁 달려가던 토끼를 보고 따라가면서 ..

기타/독서 2025.10.20

[TIL] MSA, API Gateway , JAVA, Nodejs 스텍 고민 꿩먹고알먹고

현재 프로젝트를 스프링부트, JPA, mysql 진행중인데숙련도나 아직 이해못한것도 있으니 꾸준히 디벨롭할 생각인데 문득생각든게 java냐 node냐 각 차이, nosql 등 사용경험을 가져갈려면 또다른 프로젝트를 진행하고나 그래야되는데 그건 솔직히 시간적, 스케일적으로 불필요하게 소모하고 낭비해야될게 많기 때문에 적용하기 힘들다. 그러다 문득 든생각이 서버만 다르게하고 도메인이나 기능을 해당 언어나 프레임워크로하면 되지않나 생각하게되었고 결국 그렇게 사용할때 API Gateway를 쓰는거란걸 알았다.지금당장에 구현되어있는 api 앤드포인트 도메인중 관심종목이나 검색 기능의 경우는 간단한 로직이기도 하고 get 호출인 경우기때문에 1차적으론 monolithic 하게 배포하고 운영하고 테스트해보면 되지만 ..

카테고리 없음 2025.03.06

모의주식 거래(트랜잭션, transaction) 절차 고민

백엔드쪽 작은단위 도메인 서비스와 컨트롤러들은 완성했고, 초반엔 익숙치않고 알아야하는 개념들이 있어 진도가 많이못나갔지만 익숙해지니 간단한 컨트롤러나 도메인은 2-3개씩 금방금방 적용한거같다. 검색CRUD, 검색히스토리, 소셜로그인(카카오), 일반로그인, spring security Authenciation filter, 관심종목CRUD, 실시간 종목 주가시세 웹소켓 및 단일 http, 과거 주가시세, 일부 도메인 통합테스트 진행한상태 이제 마지막 피날레 메인 도메인이될 매수,매도 프로세싱을 진행하기전 프로세싱 고민과 진행 후에는 이 예측이 어떻게 달라질지 TIL방식으로 간단히 적어볼려고한다. 매수매도를 진행하기위해선 계좌, 계좌내역, 주문, 주문히스토리 등이 한번에 이루워 져야하기때문에 복잡하고 설계..

TIL 2025.03.03