Brain
Science
root
/
학습 노트
/
Study Note
/
4: 소프트웨어 공학 (Software Engineering)
/
6. Software Architecture
6. Software Architecture
321. 프로그래밍 패러다임 - 절차적, 객체지향, 함수형, 논리형
322. 객체지향 프로그래밍 (OOP)의 4대 특징 - 캡슐화, 상속, 다형성, 추상화
323. 오버로딩 (Overloading) vs 오버라이딩 (Overriding)
324. 함수형 프로그래밍 (Functional Programming) - 일급 객체, 순수 함수, 불변성
325. 고차 함수 (Higher-Order Function) 및 클로저 (Closure)
326. 지연 평가 (Lazy Evaluation)
327. 반응형 프로그래밍 (Reactive Programming) - 데이터 스트림과 변화 전파
328. 코딩 컨벤션 (Coding Convention) 및 스타일 가이드
329. 시큐어 코딩 (Secure Coding) 원칙
330. 코드 리뷰 (Code Review) - 동료 검토 (Peer Review), 풀 리퀘스트 (PR) 기반 검토
331. 정적 분석 (Static Analysis) - 실행하지 않고 소스코드의 결함 탐지
332. 동적 분석 (Dynamic Analysis) - 실행 중 메모리 누수, 성능 병목 탐지
333. 가독성 (Readability) vs 효율성 (Efficiency) 트레이드오프
334. 클린 코드 (Clean Code) 원칙 - 의미 있는 이름, 작고 단일 역할의 함수, 주석의 최소화
335. 기술 부채 (Technical Debt)의 관리 및 상환 전략
2026-04-05
336. 라이브러리 (Library) vs 프레임워크 (Framework) - 제어의 역전 (IoC, Inversion of Control) 차이
2026-04-05
337. 의존성 주입 (DI, Dependency Injection) - 객체 결합도 감소
2026-04-05
338. 관점 지향 프로그래밍 (AOP, Aspect Oriented Programming) - 횡단 관심사(Cross-cutting Concern) 분리
2026-04-05
339. 소프트웨어 품질 (Software Quality)의 정의 (명시적, 묵시적 요구사항 충족)
2026-04-05
340. ISO/IEC 9126 품질 특성 - 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
2026-04-05
341. ISO/IEC 25010 (SQuaRE) - 9126의 진화 모델 (보안성, 호환성 추가)
2026-04-05
342. 기능 적합성 (Functional Suitability)
2026-04-05
343. 성능 효율성 (Performance Efficiency)
2026-04-05
344. 호환성 (Compatibility) / 사용성 (Usability)
2026-04-05
345. 신뢰성 (Reliability) / 보안성 (Security)
2026-04-05
346. 유지보수성 (Maintainability) / 이식성 (Portability)
2026-04-05
347. 사용 품질 (Quality in Use) - 유효성, 생산성, 만족도, 리스크 완화
2026-04-05
348. 맥콜(McCall)의 품질 모델 - 제품 운영, 제품 수정, 제품 전이 관점
2026-04-05
349. 품질 비용 (COQ, Cost of Quality) - 예방 비용, 평가 비용, 내부 실패 비용, 외부 실패 비용
2026-04-05
350. 전사적 품질 관리 (TQM, Total Quality Management)
2026-04-05
351. 식스 시그마 (6 Sigma) - DMAIC (Define, Measure, Analyze, Improve, Control)
2026-04-05
352. 결함(Defect)의 정의 - 오류(Error/Mistake), 결점(Fault/Bug), 고장/실패(Failure)
2026-04-05
353. 결함 생명주기 - 발생, 등록, 분석, 할당, 수정, 조치 확인, 종료
2026-04-05
354. 결함 심각도 (Severity) vs 결함 우선순위 (Priority)
2026-04-05
355. 결함 밀도 (Defect Density) - 코드 규모(KLOC) 대비 결함 수
2026-04-05
356. 신뢰성 성장 모델 (SRGM, Software Reliability Growth Model) - 고장 시간, 고장 간격 모델링
2026-04-05
357. 가용성 (Availability) 계산 = MTBF / (MTBF + MTTR)
2026-04-05
358. MTBF (Mean Time Between Failures) - 평균 무고장 시간
2026-04-05
359. MTTR (Mean Time To Repair) - 평균 수리 시간
2026-04-05
360. MTTF (Mean Time To Failure) - 평균 고장 시간
2026-04-05
361. 소프트웨어 복잡도 측정 - 맥케이브 순환 복잡도 (McCabe's Cyclomatic Complexity, V(G) = e - n + 2)
2026-04-05
362. 할스테드 (Halstead) 복잡도 - 연산자(Operator)와 피연산자(Operand) 수 기반 측정
2026-04-05
363. 객체지향 메트릭 (CK 메트릭스) - WMC, DIT, NOC, CBO, RFC, LCOM
2026-04-05
364. 정형 기술 검토 (FTR, Formal Technical Review) 의 지침
2026-04-05
365. 소프트웨어 품질 보증 (SQA, Software Quality Assurance) 조직 및 활동
2026-04-05
366. 골-질문-메트릭 (GQM, Goal-Question-Metric) 접근법 - 측정 지표 도출 기법
2026-04-05
367. 품질 대시보드 (Quality Dashboard) 구축
2026-04-05
368. 통계적 공정 관리 (SPC, Statistical Process Control) 및 정량적 관리
2026-04-05
369. 소프트웨어 프로세스 개선 (SPI) 프레임워크 - IDEAL 모델
2026-04-05
370. 코드 스멜 (Code Smell) - 리팩토링의 징후 (코드 중복, 거대 클래스, 긴 파라미터 목록)
2026-04-05
371. 기술적 단편화 (Technical Fragmentation) 문제
2026-04-05
372. 상용 소프트웨어 (COTS, Commercial Off-The-Shelf) 통합 및 품질
2026-04-05
373. 오픈 소스 소프트웨어 (OSS) 거버넌스 - 라이선스(GPL, MIT, Apache 등) 컴플라이언스
2026-04-05
374. 공급망 보안 (Supply Chain Security) - 오픈소스 취약점 관리
2026-04-05
375. SBOM (Software Bill of Materials) - 소프트웨어 구성 요소 명세서 의무화 동향
2026-04-05
376. 소프트웨어 빌드 및 배포 자동화의 품질 검증 단계
2026-04-05
377. 체크섬(Checksum), 서명(Signature)을 통한 무결성(Integrity) 검증
2026-04-05
378. 소프트웨어 문서화 (Documentation) 표준 및 지식 관리 (Wiki, Confluence)
2026-04-05
379. 재해 복구 (DR) 아키텍처 - RTO (Recovery Time Objective), RPO (Recovery Point Objective)
2026-04-05
380. 소프트웨어 유지보수의 종류 - 수정(Corrective), 적응(Adaptive), 완전/개선(Perfective), 예방(Preventive)
2026-04-05
381. 메이먼의 법칙 (Lehman's Laws of Software Evolution) - 지속적 변경, 복잡도 증가의 법칙
2026-04-05
382. 방어적 프로그래밍 (Defensive Programming) - 예외 처리, Assertion 적극 활용
2026-04-05
383. 데이터 중심(Data-Centric) 아키텍처의 품질 보증
2026-04-05
384. AI 기반 코드 생성기(Copilot 등) 산출물의 품질 평가 한계
2026-04-05
385. 서버리스 환경의 콜드 스타트(Cold Start) 모니터링 및 튜닝
2026-04-05
386. 지속 가능성 (Sustainability) 및 그린 코딩 (Green Coding) - 탄소 배출 저감 코드
2026-04-05
387. 접근 통제 (Access Control) 패턴 로직 구현
2026-04-05
388. 디자인 바이 컨트랙트 (Design by Contract) - 사전조건, 사후조건, 불변조건 명시
2026-04-05
389. 리버스 엔지니어링 (Reverse Engineering) 툴을 통한 난독화 코드 분석
2026-04-05
390. 애플리케이션 라이프사이클 관리 (ALM) 시스템 도입
2026-04-05