본문으로 건너뛰기

Full Stack JavaScript Developer | Half-time Open Sourcerer.

View All Authors

웹 3.0

· 약 2분

웹 3.0의 개요

개념

웹 2.0웹 3.0
참여소유(탈중앙화)
공유융합
개방개인화

시멘틱 웹 기반으로 웹 페이지의 내용을 이해하고, 개인 맞춤 정보를 제공하는 웹 기술

배경

  • 웹2.0의 글로벌 플랫폼 기업들에 데이터가 집중됨
  • 중앙집중화된 플랫폼이 멈출 시 일상 마비

핵심요소

요소기술비고
컨텐츠 소유권NFT디지털켄텐츠 소유권 주장 가능
탈중앙화블록체인중앙기관 없는 분산 원장
개인화서비스AI사용자 맞춤형 데이터 제공
확장된 미디어 인터페이스메타버스현실-가상 융합 공간 제공

변화

  • 탈중앙 자율조직 DAO 출현
  • 블록체인과 AI로 웹 구조 혁신
  • 웹 활동으로 코인, 토큰 보상

웹 3.0 발전 전망

구분전망비고
공공정부 투명성, 접근성 증대디지털 행정
기업비지니스모델 혁신, 데이터 주권 강화탈중앙화 플랫폼
민간개인 데이터 자율성 강화, 수익 창출프로슈머
  • 데이터 탈중앙화와 소유를 통해 사용자 경험 개선 및 요구 충족

참조

NFT, 대체 불가능 토큰

· 약 2분

NFT 개념

  • 블록체인을 활용해 디지털 콘텐츠를 포함한 자산의 원본성을 보장하고 소유권을 주장할 수 있게 하는 가상 토큰
  • 온라인 및 메타버스 내에서 생성된 컨텐츠를 위한 저작권 증명을 위해 필요.

NFT 구성도, 구성요소

NFT 구성도

NFT 구성요소

구분구성요소비고
표준 프로토콜ERC-721NFT
-ERC-1155다중 토큰
기술요소NFT Contract스마트 계약
-NFT Metadata컨텐츠 태그
-NFT MintNFT 발행
-IPFSNFT 미디어 데이터 저장

NFT 비교

구분FTNFT
토큰 정보토큰 이름 및 약어고유 정보
상호 교환성OX
분할성OX
활용송금, 물품 구매자산 소유권

NFT 고려사항

  • NFT가 디지털 자산의 소유권은 증명하지만 저작권은 별도 소유가 가능하므로, 제도적 관리 필요

퍼블릭, 프라이빗, 하이브리드 블록체인

· 약 5분

블록체인 개요

블록체인 개념

  • 탈중앙화된 P2P 네트워크를 기반에 합의알고리즘을 통해 무결성을 제공하는 분산 원장 기술

블록체인 배경

  • 합의속도와 보안성 강화를 위해 프라이빗 블록체인 등장, 투명성과 분산성을 향상시키기 위해 하이브리드 블록체인 확장

퍼블릭 블록체인, 프라이빗 블록체인 구성도, 구성요소 비교, 한계점

퍼블릭 블록체인, 프라이빗 블록체인 구성도

  • 프라이빗 블록체인은 특정 통제 기관에서 트랜잭션 합의 처리

퍼블릭 블록체인, 프라이빗 블록체인 구성요소

구분퍼블릭 블록체인프라이빗 블록체인
참여주체누구나지정된 사용자
소유자없음특정 기관
탈중앙성높음낮음
확장성낮음높음
보안성낮음높음
투명성높음낮음
트랜잭션 속도느림빠름
합의알고리즘PoW, PoSPBFT, Raft 등

퍼블릭 블록체인, 프라이빗 블록체인 한계점

  • 퍼블릭 블록체인은 투명성과 탈중앙성이 높지만, 속도와 확장성이 낮음
  • 프라이빗 블록체인은 속도와 확장성이 높지만, 투명성, 분산성이 낮아 하이브리드 모델 등장

하이브리드 블록체인 개념, 특징

