본문 바로가기

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

(85)
[MSA] 스프링 클라우드(2) - 서비스 디스커버리 보호되어 있는 글입니다.
[MSA] 스프링 클라우드(1) - 개요 스프링 부트 프로젝트와 스프링 클라우드를 사용하면 반복적인 작업을 피하고 고품질의 안정적인 마이크로서비스 기반 분산 시스템을 빠르게 구축하고 적은 시간과 노력으로 시스템을 지속적으로 변화시킬 수 있다. 스프링 클라우드는 서비스 레지스트리(Service Registry)와 컨피규레이션 서버(configuration server), 서킷 브레이커(circuit breaker), 클라우드 버스(cloud bus), OAuth2 패턴, API 게이트웨이와 같은 마이크로서비스 기반 아키텍처에서 사용되는 모든 검증된 패턴을 구현한다. 모놀리식과 같은 전통적인 개발 방식을 사용하면 코드 베이스가 증가하고 수정과 유지보수가 아주 복잡해진다. 또한 새로운 기능과 프레임워크, 기술을 적용하는 것이 어려워지고 결국 새로운 ..
[아키텍처] LAYERED ARCHITECTURE(계층형 아키텍처) 계층형 아키텍처 [도메인 주도 설계: 소프트웨어의 복잡성을 다루는 지혜] 도시 목록에서 화물의 목적지를 선택하는 것과 같이 간단한 사용자 행위를 지원하는 해운 애플리케이션에도 (1)위젯을 화면에 그리고 (2)선택 가능한 모든 도시 목록을 데이터베이스에서 조회하며 (3)사용자가 입력한 내용을 해석하고 유효성을 검증하고 (4)선택된 도시를 화물과 연결하며 (5)변경내역을 데이터베이스에 반영하는 프로그램 코드가 들어있어야 한다. 이러한 모든 코드가 동일한 프로그램의 일부를 차지하더라도 그 중 일부만이 해운 업무와 관련돼 있다. 소프트웨어 프로그램에는 갖가지 작업을 수행하는 설계와 코드가 포함된다. 소프트웨어 프로그램은 사용자 입력을 받아들이고 업무 로직을 수행하며, 데이터베이스에 접근하고, 네트워크상으로 통신..
[성능] 스로틀링(Throttling)이란? 스로틀링(Throttling)이란? PC, 노트북, 모바일 기기의 CPU, GPU 등이 지나치게 과열될때 기기의 손상을 막고자 클럭과 전압을 강제적으로 낮추거나 강제로 전원을 꺼서 발열을 줄이는 기능이다. 성능을 강제로 낮춘다는 점에서 거부감이 들 수 있으나, 발열을 제대로 제어할 수 없게 되면 기기의 수명과 배터리에 악영향을 주게 되므로 꼭 필요한 기능이라 할 수 있다. 특히 발열에 취약한 스마트폰/태블릿/노트북 등은 필수적으로 스로틀링 기능을 갖추고 있다. 같은 사양의 노트북이 데스크톱에 비해 성능이 떨어지는 이유도 방열성능이 떨어져 그만큼 스로틀링이 빨리오거나, 부품 보호를 위해 스로틀링의 임계값이 낮게 세팅되어 있기 때문이다. PC, 노트북과 같이 쿨링팬과 히트싱크 구조를 가지고 있는 기기의 경우..
[JMeter] JMeter를 이용한 성능 테스트 소프트웨어 개발 초창기에는 기술을 습득하고 요구사항을 분석하고 이를 설계/구현하는 것만으로도 바쁘기 때문에 성능을 고려해서 개발하기가 쉽지 않다. 최근의 개발 환경이 스프링과 같은 개발 프레임워크 기반으로 많은 부분이 공통화되어 있기 때문에 성능과 관련해서 개발자가 직접 통제할 수 있는 영여깅 매우 제한적이기 때문이기도 하다. 이러한 제약 사항과 패러다임의 변화에도 불구하고 성능은 소프트웨어나 서비스에 있어서 매우 중요한 요소이며 아무리 기능이 좋고 잘 만들어졌을지라도 원하는 성능이 나오지 않으면 서비스를 개통할 수 없게 되며 실제로 성능 문제가 발생해서 개통한 서비스를 다시 취소하는 경우도 많이 있다. 성능 테스트는 개발한 소프트웨어 혹은 서비스가 특정한 조건에서 얼마나 서비스의 수행이 가능한지를 확인..