Skip to main content

웹 기반 서비스 성능관리, 웹 최적화

· 3 min read

웹 최적화의 개념

  • 웹 페이지의 로딩 속도, 응답속도 등 전반적인 성능을 향상시켜 사용자 경험을 개선하는 활동
  • 페이지 로드가 길어지면 이탈률 증가, SEO 지표 증가로 검색 우선순위 개선, 대역폭 사용 감소로 비용 절감

웹 성능 저하요인의 개념도, 세부요인, 해결방안

웹 성능 저하요인의 개념도

웹 성능 저하 세부요인

구분요인비고
브라우저렌더링 최적화 미흡, 많은 자바스크립트 로드렌더링 차단 리소스, 불필요한 JS로드
네트워크많은 리소스 요청, 대역폭 부족대용량 파일, 압축되지 않은 파일, 느린 N/W 속도
서버서버 처리능력 부족, DB 처리능력 부족H/W 성능 부족, 서버 과부하

웹 성능 최적화 방안

원인해결방안비고
대용량 파일이미지 최적화, 압축리사이즈, WebP 압축
많은 HTTP 요청요청 횟수 절감, 병렬처리HTTP2, 이미지스프라이팅
느린 N/W 속도사용자와 가까운 곳에 리소스 배치CDN 사용
느린 서버 응답하드웨어 개선, 튜닝, 부하 분산스케일업, 쿼리 튜닝, 샤딩
렌더링 차단 리소스JS 실행 시간 단축비동기처리, 트리쉐이킹

웹 최적화시 고려사항

  • Page Speed 등 웹 성능 측정도구를 활용하여 최적화 전/후 성능 비교 필요

메모리 인터리빙

· 3 min read

메모리 인터리빙의 개념

  • 메모리 접근시간을 최소화하기 위해 메모리를 복수개의 모듈로 나누고, 각 모듈에 연속적인 주소를 부여하여 동시에 접근이 가능하게 하는 기법
  • 버스의 경합이나 기억장치의 충돌 회피 가능

메모리 인터리빙의 개념도, 유형, 액세스방식

메모리 인터리빙의 개념도

  • 뱅크0 접근, 뱅크0 읽기 및 뱅크1 접근 순으로 병렬 접근

메모리 인터리빙의 유형

구분개념도내용
상위 인터리빙high-order주소의 상위비트로 모듈 선택, 순차적, 에러시 하나의 모듈 영향
하위 인터리빙low-order주소의 하위비트로 모듈 선택, 다수의 모듈 동시 접근, 에러 전파
혼합 인터리빙hybrid-order모듈을 뱅크로 그룹화, 뱅크 선택시 상위 인터리빙, 뱅크 내 모듈 선택시 하위 인터리빙

인터리빙의 액세스 방식

구분개념도내용
C-Access, 순차접근c-access주소가 버스를 통해 순차적으로 모듈에 도착, 버스 경합 발생가능
S-Access, 병렬접근s-access읽기 동시 진행, 데이터 순차 전송하여 동시성 확보로 높은 성능, DDR DRAM 적용

인터리빙 고려사항

  • 메모리 접근 패턴, 시스템 성능 요구사항, 비용, 복잡도 등을 고려하여 최적의 인터리빙 방식 선택

정보시스템 하드웨어 규모산정 지침

· 4 min read

정보시스템 하드웨어 규모산정 지침 개념

  • 정보시스템 구축 시 필요한 하드웨어 자원적정 규모를 산정하기 위한 지침으로 시스템 성능 요구사항을 충족하면서 비용 효율적 H/W 자원을 도입하기 위해 사용
  • 경험기반 부정확한 규모산정 사례 증가, H/W 성능 향상으로 인한 기존 표준 개선 요구, 정보화 투자 및 효율 제고

정보시스템 하드웨어 규모산정 개념도, 구성요소, 주요기법

정보시스템 하드웨어 규모산정 개념도

규모산정지침

  • 규모산정은 성능요구사항이나 성능을 결정하는 용량계획, 용량관리의 하위 개념

정보시스템 하드웨어 규모산정 구성요소

구분내용비고
용량관리요구사항 충족을 위해 용량계획수립, 비용-용량 균형 제고조직, 지속적
용량계획시스템 성능 요구사항과 성능을 결정하기 위한 계획조직, 시스템, 지속적
규모산정기본적인 용량과 성능 요구사항이 제시되었을 때, 시스템 요구사항으로 반영하는 것시스템, 일시적