하이브리드 블록체인 개념

  • 퍼블릭 블록체인과 프라이빗 블록체인의 장점 결합, 일부 데이터를 공개로 유지하고 민감 데이터를 비공개 트랜잭션 처리

하이브리드 블록체인 특징

구분내용비고
참여주체일부 공개, 일부 허가된 사용자퍼블릭, 프라이빗 체인 혼합
탈중앙성부분 탈중앙화퍼블릭 체인의 장점
합의 알고리즘DPoS 등 혼합다양한 합의알고리즘 사용

하이브리드 블록체인 활용방안

구분내용비고
공공투명성 요구 높은 공공기록 관리민감데이터 프라이빗 체인
금융금융 거래 투명성고객 정보 프라이빗 체인
민간기업 내부 기록, 거래 스마트 계약비지니스 민첩성, 보안성
  • 다양한 요구사항에 따라 데이터 접근, 검증방식 조절 가능

음성 데이터 마이닝

· 약 3분

음성 데이터 마이닝의 개요

음성 데이터 마이닝의 개념

  • 음성 신호나 데이터를 기계적으로 처리하여 화자의 의견, 감정에 대한 정보를 도출하는 과정

음성 데이터 마이닝 배경

  • HMI (Human Machine Interface)가 기존의 텍스트에서 음성으로 변화하고 있고, 톤과 인토네이션의 차이로 같은 문장이라도 화자의 감정을 파악이 가능해짐.

음성데이터 마이닝의 구성도, 구성요소

음성데이터 마이닝의 구성도

음성데이터 마이닝의 구성요소

구분내용비고
처리기술음성 데이터를 디지털 형식으로 변환하고 처리하는 기술STT, Media Codec, ADC
분석기술음성 데이터를 분석하고 의미를 도출하는 기술데이터 분석 인프라, 시계열 분석 알고리즘, 감정 분석 알고리즘, 상황인지 컴퓨팅

음성 데이터 마이닝 적용 방안

구분내용비고
공공공공 서비스 접근성을 높이고 사회적 포용성을 증대음성 민원 자동화
기업업무 효율성 증대 및 운영 비용 절감회의록 생성 자동화, 무인화 고객센터, AI 경쟁력 강화
민간개인 편의성 증대 및 새로운 서비스 창출실시간 번역 제공, 비대면 원격 진료 기반 마련, IoT 기기 제어

음성 데이터 마이닝 성공 포인트

  • 클라우드 컴퓨팅을 활용하여 온디맨드 방식의 데이터 분석/처리로 비용 절감

파일시스템, 데이터베이스, 블록체인의 저장 특성

· 약 4분

데이터 저장 특성 개요

데이터 저장 특성 개념

  • 웹 서비스와 인터넷 패러다임의 변화로 인해 데이터의 저장, 접근, 처리 기술의 발전

데이터 저장 방식 변화의 필요성

  • FS에서 인터넷의 등장으로 DB 공유, 웹3.0의 출현으로 탈중앙화와 소유의 개념을 가진 블록체인 구조에 정보 저장

파일, 데이터베이스, 블록체인 개념 및 비교

파일, 데이터베이스, 블록체인 개념

아래 그림

  • FS: Inode -> block
  • DB: Table, System Catalog
  • BlockChain: hash based linked list block + merkle tree

파일, 데이터베이스, 블록체인 상세비교

구분파일데이터베이스블록체인
저장단위파일테이블블록체인
저장위치로컬중앙 시스템분산 시스템
저장속도빠름트랜잭션처리, 빠름합의알고리즘, 느림
데이터 저장 방식FS APIDDL, DML합의 알고리즘
트랜잭션없음ACID 보장합의 알고리즘으로 트랜잭션 처리
데이터 중복단일 데이터역정규화로 일부 허용참여자 전체 중복 저장
종류FAT, NFTSRDBMS, NoSQLPublic, Private, Hybrid

블록체인 저장 방식의 문제점과 해결방안

블록체인 저장 방식의 문제점

  • 탈중앙화, 확장성, 보안성 중 모두를 만족할 수 없는 블록체인 트릴레마 존재
  • 합의 알고리즘 수행에 시간이 걸리므로, 실시간 웹 서비스에는 부적합

