μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠

μ†Œν”„νŠΈμ›¨μ–΄ μœ ν˜•

μƒμš© μ†Œν”„νŠΈμ›¨μ–΄

  • 상업적 λͺ©μ μœΌλ‘œ λ§Œλ“€μ–΄μ§„ μ†Œν”„νŠΈμ›¨μ–΄

μƒμš©μ†Œν”„νŠΈμ›¨μ–΄μ˜ λΆ„λ₯˜

  1. μ‚°μ—… λ²”μš© μ†Œν”„νŠΈμ›¨μ–΄
    • 운영체제
    • 미듀웨어
    • μ‘μš©SW
  2. μ‚°μ—… νŠΉν™” μ†Œν”„νŠΈμ›¨μ–΄
    • μžλ™μ°¨, 항곡, ꡐ윑 λ“± νŠΉμ • 산업에 νŠΉν™”
    • μ˜ˆμ‹œ: μžλ™μ£Όν–‰ μ†Œν”„νŠΈμ›¨μ–΄

μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜, μ‘μš© μ†”λ£¨μ…˜μœΌλ‘œ ꡬ성
  • μ£Όμš” κΈ°μ—…μš© μ†Œν”„νŠΈμ›¨μ–΄ 5κ°€μ§€:
    • μ˜€ν”ΌμŠ€μ›¨μ–΄
    • ERP (전사적 μžμ› 관리)
    • SCM (곡급망 관리)
    • BI (λΉ„μ¦ˆλ‹ˆμŠ€ μΈν…”λ¦¬μ „μŠ€)
    • CRM (고객 관계 관리)

μ‹œμŠ€ν…œ μ†Œν”„νŠΈμ›¨μ–΄

  • 컴퓨터 μ‹œμŠ€ν…œμ„ 효율적으둜 μ‚¬μš©ν•˜κΈ° μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄
  • μš΄μ˜μ²΄μ œμ™€ 같은 의미둜 μ‚¬μš©

μ‹œμŠ€ν…œμ˜ 이해

μ‹œμŠ€ν…œ μ •μ˜

  • μž₯치λ₯Ό μ€‘μ‹¬μœΌλ‘œ κ΅¬μ„±λœ μ†Œν”„νŠΈμ›¨μ–΄
  • κ΅¬μΆ•λœ ν™˜κ²½μ„ 의미

컴퓨터 μ‹œμŠ€ν…œμ˜ κ΅¬μ„±μš”μ†Œ

  1. μž…λ ₯
  2. 처리
  3. 좜λ ₯
  4. μ œμ–΄
  5. ν”Όλ“œλ°±

평가기쀀

ν”Œλž«νΌ

  • νŠΉμ • μ‹œμŠ€ν…œμ„ λ°”νƒ•μœΌλ‘œ μ œκ³΅λ˜λŠ” 운영체제
  • μ‘μš©ν”„λ‘œκ·Έλž¨ 관점 μ˜ˆμ‹œ:
    • μœˆλ„μš° 이용자 β†’ μœˆλ„μš°
    • μΉ΄μΉ΄μ˜€ν†‘ 이용자 β†’ μΉ΄μΉ΄μ˜€ν†‘

μ‹œμŠ€ν…œ μ„±λŠ₯ μ§€ν‘œ

  • λ°˜ν™˜μ‹œκ°„: μ²˜λ¦¬κ°€ λ˜λŠ” μ‹œκ°„
  • μ‘λ‹΅μ‹œκ°„: λͺ…령에 λ°˜μ‘ν•˜λŠ” μ‹œκ°„
  • μ‚¬μš©λ₯ : 데이터 μ²˜λ¦¬μ— μ‹œμŠ€ν…œ μžμ›μ„ μ‚¬μš©ν•˜λŠ” 정도

μ†Œν”„νŠΈμ›¨μ–΄ 곡학

κΈ°λ³Έ 원칙

  • νš¨μœ¨μ„± (μ‹œκ°„, κΈ°κ°„, 인λ ₯, λΉ„μš©)
  • μˆ˜λ‹¨, 도ꡬ, μƒμ‚°μ„±μ˜ ν–₯상
  • λͺ©μ : 효율적인 방법 선택
  • 핡심: 효율

μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ ˆμž„μ›Œν¬ κ΅¬μ„±μš”μ†Œ

λͺ¨λ“ˆ

  • λΆ„ν• ν•˜μ—¬ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ λΆ€ν’ˆ

