올해 2월 중에 겪었던 장애 내용에 대해 관련 내용을 정리하고자 합니다.장애 상황은 다음과 같습니다.현재 제가 맡은 업무 도메인의 경우 API 산출 결과 데이터를 MongoDB에 실시간을 적재하고 있습니다.언제나 그렇듯 업무를 보던 중에 모니터링 시스템에서 MongoD
https://d2.naver.com/helloworld/6070967 위 D2 네이버 기술블로그에 정리된 내용 중 일부를 별도로 뽑아 정리하고자 합니다.CSS와 JavaScript, 이미지와 같이 공통으로 호출되는 리소스는 한 번 업로드되면 잘 변하지 않습니
스프링 내에서 사용되어지는 디자인 패턴에 관한 정리가 잘되어 있는 문서를 확인하여 해당 내용을 해석 및 정리하는 포스팅입니다.원본 : https://www.baeldung.com/spring-framework-design-patterns싱글톤 패턴은 애플리케이
Junit을 사용하여 jpa 데이터 검증을 시도할 때 @Transactional을 사용하곤 합니다.다만, 위와 같이 @Transactional을 선언할 경우 테스트를 실행할 때 마다 트랜잭션을 시작하고, 테스트가 완료되면 트랜잭션을 강제 롤백합니다.이유는 아무래도 테스
이번 포스팅은 EHCache 사용설정 및 구현 방법에 대해 작성하도록 하겠습니다.환경은 SpringBoot + maven + EHcache 3 버전 입니다.특히 EHCache3버전의 경우 2 버전 대와 달리 JSR-107 호환성을 제공하기 때문에 표준을 기반으로 개발되
예시의 특징이 테이블명이 변경되어야 한다는 것입니다.개발자가 직접 수작업으로 변경하고 테이블을 생성해줄 수 있지만 이건....누가봐도 잘못된 방법인 것 같습니다.그 외로는 java 기준으로 JDBC 혹은 Mybatis의 Preparedstatement 기능을 사용하면
PreparedStatement vs Statement PREPARE 구문 EXECUTE 구문 DEALLOCATE/DROP 구문 EXECUTE 구문
이번 포스팅은 mariadb 동적쿼리에 대해 작성해보려고 합니다.단순히 개념만 작성하기보다는 실제 적용 가능한 사례를 활용하여 작성해보려고 합니다.테이블 구조테이블명LOGDATA날짜테이블 용도로그 적재 테이블 컬럼 LOG_NO (INT, NOT NULL, AUTO_I
리눅스에서 Crontab이란 일정시간마다 시스템에서 자동으로 실행시키는 데몬입니다.Crontab 작업을 위한 리눅스 명령어를 간단히 정리하려고 합니다.CentOS 7 기준으로 작성합니다.yum -y install croniesystemctl start crondActi
캐시 패턴의 경우 크게 3가지가 있습니다.No cachingCache-AsideCache-Through위 세가지에 대해 간단히 정리하고자 합니다.제목 그대로 캐시를 적용하지 않는 일반적인 형태입니다.애플리케이션에서 직접 DB로 요청하는 방식이며 별도 캐시한 내역이 없으
지금까지 OOME가 발생 가능한 케이스와 발생했을 떄의 heap 지표를 확인했습니다.이번 포스팅은 OOME를 대비하기 위해 필요한 프로파일링 도구를 소개하고자 합니다.프로파일링 도구는 여러개가 존재하지만 우선은 제가 사용했던 방법을 위주로 작성하도록 하겠습니다.힙 덤프
가장 빈번하게 일어나는 케이스는 아래 세가지입니다.1\. java.lang.OutOfMemoryError: Java Heap Space2\. java.lang.OutOfMemoryError: GC Overhead Limit Exceeded3\. java.lang.Out
회사에서 신규 API를 개발한 뒤 테스트를 진행하면서 memory leak에 대해 구체적으로 공부하던 중 좋은 포스팅을 발견하여 제 블로그에 정리하고자 합니다.OOME란 Out of Memory Error의 약자입니다.메모리 누수가 없는 잘 만들어진 프로그램이라 할지라
신규 프로젝트를 개발을 한 뒤 실 서버에 배포를 진행합니다.이때, 배포에서도 전략이 있습니다.이들 중 대표적인 전략에 대해 간단히 정리하고자 합니다.롤링 배포는 서버를 한 대씩 구버전에서 새 버전으로 교체해가는 전략입니다.서비스 중인 서버 한 대를 제외시키고 그 자리에
프로세스를 생성하는 동안 운영체제는 몇 가지 작업을 수행한다.프로세스를 식별하기 위해 프로세스 식별 번호(PID)를 각각의 프로세스에게 할당한다.운영체제가 multi-programming을 지원하면서 모든 프로세스들을 추적할 필요가 있다.이러한 작업을 위해, PCB는
현재 회사에서는 open jdk를 사용하고 있습니다.그런던 와중에 oracle jdk와 open jdk 차이가 갑자기 궁금해져 검색을 해보았고 Baeldung에 있는 내용을 간략이 정리하려고 합니다.오라클은 매 3년 마다 출시하며 openJDK는 매 6개월마다 출시합니
장기 스케쥴러는 새로운 프로세스를 'ready 상태'로 가져온다. 장기 스케쥴러는 Degree of Multi-programming을 제어한다.장기 스케쥴러는 IO와 CPU bound 프로세스 모두
(출처 : https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/?ref=lbp)New (Create) : 프로세스의 경우 생성이 될 예정인 상태로, 프로세스를 선택하기 위해 OS에 의해