블록체인 저장 특성 문제 해결방안

구분내용비고
레이어링데이터와 처리계층의 분리로 확장성 향상오프체인, 사이드체인
샤딩데이터 불할 처리로 확장성 향상체인네트워크 샤딩, 코디네이션
하이브리드중앙집중과 탈중앙화의 절충점으로 신뢰성, 보안성, 실시간성 강화RDBMS, 카프카 사용
  • 블록체인 트릴레마와 실시간성 극복을 위해 데이터를 분리하여 처리

파일, 데이터베이스, 블록체인 적용방안

파일데이터베이스블록체인
개인/기업 데이터저장엔터프라이즈 어플리케이션암호화폐
멀티미디어웹 어플리케이션공급망 관리
IPFS빅데이터 분석스마트 컨트랙트

오토스케일링

· 약 3분

오토스케일링 개념

  • 시스템 자원 매트릭을 모니터링하여 서버 사이즈를 자동으로 조절하는 기술
  • 클라우드 컴퓨팅의 온디맨드 방식을 기반으로 자원 최적화, 고가용성, 온프레미스 대비 운영의 단순화를 위해 필요

오토스케일링의 구성

Pod, 메트릭모니터링, 로드밸런서 이미지

구성요소

구분기능설명
정책, 모니터링메트릭 수집, 알람 전송-
서버 이미지 배포Scale-Out, Scale-In, 서버 프로비저닝-
서비스 연결Health-Check, 트래픽 제어-

오토스케일링시 서버 추가까지 필요한 경우, Scale-Up이 비용절감의 효과를 가져올 수 있음.

비교

스케쥴기반, 부하기반

구분스케쥴 기반 오토스케일링부하 기반 오토스케일링
트리거예약된 시간트래픽
수치예측 가능한 부하실제 사용량 기반
장점트래픽 증가 지연 방지효율적인 리소스 사용량
단점예측을 벗어날시 리소스 낭비, 부족인스턴스 배포시간으로 인한 지연

Scale Up, Scale Out

구분Auto Scale UpAuto Scale Out
추가리소스CPU, Memory인스턴스
장점인스턴스, NW관리 없어 간단높은 확장성, 인스턴스 장애 격리
단점물리적 한계, 고비용, 시스템 다운타임복잡한 NW구성, 세션 처리 등

성공포인트

  • maxUnavailable, maxSurge 적절히 조절
  • scale down 으로 비용 절감

클라우드 컴퓨팅, 서비스 모델, 배포모델

· 약 3분

클라우드 컴퓨팅의 개념

  • 가상화 기술을 이용하여 사용자 필요시 인터넷을 통해서 서비스 형태로 IT자원을 제공하는 컴퓨팅 기법
  • 서비스 책임범위, 인프라 소유권에 따라 다양한 모델 등장

클라우드 컴퓨팅 모델의 구성도, 구성요소, 비교

클라우드 컴퓨팅 모델의 구성도

클라우드 컴퓨팅 모델의 구성요소

  • 서비스 모델: 클라우드 자원의 제공 방식에 따른 분류
구분내용비고
IaaS-사용자 관리 책임
PaaS-공통 관리 책임
SaaS-제공자 관리 책임
  • 배포 모델: 클라우드 자원 소유주체와 관리방식에 따른 분류
구분내용비고
Private-사용자 소유
Public-제공자 소유
Hybrid-혼합 모델

배포모델과 서비스모델 비교

구분배포모델서비스모델
목적지속 가능 서비스 기반온디맨드 서비스
범위클라우드 구성 환경클라우드 서비스
접근온프레미스와의 연결성비용 절감
  • 온프레미스 서비스의 구성 환경에 따라 배포모델을 선택하고, 비지니스 요구사항과 비용에 맞는 서비스모델을 선택.

클라우드 컴퓨팅 활성전략

구분내용비고
배포모델공공기관/지자체 민관협력형 클라우드-
-금융사 하이브리드 멀티 클라우드-
서비스모델CNCF Cloud Native App-
-K-PaaS-
  • 기업은 목적에 맞는 전략을 활용하여 적절한 모델을 선택.

