본문으로 건너뛰기

Full Stack JavaScript Developer | Half-time Open Sourcerer.

View All Authors

스프링 부트

· 약 3분

스프링부트의 개념

  • 스프링 프레임워크를 기반으로 하여 쉽게 독립 실행형 어플리케이션을 만들 수 있도록 도와주는 오픈소스 프레임워크
  • 스프링 프레임워크의 복잡한 설정과 구성 문제를 해결하기 위해 등장

스프링부트의 구성도, 구성요소, 비교

스프링부트의 구성도

스프링부트의 구성요소

구분내용비고
내장톰캣서버스프링부트 자체 웹서버독립 실행 가능
컨트롤러사용자 요청 처리, 비지니스 로직 응답 반환RestController 등
서비스레이어비지니스 로직을 처리하는 계층DB연동, 트랜잭션 관리
레파지토리DB 접근하여 CRUD 작업 수행JpaRepository 등
모델데이터 구조를 정의하는 클래스Entity, DTO
  • Spring Starter, Auto Configurator 등 스프링부트 모듈을 활용하여 쉽게 기본 구성 사용 가능

스프링 프레임워크와 스프링부트 비교

구분스프링 프레임워크스프링 부트
설정방식수동설정, XML, Properties 등최소설정, 자동설정
의존성 관리직접 의존성 명시, 관리스타터를 통한 의존성 그룹화, 자동 관리
내장서버없음있음
목적엔터프라이즈 앱 개발 등REST API 개발 등

스프링부트 사용시 고려사항

  • 많은 어노테이션과 추상화된 설정과 라이브러리를 사용해야하므로, 개발자 숙련도를 고려하여 기능 선택 필요

VM, Container, 가상머신, 컨테이너

· 약 5분

가상화의 개념

  • 물리적인 자원들을 논리적으로 표현해 효율적으로 사용하고 관리하기 위한 기술
  • 클라우드 전환으로 자원활용률, 보안성, 확장성 높은 가상화 기술로 서버 제공, 논리적 투명성으로 사용자는 물리적 자원의 세부사항 미고려

VM, Container의 개념도, 핵심요소, 적용방안

VM, Container 개념도

  • VM: 하이퍼바이저를 통해 물리자원을 추상화한 Guest OS기반 가상화
  • Container: Host OS 커널 통해 격리된 컨테이너를 제공하는 가상화

VM, Container 핵심요소 비교

구분VMContainer
핵심기술하이퍼바이저, VM스냅샷컨테이너, 네임스페이스, CGROUP
환경다양한 OS지원, 독점적 자원할당단일 OS지원, 호스트OS커널 공유
장점강한 보안성, 장애 격리, 다양한 OS 실행빠른 부트시간, 이미지 경량화, 자원사용 효율성
단점높은 자원 소모, OS 라이센스 비용커널 공유로 인한 낮은 보안성, 호스트OS 종속성

VM, Container 적용방안

구분VMContainer
보안 및 격리높은 보안성과 격리성이 필요한 경우프로세스 수준 격리와 빠른 복구가 필요한 경우
CI/CDDevOps환경에서 다양한 운영체제 테스트 시나리오 자동화IaC 기반, GitOps의 지속적 통합, 배포
적합 환경기존, 레거시, 모놀리스클라우드 네이티브

가상화시 고려사항

  • 이미지, 스냅샷 레지스트리 관리와 보안 스캐닝을 통해 취약점 사전 조치 필요

컨테이너 취약점

취약점내용대응방안
스푸핑, Spoofing관리자의 인증 정보가 탈취되거나 무단 접근을 시도하는 위협보안 인증 방식(RBAC) 적용, 사용자 계정 관리
변조, Tampering악성 코드를 삽입하거나 데이터 변조를 통해 시스템에 악영향을 미치는 위협이미지 서명 및 무결성 검증, PodSecurityPolicy로 접근 제한
부인 방지, Repudiation감사 및 로그 관리 미흡으로 인해 악의적인 행동을 추적할 수 없는 위협로그 설정 및 관리 강화, 서비스 메시 플랫폼 설정
정보 유출, Information Disclosure중요 데이터(계정 정보 등)가 스니핑이나 오류 메시지 등을 통해 노출되는 위협TLS/HTTPS 암호화 통신 적용, 등급별 접근 제한 (RBAC) 적용
서비스 거부, Denial of Service과부하를 유발하여 서비스 가용성을 저하시키는 위협네트워크 정책 강화, 파드 및 노드에 대한 리소스 제한 설정
권한 상승, Elevation of Privilege일반 사용자가 권한을 초과하여 접근함으로써 시스템을 악용할 가능성최소 권한 원칙 적용, 적절한 계정 및 접근 제어 방안 (RBAC) 실시

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

· 약 3분

웹 최적화의 개념

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

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

웹 성능 저하요인의 개념도

웹 성능 저하 세부요인

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

웹 성능 최적화 방안

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

웹 최적화시 고려사항

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

메모리 인터리빙

· 약 3분

메모리 인터리빙의 개념

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

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

메모리 인터리빙의 개념도

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

메모리 인터리빙의 유형

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

인터리빙의 액세스 방식

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

인터리빙 고려사항

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

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

· 약 4분

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

· 약 3분

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

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

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

기술적 요소 비교

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

관리적 요소 비교

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

반도체 가치사슬

반도체 가치사슬 구성도

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

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

반도체 산업 발전방향

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

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

· 약 4분

가상화의 개념

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

가상화의 동작 방식

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

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

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

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

원격 데스크탑 프로토콜

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

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

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

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

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

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

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

· 약 2분

IaC의 개념

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

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

IaC의 구성도

IaC의 구성요소

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

IaC의 장점

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

IaC 고려사항

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

노코드

· 약 2분

노코드 개념

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

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

노코드 구성도

노코드 구성요소

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

노코드 적용방안

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

노코드 사용시 고려사항

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

RAID

· 약 3분

RAID의 개념

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

RAID의 유형, RAID5, RAID6 비교

RAID의 유형

구분개념도특징최소 디스크 수
RAID0-데이터 분산 저장, 스트라이핑2
RAID1-데이터 중복 저장, 미러링2
RAID2-해밍코드, 다수 패리티 디스크, 사용안함3
RAID3-별도 패리티 디스크, 사용안함3
RAID4-블록단위 별도 패리티 디스크, 사용안함3
RAID5-패리티 스트라이핑, 데이터 무결성 보장3
RAID6-이중 패리티 스트라이핑, 높은 신뢰성4
RAID01-스트라이핑 후 미러링, 장애시 전체 복구4
RAID10-미러링 후 스트라이핑, 손실된 데이터만 복구4
  • RAID50은 최소 디스크 6개 필요

RAID5, 6 비교

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

RAID 적용시 고려사항

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