9초 쿼리를 500ms로 줄인 MySQL 파티션 프루닝 성능 개선 사례
문제의 시작 여느때처럼 개발중에 스카우터의 xlog에 몇개씩 튀는 점들이 보였다. 해당 API는 할인권 이용내역 조회 API 였는데 특정 쿼리가 무려 9.6초 이상 걸린다는 것을 발견했다. 조건 자체는 아주 단순했다. 특정 주차장, 특정 스토어, 일주일치 날짜 범위, 할인 상태 필터 그리고 결과는 최신 순으로 딱 20건만 가져오는 요청이었다. 데이...
문제의 시작 여느때처럼 개발중에 스카우터의 xlog에 몇개씩 튀는 점들이 보였다. 해당 API는 할인권 이용내역 조회 API 였는데 특정 쿼리가 무려 9.6초 이상 걸린다는 것을 발견했다. 조건 자체는 아주 단순했다. 특정 주차장, 특정 스토어, 일주일치 날짜 범위, 할인 상태 필터 그리고 결과는 최신 순으로 딱 20건만 가져오는 요청이었다. 데이...
생성 패턴 (Creational Patterns) 패턴 소스 코드 Singleton SingletonPattern Factory Method FactoryMethodPattern Abstract ...
사이드 프로젝트의 엑셀 일괄 업로드 기능을 구현하며 정리한 내용임. 구현에 고려할 부분 업로드 진행 상황 파악이 가능해야함. 작업 속도가 빨라야 함. 사용자에게 상황에 맞는 적절한 예외처리를 해야함. 1. 업로드 진행상황 표시 서버측에서 작업 진행상황 데이터를 클라이언트측에 전달할 수...
단방향 연관관계 객체에서 한쪽 방향으로 의존관계가 성립하는 관계 @Getter @Setter @Entity @Table(name = "member") public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(...
JPA를 쓰는 이유 OOP 와 RDB 사이의 간극을 극복하기위해 사용. 영속성 컨텍스트 (Entity Manager) 영속성 컨텍스트는 EntityManager 또는 1차 캐시를 포함하고 있다. Entity Manager는 사용자 요청마다 생성된다. 즉 ThreadLocal에 생성되어 쓰레드간 공유를 차단한다. 데이터 조회 JP...
현대 사회에 인터넷은 우리 삶의 일부가 되었습니다. 채팅, 메일, 물품구매 등 우리 삶의 대부분의 활동을 인터넷을 통해 이루어 집니다. 저 역시도 앱을 통해 배달을 시키거나, 물건을 주문할 경우가 많습니다. 저의 이러한 요청은 인터넷망을 거쳐 최종 목적지 서버에 도달하게 될것입니다. 인터넷은 누구나 쉽게 접근할 수 있는 공간이라 할 수 있습니다. 그...
OSI 7계층 계층 설명 식별자 LAYER 7. 응용 계층 (Application Layer) HTTP,FTP,SMTP LAYER 6. 표현 계층 (Presentation Layer) - ...
자바 개발자로 일하다 보면, JVM이 메모리 개발자 대신 관리해 준다. 그래서 메모리에대해 깊게 고민해볼 기회가 많지 않다. 하지만 메모리 관리는 개발자라면 반드시 알고가야할 부분이다. 최근 C언어를 학습하며 컴퓨터의 동작방식에 대해 깊게 공부하려고 노력 중이다. (사실 학교다닐때 열심히 공부했어야 했던것들..) 오늘은 메모리 동작방식에 대해 정리...
개요 컴퓨터 하면 무엇이 떠오르시나요?일반적으로 사람들이 생각할때 컴퓨터 하면 떠오르는것은 모니터, 키보드, 마우스, 스피커, 본체 정도가 아닐까 싶습니다. 컵퓨터가 무엇인지 조금더 구체적으로 생각해 보겠습니다. 컴퓨터의 가장 중요한 부품은CPU 입니다. 사람의 ‘뇌’ 에 해당하는 부품 입니다. 컴퓨터에서 일어나는 모든 연산을 바로 이 CPU가 처리...
MariaDB 설치 sudo apt-get update sudo apt-get install mariadb-server MariaDB 보안 설정 sudo mysql_secure_installation root 암호를 설정하고, 불필요한 사용자 및 테스트 데이터베이스를 제거 외부접속 허용 내부설정 MariaDB의 기본 구성에서는 외부에서...