클라우드 컴퓨팅 고려사항

  • 해당 국가의 법, 제도적 규제사항을 만족하기위한 소버린클라우드와 재난시 빠른 복구가 가능한 멀티클라우드 구축 고려

속독 방법

· 약 4분

개요

  • 어렸을 때 어디선가 속독 책을 봤는데 기호가 난무하고 암호가 즐비한 책인 줄 알았다.
  • 한 번 봐도 큰 효과는 없길래 사기구나 싶었다.
  • "당신도 지금보다 10배 빨리 책을 읽는다"란 책 후기에 넘어가 도전해보려고 한다.

기준

단어 수 기준으로는 이렇다.

  • 일반인: 600자/분
  • 명문대학생: 1,500자/분
  • 따라읽기의 한계치: 3,000자/분
  • 속독: 10,000자/분

방법

완벽하게 하려고하지 않는다. 속으로 따라읽지 않는다. 머리나 몸은 고정한다.

빠르게 보기

  • 가로, 세로, 횡대각, 종대각
    • 눈에서 15~20cm 거리에 둔다.
    • 각 점을 따라 0.5초 이내의 속도 간격으로 눈동자를 크게 움직인다.
    • 1에서 10까지 10에서 1까지 돌아온다.
    • 각각 30초씩 반복한다.
    • 시선을 크고 빠르게 움직이는 것을 의식한다.
  • 원 운동
    • 눈에서 15~20cm 거리에 둔다.
    • 원 한 바퀴를 왕복하는데 10초 정도로 천천히 시선을 움직인다.
    • 원 운동을 3번 반복한다.
  • 기호 2점
    • 눈 가까이 가지고 올 필요는 없다.
    • 좌우의 점만을 교대로 응시한다.
    • 가능한 빠르게 60초 동안 본다.
  • 문자 2점
    • 눈 가까이 가지고 올 필요는 없다.
    • 좌우의 점만을 교대로 응시한다.
    • 가능한 빠르게 60~90초 동안 본다.

능동 시야, 수동 시야 늘리기

  • 단계
    • 1단계: 10단어씩 끊어서 그 시야 폭의 가운데를 본다.
    • 2단계: 능동시야를 1행으로, 수동시야를 3행으로 늘린다. 똑같이 문장의 가운데를 본다.
    • 3단계: 능동시야를 3행으로, 수동시야를 5행으로 늘린다. 속독의 시작.
  • 시야폭 늘리기
    • 눈에서 15~20cm 거리에 둔다. 마지막 사각형이 수동시야에 들어올듯 말듯한 거리
    • 작은 사각형에서 큰 사각형으로 본다. 큰 사각형까지 봤으면 다시 작은 사각형에서 시작한다.
    • 하나의 사각형을 0.5초 간격으로 본다.
    • 90~180초 동안 반복한다.

요약

  • 따라 읽지 않고, 글자를 더엉리로 보며 이해하는 연습을 꾸준히 하는 것
  • 시야 (수동시야)를 넓혀 한 번에 인식할 수 있는 양을 큰 폭으로 늘리는 것
  • 전자책은 수동시야에 다음 단락이나 문장이 보이지 않으므로 속독에는 비적합
  • 정독으로도 이해 못하는 내용은 속독으로도 이해 못한다.

화이트박스, 블랙박스 테스트

· 약 4분

129

화이트박스, 블랙박스 테스트 개요

화이트박스, 블랙박스 테스트 개념

화이트박스, 블랙박스 테스트 배경

  • 테스트 V모델에서 요구사항/분석/설계/코딩 측면은 개발자 관점의 화이트박스 테스트로 Verification 하고,
  • 단위/통합/시스템/사용자 테스트 측면은 사용자 관점의 블랙박스 테스트로 Validation 하게 설계 필요.

화이트박스, 블랙박스 테스트 개념도, 핵심요소, 적용방안

화이트박스, 블랙박스 테스트 개념도

  • 내부구조를 파악하는지 여부에 따라 기법 변경

화이트박스, 블랙박스 테스트 핵심요소

