1. 모듈의 결합도 강도 순위

결합도는 모듈끼리 얼마나 강하게 연결되어 있는지를 말함.

좋은 설계는 결합도가 낮아야 함.

약한 결합도 → 강한 결합도

자료 결합도
→ 스탬프 결합도
→ 제어 결합도
→ 외부 결합도
→ 공통 결합도
→ 내용 결합도

표 정리

순서결합도설명좋고 나쁨
1자료 결합도필요한 데이터만 주고받음가장 좋음
2스탬프 결합도자료구조 전체를 넘김비교적 좋음
3제어 결합도제어 신호를 넘겨 상대 동작을 결정보통
4외부 결합도외부 형식, 장치, 프로토콜에 의존나쁨
5공통 결합도전역 데이터를 여러 모듈이 공유매우 나쁨
6내용 결합도다른 모듈 내부를 직접 참조최악

암기

자스제외공내

자료 - 스탬프 - 제어 - 외부 - 공통 - 내용

이 순서는 약함 → 강함임.

즉:

자료 결합도가 가장 좋고, 내용 결합도가 가장 나쁨.


2. 정보 시스템 유지보수 유형

유지보수는 시스템 개발 후에 수정, 개선, 환경 변화 대응, 장애 예방을 하는 것임.

1. 수정 유지보수

오류를 고치는 유지보수.

버그 수정
계산 오류 수정
화면 오류 수정

2. 적응 유지보수

환경 변화에 맞추는 유지보수.

운영체제 변경
DBMS 변경
법/제도 변경
브라우저 버전 변경

3. 완전 유지보수

성능이나 기능을 개선하는 유지보수.

속도 개선
기능 추가
UI 개선
사용성 향상

4. 예방 유지보수

미래의 문제를 막기 위한 유지보수.

코드 정리
보안 취약점 사전 제거
구조 개선
장애 예방 패치

표 정리

유형핵심예시
수정 유지보수오류 수정버그 고침
적응 유지보수환경 변화 대응OS, DB 변경 대응
완전 유지보수기능/성능 개선속도 개선, 기능 추가
예방 유지보수미래 문제 방지코드 정리, 보안 패치

암기

수정 = 고침 적응 = 맞춤 완전 = 개선 예방 = 미리 막음


3. 시스템 개발 생명주기, SDLC

SDLC는 Software Development Life Cycle임.

뜻은 소프트웨어를 개발하는 전체 과정임.

일반적인 순서

계획 → 분석 → 설계 → 구현 → 테스트 → 운영/유지보수

단계별 의미

단계설명
계획무엇을 만들지 정함
분석사용자 요구사항 파악
설계시스템 구조와 DB, 화면 설계
구현실제 코드 작성
테스트오류 확인
운영/유지보수배포 후 수정, 개선

암기

계분설구테유

계획 - 분석 - 설계 - 구현 - 테스트 - 유지보수

4. 애자일의 뜻과 의미

애자일은 영어로 Agile이고, 뜻은 민첩한, 빠르게 움직이는임.

소프트웨어 개발에서 의미

애자일은 처음부터 완벽한 계획을 세워 끝까지 그대로 가는 방식이 아니라, 짧게 만들고 피드백을 받아 계속 고치는 개발 방식임.

애자일 특징

특징설명
반복 개발짧은 주기로 계속 개발
고객 피드백 중시사용자의 의견을 자주 반영
변화 수용요구사항 변경을 받아들임
빠른 결과물완성품 일부를 빠르게 보여줌
협업 중시팀원 간 소통 중요

폭포수 모델과 비교

구분폭포수 모델애자일
방식순서대로 한 번에 진행반복적으로 개발
변화 대응어려움쉬움
고객 피드백후반에 반영자주 반영
특징계획 중심변화 대응 중심

암기

애자일 = 짧게 만들고, 피드백 받고, 계속 개선하는 개발 방식


5. DevOps와 CI/CD 도구

네가 쓴 CL/CD는 거의 확실히 CI/CD를 말하는 거임.

CI/CD 뜻

CI

Continuous Integration

뜻은 지속적 통합임.

개발자가 코드를 자주 합치고, 자동으로 빌드와 테스트를 돌리는 것.

CD

Continuous Delivery 또는 Continuous Deployment

뜻은 지속적 제공 또는 지속적 배포임.

테스트가 끝난 코드를 배포 가능한 상태로 만들거나, 자동으로 배포까지 하는 것.

GitHub도 CI/CD를 빌드, 테스트, 배포 파이프라인 자동화로 설명하고, GitLab CI/CD도 .gitlab-ci.yml 파일로 단계, 작업, 스크립트를 정의해 파이프라인을 실행한다고 설명함. Jenkins 역시 CI 서버나 지속적 전달 허브로 사용할 수 있는 자동화 서버임.

CI/CD 도구 예시

도구설명
Jenkins대표적인 오픈소스 자동화 서버
GitHub ActionsGitHub 저장소 기반 자동 빌드/테스트/배포
GitLab CI/CDGitLab에서 제공하는 CI/CD 파이프라인
CircleCI자동 빌드/테스트/배포 도구
Travis CICI 자동화 도구
Azure DevOps마이크로소프트 DevOps 도구

시험용 암기

DevOps에서 CI/CD 도구 = Jenkins, GitHub Actions, GitLab CI/CD 같은 자동 빌드·테스트·배포 도구