라이브러리

  • νˆ΄ν‚·, λͺ¨λ“ˆμ˜ μ§‘ν•©

λ””μžμΈ νŒ¨ν„΄

  • νŠΉμ • κΈ°λŠ₯의 λ¬Έμ œν•΄κ²° κ°€μ΄λ“œλΌμΈ
  • 세뢀적인 ꡬ쑰 제곡

ν”„λ ˆμž„μ›Œν¬

  • 개발의 틀을 제곡
  • κ°œλ°œμžλŠ” κΈ°λŠ₯을 ꡬ체화 (μ œμ–΄μ˜ 역흐름)
  • νŠΉμ • λ””μžμΈ νŒ¨ν„΄ μœ λ„
  • ν’ˆμ§ˆ, μ˜ˆμ‚°, μœ μ§€λ³΄μˆ˜ νš¨μœ¨μ„± μ¦λŒ€

μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜

  • μ†Œν”„νŠΈμ›¨μ–΄μ˜ 전체적인 ꡬ쑰 섀계

μ»΄ν¬λ„ŒνŠΈ

  • ν˜‘μ•½μ— μ˜ν•œ 섀계 방식

μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μš”μ†Œ

  • 데이터 ꡬ쑰 포함
  • ν…ŒμŠ€νŠΈ κ³„νšμ΄λ‚˜ λ¬Έμ„œν™” 방법 포함
  • ν•©μ„± 쀑심: λͺ¨λ“ˆμ„ 쑰립
  • 생성 쀑심: 좔상적인 λͺ…μ„Έ(ν‹€)와 νŒ¨ν„΄ ꡬ성방식

μ†Œν”„νŠΈμ›¨μ–΄ 개발 수λͺ…μ£ΌκΈ° (SDLC)

폭포수 λͺ¨λΈ

  • 이전 λ‹¨κ³„λ‘œ λŒμ•„κ°ˆ 수 μ—†μŒ
  • λͺ…ν™•ν•œ μ‚°μΆœλ¬Ό 생성
  • 메뉴얼 μž‘μ„± ν•„μˆ˜

ν”„λ‘œν† νƒ€μž… λͺ¨λΈ

  • 폭포수 λͺ¨λΈμ˜ 단점 보완
  • μ‹œμ œν’ˆ(ν”„λ‘œν† νƒ€μž…)을 ν†΅ν•œ μ΅œμ’…κ²°κ³Όλ¬Ό λ„μΆœ
  • μ‚¬μš©μžμ™€ μ‹œμŠ€ν…œ μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€ 골격 제곡

λ‚˜μ„ ν˜• λͺ¨λΈ

  • 폭포수 λͺ¨λΈκ³Ό ν”„λ‘œν† νƒ€μž… λͺ¨λΈμ˜ μž₯점 κ²°ν•©
  • μœ„ν—˜ 뢄석 κΈ°λŠ₯ μΆ”κ°€
  • 고객 평가와 μœ„ν—˜ 뢄석을 ν†΅ν•œ 완성도 ν–₯상
  • μœ μ§€λ³΄μˆ˜κ°€ ν•„μš” μ—†μŒ

μ• μžμΌ λͺ¨λΈ

  • μ†Œν†΅ μ€‘μ‹¬μ˜ 방법둠
  • νŠΉμ§•:
    • 짧은 개발 주기와 ν”Όλ“œλ°±
    • μ†Œν†΅μ„ ν†΅ν•œ μš°μ„ μˆœμœ„ κ²°μ •
    • 절차/λ¬Έμ„œ/κ³„νšλ³΄λ‹€ μ†Œν†΅/ν˜‘μ—…/λ³€ν™”λŒ€μ‘ μ€‘μ‹œ
    • 고객 μš”κ΅¬μ‚¬ν•­ 반영으둜 ν’ˆμ§ˆ ν–₯상
  • μ£Όμš” 방법둠:
    • Scrum
    • XP
    • Kanban
    • Crystal
    • FDD
    • ASD
    • DSDM

슀크럼 λͺ¨λΈ

쑰직 ꡬ성

  • μ œν’ˆμ±…μž„μž
  • 슀크럼 λ§ˆμŠ€ν„°
  • κ°œλ°œνŒ€

μ£Όμš” κ°œλ…

  • μŠ€ν”„λ¦°νŠΈ: 2~4μ£Ό λ‹¨μœ„μ˜ 개발 μ£ΌκΈ°
  • νƒœμŠ€ν¬: 개발 μš”κ΅¬μ‚¬ν•­(μ‚¬μš©μž μŠ€ν† λ¦¬)을 νŒ€λ³„λ‘œ λΆ„ν• ν•œ μž‘μ—… λ‹¨μœ„