정보시스템 하드웨어 규모산정 주요기법

수참시

구분수식계산법참조법시뮬레이션법
개념도수식계산법참조법시뮬레이션법
개념유저 수 등 규모산정 요소 기반으로 용량 수치를 계산하고 보정하는 방법업무량 등 기존 데이터를 기반으로 대략적인 시스템의 규모를 비교하여 산정대상 업무에 대한 작업 부하를 모델링, 시뮬레이션하여 규모 산정
특징근거 명확, 보정치 오류 가능성비교적 안정, 근거 불명확높은 정확성, 시간 및 비용 소요
  • 공공부문에선 현실적으로 수식계산법을 사용하나, 다른 방법도 필요시 고려

정보시스템 하드웨어 규모산정 대상 및 절차

정보시스템 하드웨어 규모산정 대상

  • CPU, 스토리지는 OLTP, WEB/WAS 등 서버가 받는 부하에 따라 다르게 산정

정보시스템 하드웨어 규모산정 절차

  1. 구축 방향 및 기초 자료 조사
  2. 기초 자료 및 업무 분석
  3. 참조 모델 결정 및 서버 규모 산정
  4. 참조 모델별 가중치 적용

정보시스템 하드웨어 규모산정시 고려사항

  • 구축 시스템의 중장기적 측면 고려
  • 시스템 전략에 맞는 규모 여부 파악
  • 장비 설치 조건의 적합성
  • 기종별 슬롯 수 확인

메모리 반도체, 비메모리 반도체

· 3 min read

메모리 반도체, 비메모리 반도체 개념

  • 메모리 반도체: 저장방식에 따라 휘발성 RAM, 비휘발성 ROM으로 구분되는 정보를 저장하기 위한 반도체
  • 비메모리 반도체: CPU, AP, 센서 등의 정보를 연산하고 처리하기 위한 시스템 반도체
  • 메모리 반도체는 단순구조로 저가, 비메모리 반도체는 복잡한 설계가 필요하여 고가 형성

메모리 반도체, 비메모리 반도체 비교

기술적 요소 비교

구분메모리비메모리
설계복잡도낮음높음
집적도높음낮음
주요성능지표용량, 속도, 전력소비연산 성능, 전력효율, 기능
주요기술셀 구조트랜지스터
제품DRAM, SRAM, NANDCPU, GPU, AP, NPU

관리적 요소 비교

구분메모리비메모리
생산방식소품종 대량생산다품종 소량생산
시장구조범용시장특화시장
생산구조설계업체가 대부분 생산대부분 설계, 양산 분리
변동성높음낮음
주요업체삼성, 하이닉스인텔, 엔비디아

반도체 가치사슬

반도체 가치사슬 구성도

반도체 가치사슬 세부 구성요소

구분내용주요 기업
R&D, 설계반도체 기능 정의, 회로설계, 제품 및 제조공정 연구인텔, 삼성전자, 엔비디아, 퀄컴
조달반도체에 필요한 장비 및 소재 공급ASML 등
생산웨이퍼 생산, 패키징, 테스트 등의 과정을 통한 칩 생산TSMC, 삼성전자, 하이닉스
수요생산된 반도체를 사용하는 시장애플, 삼성전자 등

반도체 산업 발전방향

  • 비전
    • 기술 리더쉽 확보
    • 시장 다각화
    • 생태계 구축
  • 전략
    • R&D 투자 강화
    • 글로벌 파트너쉽

가상화, 원격데스크탑 프로토콜

· 4 min read

가상화의 개념

  • Host 하드웨어에서 Hypervisor 기반 가상화된 하드웨어에 GuestOS를 설치하고, 원격데스크탑 프로토콜로 접근하여 원격지에서 GUI로 GuestApp 사용
  • 재택근무, 글로벌 비지니스 요구의 증가로 가상화 기술, RDP 활용 증가, 어디서나 업무 자원에 접근 가능한 유연성 제공

가상화의 동작 방식

일반적인 운영체제에서의 프로그램 동작방식

  • 프로그램이 OS API, Lib를 호출하는 방식

응용프로그램 가상화 동작방식

  • 어플리케이션은 에뮬레이트된 인터페이스를 호출하는 방식

원격 데스크탑 프로토콜

원격 데스크탑 프로토콜의 개념

  • 네트워크를 통해 다른 컴퓨터에 원격으로 접속하고 제어할 수 있게 해주는 프로토콜
  • 화면공유, 입력 전달, 파일 및 오디오 전송 등의 기능 담당

