본문 바로가기

엔지니어링(TA, AA, SA)

(85)
[엔지니어링] 자바 최적화 - 하드웨어와 운영체제 보호되어 있는 글입니다.
[엔지니어링] 자바 최적화 - GC 로깅 GC 로그는 시스템이 내려간 원인의 단서를 찾는 '콜드 케이스(cold case)' 분석을 할때 매우 유용하다. 파일에 씌여진 로그를 분석하는 작업이므로 애플리케이션 프로세스가 살아있지 않아도 된다. 콜드 케이스(cold case)는 진상이 명확히 밝혀지지 않은 범죄나 사고를 가리키는 용어로 '원인을 알 수 없는 현상' 정도를 비유하는 용도로 쓰였다. 모든 중요한 애플리케이션에는 다음 두가지를 설정해야 한다. - GC 로그를 생성한다. - 애플리케이션 출력과는 별도로 특정 파일에 GC 로그를 보관한다. 특히, 운영계 애플리케이션에서는 필수 사항이다. GC 로깅은 사실 오버헤드가 거의 없는 것이나 다름없으니 주요 JVM 프로세스는 항상 로깅을 켜놓아야 한다. GC 로깅 1) GC 로깅 켜기 애플리케이션 시..
[아키텍처] 이벤트 기반 아키텍처 - 스프링 클라우드 스트림 기반 보호되어 있는 글입니다.
[아키텍처] 도메인 주도 설계(1) - 지식 탐구 성공한 프로젝트의 공통적인 특징은 반복적 설계를 거쳐 발전하고 프로젝트의 일부분이 된 풍부한 도메인 모델이 있었다는 것이다. 도메인 주도 설계와 관련된 의사결정을 내리는데 기반이 되는 틀과 도메인 설계에 대해 논의할때 사용되는 기술적 어휘를 익히고, 복잡한 도메인에 직면한 소프트웨어 개발팀은 도메인 주도 설계에 체계적으로 접근하는데 이 틀을 활용할 수 있을 것이다. 단순한 소프트웨어는 설계에 그리 신경 쓰지 않고도 만들 수 있기에 별다른 문제가 없다. 그러나 도메인 모델이나 프로젝트의 공통적인 언어조차 없고 구조화되어있지 않은 설계는 프로젝트를 실패에 이르게 한다. 업무로직을 성공적으로 다루지 못하고, 너무 일찍 유지보수 비용이 많이드는 레거시 시스템으로 굳어버리게 된다. 복잡성으로 생기는 한계를 극복하..
[아키텍처] 이벤트 주도 아키텍처(Event-Driven Architecture) 이벤트 주도 개발 패턴은 확장성이 뛰어난 애플리케이션을 생성하는데 사용되는 널리 사용되는 분산 비동기 아키텍처 패턴이다. 또한 적용이 용이하여, 작은 응용 프로그램뿐만 아니라 크고 복잡한 응용 프로그램에서도 사용할 수 있다. 이벤트 주도 개발은 이벤트를 비동기식으로 수신하고 처리하는 고도로 분리된 단일 용도의 이벤트 처리 구성 요소로 구성된다. 이벤트 주도 설계 패턴은 중재자와 브로커의 두가지 주요 토폴로지로 구성된다. 중재자 토폴로지는 일반적으로 중앙 중재자를 통해 이벤트 내에서 여러 단계를 조정해야하는 경우에 사용되는 반면, 브로커 토폴로지는 중앙 중재자를 사용하지 않고 이벤트를 함께 연결하려는 경우에 사용된다. 아키텍처 특성과 구현 전략은 이 두 토폴로지간에 서로 다르므로 각 상황을 이해하여 특정 ..