핡심 κ°€μΉ˜

  • ν™•μ•½
  • 전념
  • 정직
  • 쑴쀑
  • 용기

역할별 μ±…μž„

μ œν’ˆμ±…μž„μž
  • μ˜μ‚¬κ²°μ • λ‹΄λ‹Ή
  • μ œν’ˆ 백둜그 μž‘μ„±
  • 릴리즈 κ³„νš 수립
νŒ€μ›
  • μŠ€ν† λ¦¬ μΆ”κ°€λ§Œ κ°€λŠ₯
  • μš°μ„ μˆœμœ„ μ‘°μ • λΆˆκ°€
슀크럼 λ§ˆμŠ€ν„°
  • κ°€μ΄λ“œ μ—­ν•  μˆ˜ν–‰
  • 일일 슀크럼 회의 μ§„ν–‰
  • μž₯μ•  μš”μ†Œ 관리
  • μœ μ—°ν•œ 상황 λŒ€μ‘
  • ν†΅μ œ κΆŒν•œ μ—†μŒ
κ°œλ°œνŒ€
  • 전체 개발 μΈμ›μœΌλ‘œ ꡬ성

XP (eXtreme Programming) λͺ¨λΈ

  • νŠΉμ§•:
    • 짧은 κ°œλ°œκ³Όμ •μ˜ 반볡 κ·ΉλŒ€ν™”
    • 높은 생산성
    • μ†Œκ·œλͺ¨ 인원 운영

핡심 κ°€μΉ˜

  • μ˜μ‚¬μ†Œν†΅
  • λ‹¨μˆœμ„±
  • 용기
  • 쑴쀑
  • ν”Όλ“œλ°±

개발 ν”„λ‘œμ„ΈμŠ€

  1. μ†Œκ·œλͺ¨ 릴리즈: μž‘μ€ λ‹¨μœ„λ‘œ λΆ„ν• 
  2. 슀파이크: νŠΉμ • 기술 검증
  3. μ΄ν„°λ ˆμ΄μ…˜: 1~3μ£Ό λ‹¨μœ„ 개발 μ£ΌκΈ°
  4. ν”„λ‘œμ„ΈμŠ€ 흐름:
    • 슀파이크λ₯Ό ν†΅ν•œ 기술 검증
    • μ΄ν„°λ ˆμ΄μ…˜ μ§„ν–‰
    • μƒˆλ‘œμš΄ μŠ€ν† λ¦¬ μž‘μ„±
    • μ‚¬μš©μž μŠ€ν† λ¦¬ 기반 승인 검사
    • ν…ŒμŠ€νŠΈ κ³Όμ •μ—μ„œ 발견된 μš”κ΅¬μ‚¬ν•­/였λ₯˜λ₯Ό λ‹€μŒ μ΄ν„°λ ˆμ΄μ…˜μ— 반영

XP의 12κ°€μ§€ κΈ°λ³Έ 원리

  1. Planning Game
  2. Small Releases
  3. System Metaphor
  4. Simple Design
  5. Test Driven Development
  6. Pair Programming
  7. Collective Ownership
  8. Continuous Integration
  9. Sustainable Pace
  10. Whole Team
  11. Coding Standards
  12. On-site Customer

μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠

κ°œμš”

  • 개발 μ „ 과정에 μ§€μ†μ μœΌλ‘œ μ μš©ν•  방법/절차/기법
  • λͺ©μ : 생산성과 ν’ˆμ§ˆ ν–₯상(νš¨μœ¨μ„±)
  • μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ—μ„œ ν™œμš©
  • κΈ°λ³Έ 절차: 뢄석 β†’ 섀계 β†’ κ΅¬ν˜„ β†’ μ‹œν—˜

ꡬ쑰적 방법둠

  • Yourdon에 μ˜ν•΄ 개발
  • μ£Όμš” 도ꡬ:
    • 자료 흐름도(DFD)
    • 자료 사전(DD)
  • νŠΉμ§•:
    • λͺ¨λ“ˆ 쀑심 섀계
    • 순차, 선택, 반볡 ꡬ쑰

정보곡학 방법둠

  • μ •ν˜•ν™”λœ 기법 톡합
  • μ£Όμš” λͺ¨λΈλ§:
    • 데이터 λͺ¨λΈλ§: ERD
    • ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈλ§: 자료 흐름도, ν”„λ‘œμ„ΈμŠ€ μ˜μ‘΄λ„(PDD)

