Spring + JPA 동시성제어에 대한 고찰(게시글 조회수, 좋아요 증가)
서버를 운영하다 보면 다양한 동시성제어 상황을 다루게 된다. 그 중 가장 대표적인 이슈는 조회수나 좋아요 count 문제가 있을것이다. 오늘은 이 문제에 대해서 다뤄보는 시간을 가지도록 하겠다.
서버를 운영하다 보면 다양한 동시성제어 상황을 다루게 된다. 그 중 가장 대표적인 이슈는 조회수나 좋아요 count 문제가 있을것이다. 오늘은 이 문제에 대해서 다뤄보는 시간을 가지도록 하겠다.
오늘은 지난번 정리못한 Spring AOP에 대한 정리를 해보려 한다. 그동안 스프링을 사용하며 당연하게 사용해왔떤 AOP에 대해 좀 더 깊은 지식과 배경에 대해 알아보려 한다. 물론 이러한 점들이 실제 Spring AOP를 사용하는데 있어서 크게 도움이 되지 않을수도 있지만, 알고 쓰는것과 모르고 쓰는것에는 큰 차이가 있다고 믿는다.
오늘은 그동안 작성하길 망설여왔던 주제에 대해서 포스팅을 하려한다. 바로 Java의 Garbage Colection(GC)에 대한 내용이다. Java개발자라면 기본적으로 알고있어야한다고 생각했지만, 그 내용들이 실제 업무나 코딩을 하는데 있어서 크게 쓰임새가 없다고 생각하여 미루고 미뤄왔던 포스팅이다. 하지만 최근 Naver D2나 GC에 대해 잘 작성된 글이나 영상들을 보며 개발자로써의 호기심이 치솟았고, 결국 이렇게 포스팅 작성에까지 이르게 되었다. 많고 조금 어려운 내용일 수도 있지만 길을 잃지말고 끝까지 작성해보도록 하겠다.
오랜만의 포스팅하는 오늘의 주제는 Netty의 HashedWheelTimer에 대한 분석글이다. 해당 Timer의 장점과 사용이유 Java의 Timer의 한계점 등에 대해서 소개해보려 한다.
최근 회사에서 오라클 버전 업그레이드 작업이 진행되었다. 기존 11g의 지원기간(EOS)가 2022년 7월까지였고, 정말 하기 싫었지만 업그레이드 작업은 필수가 되었다. 현재 지원되는 오라클 버전중 19c가 가장 EOS기간이 긴 버전이었고 해당 버전으로 업그레이드가 진행되었다.
업그레이드를 진행하면서 난감한 상황과 아찔한 상황들을 많이 겪었는데, 업그레이드를 앞둔 다른 개발자들에게 조금이라도 도움이 되었으면 하는 바램으로 해당 내용들을 공유하고자 한다.
지난 포스팅서는 Lambda의 개념과 과금체계에 대해서 알아보았다. 오늘은 이 람다를 이용한 Restful API 개발방법에 대해 알아보도록 하겠다.
최근 회사에서 Kafka와 Lambda를 이용한 서비스개발에 착수하게 되었다. 기존에 Lambda를 이용한 api개발 경험이 있었기에 큰 어려움 없이 구상을 할 수 있었지만, 본격적으로 진행하기 전에 lambda와 serverless에 대해 내용을 정리해보고자 한다.
최근 회사에서 SI프로젝트 지원을 나가게 되었다. 해당 프로젝트에서 사용하는 프레임워크가 Spring MVC였다. 해당 패턴에 대하여 다시한번 리마인드도 해볼겸 대부분의 웹 개발에 있어서 표준처럼 쓰이는 MVC 디자인 패턴에 대해 알아고보, 나아가 Spring MVC의 처리 과정까지 알아보도록 하겠다.
지난 포스팅에서 언급한것처럼 오늘은 nodejs 버전 업그레이드 과정에서 생긴 모니터링 시스템 장애에 대해서 말해보고자 한다.
현재 우리 시스템은 Prometheus와 Grafana를 통하여 모니터링 시스템이 구축되어 있다. Prometheus는 다양한 데이터를 직접 pooling하여 데이터를 저장하고, Grafana는 이 데이터를 시각화한다. 이 Prometheus가 pooling을 하는 방식으로 rest api를 사용하였고, 이 api를 제공하는 프로그램을 Exporter라고 한다. Promethues에서 제공하는 다양한 Exporter가 있지만 우리 시스템에서는 AWS Lambda를 Serverless Framework를 이용하여 이 Exporter를 커스텀하게 구축하였다.