본문 바로가기

전체 글219

3. 테스트 설계 기법 1. 테스트 설계 및 구현 프로세스테스트 설계 과정은 테스트 조건(Test Condition)을 식별하고 이를 기반으로 테스트 케이스를 설계하는 과정이다.테스트 조건이란 기능, 트랜잭션, 품질 특성, 시스템 구성 요소 등 테스트를 통해 확인해야 할 항목이나 이벤트를 의미한다.테스트 조건과 요구사항 및 명세(Test Basis) 사이의 추적성(Traceability) 을 유지하면 다음이 가능하다.요구사항 변경 시 영향도 분석요구사항 대비 테스트 커버리지 확인누락된 테스트 식별1.1 테스트 케이스테스트 케이스의 목적은 목표한 보장성(Coverage)을 만족하면서 최소한의 테스트로 결함을 발견하는 것이다.테스트 케이스 작성 시 테스트 환경과 수행자가 다를 수 있기 때문에 수행 절차(Test Step)의 상세 .. 2026. 3. 10.
2. 소프트웨어 수명주기와 테스팅 1. 테스트 유형테스팅의 목적과 품질 특성에 따라 테스트 방식을 분류한 것이다.대표적으로 다음과 같이 구분한다.기능 테스트비기능 테스트구조적 테스트변경 관련 테스트 (확인 테스트 / 리그레션 테스트)1.1 기능 테스팅여기서 기능이란 시스템이나 컴포넌트가 무엇을 수행하는가(What) 를 의미한다.기능 테스팅은 주로 명세 기반 테스트를 통해 테스트 조건과 테스트 케이스를 설계하며, 소프트웨어의 외부적인 동작(블랙박스 관점)을 중심으로 검증한다.기능 테스트는 모든 테스트 레벨에서 수행될 수 있다.ISO/IEC 9126 기능성 품질 특성적합성 (Suitability)제공된 기능이 사용자의 목적과 요구사항에 적절한지 여부 (예: 검색 기능이 실제 원하는 데이터를 찾을 수 있는가)정확성 (Accuracy)기능이 정.. 2026. 3. 8.
1. 소프트웨어 테스팅 기초 1. 테스트의 필요성1.1 소프트웨어 결함Error(오류) → Defect/Bug(결함) → Failure(실패)구분의미Error사람이 만든 실수Defect / Bug코드 또는 산출물에 존재하는 결함Failure실행 시 기대 결과와 다른 동작 발생 결함 발생 원인인간의 실수요구사항 또는 설계 문제개발 과정의 오류환경적 요인방사선자기장전자기장물리적 오염하드웨어 상태 변화 1.2 개발 단계별 테스팅의 역할테스팅은 소프트웨어 결함을 발견하고 품질과 리스크를 관리하는 활동이며 소프트웨어 개발 생명주기 전반에서 수행된다. 초기 단계 (요구사항 · 설계)문서 리뷰와 정적 분석을 통해 요구사항, 설계 단계의 결함을 조기에 발견 개발 단계 (구현)구현된 기능을 실행하여 컴포넌트 · 통합 · 시스템 수준의 동작 검증개발.. 2026. 3. 7.
로컬 WebRTC 테스트를 위한 Chrome 가상 미디어 장치 설정 실제 미디어 장치 환경 및 단일 브라우저 이상의 환경 구성에 어려울 수 있다. 이때 브라우저상의 가상 미디어 장치 설정하여 가상의 미디어 스트림을 생성하여 테스트 환경을 구성 할 수 있다.Chrome Fake MediaGoogle Chrome 을 실행할 때 카메라/마이크 없이도 가짜 미디어 장치를 자동으로 제공하게 만드는 옵션실제 브라우저의 미디어 장치와 접근 하는 방식 그대로 가상 미디어 장치와 스트림에 접근 가능하다navigator.mediaDevices.getUserMedia({ video: true, audio: true })과정1. 현재 크롬 완전히 종료작업 관리자에서 Chrome 다 종료.2. 실행 명령어로 Chrome 실행※ Windows 기준이며 Windows cmd 환경에서 ^ 는 줄 .. 2026. 3. 4.
디렉토리 CLI 트리 시각화를 위한 tree-clii 라이브러리 🌳 tree-clii 명령어 정리📌 기본 설명tree는 디렉토리 구조를 트리 형태로 시각적으로 출력해주는 명령어.기본 실행 → 현재 폴더 구조 출력재귀적으로 하위 폴더까지 모두 표시마지막에 파일/폴더 개수 요약 표시📢 리눅스 기본 tree랑은 옵션이 조금 다를 수 있음.🧾 사용법# 설치npm install -g tree-cli# 실행tree 🔹 주요 옵션 정리📖 도움말 / 정보옵션설명-h, --help도움말 출력--versiontree-cli 버전 출력--debug디버그 정보 표시📂 출력 제어 옵션옵션설명-a숨김 파일(.파일) 포함-d디렉토리만 표시--directoryFirst폴더를 먼저 정렬-l최대 표시 깊이 제한--ignore특정 파일/폴더 제외--base루트 디렉토리 지정--fullpa.. 2026. 2. 27.
SW QA 이해 0. QA란 무엇인가?QA(Quality Assurance, 품질보증)는 제품이나 서비스의 개발 초기 단계부터 최종 출시까지 전 과정에 참여하여 품질 요구사항을 만족하도록 프로세스를 관리하는 역활이다.1. QA vs TestingQA → 품질을 만드는 프로세스를 관리 (예방 중심)Testing→ 제품의 결함을 검증하고 발견 (발견 중심)즉, QA는 단순히 버그를 찾는 사람이 아니라 “버그가 덜 발생하도록 구조를 설계하는 사람” 이다.2. QA의 본질(WHAT)요구사항을 검증한다무엇이 정상인지 정의성공/실패 기준을 명확히 구분모호한 요구사항 식별 및 개선 제안리스크를 예측한다어디에서 문제가 발생할 가능성이 높은지 분석영향도 × 발생 가능성 기반 우선순위 설정리스크 기반 테스트 수행품질 기준을 정의한다릴리즈.. 2026. 2. 27.
JavaScript 생태계의 패키지 매니저 패키지 매니저(Package Manager)는 소프트웨어 패키지를 설치, 업데이트, 삭제, 관리하는 도구로, 개발자들이 여러 프로그램이나 라이브러리를 손쉽게 관리할 수 있도록 도와줍니다.1. 🌟 JavaScript 생태계의 패키지 매니저📚 패키지 저장소 (Registry)npm 레지스트리는 전 세계 개발자들이 만든 자바스크립트 패키지(라이브러리, 모듈)를 모아둔 중앙 저장소 역할을 합니다.💻 CLI 도구 (명령줄 툴)npm install react 같은 명령어를 통해 원하는 패키지를 쉽게 설치 가능설치된 패키지는 보통 node_modules 폴더에 저장됨프로젝트의 의존성은 package.json 파일에 기록됨📋 프로젝트 의존성 관리dependencies: 실행 시 필요한 패키지 (예: React,.. 2025. 9. 23.
[React + markdown] MD 문서 데이터 추출 및 파일 저장 처리 흐름MD 파일들 → 파싱 & 데이터 추출 → HTML/JSON 파일 생성생성되는 파일들public/html/{slug}.html - 렌더링용 HTML 파일public/{slug}.json - 목차 데이터public/site-search.json - 전체 검색 데이터1. 메인 처리 함수import fs from "fs";import path from "path";import rehypeAutolinkHeadings from "rehype-autolink-headings";import rehypeFormat from "rehype-format";import rehypeSlug from "rehype-slug";import rehypeStringify from "rehype-stringify";impor.. 2025. 5. 29.
0. shadcn ui 과 Radix UI shadcn ui 과 Radix UIRadix UI는 component 기능적 부분(행동, 접근성, 상태 관리 등)만 제공하고, 시각적인 부분(스타일링, 디자인)은 제공하지 않는 즉 헤드리스 UI component 라이브러리입니다.shadcn/ui는 Radix UI를 기반으로 만들어 기능성과 접근성을 유지하면서, 디자인과 스타일을 추가된 component 모음입니다.Radix UI 특징Primitive 는 Radix UI에서 기본적이고 근본적인 ui components 를 의미합니다.1. 접근성모든 component는 WAI-ARIA 디자인 패턴을 준수합니다키보드 내비게이션 및 포커스 관리 기능 내장스크린 리더와 호환됨2. 개발자 경험component 간 상태 공유를 위한 내장 콘텍스트(Context) .. 2025. 5. 4.
5. RTCPeerConnection 간 ICE candidate 교환 과정 1. ICE candidate 교환 과정offer 와 answer 를 교환하는 과정에서 ICE candidate 생성되며 이후 시그널링 서버를 통해 교환 되어 실제 peer 간 연결이 완료됩니다. 이전 포스트와 이어집니다. RTCPeerConnection 간 연결 과정 (offer, answer)참고할만한 내용📕 기본적인 시그널링 서버 및 클라이언트 연결 관련 포스트: 시그널링 서버 연결 및 미디어 장치 연결RTCPeerConnection 및 ICE candidate 관련 포스트: RTCPeerConnection 이해와 관련된 주요 인터페이스2. ICE candidate 교환 과정두 사용자 A, B 가 offer/answer 주고 받는 과정에서 ICE candidate 교환 시점과 흐름 예시1️⃣ A .. 2025. 4. 30.
4. RTCPeerConnection 간 연결 과정 (offer, answer) 1. 시그널링 서버를 통한 PeerConnection📕 기본적인 시그널링 서버 및 클라이언트 연결은 시그널링 서버 연결 및 미디어 장치 연결 포스트 참고RTCPeerConnection 의 이해가 필요 시 RTCPeerConnection 이해와 관련된 주요 인터페이스 포스트 참고2. 시그널링 과정두 사용자 A, B 가 피어 연결을 시도하는 과정 예시offer : offer는 연결을 시작하려는 피어(발신자)가 생성하는 SDP(Session Description Protocol) 정보answer: answer는 offer를 받은 피어(수신자)가 생성하는 SDP 정보입니다.1️⃣ A와 B 방에 입장A: 방에 입장 → 시그널링 서버에 연결B: 뒤이어 입장 → 시그널링 서버에 연결됨 2️⃣ 서버가 A에게 B 입장.. 2025. 4. 28.
3. RTCPeerConnection 이해와 관련된 주요 인터페이스 1. RTCPeerConnectionRTCPeerConnection은 WebRTC(Web Real-Time Communication) 기술의 핵심 구성 요소로, 웹 브라우저 간 피어-투-피어(P2P) 연결을 설정하고 관리하는 JavaScript API입니다.1.1 주요 속성// 전체 연결 상태 ('new', 'connecting', 'connected', 'disconnected', 'failed', 'closed')pc.connectionState// ICE 연결 상태 ('new', 'checking', 'connected', 'completed', 'failed', 'disconnected', 'closed')pc.iceConnectionState// ICE 후보 수집 상태 ('new', 'gathe.. 2025. 4. 22.