정보처리기사/정보시스템 구축관리
소프트웨어의 3R
glorypang
2025. 10. 2. 00:24
728x90
반응형
SMALL
1) 역공학 (Reverse Engineering)
- 정의: 완성된 시스템/코드에서 설계·요구·구조를 거꾸로 추출.
- 목적: 문서 부재/유실 보완, 레거시 이해, 보안 분석(취약점·악성코드 분석).
- 키워드: 디컴파일, 구조/의존성 추출, 아키텍처 복원, 프로토콜 분석.
- 예시: 레거시 C 프로그램의 호출 그래프/모듈 관계 도출.
2) 재공학 (Re-engineering)
- 정의: 기존 소프트웨어를 정비·개선·재설계하여 품질/유지보수성을 향상.
- 목적: 성능·보안·품질 개선, 플랫폼/언어 전환, 기술 부채 해소.
- 키워드: 리팩터링, 리모델링, 리플랫폼(온프렘→클라우드), 마이그레이션.
- 예시: 모놀리스를 마이크로서비스로 분해, .NET Framework → .NET 8 전환.
3) 재사용 (Reuse)
- 정의: 기존 컴포넌트·라이브러리·설계/지식을 반복 활용.
- 목적: 개발 속도↑, 비용↓, 품질↑(검증된 자산 활용).
- 키워드: 합성 중심(조립식), 생성 중심(스캐폴딩/코드 생성), 프레임워크/패턴, 패키지 매니저.
- 예시: OAuth 라이브러리 도입, CRUD 코드 스캐폴딩 자동 생성.
한 줄 요약
- 역공학: 있는 걸 분석해서 설계/지식을 꺼낸다
- 재공학: 있는 걸 손봐서 구조/품질을 개선한다
- 재사용: 있는 걸 가져다 다시 쓴다
728x90
반응형
LIST