원격 데스크탑 프로토콜의 유형

운영체제프로토콜내용
WindowsRDPMS사 프로토콜, N/W 부하가 적고, 빠른 응답성
MacOSARDApple사 프로토콜, 원격 관리기능 제공
Unix, LinuxX11X윈도우 시스템 프로토콜, N/W로 다른 시스템 GUI 제어
기타VNC오픈소스 프로토콜, 다양한 운영체제 지원

원격 가상화 환경의 발전방향

  • 클라우드 컴퓨팅 기술의 발전으로 가상화된 데스크탑 환경을 제공해주는 DaaS 서비스로 발전
  • OS 선택의 유연성과 샌드박싱으로 인한 보안성 확보하여 기업 내 다양한 업무 환경, 테스트 환경 지원.

IaC, 코드형 인프라스트럭처

· 2 min read

IaC의 개념

  • 인프라 구성 및 제어를 수동으로 관리하는 대신 코드로 정의하고 관리하는 기법
  • 휴먼에러 방지, 자동화, 일관성, 버전 관리

IaC의 구성도, 구성요소, 장점

IaC의 구성도

IaC의 구성요소

구분내용비고
버전관리시스템코드 변경사항 추적 및 관리Git
파이프라인코드 통합, 테스트, 배포 자동화ArgoCD
프로비저닝인프라를 코드로 정의, 배포Ansible, Terraform
부트스트랩어플리케이션 배포에 필요한 설정 관리Docker, Helm

IaC의 장점

구분장점비고
비용효율측면작업시간 단축반복작업 자동화
예방비용 감소인프라 단위 테스트
에러관리 측면휴먼에러 감소코드리뷰, 실수방지
빠른 롤백구성 실패시 이전버전 롤백
  • 개발 환경 구축과 배포 프로세스를 자동화하여 DevOps, GitOps 기술 요구사항 충족

IaC 고려사항

  • 보안 관련 정보 추가시 파이프라인 내부 Secret Variable로 관리 필요

노코드

· 2 min read

노코드 개념

  • 프로그래밍 지식 없이 UI와 드래그 앤 드랍 기능 등을 활용하여 SW를 개발할 수 있도록하는 플랫폼 또는 도구
  • 개발 속도 향상으로 인한 비용절감과 비전문가도 어플리케이션을 개발할 수 있는 접근성 향상

노코드 구성도, 구성요소, 적용방안

노코드 구성도

노코드 구성요소

구분내용비고
사용자 인터페이스시각적으로 어플리케이션 또는 워크플로우 조작드래그 앤 드랍
모듈사전 구성된 기능 모듈재사용 가능
버전관리다중 사용자 환경 구축문서 버저닝
데이터 모델 통합기능과 비지니스 로직, 데이터 모델 통합API, 데이터 제어

노코드 적용방안

구분내용비고
공공코딩 없는 SW 개발 교육생산성 향상
금융데이터 분석 도구 시각화대쉬보드 사용성
민간빠른 프로토타이핑, 시장 출시효율성, 비용절감

노코드 사용시 고려사항

  • 커스터마이징이 필요한 경우, Low-code 플랫폼이나 Pro-code 방식으로 어플리케이션 구현 필요.

RAID

· 3 min read

RAID의 개념

  • 디스크의 안정성과 성능을 위해 여러 개의 개별 디스크를 연결하여 대용량 디스크를 구성하는 기술
  • 가용성 Fault Tolerant, 유지보수성 Hot-Swap, 고속 I/O Striping, 안정성 Mirroring, Parity Check, 확장성

RAID의 유형, RAID5, RAID6 비교

RAID의 유형

구분개념도특징최소 디스크 수
RAID0raid0데이터 분산 저장, 스트라이핑, FT없음, 저비용, 고성능2
RAID1raid1데이터 중복 저장, 미러링, 가장 안정적, 고비용2
RAID2해밍코드, 다수 패리티 디스크, 사용안함3
RAID3별도 패리티 디스크, 사용안함3
RAID4블록단위 별도 패리티 디스크, 사용안함3
RAID5raid5패리티 스트라이핑, 데이터 무결성 보장3
RAID6raid6이중 패리티 스트라이핑, 높은 신뢰성4
RAID01raid01스트라이핑 후 미러링, 장애시 전체 복구, 고성능, 안정성4
RAID10raid10미러링 후 스트라이핑, 손실된 데이터만 복구, 높은 안정성, 실무사용4
  • RAID50은 최소 디스크 6개 필요

