데이터 베이스 접근을 모니터링을 해보기모니터링 툴로는 Prometheus - Grafana으로 작동하였습니다. 1) 슬로우 쿼리(조회)로 인한 현상을 확인해보기SELECT * FROM shop_order WHERE seq_shop_order = 1 AND SLEEP(10) = 0 // QueryDsl queryFactory .select(Projections.constructor(OrderDetail.class, orderEntity.orderName, orderEntity.price, orderEntity.regId)) .from(orderEntity) .where(orderEntity.id.eq(seqOrderId) ..
1. 발견 실무에서 복잡한 비즈니스를 다루는 로직에서 도저히 이해가 안가는 상황이 나오게 되었다. 상황은 이렇다. 첫 번째로 조회한 객체에는 객체 내부에 컬렉션을 가지고 있는데, 다음 메서드가 실행되기 전에는 비어있는 컬렉션인 것을 확인하였으나 메서드 실행 직후 내부 컬렉션에 객체들이 존재하는 것을 확인하였다. 분명 해당 객체를 어디선가 수정메서드를 통해 변경하는일이 없는데도 말이다. 도저히 납득이 가지 않아서 객체를 파라미터로 넘겨주고 복잡한 비즈니스를 파고파고 들어가서 해당 상태가 바뀌는 시점을 체크해보았으나 해당 메서드에서 바뀌는 이유를 종 잡을 수 없었다. 그때 혹시나 스쳐가는 생각이 JPA에서 캐시 기능을 사용하여 동일성을 보장해주는 것이 생각났다. 위에서 사용한 비즈니스에 조건의 범위가 다른 ..
#1에서 아파치 카프카를 설치해서 쓰고(pub), 읽는(sub) 작업까지 해보았다. 외부 연동에 대해서 알아보자. 다시시작하는 도중 에러가 났는데 ERROR Failed to clean up log for __consumer_offsets 가 나서 찾아보니 카프카가 retension 주기만큼 데이터를 가지고 있다가 삭제하는데, 삭제해야하는 로그파일이 존재하지 않아서 나는 오류라고 한다? (윈도우가 주로 일어난다고한다.) 해결방법은 server.properties에 있는 log.dirs 경로의 내용을 모두 삭제하거나 그냥 linux를 쓰라고 하더라... 6. 카프카 커넥트 데이터베이스나, 전통적인 메시징 시스템 혹은 많은 애플리케이션에서 사용중인 데이터를 카프카 커넥트를 통해 임포트(추출)해와서 카프카의 ..
아파치 카프카의 핵심 기술 '이벤트 스트리밍' 이벤트 스트리밍은 소프트웨어가 상시 작동 할 수 있도록 하는 기술적 기반이다. 데이터베이스, 센서, 모바일 장치, 클라우드 서비스등 이벤트 소스로부터 실시간으로 데이터를 캡처하는 작업을 한다. 또한, 이 데이터를 다른 대상에게 라우팅(최적의 경로 전송)을 해준다. 사용할 수 있는 예시로는 다음과 같다. 증권, 은행, 보험등 실시간으로 지급 및 금융 거래 처리 물류, 자동차 , 화물 등 실시간 추적 모니터링 IoT나 기타장비에서 센서데이터 지속적으로 캡처하고 분석 소매업, 호텔, 여행 과 같은 고객 주문 수집, 대응 병원과 같은 곳에서 응급 상황이 발생할 때 적시에 치료를 하기위해 모니터링 회사 여러부서에서 생성한 데이터들을 연결, 저장, 소비 가능하게 함 데..
RFC란 Request For Comments의 약자로 의견 요청이라는 뜻이 담겨져있다. 위키에 따르면. 인터넷 기술에 적용 가능한 새로운 연구 , 혁신 , 기법등을 아우르는 메모를 의미한다. 인터넷 협회에서 기술자, 컴퓨터 과학자들이 RFC메모 형태로 의견을 제출해서, 또 다른 전문가의 비평을 받거나 생각을 전달한다.또한 인터넷 국제표준화 기구(IETF)는 일부 RFC를 인터넷 표준으로 받아들이기도 한다. https://www.rfc-editor.org/standards 여기를 확인하면 표준으로 채택된 RFC문서가 무엇이 있는지 확인할 수 있다. Document Retrieval » RFC Editor (rfc-editor.org) 이곳에서 RFC문서들을 확인할 수 있는데, 우리가 사용하는 어플리케이션..
템플릿 엔진이란?? 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어를 말한다. 쉽게 말하면 HTML, CSS + DATA 역할을 해주는 소프트웨어이다. 템플릿 엔진은 서버 사이드와 클라이언트 사이드로 나눠지게 된다. Server Template Engine 서버에서 렌더링 해주는 템플릿 엔진을 말한다. 속도가 매우 빠르고, 작성하기가 편하지만 클라이언트에서의 동적인 처리는 어렵다. Server 사이드 템플릿 엔진에는 Freemarker와 Thymeleaf , JSP 등이 있는데, 스프링에서 자주 사용하는 것은 JSP, Thymeleaf가 있다. 둘다 사용해보았기 때문에 소감을 말하자면 JSP 가장 많이 사용한 만큼 , 구글링도 편하다. 또한 JSP내에서 JAV..