매뉴얼·릴리스 노트·빌드 자동화
목차 21
15강이 완성된 소프트웨어를 사용자 환경에 맞게 묶어 봉인하는 패키징이었다면, 16강은 그 묶음에 안내문(매뉴얼·릴리스 노트)을 동봉하고, 빌드·테스트·배포 전 과정을 자동화(빌드 도구·CI/CD) 하는 단원이다. 13강 단위 테스트(JUnit)·14강 형상 관리(Git)가 여기서 Jenkins 로 모여 CI/CD 큰 그림이 완성된다. 시험 점수밭은 셋 — 릴리스 노트 9항(헤요재수개기노면연) · Jenkins = CI 도구 ≠ 빌드 도구 · Maven=XML / Gradle=DSL. 거의 매회 보장된 출제 라인이다.
핵심 암기: 릴리스 노트 9항 헤요재수개기노면연 · IDE 5대 기능+통합 코디버배컴통 · 빌드 도구 핵심 메=의존성 / 그=유연성 / 젠=CI대명사 · Jenkins = CI 도구 ≠ 빌드 도구 · Maven=XML / Gradle=DSL · CI 정의 자동 빌드 + 자동 테스트 · CD 두 갈래 Delivery=사람 승인 / Deployment=완전 자동 · 매뉴얼 2종 사용자=고객 / 운영=운영자 · 통합 시그니처 CI = JUnit + Git + Jenkins
매뉴얼과 릴리스 노트
매뉴얼 2종 — 사용자 매뉴얼 vs 운영 매뉴얼 ·매뉴얼·
[정의] 매뉴얼(Manual) = 패키지에 동봉되는 사용·운영·문제 해결 안내 문서. 패키징 산출물 3종(설치 파일·매뉴얼·릴리스 노트) 중 하나로, 읽는 사람이 누구냐 에 따라 두 종류로 갈린다.
[표] 대상·목적·수준·핵심 항목 4축 비교.
| 비교 축 | 사용자 매뉴얼(User Manual) | 운영 매뉴얼(Operation Manual) |
|---|---|---|
| 대상 | 일반 사용자·고객(비전공자) | 운영자·관리자(기술자) |
| 목적 | 설치·사용 안내 | 운영·유지보수·장애 대응 |
| 수준 | 비전공자도 이해(친절체·스크린샷) | 기술 용어·절차 위주(커맨드·로그) |
| 핵심 항목 | 설치 방법·기본 기능·문제 해결·FAQ·고객지원 연락처 | 시스템 구성·환경 설정·운영 절차·장애 대응·백업/복구 |
[흐름] 작성 절차 4단계 — 검토는 항상 마지막(책 쓰기와 같다).
① 작성 지침 → ② 구성요소(목차) → ③ 내용 작성 → ④ 검토
(지침) (챕터 구성) (본문·스크린샷) (기술+사용성, 마지막)
🔑 암기 사용자 매뉴얼 = 고객 / 운영 매뉴얼 = 운영자. 작성 절차 끝 = 검토. ⚠️ 함정 '장애 대응·백업/복구·환경 설정'이 사용자 매뉴얼 자리에 있으면 100% 함정(운영 매뉴얼). 'FAQ·고객지원 연락처'가 운영 매뉴얼 자리에 있어도 함정(사용자 매뉴얼). '검토가 1·2·3단계'도 함정 — 검토는 4단계. 🎯 빈출 '운영 매뉴얼 핵심 항목은?' / '사용자 매뉴얼에 포함되는 것은?' 항목 뒤바꿈. 거의 매회. 📝 기출 매뉴얼 2종 항목 매칭 단골.
릴리스 노트(Release Note) 정의 ·릴리스 노트·
[정의] 릴리스 노트(Release Note) = 소프트웨어의 새 버전 출시와 함께 발행되는 변경 이력 공식 문서. 어떤 기능이 추가·수정됐고 어떤 이슈가 남았는지 사용자에게 공식 통보하는 외부 문서. 면책 조항·알려진 이슈를 명시해 법적 책임을 분리하는 것이 결정적 가치.
[흐름] 코드 변경 → 패키징 → 릴리스 노트(사용자 통보)의 마지막 퍼즐.
💡 앱스토어 '이번 버전의 새로운 기능' 페이지가 곧 릴리스 노트다 — 사용자가 업데이트를 누르기 직전 가장 먼저 보는 안내장.
🌟 작성 시점 5종(키워드 매칭만 — 디테일은 가볍게):
| 시점 | 언제 | 빈도 |
|---|---|---|
| 초기 배포(Initial) | 제품 첫 출시 | 1회 |
| 신규 기능(Feature) | 메이저 기능 추가 | 분기·반기 |
| 개선(Enhancement) | 기존 기능 향상 | 정기 |
| 버그 수정(Bug Fix) | 결함 수정 | 수시 |
| 보안 패치(Security) | 취약점 긴급 수정 | 별도 트랙·즉시 |
🔑 암기 릴리스 노트 = 새 버전 + 변경 이력 공식 통보 + 외부 문서. 보안 패치는 정기 릴리스와 분리(즉시 발행). ⚠️ 함정 '개발자 내부 문서'(외부 문서가 정답)·'출시 1년 뒤 발행'(출시와 동시)·'초기 배포를 매 릴리스마다'(1회만)는 함정. 🎯 빈출 정의 매칭 + '작성 시점이 아닌 것?'. 정의 단골.
★릴리스 노트 필수 항목 9종 — 헤요재수개기노면연★ ·릴리스 노트 9항·1순위·
[표] 릴리스 노트의 필수 구성 항목 9종. 16강 시험 1순위.
| 약자 | 항목 | 무엇을 적나 |
|---|---|---|
| 헤 | 헤더(Header) | 제품명·버전·릴리스 날짜 |
| 요 | 요약(Summary) | 이번 릴리스 핵심 3~5줄 |
| 재 | 재현 항목(Reproducible) | 알려진 버그 재현 단계·환경 |
| 수 | 수정 내용(Fixes) | 고쳐진 버그 목록 |
| 개 | 개선 사항(Improvements) | 추가·향상된 기능(사용자 관심 1순위) |
| 기 | 기여자(Contributors) | 작성자·개발자·검토자 명단 |
| 노 | 노트(Notes) | 알려진 이슈·향후 계획 |
| 면 | 면책 조항(Disclaimer) | 라이선스·법적 책임 한계 |
| 연 | 연락처(Contact) | 문의·버그 리포트 채널 |
[흐름] 편지의 9단 구성으로 읽으면 외우기 쉽다.
헤더(받는 사람·날짜) → 요약(요지) → 재현·수정·개선(본문)
→ 기여자(작성자) → 노트·면책(부록) → 연락처(답장 받을 곳)
🔑 암기 헤요재수개기노면연 아홉 글자. ⚠️ 함정 비밀번호·DB 스키마·서버 IP·소스 코드 전문은 9개에 없음 → '필수 항목이 아닌 것?'의 정답. 보안 정보·내부 구현은 외부 문서에 절대 들어가지 않는다. 🎯 빈출 '릴리스 노트 필수 항목이 아닌 것?' 매년 빈출 1순위. 9개 외 항목(비밀번호 등)을 끼워 넣는 함정이 단골. 📝 기출 릴리스 노트 9항 소거형 단골.
개발 도구와 빌드 개념
IDE 5대 기능 — 코디버배컴통 ·IDE·
[정의] IDE(Integrated Development Environment, 통합 개발 환경) = 코드 작성·컴파일·디버깅·배포·버전 관리를 한 도구·한 화면 에서 처리하게 합친 개발 도구. '통합(Integrated)' 이 본질 — 옛날엔 편집기·터미널·디버거·Git이 따로따로였다.
[표] 5대 기능(코딩·디버깅·버전 관리·배포·컴파일) + 통합 = 코디버배컴통.
| 약자 | 기능 | 한 줄 |
|---|---|---|
| 코 | 코딩 | 자동 완성·문법 강조·리팩터링 |
| 디 | 디버깅 | 중단점·변수 추적·스텝 실행 |
| 버 | 버전 관리 | Git·SVN 통합 패널(터미널 없이 commit·push) |
| 배 | 배포 | 빌드·서버 배포(CI 도구 연동) |
| 컴 | 컴파일 | 소스 → 실행 파일 변환 |
| 통 | 통합 | 위 기능 + 테스트·빌드를 한 화면에(I=Integrated 본질) |
[표] 주요 IDE 4종 — 이름·주력 언어 매칭만(단축키·플러그인 디테일은 출제 밖).
| IDE | 주력 언어 | 운영 주체 |
|---|---|---|
| Eclipse | Java(Spring) | Eclipse Foundation(무료·오픈소스) |
| IntelliJ IDEA | Java·Kotlin | JetBrains(자동완성·리팩터링 강점) |
| VS Code | 다언어(JS·Python·Go·Java) | Microsoft(가벼움·확장성) |
| Visual Studio | C#·.NET·C++ | Microsoft(MS 생태계) |
🔑 암기 코디버배컴통. IDE = 편집기 + 컴파일러 + 디버거 + Git + 배포 통합. ⚠️ 함정 'IDE는 코딩만 하는 도구'(5대 기능 통합이 본질)·'IntelliJ=.NET 전용'(Java·Kotlin / .NET은 Visual Studio)·'Visual Studio=Java 전용'(C#·.NET / Java는 Eclipse·IntelliJ)은 함정. 🎯 빈출 'IDE에 해당하지 않는 것?'(Jenkins 끼워 넣기) + IDE 이름·언어 매칭. 가끔.
빌드(Build) 정의 — 단순 컴파일이 아니다 ·빌드·
[정의] 빌드(Build) = 소스 코드를 컴파일·의존성 해결·테스트·패키징·배포 가능한 형태로 만드는 자동화 과정. 단순 컴파일이 아니라 여러 단계를 묶어 자동 실행하는 것이 핵심.
[흐름] 빌드 한 번에 일어나는 5단계.
소스 → ① 컴파일 → ② 의존성 해결 → ③ 단위 테스트 → ④ 패키징(.jar·.war·.apk) → ⑤ 배포
🔑 암기 빌드 = 컴파일 + 의존성 + 테스트 + 패키징 + 배포 5단계 자동화. ⚠️ 함정 '빌드 = 컴파일과 같은 의미'·'빌드에 테스트 미포함'·'빌드와 배포는 무관'은 모두 함정. 단위 테스트(13강 JUnit)·배포가 빌드 흐름 안에 들어 있다. 🎯 빈출 '빌드 정의로 옳은 것?'. 컴파일과 동일시하는 함정 단골.
빌드 자동화 도구 — Maven · Gradle · Jenkins
★빌드 자동화 도구 4종 — 메=의존성·그=유연성·젠=CI대명사★ ·빌드 도구·1순위·
[표] Ant·Maven·Gradle·Jenkins 4종. 이 표 한 장이 16강 출제분의 30%.
| 도구 | 분류 | 한 줄 핵심 |
|---|---|---|
| Ant | 빌드 도구 | 1세대 — XML 스크립트·자유도 높음 |
| Maven | 빌드 도구 | 2세대 — pom.xml + 의존성 관리 표준 |
| Gradle | 빌드 도구 | 3세대 — Groovy/Kotlin DSL + Android 표준 |
| Jenkins | CI 도구 ≠ 빌드 도구 | CI 대명사 — Maven/Gradle을 안에서 호출 |
[흐름] 핵심 구분 한 줄 — 빌드 도구 vs CI 도구.
Ant · Maven · Gradle = 빌드 도구 (어떻게 빌드할지 정의 + 직접 빌드)
Jenkins = CI 도구 (언제 빌드를 자동 실행할지 지시)
→ Jenkins 안에서 Maven/Gradle 을 "호출"하는 구조
🔑 암기 메(의존성) · 그(유연성) · 젠(CI 대명사) + Jenkins ≠ 빌드 도구. ⚠️ 함정 'Jenkins는 빌드 도구'·'Maven은 CI 도구'·'Gradle은 CI 도구'는 모두 100% 함정. Ant·Maven·Gradle만 빌드 도구, Jenkins는 CI. 🎯 빈출 '빌드 자동화 도구가 아닌 것?'(분류 함정) 매년 단골. 📝 기출 도구 분류 소거형 단골.
Maven — pom.xml + 의존성 자동 다운로드 ·Maven·
[정의] Maven = Apache 재단의 Java 빌드 도구. pom.xml(Project Object Model)에 의존성·빌드 설정을 XML 로 선언하면, 외부 라이브러리를 Maven 중앙 저장소(Maven Central) 에서 자동 다운로드·연결한다.
[표] 시그니처 3종.
| 시그니처 | 한 줄 |
|---|---|
| pom.xml | XML 형식의 빌드 설정·의존성 선언 파일 |
| 의존성 자동 다운로드 | <dependency> 에 이름만 적으면 Maven Central에서 자동 |
| 표준 라이프사이클 | clean → compile → test → package → install → deploy |
[발췌] pom.xml 의존성 선언 — 이름만 적으면 자동 다운로드(XML).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.5.11</version>
</dependency>
🔑 암기 Maven = pom.xml + 의존성(XML). ⚠️ 함정 'Maven은 Groovy DSL'(그건 Gradle)·'Maven은 Android 공식'(Gradle)·'Maven은 점진적 빌드'(Gradle 강점)는 함정. 🎯 빈출 'Maven 특징으로 옳은 것?' — pom.xml·의존성 키워드 매칭 단골. 📝 기출 Maven 특징 매칭.
Gradle — Groovy/Kotlin DSL + Android 표준 ·Gradle·
[정의] Gradle = Maven의 장황한 XML을 극복한 차세대 빌드 도구. XML 대신 Groovy 또는 Kotlin DSL(코드)로 빌드 스크립트를 작성. Android 공식 빌드 도구.
[표] 시그니처 3종.
| 시그니처 | 한 줄 |
|---|---|
| build.gradle | Groovy/Kotlin DSL로 작성(XML 아님) |
| 유연성·간결함 | Maven XML의 약 절반 분량 + 스크립트 자유도 |
| 점진적 빌드 | 변경된 부분만 재빌드 → 속도 향상 |
[발췌] build.gradle 의존성 — Maven 4줄이 한 줄로(DSL).
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web:3.5.11'
}
🔑 암기 Gradle = DSL + Android + 유연성. ⚠️ 함정 'Gradle은 XML 기반'은 100% 함정 매년 빈출 1순위 — XML은 Maven, Gradle은 DSL. '점진적 빌드 미지원'·'Android에서 안 쓰임'도 함정. 🎯 빈출 'Gradle 특징이 아닌 것?'에 'XML 기반' 끼워 넣기. 매년 1순위. 📝 기출 Gradle 특징 매칭(XML 함정).
★Maven vs Gradle 비교표 — Maven=XML / Gradle=DSL★ ·Maven vs Gradle·매년1순위·
[표] 결정적 차이. 'Maven=XML / Gradle=DSL' 한 줄에서 나머지가 다 파생된다.
| 비교 축 | Maven | Gradle |
|---|---|---|
| 설정 언어 | XML(pom.xml) | Groovy/Kotlin DSL(build.gradle) |
| 분량 | 장황 | 간결(약 절반) |
| 빌드 속도 | 느림(전체 재빌드) | 빠름(점진적 빌드) |
| 유연성 | 컨벤션 위주(정해진 양식) | 스크립트로 자유롭게(조건문) |
| Android 표준 | ❌ | ⭕ Google 채택 |
| 점진적 빌드 | ❌ | ⭕ 변경분만 |
| 생태계 | Maven Central | Gradle + Maven 저장소도 사용 |
🔑 암기 Maven=XML / Gradle=DSL. XML이라 Maven은 장황·정형, DSL이라 Gradle은 간결·자유·Android 표준. ⚠️ 함정 'Gradle은 XML·Maven은 DSL'(거꾸로)·'Maven이 Android 공식'(Gradle)·'Maven이 점진적 빌드'(Gradle)·'Gradle은 Maven 저장소 못 씀'(둘 다 사용 가능)은 함정. 🎯 빈출 Maven vs Gradle 차이 — 매년 빈출 1순위. 보기를 'XML?·DSL?' 두 가지로만 분별. 📝 기출 설정 언어 뒤바꿈 단골.
Jenkins — CI 대명사 ·Jenkins·1순위·
[정의] Jenkins = 오픈소스 지속적 통합(CI, Continuous Integration) 자동화 서버. Git push 등 이벤트가 발생하면 빌드·테스트·배포를 자동 실행 하는 오케스트라 도구. CI 대명사라 불릴 만큼 업계 표준.
[표] 시그니처 4종.
| 시그니처 | 한 줄 |
|---|---|
| CI 대명사 | 'CI 도구' 하면 십중팔구 Jenkins |
| 플러그인 생태계 방대 | Git·Maven·Gradle·Docker 등 거의 모든 도구와 연동 |
| Jenkinsfile | 빌드·테스트·배포 단계를 코드(Groovy DSL)로 정의 → 형상 관리 가능 |
| 무료·오픈소스 | Java로 작성·자체 호스팅 가능 |
[발췌] Jenkinsfile — 파이프라인을 코드로(저장소에 두면 자동 인식).
pipeline {
stages {
stage('Build') { steps { sh 'mvn clean package' } }
stage('Test') { steps { sh 'mvn test' } }
stage('Deploy') { steps { sh './deploy.sh' } }
}
}
🔑 암기 CI 대명사 = Jenkins. 문제에 'CI·지속적 통합' + 보기에 Jenkins → 즉답. ⚠️ 함정 'CI 대명사 = Maven/Gradle/Eclipse'는 함정 — Maven·Gradle=빌드 도구, Eclipse=IDE. 🎯 빈출 'CI의 대표 도구는?' 매년 빈출 1순위. 📝 기출 CI 도구 정의 매칭.
★Jenkins = CI 도구 ≠ 빌드 도구★ ·Jenkins 함정·1순위·
[정의] Jenkins는 빌드 도구가 아니라 CI 오케스트라. 직접 빌드하지 않고 빌드 도구(Maven·Gradle)를 안에서 호출 한다. 'Jenkins는 빌드 도구'는 매년 단골 함정.
[흐름] Jenkins의 위치 — 호출자.
[Jenkins (CI 오케스트라)]
├─ 호출 → Maven/Gradle (빌드 도구)
├─ 호출 → JUnit (단위 테스트)
└─ 호출 → 배포 스크립트
→ Jenkins 자신은 어떤 빌드도 직접 하지 않음
| 본질 | 한 줄 |
|---|---|
| 빌드 도구 | 코드를 컴파일·테스트·패키징하는 직접 작업자(Maven·Gradle) |
| CI 도구 | 언제 어떤 빌드 도구를 호출할지 지시하는 오케스트라(Jenkins) |
🔑 암기 Jenkins = CI 도구 ≠ 빌드 도구. Maven/Gradle을 호출하는 위치. ⚠️ 함정 '빌드 도구가 아닌 것?'에 Jenkins가 보이면 100% Jenkins가 정답. 'Jenkins가 Maven을 대체'(호출 관계지 대체 아님)도 함정. 🎯 빈출 '빌드 도구가 아닌 것? → Jenkins' 매년 빈출 1순위. 16강 함정의 절반. 📝 기출 Jenkins 분류 소거형 단골.
CI/CD 큰 그림
CI 정의 — 자동 빌드 + 자동 테스트 ·CI·
[정의] CI(Continuous Integration, 지속적 통합) = 코드 변경을 자주 머지하고 매번 자동 빌드·자동 테스트 해 통합 결함을 조기에 발견 하는 개발 방식. '자동 빌드 + 자동 테스트' 가 본질.
[흐름] Jenkins 동작 — push 한 번에 끝까지 자동.
개발자 push → Jenkins Webhook 감지 → Maven/Gradle 빌드 → JUnit 자동 테스트
→ 통과 시 패키징(.jar/.war/.apk) → 배포 → 결과 알림
💡 commit은 로컬 기록까지만, push가 트리거의 진입점이다(14강 commit ≠ push 회수).
| 옛날(CI 없음) | CI 도입 후 |
|---|---|
| 1~2주 단위 일괄 머지 | 변경마다 즉시 머지·자동 빌드 |
| 머지 시점 통합 결함 폭발 | 결함 조기 발견·즉시 수정 |
🔑 암기 CI = 자동 빌드 + 자동 테스트 + 자주 통합. ⚠️ 함정 'CI = 수동 빌드·월말 일괄 통합'(자동·즉시가 정답)·'CI가 운영 배포까지 자동'(배포는 CD)·'CI는 빌드 도구'(개발 방식·프로세스)는 함정. 🎯 빈출 CI 정의 매칭 + commit/push 함정. push가 트리거 진입점. 📝 기출 CI 정의·동작 매칭.
Continuous Delivery vs Deployment — CD 두 갈래 ·CD·
[정의] CD는 같은 약자 두 의미 — 운영 배포에 사람 승인이 있느냐 가 갈림길.
- Continuous Delivery(지속적 전달) = 스테이징까지 자동, 운영 배포는 사람 승인.
- Continuous Deployment(지속적 배포) = 운영까지 완전 자동, 사람 개입 없음.
[표] CI + CD 두 갈래.
| 약자 | 풀네임 | 운영 배포 |
|---|---|---|
| CI | Continuous Integration | (배포 영역 아님 — 빌드+테스트) |
| CD | Continuous Delivery | 스테이징 자동 · 운영은 사람 승인 |
| CD | Continuous Deployment | 운영까지 완전 자동 |
🔑 암기 Delivery = 사람 승인 / Deployment = 완전 자동. ⚠️ 함정 'Delivery는 운영까지 완전 자동'(거꾸로 — 그건 Deployment)·'Deployment는 사람 승인 단계 있음'(완전 자동)·'CI와 CD는 같은 단계'(CI=빌드+테스트 / CD=배포)는 함정. 🎯 빈출 CD 두 갈래 — 신유형이나 출제 비중 증가. '운영 배포 사람 승인 유무' 한 가지로 분별. 📝 기출 Delivery/Deployment 뒤바꿈 단골.
★CI/CD 큰 그림 — CI = JUnit + Git + Jenkins★ ·CI/CD 시그니처·통합1순위·
[흐름] 13강 단위 테스트·14강 형상 관리·16강 CI 자동화가 한 장으로 모이면 CI/CD가 완성된다.
[IDE] 코딩 → 로컬 JUnit 통과 → commit
│ git push
[Git 원격 저장소] 브랜치 push → PR 등록 (풀 = fetch + merge · 14강)
│ Webhook 감지
[Jenkins CI 서버] Maven/Gradle 빌드 → JUnit 자동 → 패키징 → 스테이징 배포
│ 통과 시
[운영 배포 + 릴리스 노트 발행] 새 버전 + 변경 이력(헤요재수개기노면연) 통보
[표] CI/CD 4요소.
| 요소 | 역할 | 강 |
|---|---|---|
| JUnit | 단위 테스트 자동화(부품 단품 검사) | 13강 |
| Git | 변경 이력 통제·트리거(commit ≠ push) | 14강 |
| 패키징·릴리스 노트 | 사용자 환경 맞춤 + 변경 통보 | 15·16강 |
| Jenkins | 위 단계를 자동 컨베이어로 묶어 실행(CI) | 16강 |
🔑 암기 CI = JUnit(13강) + Git(14강) + Jenkins(16강). 'PR이 올라오면 자동 JUnit이 돌고, 통과해야 머지' = 통합형 정답. 🎯 빈출 통합형 출제 1순위 — 'push → Jenkins → Maven/Gradle 빌드 → JUnit 자동 테스트' 흐름 보기가 정답. 📝 기출 CI/CD 통합 흐름 매칭.
도구 분류 매트릭스 — 빌드·CI·IDE·테스트·형상 ·분류 종합·
[표] 16강 도구가 어느 분류인지 1초 매칭 — '○○ 도구가 아닌 것?' 함정 차단 마지막 점검판.
| 도구 | 분류 | 핵심 키워드 |
|---|---|---|
| Ant · Maven · Gradle | 빌드 도구 | XML / pom.xml·의존성 / DSL·Android |
| Jenkins | CI 도구 | CI 대명사 · Git push 트리거 |
| GitHub Actions · GitLab CI | CI 도구 | 클라우드 CI |
| Eclipse · IntelliJ · VS Code · Visual Studio | IDE | 통합 개발 환경 |
| JUnit | 테스트 도구 | 단위 테스트(13강) |
| Git · SVN | 형상 관리 도구 | 분산형 / 중앙집중형(14강) |
[표] 분류 뒤바꿈 — 매년 단골 4쌍.
| 함정 보기 | 정답 |
|---|---|
| 빌드 도구가 아닌 것? → Jenkins | Jenkins = CI 도구 |
| 빌드 도구가 아닌 것? → SVN | SVN = 형상 관리 도구 |
| IDE가 아닌 것? → Jenkins | Jenkins = CI 도구 |
| CI 도구가 아닌 것? → Maven | Maven = 빌드 도구 |
🔑 암기 Ant·Maven·Gradle=빌드 / Jenkins=CI / Eclipse·IntelliJ·VS Code·Visual Studio=IDE / JUnit=테스트 / Git·SVN=형상 관리. 🎯 빈출 도구 이름이 보기에 섞여 나오면 이 표를 떠올린다. Jenkins·SVN이 빌드 도구 보기에 끼는 함정이 핵심.
기출 다지기
[기출 1 출제] 다음 중 릴리스 노트(Release Note)의 필수 구성 항목으로 옳지 않은 것은? (아닌 것 고르기)
- ① 헤더(Header) — 제품명·버전·릴리스 날짜
- ② 요약(Summary) — 이번 릴리스 핵심 3~5줄
- ③ 사용자 비밀번호(User Password)
- ④ 면책 조항(Disclaimer) — 라이선스·법적 책임 한계
정답 및 해설 보기
정답 ③
릴리스 노트는 사용자에게 공개되는 외부 문서 — 비밀번호·DB 스키마·서버 IP 같은 보안 정보는 들어가지 않는다. 필수 항목 9종 헤요재수개기노면연 에 비밀번호는 없다.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 필수 | 헤더 — 9종 첫째 |
| ② | 필수 | 요약 — 9종 둘째 |
| ③ | 정답(아님) | 비밀번호는 보안 정보 — 외부 문서에 미공개 |
| ④ | 필수 | 면책 조항 — 9종 여덟째 |
🔑 9개 외 항목(비밀번호·DB 스키마·서버 IP·소스 코드)이 보이면 100% 정답(아님).
[기출 2 출제] 다음 중 지속적 통합(CI, Continuous Integration)의 대표적인 도구 로 가장 적절한 것은? (설명→용어 찾기)
- ① Maven
- ② Gradle
- ③ Jenkins
- ④ Eclipse
정답 및 해설 보기
정답 ③
CI 대명사 = Jenkins. Git push 트리거로 빌드·테스트·배포를 자동 실행하는 CI 자동화 서버다. 문제에 'CI·지속적 통합'이 보이고 보기에 Jenkins가 있으면 즉답.
| 선지 | 분류 | 핵심 |
|---|---|---|
| ① | 빌드 도구 | pom.xml·의존성 |
| ② | 빌드 도구 | DSL·Android |
| ③ | CI 도구(정답) | CI 대명사·push 트리거 |
| ④ | IDE | Java·Spring 생태계 |
🔑 Maven·Gradle=빌드 / Eclipse=IDE / Jenkins=CI. CI 단어가 핵심 분별자.
[기출 3 출제] 다음 중 Maven 의 특징으로 가장 적절한 것은? (옳은 설명 고르기)
- ① Groovy 또는 Kotlin DSL로 빌드 스크립트를 작성한다
- ② Android의 공식 빌드 도구다
- ③ pom.xml에 의존성을 선언하면 Maven Central에서 자동 다운로드된다
- ④ Continuous Integration을 자동화하는 서버다
정답 및 해설 보기
정답 ③
Maven = pom.xml + 의존성(XML). <dependency> 에 이름만 적으면 Maven Central에서 자동 다운로드·연결된다.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 오답 | Groovy/Kotlin DSL은 Gradle — Maven은 XML |
| ② | 오답 | Android 공식은 Gradle — Maven은 Spring 백엔드 전통 |
| ③ | 정답 | pom.xml + 의존성 자동 다운로드 — Maven 시그니처 |
| ④ | 오답 | CI 자동화 서버는 Jenkins |
🔑 보기에 pom.xml·의존성이 있으면 그 보기가 정답.
[기출 4 출제] 다음 중 Gradle의 특징으로 가장 적절하지 않은 것은? (아닌 것 고르기)
- ① Groovy 또는 Kotlin DSL로 빌드 스크립트를 작성한다
- ② Android의 공식 빌드 도구다
- ③ XML 형식(pom.xml)으로 빌드 설정을 작성한다
- ④ 점진적 빌드(Incremental Build)를 지원한다
정답 및 해설 보기
정답 ③
Gradle = DSL · Maven = XML. 'Gradle은 XML' 표현은 거꾸로 — XML(pom.xml)은 Maven의 특징이다. 매년 빈출 1순위 함정.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 옳음 | Groovy/Kotlin DSL — Gradle 특징 |
| ② | 옳음 | Android 공식 빌드 도구(Google 채택) |
| ③ | 정답(틀린 보기) | XML(pom.xml)은 Maven — Gradle은 DSL |
| ④ | 옳음 | 점진적 빌드(변경분만 재빌드) — Gradle 강점 |
🔑 'Gradle은 XML' 표현이 보이면 즉시 함정 정답. Maven=XML / Gradle=DSL 한 줄.
[기출 5 출제] 다음 중 IDE(통합 개발 환경)에 해당하지 않는 것은? (아닌 것 고르기)
- ① Eclipse
- ② IntelliJ IDEA
- ③ Visual Studio
- ④ Jenkins
정답 및 해설 보기
정답 ④
Jenkins = CI 도구 — 개발자 PC에서 코드를 작성하는 도구가 아니라, Git 서버에서 트리거되어 빌드·테스트를 자동 실행하는 별도 서버다.
| 선지 | 분류 | 한 줄 |
|---|---|---|
| ① | IDE | Java·Spring 생태계 |
| ② | IDE | Java·Kotlin |
| ③ | IDE | C#·.NET·C++ |
| ④ | CI 도구(정답·아님) | CI 대명사 — 개발 환경 아님 |
🔑 IDE 보기에 Jenkins가 끼면 무조건 정답(아님). Jenkins는 어느 분류에 끼어도 정답이 되는 단골 함정 도구.
[기출 6 출제] 다음 중 빌드 자동화 도구가 아닌 것은? (아닌 것 고르기)
- ① Ant
- ② Maven
- ③ Gradle
- ④ SVN
정답 및 해설 보기
정답 ④
SVN = 형상 관리 도구(중앙집중형 · 14강). Ant·Maven·Gradle은 모두 빌드 도구지만 SVN은 빌드 도구가 아니다.
| 선지 | 분류 | 핵심 |
|---|---|---|
| ① | 빌드 도구 | 1세대 — XML 스크립트 |
| ② | 빌드 도구 | 2세대 — pom.xml·의존성 |
| ③ | 빌드 도구 | 3세대 — DSL·Android |
| ④ | 형상 관리(정답·아님) | SVN — 중앙집중형 SCM |
🔑 빌드 도구 보기에 SVN·Git이 끼면 함정(형상 관리). Jenkins가 끼면 함정(CI).
[기출 7 출제] 다음 중 Continuous Delivery(지속적 전달)와 Continuous Deployment(지속적 배포) 의 차이에 대한 설명으로 옳은 것은? (옳은 설명 고르기)
- ① 두 개념은 같은 약자(CD)를 쓰므로 의미 차이가 없다
- ② Continuous Deployment는 스테이징까지만 자동이고 운영은 사람 승인이 필요하다
- ③ Continuous Delivery는 운영까지 완전 자동이며 사람 개입이 전혀 없다
- ④ Continuous Delivery는 운영 배포에 사람 승인이 필요하고, Continuous Deployment는 운영까지 완전 자동이다
정답 및 해설 보기
정답 ④
Delivery = 사람 승인 / Deployment = 완전 자동. 갈림길은 운영 배포에 사람 승인 단계가 있느냐 없느냐 한 가지.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 오답 | 같은 약자지만 의미는 결정적으로 다름 |
| ② | 오답 | 거꾸로 — 스테이징 자동·운영 승인은 Delivery |
| ③ | 오답 | 거꾸로 — 운영 완전 자동은 Deployment |
| ④ | 정답 | Delivery=운영 사람 승인 / Deployment=완전 자동 |
🔑 '운영 배포 사람 승인 유무' 한 가지로 분별. Delivery=승인 / Deployment=자동.
[기출 8 출제] 다음 중 현대 소프트웨어 개발의 CI/CD 파이프라인 흐름 에 대한 설명으로 가장 옳은 것은? (옳은 설명 고르기)
- ① CI 도구가 직접 코드를 컴파일하고 단위 테스트를 작성한다
- ② Git commit이 발생하면 즉시 CI 트리거가 자동 발동한다
- ③ 개발자가 Git push 하면 CI 도구(Jenkins)가 자동 트리거되어 빌드 도구(Maven/Gradle)로 빌드하고, 테스트 도구(JUnit)로 자동 테스트한다
- ④ CI 도구는 Git의 commit을 직접 감지해 빌드를 트리거한다
정답 및 해설 보기
정답 ③
CI = JUnit + Git push + Jenkins. push → Jenkins 자동 트리거 → Maven/Gradle 빌드 → JUnit 자동 테스트의 흐름이 통합 정답.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 오답 | CI 도구는 빌드 도구·테스트를 호출할 뿐, 코드 작성은 IDE+개발자 |
| ② | 오답 | commit은 로컬까지 — push 가 CI 트리거(14강) |
| ③ | 정답 | push → Jenkins → Maven/Gradle → JUnit 흐름 |
| ④ | 오답 | commit ≠ push — Jenkins는 push를 감지 |
🔑 commit은 로컬 / push가 트리거 진입점. CI 도구는 빌드 도구를 호출(직접 빌드 아님).
한 장 요약
| 영역 | 핵심 | 암기팁 |
|---|---|---|
| 매뉴얼 2종 | 사용자=고객(FAQ·설치) / 운영=운영자(장애 대응·백업) · 작성 끝=검토 | 사용자=고객 / 운영=운영자 |
| 릴리스 노트 정의 | 새 버전 + 변경 이력 공식 통보 + 외부 문서 | 개발자 내부 문서 = 함정 |
| 릴리스 노트 9항 | 헤더·요약·재현·수정·개선·기여·노트·면책·연락 | 헤요재수개기노면연 |
| IDE 5대 기능 | 코딩·디버깅·버전관리·배포·컴파일 + 통합 | 코디버배컴통 |
| 빌드 정의 | 컴파일+의존성+테스트+패키징+배포 5단계 자동화 | 컴파일과 동일시 = 함정 |
| 영역 | 핵심 | 암기팁 |
|---|---|---|
| 빌드 도구 4종 | Ant(1세대)·Maven·Gradle(빌드) / Jenkins(CI) | 메=의존성·그=유연성·젠=CI대명사 |
| Maven | pom.xml + 의존성 자동 다운로드(XML) | Maven=XML |
| Gradle | DSL + Android 표준 + 점진적 빌드 | Gradle=DSL |
| Maven vs Gradle | 설정 언어 XML vs DSL이 결정적 차이 | Maven=XML / Gradle=DSL |
| Jenkins | CI 대명사 · Maven/Gradle 호출 · 빌드 도구 아님 | Jenkins = CI 도구 ≠ 빌드 도구 |
| 영역 | 핵심 | 암기팁 |
|---|---|---|
| CI 정의 | 자동 빌드 + 자동 테스트 + 자주 통합 | CI = 자동 빌드 + 자동 테스트 |
| CD 두 갈래 | Delivery=운영 사람 승인 / Deployment=완전 자동 | Delivery=승인 / Deployment=자동 |
| CI/CD 큰 그림 | push → Jenkins → Maven/Gradle → JUnit → 배포·릴리스 노트 | CI = JUnit + Git + Jenkins |
| 도구 분류 | 빌드(Ant·Maven·Gradle) / CI(Jenkins) / IDE / 테스트(JUnit) / 형상(Git·SVN) | Jenkins·SVN이 빌드 보기에 끼면 함정 |
🎯 합격 한 끗: 16강 시험 1순위 넷 = 헤요재수개기노면연(릴리스 노트 9항) + Jenkins = CI 도구 ≠ 빌드 도구 + Maven=XML / Gradle=DSL + CI = JUnit + Git + Jenkins(통합형).
단골 함정 6쌍 = 'Jenkins는 빌드 도구'(CI), 'Gradle은 XML'(DSL), 'Delivery는 완전 자동'(사람 승인), '사용자 매뉴얼에 장애 대응'(운영 매뉴얼), '릴리스 노트에 비밀번호'(9항에 없음), 'commit이 트리거 진입점'(push).
13강 단위 테스트·14강 형상 관리가 여기서 Jenkins로 모여 CI/CD가 완성된다 — 자동 테스트가 정확히 무엇을 어떻게 검사하는지(테스트 케이스 설계·레벨별 테스트)는 17강에서 이어진다.