RAID5, 6 비교

구분RAID5RAID6
개념도raid5raid6
최소 디스크 수3개4개
고장 허용 디스크1개2개
패리티 수12
장점저장효율성, 관리 용이성, 빠른 읽기 성능, 적절한 쓰기 성능이중 디스크 장애허용, 높은 내결함성, 안정성
단점복수 디스크 손상시 데이터 손실느린 쓰기 성능, 복잡한 구현

RAID 적용시 고려사항

  • RAID는 백업이 아니므로, RTO, RPO를 고려한 별도의 증분 백업 전략 수립

Thrashing, 스레싱

· 4 min read

스레싱의 개념

  • 멀티프로세싱 환경에서 빈번한 페이지 교체로 실제 프로세스 실행보다 페이지 교체에 더 많은 시간을 소요하여 프로세스 성능이 낮아지는 이상현상

프로세스 스레싱의 개념도, 원인, 해결방안

프로세스 스레싱의 개념도

thrashing

  • 다중 프로그래밍의 정도가 높아짐에 따라 프로세서 이용률이 향상되며 임계치 도달 후 프로세서 이용률이 낮아짐

프로세스 스레싱의 원인

구분원인내용
하드웨어저사양 CPUCPU 코어부족, 속도 부족
메모리 용량 부족용량 부족으로 인한 가상메모리 사용 증가
알고리즘지역성 미고려페이지 교체 정책 효율성 저하
페이지 빈도 미고려부적절한 페이지 교체 알고리즘 사용
프로세스프로세서의 이용률 감시/운영/추가낮은 이용률에 신규 프로세스 도입
최소 페이지 프레임 불만족프로세스 요구로 페이지 폴트 발생
페이징으로 인해 Ready Queue EmptyCPU 이용률 감소
CPU 스케쥴러의 다중프로그래밍 정도 증가신규 프로세스 추가
신규프로세스의 기존 프로세스 페이지 탈취페이지 폴트 발생
  • Working Set Model, Page Fault Frequency 기버을 통해 발생을 최소화하는 것이 최선의 방법

프로세스 스레싱 해결방안

지역성 모델

locality

  • 시간지역성: 페이지 프레임 교체 알고리즘 조정으로 개선
  • 공간 지역성: L1, L2 캐시 활용 통한 캐시 적중률 향상
  • CPU 하드웨어 아키텍처 활용을 통한 순차처리, 파이프라이닝 적용

워킹셋 모델

  • 프로세스가 자주 참조하는 페이지 집합을 메모리에 상주시켜 교체 감소

페이지부재빈도 모델

Page Fault Frequency

  • 페이지 부재율상한, 하한을 정하여 직접 페이지 부재율을 예측하여 프레임 할당, 프레임 회수하여 페이지 교체 감소

스레싱 발생시 고려사항

  • 자주 사용하는 프로세스에 높은 우선순위를 부여하여 중요 작업이 원활히 수행 가능하도록 처리
  • 정적 검사(힙 덤프), 동적 검사(JMX 등 모니터링)

PNM, Processing Near Memory

· 3 min read

PNM의 개념

  • 메모리와 프로세서를 다이 차원에서 가깝게 연결하여 별도의 논리연산을 수행하는 메모리
  • 메모리 접근을 위한 병목 최소화, 대역폭 최대화 가능

PNM의 구성도, 구성요소, 적용방안

PNM의 구성도

PNM의 구성요소

구분내용비고
프로세서연산처리 담당 중앙처리장치데이터 처리
고속 인터페이스메모리와 프로세서 간 통신 속도 향상CXL 등
DRAM Cell대용량 휘발성 기억 장치데이터 저장
다이회로가 제작된 공간직접회로 연결
  • 다이 접합과 인터페이스 통합으로 제작이 가능하기에 기존 프로세서 사용 용이

PNM 활용방안

구분내용비고
데이터 집중형 앱데이터 접근 빈도가 높은 어플리케이션 적용빅데이터 분석, LLM 등
실시간 처리 앱실시간 데이터 처리가 필요한 슈퍼컴퓨팅에 활용금융모델, 기상 예보 등
저전력 앱높은 전성비를 유지해야하는 환경모바일, 임베디드시스템 등

PNM 고려사항

  • CPU와 PNM간 메모리 데이터 저장시 경합을 고려한 SW개발 필요