구분화이트박스블랙박스
테스트기반소스코드, 제어흐름그래프요구사항명세서, 유스케이스
테스트설계문장커버리지, 결정커버리지, 조건커버리지, 경로커버리지동등분할, 경계값 분석, 오류추정, 원인/결과 분석
테스트목표코드의 정확성, 안정성, 완전성 검증기능요구사항 충족여부, UX 및 시스템 동작 검증
테스트시점개발 초기 단계개발 후반 단계
테스트자동화JUnit, Jest 등 단위테스트 프레임워크Selenium, Playwright 등 UI테스트 프레임워크
장점숨겨진 결함 발견 용이, 테스트 커버리지 향상사용자 관점 검증, 비교적 쉬운 TC 설계
단점높은 비용, 시간 소모, 코드 변경시 TC 수정 필요숨겨진 결합 발견 어려움, 낮은 TC 커버리지

화이트박스, 블랙박스 테스트 적용방안

구분화이트박스블랙박스
단위테스트각 함수, 모듈 기능 검증없음
통합테스트모듈간 인터페이스 상호작용 검증여러 모듈 통합 후 기능 검증
시스템테스트없음전체 시스템 기능, 성능 검증

테스트시 고려사항

  • 화이트박스와 블랙박스 테스트의 장점을 결합하여 제한적 내부 정보를 활용한 그레이박스 테스트 기법 고려

모듈화, 응집도, 결합도

· 약 4분

128

모듈화

모듈화의 개념

  • 시스템을 분해하고 추상화하여 SW 성능을 향상시키거나, 시스템의 디버깅, 테스트, 통합 및 수정을 용이하도록 하는 SW 설계 기법

모듈화의 장점

  • 모듈 재사용성, 개발과 유지보수성
  • 복잡성 감소
  • 오류 파급효과 최소화
  • 기능 분리가능, 인터페이스 단순화
  • 낮은 결합도, 높은 응집도

응집도와 결합도 개요

응집도와 결합도의 개념

  • 응집도: 하나의 모듈 내부의 처리요소 간 기능적 연관성을 측정하는 척도
  • 결합도: 모듈 간관련성을 측정하는 척도

응집도와 결합도의 배경

  • 최근 MSA 적용에 따른 모듈화의 중요성이 증가되었고, MSA의 각 서비스 단위(컴포넌트)는 응집도가 높고 결합도가 낮게 구현되어야함.

응집도와 결합도 종류 및 설명

응집도의 종류 및 설명

우논시절통순기

종류설명응집도
능적모든 요소가 단일 기능 수행높음
차적한 기능의 출력이 다른 기능의 입력으로 사용
신적동일한 입출력 데이터로 다른 기능 수행
차적기능 요소가 반드시 특정 순서대로 실행
기능 요소가 모두 같은 시간에 실행
리적논리적으로 유사하나 관계가 밀접하지 않음
연적모듈 내 요소가 연관이 없음낮음
  • 가능한 높은 응집도를 추구하여 유지보수 용이성 확보
  • 모듈 간 결합도는 최소화하여 각 모듈은 높은 응집도 확보
  • Co-incidental -> Logical -> Temporal -> Procedural -> Communicational -> Sequential -> Functional

결합도의 종류 및 설명

내공외제스자

종류설명결합도
모듈 간 파라미터 전달낮음
탬프모듈 간 자료구조 전달
다른 모듈을 제어하기 위해 플래그 전송
모듈이 SW외부 환경과 연관
모듈들이 공통 데이터 참조
다른 모듈의 내부 데이터 변경높음
  • 모듈 상호간 낮은 결합도 추구
  • 모듈 간 사이드 이펙트(리플 이펙트) 최소화
  • Contents -> Common -> External -> Control -> Stamp -> Data

응집도, 결합도 적용방안

구분내용비고
설계시스템 모듈화, API통신유지보수 용이성
개발모듈간 인터페이스 단순화, 명확한 역할 분담의존성 주입

모듈성을 높이기 위한 고려사항

  • 코드리뷰를 통해 개발단계에서의 의존성 문제, 인터페이스 불일치 등 저해요인 방지
  • MSA 설계시 서비스 단위로 높은 응집도, 낮은 결합도를 갖게 설계