객체지ν–₯ 방법둠

  • 싀체(Entity)λ₯Ό 객체(Object)둜 ν‘œν˜„
  • νŠΉμ§•:
    • 속성과 λ©”μ†Œλ“œ 보유
    • 데이터 객체의 κ΄€κ³„ν˜• ν…Œμ΄λΈ” λ³€ν™˜
  • μ£Όμš” κ°œλ…:
    • μΊ‘μŠν™”
    • 정보은닉
    • 좔상화
    • 상속성
    • λ‹€ν˜•μ„±

μ»΄ν¬λ„ŒνŠΈ 기반 (CBD)

  • μ»΄ν¬λ„ŒνŠΈ 쑰립 λ°©μ‹μ˜ ν”„λ‘œκ·Έλž¨ 개발
  • μž₯점:
    • 신속성
    • μœ μ—°μ„±
    • ν‘œμ€€ν™”
  • 단점:
    • 높은 μ„ ν–‰ 투자 λΉ„μš©
    • μ±…μž„ 및 μ§€μ μž¬μ‚°κΆŒ κ³ λ € ν•„μš”

단계별 μ‚°μΆœλ¬Ό

  1. 뢄석 단계
    • μ •μ˜μ„œ
    • μœ μŠ€μΌ€μ΄μŠ€ λͺ…μ„Έμ„œ
  2. 섀계 단계
    • μ„€κ³„μ„œ
    • μ»΄ν¬λ„ŒνŠΈ μ„€κ³„μ„œ
    • μ΄κ΄„μ‹œν—˜ κ³„νšμ„œ
    • μ‹œλ‚˜λ¦¬μ˜€
  3. κ΅¬ν˜„ 단계
    • κ²°κ³Όμ„œ
  4. μ‹œν—˜ 단계
    • κ²°κ³Όμ„œ

μ• μžμΌ 방법둠

  • μ• μžμΌ λͺ¨λΈκ³Ό μœ μ‚¬ν•œ μ ‘κ·Ό

μ œν’ˆ 계열 방법둠

  • μž„λ² λ””λ“œ μ†Œν”„νŠΈμ›¨μ–΄ 쀑심
  • ꡬ성:
    • μ˜μ—­κ³΅ν•™
    • μ‘μš©κ³΅ν•™

λ³΄μ•ˆ 개발 방법둠

κ°œμš”

  • λͺ©μ : λ³΄μ•ˆ 취약점 μ΅œμ†Œν™”
  • ꡬ성: μ§€μΉ¨ 및 사둀 제곡
  • νŠΉμ§•: λ‹€μ–‘ν•œ 취약점과 λ³΄μ•ˆ 방법둠 쑴재

MS-SDL

  • λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ‚¬μ˜ λ³΄μ•ˆ 개발 방법둠

Seven Touchpoints

  • κ²€μ¦λœ λ³΄μ•ˆ λͺ¨λ²”사둀 7κ°€μ§€:
    1. μ½”λ“œ κ²€ν† 
    2. μ•„ν‚€ν…μ²˜ μœ„ν—˜ 뢄석
    3. 침투 ν…ŒμŠ€νŠΈ
    4. μœ„ν—˜ 기반 λ³΄μ•ˆ ν…ŒμŠ€νŠΈ
    5. μ•…μš© 사둀
    6. λ³΄μ•ˆ μš”κ΅¬
    7. λ³΄μ•ˆ 운영

CLASP

  • 초기 단계 λ³΄μ•ˆ κ°•ν™”
  • 운영 쀑인 μ‹œμŠ€ν…œ 적용 κ°€λŠ₯
  • 5κ°€μ§€ 관점:
    1. κ°œλ…
    2. μ—­ν•  기반
    3. ν™œλ™ 평가
    4. ν™œλ™ κ΅¬ν˜„
    5. μ·¨μ•½μ„±

CWE

  • 7κ°€μ§€ 취약점 원인 λΆ„λ₯˜:
    1. μž…λ ₯ 데이터 검증 및 ν‘œν˜„
    2. λ³΄μ•ˆ κΈ°λŠ₯
    3. μ‹œκ°„ 및 μƒνƒœ
    4. μ—λŸ¬ 처리
    5. μ½”λ“œ 였λ₯˜
    6. μΊ‘μŠν™”
    7. API 였용