728x90
λ°˜μ‘ν˜•

컴파일 μ–Έμ–΄(C, C++ λ“±)

  • κΈ°κ³„μ–΄λ‘œ λ°”λ‘œ λ³€ν™˜λ˜μ–΄ μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ— κ°€μž₯ 속도가 λΉ λ₯΄κ³  λ³΄μ•ˆμ— 유리
  • λΉŒλ“œκ³Όμ •μ΄ 였래 κ±Έλ¦Ό
  • μ „μ²˜λ¦¬κΈ° → νŒŒμ‹± → λ²ˆμ—­ → μ–΄μ…ˆλΈ”λ¦¬ → 링킹 → λ‘œλ” μ§„ν–‰

Byte Code μ–Έμ–΄(Java, C# λ“±)

  • 'class'λΌλŠ” λ°”μ΄νŠΈ μ½”λ“œ 파일둜 μƒμ„±λ˜κ³  JRE, CLIμ—μ„œ ν•œ 쀄씩 μ‹€ν–‰ν•˜λŠ” λ°©μ‹μœΌλ‘œ λΉŒλ“œ
  • JRE, CLI ν™˜κ²½μ—μ„œ 싀행될 λ•Œ κΈ°κ³„μ–΄λ‘œ λ³€ν™˜
  • 컴파일 언어보닀 λΉŒλ“œ 과정이 빠름

인터프리터 μ–Έμ–΄(JavaScript, Python, Ruby λ“±)

  • ν•œ 쀄씩 λ²ˆμ—­λ˜μ–΄ μ‹€ν–‰
  • μ»΄νŒŒμΌν•˜λŠ” κ³Όμ •μ—μ„œ λ©”λͺ¨λ¦¬κ°€ 적게 μ†Œλͺ¨λ˜κ³  λΉ λ₯Έ μ‹œκ°„μ— 컴파일 μ§„ν–‰

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포 ν™˜κ²½

  • μ›Ήμ„œλ²„(Web Server)

    μ‚¬μš©μžμ˜ http μš”μ²­μ„ λ°›μ•„ μ›Ή μ»΄ν…Œμ΄ν„°μ— μš”μ²­μ„ μ „λ‹¬ν•˜κ³  결과값을 받아와 μ‚¬μš©μžμ—κ²Œ μ „μ†‘ν•˜λŠ” 역할을 함

    정적인 λ¦¬μ†ŒμŠ€ 배포, 정적 λ¦¬μ†Œλ₯Ό λΉ λ₯΄κ³  μ•ˆμ •μ μœΌλ‘œ 처리

  • WAS(Web Applicaiton Server)

    동적인 처리λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 뢀뢄을 배포

    UI 배포 μ˜μ—­(JSP, Servlet λ“±)κ³Ό Biz. 배포 μ˜μ—­(EJB, POJO μ„œλΉ„μŠ€ λ“±)으둜 ꡬ뢄

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포 λ‹¨μœ„

  • jar(Java Archive) : μžλ°” 라이브러리, λ¦¬μ†ŒμŠ€, property νŒŒμΌλ“€μ„ 포함
  • war(Web Archive) : μ›Ή μ»¨ν…Œμ΄λ„ˆμ— λ°°ν¬λ˜λŠ” ν˜•μ‹, Servlet, jar 파일과 WEB-INF ν΄λœμ— μžˆλŠ” web.xml 파일둜 ꡬ성
  • ear(Enterprise Archive) : jar와 warλ₯Ό λ¬Άμ–΄μ„œ ν•˜λ‚˜μ˜ μ™„μ„±λœ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλΉ„μŠ€λ₯Ό 제곡

ν˜•μƒκ΄€λ¦¬ μ‹œμŠ€ν…œ

  • μ„œλΉ„μŠ€ 제곡 λŒ€μƒ ν˜•μƒν•­λͺ©μ„ μ‹λ³„ν•˜μ—¬ 기쀀선을 μ„€μ •ν•˜κ³ , ν˜•μƒ ν•­λͺ© λ³€κ²½κ³Όμ •μ—μ„œ 점검, 검증 λ“±μ˜ 체계적인 ν†΅μ œλ₯Ό 톡해 ν˜•μƒν•­λͺ© κ°„μ˜ 일관성과 좔적성을 ν™•λ³΄ν•˜κΈ° μœ„ν•œ μ‹œμŠ€ν…œ
    1. ν˜•μƒκ΄€λ¦¬ : μ†Œν”„νŠΈμ›¨μ–΄μ˜ 전체 생λͺ… μ£ΌκΈ°, κ³„νšλΆ€ν„° 개발, 운영, μœ μ§€ 보수, νκΈ°κΉŒμ§€ λ°œμƒν•˜λŠ” λͺ¨λ“  ν™œλ™μ„ μ§€μ†μ μœΌλ‘œ κ΄€λ¦¬ν•˜λŠ” 것을 의미
    2. ν˜•μƒν•­λͺ© : ν˜•μƒκ΄€λ¦¬ λŒ€μƒμ΄ λ˜λŠ” ν•­λͺ©μ„ 의미
    3. κΈ°μ€€μ„  : κ³΅μ‹μ μœΌλ‘œ κ²€ν† ν•˜κ³  ν˜‘μ˜λ˜μ–΄ 기쀀이 λ˜λŠ” ν˜•μƒν•­λͺ©μ˜ 집합체λ₯Ό 의미
    4. λ§ˆμ΄κ·Έλ„€μ΄μ…˜ : 개발 μ™„λ£Œλœ μ‹œμŠ€ν…œμ΄ 운영 λ‹¨κ³„λ‘œ μ „ν™˜λ  λ•Œ κ΄€λ ¨ μ†ŒμŠ€ νŒŒμΌμ„ μ €μž₯ κ³΅κ°„μœΌλ‘œ μ΄κ΄€μ‹œν‚€λŠ” μž‘μ—…
    5. 리포지터리 : 관리 λŒ€μƒμ„ ν˜•μƒκ΄€λ¦¬ μ‹œμŠ€ν…œμœΌλ‘œ 일괄 μ „μ†‘ν•˜μ—¬ μ••μΆ•, μ•”ν˜Έν™”ν•œ 후에 μ €μž₯, κ΄€λ¦¬ν•˜λŠ” μ €μž₯ 곡간을 의미, 업무 λ˜λŠ” 디렉터리 λ‹¨μœ„λ‘œ ꡬ성
    6. μ›Œν¬ν”Œλ‘œ : ν˜•μƒκ΄€λ¦¬ ν™œλ™μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ 미리 μ •ν•΄μ§„ μ ˆμ°¨κ°€ ν˜•μƒκ΄€λ¦¬ μ‹œμŠ€ν…œ μ•ˆμ— κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” 것을 의미
    7. 반좜 : ν˜•μƒν•­λͺ©μ„ λ³€κ²½ν•˜κΈ° μœ„ν•΄ ν˜•μƒ λ¦¬ν¬μ§€ν„°λ¦¬λ‘œ λΆ€ν„° μ „μ†‘λ°›λŠ” 것을 의미, 잠금 μƒνƒœ μœ μ§€
    8. λ°˜μž… : 반좜된 ν˜•μƒν•­λͺ©μ„ λ³€κ²½ ν›„ λ‹€μ‹œ ν˜•μƒλ¦¬ν¬μ§€ν„°λ¦¬λ‘œ μ „μ†‘ν•˜λŠ” 것을 의미, 버전관리 μžλ™μ μœΌλ‘œ 이루어짐

λ°°ν¬κ΄€κ³„μžλ“€μ˜ μ—­ν™œκ³Ό μ±…μž„

  • λ°°ν¬κ΄€λ¦¬μž
    1. λΉŒλ“œ, λ°°ν¬ν™˜κ²½ ꡬ성 및 운영
    2. λΉŒλ“œ 슀크립트 μž‘μ„± λ°‘ ν…ŒμŠ€νŠΈ
    3. λΉŒλ“œ, 배포 λ‚΄μ—­ 였λ₯˜ 확인
    4. 배포 μš”μ²­ λ‚΄μ—­ κ²€ν†  및 였λ₯˜ 확인
    5. 주기적 톡합 λΉŒλ“œ 및 배포 μˆ˜ν–‰
  • ν”„λ‘œμ νŠΈ PM, PL
    1. λΉŒλ“œ, 배포 λ³΄κ³ μ„œ 확인
    2. 개발 진척도 관리
    3. ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„± λ‚΄μ—­ κ²€ν† 
  • 개발자
    1. ν…ŒμŠ€ν…Œ μΌ€μ΄μŠ€ μž‘μ„± 및 관리
    2. κ°œλ³„ λͺ¨λ“ˆ μˆ˜μ‹œ λΉŒλ“œ 및 배포
    3. λΉŒλ“œ, 배포 λ‚΄μ—­ 정상 μ—¬λΆ€ 확인
    4. λΉŒλ“œ, 배포 λ³΄κ³ μ„œ λ‚΄ ν…ŒμŠ€νŠΈ 였λ₯˜ λ‚΄μ—­, μ†ŒμŠ€μ½”λ“œ ν’ˆμ§ˆ μˆ˜μ • λ‚΄μ—­ 확인 ν›„ 였λ₯˜ μˆ˜μ •

μ†ŒμŠ€μ½”λ“œ 검증 도ꡬ

  • 정적 ν…ŒμŠ€νŠΈ 도ꡬ
    1. ν…ŒμŠ€νŠΈν•˜κΈ° 전에 μ½”λ”© 였λ₯˜, μ„±λŠ₯ μ €ν•˜, λ³΄μ•ˆ 취약점 λ“± 결함을 쑰기에 λ°œκ²¬ν•  수 μžˆλ„λ‘ 지원
    2. 생산성 ν–₯상, ν’ˆμ§ˆ ν–₯상
    3. μ •λŸ‰μ μž„ ν’ˆμ§ˆ κ΄€λ¦¬μ‹œμŠ€ν…œμ„ ꡬ좕
  • 동적 ν…ŒμŠ€νŠΈ 도ꡬ
    1. λΆ„κΈ°(κ²°μ •)λ¬Έ λ“± νŠΉμ • μœ ν˜•μ˜ μ½”λ“œ ꡬ쑰가 μΆ©λΆ„νžˆ ν…ŒμŠ€νŠΈ λ˜μ—ˆλŠ”μ§€λ₯Ό ν™•μΈν•˜μ—¬ 좔가적인 ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰
    2. μ•ˆμ •μ„± 제고, μ†ŒμŠ€ ν’ˆμ§ˆ 관리(ν†΅μ œ) ν™œλ™μ„ ν•  수 μž‡λŠ” μ •λž΅μ μΈ ν’ˆμ§ˆ κ΄€λ¦¬μ‹œμŠ€ν…œμ„ ꡬ좕

μ½”λ“œ μΈμŠ€νŽ™μ…˜

  • 정적 ν…ŒμŠ€νŠΈμ˜ κ°€μž₯ 일반적인 μœ ν˜•
  • 사전에 μ •μ˜λœ μ½”λ“œ μž‘μ„± κ·œμΉ™κΈ°λ°˜μœΌλ‘œ μ†ŒμŠ€μ½”λ“œλ₯Ό μ κ²€ν•˜μ—¬ μž‘μ„± κ·œμΉ™μ— μœ„λ°˜λ˜λŠ” μ†ŒμŠ€μ½”λ“œλ₯Ό μΆ”μΆœν•˜λŠ” 뢄석 λ„κ΅¬λ‘œ μ—ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ‹œ λŒ€λΆ€λΆ„ μ‚¬μš©
  • λΉŒλ“œ 도ꡬ와 연계해 λΉŒλ“œ 배포 μˆ˜ν–‰ μ‹œ μžλ™μ μœΌλ‘œ 점검
  • μ½”λ“œ μΈμŠ€νŽ™μ…˜ Rule μœ ν˜•
    1. μ„±λŠ₯ κ°œμ„  : μ„±λŠ₯에 영ν–₯을 λ―ΈμΉ  수 μžˆλŠ” μ½”λ“œλ₯Ό μ κ²€ν•˜λŠ” Ruleμž„, λ©”λͺ¨λ¦¬ λˆ„μˆ˜, λ―Έμ‚¬μš© λ³€μˆ˜, λ©”μ†Œλ“œ μ—¬λΆ€ 등을 ν™•μΈν•˜μ—¬ λ©”λͺ¨λ¦¬λ₯Ό λ‚­λΉ„ν•˜λŠ” μ½”λ“œλ₯Ό 식별함
    2. μ½”λ“œ μž‘μ„± κ·œμΉ™ : κ°œλ°œμ–Έμ–΄μ—μ„œ 사전에 μ •μ˜λœ μž‘μ„± κ·œμΉ™ λ˜λŠ” ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œ μ •μ˜λœ ν”„λ‘œκ·Έλž¨ λͺ…λͺ… κ·œμΉ™μ˜ μ€€μˆ˜ μ—¬λΆ€λ₯Ό μ κ²€ν•˜λŠ” Rule μž„, 가독성 ν–₯상
    3. μ—λŸ¬ λ°œμƒ κ°€λŠ₯μ„± : μ—λŸ¬ λ°œμƒ κ°€λŠ₯성이 μžˆλŠ” μ½”λ“œλ₯Ό μ κ²€ν•˜λŠ” Ruleμž„
  • μ½”λ“œ μž‘μ„± Rule 심각도 ꡬ뢄
    1. ν•„μˆ˜, Blocker : μ—λŸ¬ λ°œμƒ κ°€λŠ₯성이 맀우 λ†’κ±°λ‚˜ λ©”λͺ¨λ¦¬ λˆ„μˆ˜κ°€ λ°œμƒλ˜λŠ” μ½”λ“œ, λ°˜λ“œμ‹œ μˆ˜μ •λ˜μ–΄μ•Όν•˜λŠ” μœ„λ°˜ 사항
    2. ꢌ고 상, Critical : μ—λŸ¬ λ°œμƒ κ°€λŠ₯성이 λ†’κ±°λ‚˜ 일반적으둜 μˆ˜μ •λ˜μ–΄μ•Ό ν•˜λŠ” μ‹¬κ°ν•œ μœ„λ°˜ 사항을 말함
    3. ꢌ고 쀑, Major : μ—λŸ¬ λ°œμƒμ΄ μžˆκ±°λ‚˜ μˆ˜μ •μ„ κΆŒκ³ ν•˜λŠ” μ€‘μš” μœ„λ°˜ 사항
    4. ꢌ고 ν•˜, Minor : μ†ŒμŠ€μ½”λ“œμ˜ 가독성, μœ μ§€, λ³΄μˆ˜μ„± ν–₯상을 μœ„ν•΄ μˆ˜μ •μ„ κΆŒκ³ ν•˜λŠ” μœ„λ°˜ 사항
    5. 정보, info : μ •λ³΄μ„±μœΌλ‘œ μ œκ³΅λ˜λŠ” μœ„λ°˜ 사항
  • μ •κ·œ ν‘œν˜„μ‹ : νŠΉμ •ν•œ κ·œμΉ™μ„ κ°€μ§„ λ¬Έμžμ—΄μ˜ 집합을 ν‘œν˜„ν•˜λŠ” λ²”μš©μ μΈ 방식, μ½”λ“œ μ΅μŠ€νŽœμ…˜ λ„κ΅¬μ˜ μ½”λ“œ μž‘μ„± κ·œμΉ™μ€ 일방적으둜 μ •κ·œμ‹μœΌλ‘œ ν‘œν˜„
  • ν…ŒμŠ€νŠΈ ν”„λ ˆμž„ μ›Œν¬(동적 뢄석 도ꡬ)의 ꡬ성
    1. ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό λ³„λ„μ˜ ν…ŒμŠ€νŠΈ μ½”λ“œλ‘œ μž‘μ„±ν•˜κ³  λ™μž‘μ‹œν‚¬ 수 μžˆλŠ” ν™˜κ²½μ„ μ œκ³΅ν•˜λŠ” 도ꡬ
    2. Junit ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬ : Java기반

지속적인 톡합(CI) ν™˜κ²½

  • λΉŒλ“œ 도ꡬ
    1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 배포 λ‹¨μœ„, ν˜•μ‹μ— 따라 μ†ŒμŠ€μ½”λ“œλ₯Ό 컴파일, νŒ¨ν‚€μ§•ν•˜λ©° λ°°ν¬ν•˜λŠ” 슀크립트λ₯Ό μ œκ³΅ν•˜κ³  μˆ˜ν–‰ν•˜λŠ” 도ꡬ
    2. Ant, Maven λ“±
  • ν…ŒμŠ€νŠΈ 도ꡬ
    1. 개발된 μ†ŒμŠ€μ½”λ“œλ₯Ό ν…ŒμŠ€νŠΈν•  수 μžˆλŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±, λ™μž‘μ‹œν‚¬ 수 μž‡λŠ” λ„κ΅¬λ‘œ, 톡합 λΉŒλ“œ μˆ˜ν–‰μ‹œ μ—°κ²° ν•  수 있음
    2. Junit, DBUnit, StrutsTestCare λ“±
  • μ†ŒμŠ€μ½”λ“œ ν’ˆμ§ˆ 츑정도ꡬ(μ½”λ“œ μΈμŠ€νŽ™μ…˜)
    1. μ •ν•΄μ§„ μ†ŒμŠ€μ½”λ“œ μž‘μ„± κ·œμΉ™μ— 따라 μ†ŒμŠ€μ½”λ“œλ₯Ό μ κ²€ν•˜κ³  κ·œμΉ™ μœ„λ°˜ μ—¬λΆ€λ₯Ό μ²΄ν¬ν•˜λŠ” λ„κ΅¬λ‘œ 톡합 λΉŒλ“œ μˆ˜ν–‰ μ‹œ μ—°κ²° ν•  수 있음
    2. PMD, FindBugs λ“±
  • ν…ŒμŠ€νŠΈ 컀버리지 츑정도ꡬ
    1. μ†ŒμŠ€μ½”λ“œ λ‚΄ ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•œ 경둜 쀑 ν…ŒμŠ€νŠΈ 도ꡬλ₯Ό ν†΅ν•΄μ„œ ν…ŒμŠ€νŠΈλœ μ»€λ²„λ¦¬λ¦¬μ¦ˆλ₯Ό μΈ‘μ •ν•˜λŠ” 도ꡬ
    2. Clover, JCoverage, ElecEmma λ“±
  • λΉŒλ“œ μŠ€μΌ€μ€„ 관리도ꡬ
    1. μž‘μ„±λœ λΉŒλ“œ 슀크립트λ₯Ό μ •ν•΄μ§„ 쑰건, μ‹œκ°„μ— κΈ°λ™ν•˜κ³  μ§„ν–‰ μƒνƒœ, μˆ˜ν–‰ κ²°κ³Όλ₯Ό κ΄€λ¦¬ν•˜λŠ” 도ꡬ
    2. Anthil, CruiseControl, Hudson λ“±

ν…ŒμŠ€νŠΈ 컀버리지

  • 전체 ν”„λ‘œκ·Έλž¨μ˜ λ²”μœ„ λŒ€λΉ„ ν…ŒμŠ€νŠΈ μˆ˜ν–‰ μ‹œ ν•΄λ‹Ή ν…ŒμŠ€νŠΈ μˆ˜ν–‰μ„ μœ„ν•΄ λ™μž‘λœ ν”„λ‘œκ·Έλž¨μ˜ λΉ„μœ¨μ„ 의미
  • 라인컀버리지(ꡬ문 컀버리지)
  • 뢄기컀버리지
  • 쑰건컀버리지

λΉŒλ“œ μŠ€μΌ€μ€„ 관리 도ꡬ κΈ°λŠ₯

  • λΉŒλ“œ μž‘μ—… μŠ€μΌ€μ€„λ§
  • λΉŒλ“œ μž‘μ—… μƒνƒœ 및 이λ ₯ 관리
  • λΉŒλ“œ 도ꡬ 연계 관리
  • λΉŒλ“œ μˆ˜ν–‰ κ²°κ³Ό λ¦¬ν¬νŒ…
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

UI

  • CLI : λͺ…λ Ήμ–΄ 라인 μΈν„°νŽ˜μ΄μŠ€
  • GUI : κ·Έλž˜ν”½ μœ μ € μΈν„°νŽ˜μ΄μŠ€
  • NUI : μžμ—°μ–΄ μœ μ € μΈν„°νŽ˜μ΄μŠ€

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

  • μ†Œν”„νŠΈμ›¨μ–΄ κ΅¬μ„±μš”μ†Œ 쀑 외뢀에 λ“œλŸ¬λ‚˜λŠ” μš”μ†Œ νŠΉμ„±κ³Ό μš”μ†Œλ“€ κ°„μ˜ 관계λ₯Ό ν‘œν˜„ν•œ 것

UI개발 도ꡬ λΆ„λ₯˜

  • 화면섀계 : 와이어 ν”„λ ˆμž„, μŠ€ν† λ¦¬λ³΄λ“œ, λͺ©μ—…
  • ν”„λ‘œν† νƒ€μž…
  • UIλ””μžμΈ

UI 메뉴 ꡬ쑰 확인

  • μ‚¬μš©μ„±
  • μœ μš©μ„±
  • 정보ꡬ쑰
  • λ‚΄λΉ„κ²Œμ΄μ…˜
  • μœ μŠ€μΌ€μ΄μŠ€

W3C

  • μ›”λ“œ μ™€μ΄λ“œ 웹을 μœ„ν•œ ν‘œμ€€μ„ κ°œλ°œν•˜κ³  μž₯λ ₯ν•˜λŠ” ꡭ제적인 μ»¨μ†Œμ‹œμ—„ 쑰직

ν•œκ΅­ν˜• μ›Ή μ½˜ν…μΈ  μ ‘κ·Όμ„± μ§€μΉ¨(KWCAG)

 

μ „μžμ •λΆ€ μ›Ή ν‘œμ€€ μ€€μˆ˜ μ§€μΉ¨

 

μ›Ήμ˜ 3μš”μ†Œ

  • μ›Ή ν‘œμ€€
  • μ›Ή μ ‘κ·Όμ„±
  • μ›Ή ν™˜μ„±

μ„œλ²„

  • μ›Ή μ„œλ²•λŠ” μ›Ή λΈŒλΌμš°μ €λ‘œλΆ€ν„° HTTP μš”μ²­μ„ 받아듀이고, HTML λ¬Έμ„œλ₯Ό λ°˜ν™˜
  • Apache, IIS, nginx, GWS

ν΄λΌμ΄μ–ΈνŠΈ

  • λ„€νŠΈμ›Œν¬λ₯Ό ν†΅ν•˜μ—¬ λ‹€λ₯Έ μ„œλ²„ μ‹œμŠ€ν…œ μƒμ˜ 컴퓨터에 원격 μ„œλΉ„μŠ€μ— 접속할 수 μžˆλŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ΄λ‚˜ μ„œλΉ„μŠ€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈλΌ 함
  • νŒŒμ΄μ–΄ν­μŠ€, 크둬, IE λ“±

μ›Ή μ‚¬μ΄νŠΈμ™€ μ›Ή νŽ˜μ΄μ§€

  • μ›Ή μ‚¬μ΄νŠΈ : 인터넷 ν”„λ‘œν† μ½œ 기반의 λ„€νŠΈμ›Œν¬μ—μ„œ URL을 ν†΅ν•˜μ—¬ λ³΄μ΄λŠ” μ›Ή νŽ˜μ΄λ“€μ˜ 의미 μžˆλŠ” 묢음
  • μ›Ή νŽ˜μ΄μ§€ : μ›”λ“œ μ™€μ΄λ“œ μ›Ή 상에 μžˆλŠ” 개개의 λ¬Έμ„œλ₯Ό 의미

HTML(Hyper Text Markup Language)

μ‚¬μš©μ„± ν…ŒμŠ€νŠΈ

  • κ³„νš 수립, μ‚¬μš©μ„± ν…ŒμŠ€νŠΈ 섀계, μ‚¬μš©μ„± ν…ŒμŠ€νŠΈ μˆ˜ν–‰, κ²°κ³Ό κ²€ν† 
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

ν…ŒμŠ€νŠΈ 기법 μ„ μ •

  • νœ΄λ¦¬μŠ€ν‹± 평가 : μ‚¬μš©μ„± 곡학 방법, 전문가에 μ˜ν•΄ 이둠과 κ²½ν—˜μ„ 근거둜 ν•˜μ—¬ 일련의 κ·œμΉ™λ“€μ„ λ§Œλ“€μ–΄ 놓고 평가 λŒ€μƒμ΄ κ·ΈλŸ¬ν•œ κ·œμΉ™λ“€μ„ μ–Όλ§ˆλ‚˜ 잘 μ§€ν‚€κ³  μžˆλŠ”κ°€λ₯Ό ν™•μΈν•˜λŠ” 평가 방법
    1. μƒλŒ€μ μœΌλ‘œ λΉ„μš©μ΄ 적음
    2. 짧은 μ‹œκ°„λ‚΄μ— μ‹œμŠ€ν…œμ˜ μ€‘μš”ν•œ λ¬Έμ œμ λ“€μ„ 발견
    3. ν”„λ‘œμ νŠΈ μˆ˜ν–‰κ³Όμ •μ˜μ „λ°˜μ— ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯ν•΄ μ΄ˆκΈ°μ— 문제 발견
    4. ꡬ체적이고 κ³„λŸ‰μ μΈ 평가 μžλ£Œλ§Œλ“€κΈ° νž˜λ“¬
    5. μ‚¬μš©μ„± 전문가와 μ‹€μ œ μ‹œμŠ€ν…œμ˜ μ‚¬μš©μžκ°€ μ‹œμŠ€ν…œμ„ λ°”λΌλ³΄λŠ” μ‹œκ°μ΄ λ‹€λ₯Ό 수 있음
    6. μ‚¬μš©μ„± μ „λ¬Έκ°€μ˜ λŠ₯λ ₯에 따라 평가 κ²°κ³Όκ°€κ°€ 달라짐
  • 페이퍼 ν”„λ‘œν† νƒ€μž… 평가 : ν”„λ‘œνƒ€μž…μ˜ κ°€μž₯ λΉ λ₯΄λА 방법, 자유둭게 μ˜κ²¬μ€ κ°œμ§„ν•˜λ©΄μ„œ λ°œμ „μ‹œν‚¬ 수 μžˆλŠ” 방법
    1. ν…ŒμŠ€νŠΈ κΉŒμ§€ 포함해 ν•œλ‹¬ μ΄μƒμ˜ μ‹œκ°„μ˜ μ†Œμš”
    2. 체크리슀트 μ€€λΉ„
    3. μ œν’ˆμ˜ λ¬Έμ œμ μ„ μ •ν™•νžˆ μ°Ύμ•„λ‚΄λŠ”λ° 맀우 μ€‘μš”
    4. 기쑴에 μœ μ‚¬ν•œ λŒ€μƒ μ œν’ˆμ˜ μ‚¬μš©μ„± ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ ν™œμš©λ˜μ—ˆλ˜ 체크리슀트 등을 ν™•λ³΄ν•˜μ—¬ 체크리슀트 μ€€λΉ„
  • μ„ ν˜Έλ„ 평가 : μ œν’ˆμ΄λ‚˜ μ„œλΉ„μŠ€μ— λŒ€ν•œ μ‚¬μš©μžμ˜ μ„ ν˜Έλ„μ— 영ν–₯을 λ―ΈμΉ˜λŠ” 속성듀을 νŒŒμ•…ν•˜κ³  μ€‘μš”λ„μ— λ”°λ₯Έ μ„ ν˜Έλ„λ₯Ό μ˜ˆμΈ‘ν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©, μ‚¬μš©μž λ‹ˆμ¦ˆμ— λŒ€μ‘
  • μ„±λŠ₯ 평가 : μ‚¬μš©μžκ°€ μ‹€μ œλ‘œ μ œν’ˆμ΄λ‚˜ μ„œλΉ„μŠ€μ™€ μ—°κ΄€λœ 것을 μ‚¬μš©ν•΄λ³΄κ³  νƒœμŠ€ν¬ 별 ν•™μŠ΅μ„±, νš¨μœ¨μ„±, κΈ°μ–΅μš©μ΄μ„±, 였λ₯˜, λ§Œμ‘±λ„ 등에 λŒ€ν•΄ ν‰κ°€ν•˜μ—¬, κ·Έ κ²°κ³Όλ₯Ό λ°”νƒ•μœΌλ‘œ μ„±λŠ₯을 κ°œμ„ 
  • μƒνƒœμ „μ΄ λ‹€μ΄μ–΄κ·Έλž¨ : ν•˜λ‚˜μ˜ 객체에 λŒ€ν•΄ 객체 λ‚΄λΆ€μ˜ μžμ„Έν•œ 행동을 κΈ°μˆ ν•˜κ±°λ‚˜ μ‹œμŠ€ν…œ 전체에 λŒ€ν•΄μ„œ μ‹œμŠ€ν…œμ˜ μžμ„Έν•œ 행동을 κΈ°μˆ ν•˜λŠ” 데 μ΄μš©ν•˜λŠ” μƒν˜Έμž‘μš© λ‹€μ΄μ–΄κ·Έλž¨
    1. λ°˜μ‘μ μΈ νŠΉμ„±μ„ κ°€μ§€λŠ” 객체에 λŒ€ν•΄μ„œ μž‘μ„±
    2. μ—¬λŸ¬κ°€μ§€ μƒνƒœλ₯Ό 가짐
    3. κ°μ²΄λŠ” μƒνƒœμ— 따라 λ™μΌν•œ λ©”μ‹œμ§€μ— λŒ€ν•΄μ„œ λ‹€λ₯Έ 행동을 λ³΄μž„
    4. 객체가 κ°€μ§ˆ 수 μžˆλŠ” μƒνƒœκ°€ μ–΄λ–€ 것이 μžˆλŠ”μ§€μ— λŒ€ν•΄μ„œ, 또 각 μƒνƒœλ³„λ‘œ μˆ˜μ‹ λœ λ©”μ‹œμ§€μ— λŒ€ν•΄μ„œ μ–΄λ–€ 행동을 보일지λ₯Ό κΈ°μˆ ν•˜λŠ” λŒ€ν‘œμ μΈ ν‘œκΈ°λ²•
  • 온라인 μ„€λ¬Έ μ‚¬μš©μ„± ν…ŒμŠ€νŠΈ 기법 : 온라인 μƒμ—μ„œ μ—¬λŸ¬κ°€μ§€ νƒœμŠ€ν¬λ₯Ό μ‹€μ‹œν•˜κ²Œ ν•˜μ—¬, κ·Έ κ²°κ΄„λ₯΄ λΆ„μ„ν•˜λŠ” 방법
  • 심측 인터뷰, 포컀슀 κ·Έλ£Ή 인터뷰 μ‚¬μš©μ„± ν…ŒμŠ€νŠΈ 기법

ν…ŒμŠ€νŠΈ ν™˜κ²½ ꡬ좕

  • μ‚¬μš©μž 쀑심 λ””μžμΈ
    1. 인간 쀑심, μ‚¬μš©μž 쀑심
  • μΈν„°λž™μ…˜ λ””μžμΈ
    1. μ‚¬λžŒμ˜ 행동과 이에 λ°˜μ‘ν•˜λŠ” μ‹œμŠ€ν…œ 절차λ₯Ό μ„€κ³„ν•˜λŠ” 것
    2. HCI : μ‚¬μš©μžμ—κ²Œ 졜적의 κ²½ν—˜μ„ μ œκ³΅ν•˜λŠ” κΈ°λ³Έ λ‹¨μœ„
  • ν”„λ‘œν† νƒ€μž…
    1. μ‚¬μš©μžμ˜ λͺ¨λ“  μš”κ΅¬μ‚¬ν•­μ΄ μ •ν™•ν•˜κ²Œ 반영될 λ•ŒκΉŒμ§€ κ³„μ†ν•΄μ„œ κ°œμ„ λ˜κ³  λ³΄μ™„λ˜λŠ” 것이 일반적
  • μ™€μ΄μ–΄ν”„λ ˆμž„
    1. μ΅œμ’… 화면에 ν‘œμ‹œλ  컨텐츠λ₯Ό κ°„λ‹¨νžˆ μš”μ•½ν•˜μ—¬ λ³΄μ—¬μ£ΌλŠ” 것
  • μ‹œμž₯ν˜„ν™©λ³΄κ³ μ„œ
    1. 기업이 μ°Έμ—¬ν•˜κ³  μžˆλŠ” 사업 λΆ„μ•Όμ˜ μ‹œμž₯ ν˜„ν™© 및 νŠΉμ„±μ„ νŒŒμ•…ν•˜μ—¬ μ‹œμž₯ λ§€λ ₯ μš”μΈμ„ λ„μΆœν•˜κ³  성곡가λŠ₯성을 μ˜ˆμΈ‘ν•˜κΈ° μœ„ν•œ λ³΄κ³ μ„œ
  • κΈ°μˆ ν˜„ν™©λ³΄κ³ μ„œ
    1. λ¦¬μ„œμΉ˜λ₯Ό 톡해 νŒŒμ•…ν•œ μ‚¬μš©μž 정보λ₯Ό ν”„λ‘œμ νŠΈ 멀버듀과 사업 λΆ„μ•Όλ³„λ‘œ μƒν‘œ, λ””μžμΈ, νŠΉν—ˆ μ‹€μš© λ“± 기업이 λ“±λ‘ν•œ μ§€μ μž¬μ‚°κΆŒ 및 등둝 λ‚΄μš©μ˜ λ³€ν™”λ₯Ό 좔리λ₯Ό μ‘°μ‚¬ν•œ λ³΄κ³ μ„œ

UI κ°œμ„ λ°©μ•ˆ 및 μˆ˜μ •κ³„νš 수립

  • UI λ””μžμΈ
    1. μΈν„°νŽ˜μ΄μŠ€
    2. μ •λ³΄κΈ°κΈ°λ‚˜ μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν™”λ©΄ λ“± μ‚¬λžŒκ³Ό μ ‘ν•˜λŠ” 면을 μ„€κ³„ν•˜κ³  λ””μžμΈν•˜λŠ” 것을 의미
  • UI μ»¨μ…‰μ…˜
    1. UXμ»¨μ…‰μ˜ κ°€μ‹œν™” λ‹¨κ³„μ—μ„œ μ§„ν–‰λ˜λŠ” μ£Όμš” 화면에 λŒ€ν•œ UI 컨셉 섀계λ₯Ό 의미
    2. UI 섀계 μ—…λ¬΄ν˜•νƒœμ™€ μœ μ‚¬
  • GUI μ»¨μ…‰μ…˜
    1. ν™”λ©΄ λ””μžμΈ κ΄€μ μ—μ„œ UX 컨셉을 κ°€μ‹œν™” ν•˜λŠ” 것
    2. μ»¨μ…‰λ³΄λ“œ μ œμž‘
  • UX 컨셉 리뷰
    1. UX μ „λž΅, UI μ»¨μ…‰μ…˜, GUI μ»¨μ…‰μ…˜μ˜ 결과물을 ν† λŒ€λ‘œ UX μ „λž΅μ΄ 잘 μ μš©λ˜μ—ˆλŠ”μ§€ λ‚΄λΆ€ κ΄€κ³„μž, μ‚¬μš©μž 등을 λŒ€μƒμœΌλ‘œ λ¦¬λ·°ν•˜μ—¬ κ°œμ„ ν•˜λŠ”λ° λͺ©μ 
  • 컨셉 λͺ¨λΈ
    1. μ—¬λŸ¬κ°€μ§€ 좔상적인 컨셉듀 μ‚¬μ΄μ˜ 관계λ₯Ό λ³΄μ—¬μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨
    2. 아이디어 전달, μƒκ°μ˜ 과정을 효율적으둜 μ΄λŒμ–΄μ€Œ
  • λ©˜νƒˆ λͺ¨λΈ
    1. μ—μŠ€λ…Έκ·Έλž˜ν”Ό 자료λ₯Ό μ˜λ―Έμƒ κ°€κΉŒμš΄ 것끼리 λͺ¨μ•„ 놓은 μΉœν™”λ„ 기법
  • μΉ΄λ“œμ†ŒνŒ…
    1. 정보ꡬ쑰λ₯Ό μ•Œ 수 μžˆλŠ” κ°€μž₯ λ‹¨μˆœν•˜λ©΄μ„œλ„ 효과적인 방법 쀑 ν•˜λ‚˜
    2. μΉ΄λ“œλ₯Ό 그룹으둜 λΆ„λ₯˜ 및 μ •λ ¬ν•˜μ—¬ 정보λ₯Ό κ΅¬μ‘°ν™”μ‹œν‚€λŠ” 방법

ISO/IEC 9126

  • ν’ˆμ§ˆνŠΉμ„± 및 λ©”νŠΈλ¦­μ„ μ •μ˜ν•˜κ³  μžˆλŠ” ν‘œμ€€
  • μ†Œν”„νŠΈμ›¨μ–΄ ν’ˆμ§ˆμ„ μΈ‘μ • ν‰κ°€ν•˜κΈ° μœ„ν•΄ μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν’ˆμ§ˆμš”μ†Œμ™€ νŠΉμ„±μ„ μ •μ˜ν•˜κ³  κ°œλ°œκ³΅μ •μ—μ„œ ν’ˆμ§ˆμ„ κ°κ΄€μ μœΌλ‘œ μ •λŸ‰ν™”ν•˜λŠ”λ° μš”κ΅¬
  • κ³„μΈ΅κ΅¬μ‘°λ‘œ μ„ΈλΆ„ν™”
    1. 제 1 계측 : μ‚¬μš©μž κ΄€μ μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν’ˆμ§ˆ λͺ©ν‘œ μ •μ˜
    2. 제 2 계측 : ν’ˆμ§ˆ λͺ©ν‘œλ₯Ό 달성할 수 μžˆλŠ” κ΄‘λ²”μœ„ν•œ ν’ˆμ§ˆ νŠΉμ„±
    3. 제 3 계측 : μƒμœ„ νŠΉμ„±μ„ κ΅¬μ„±ν•˜λŠ” ꡬ체적인 ν’ˆμ§ˆλΆ€νŠΉμ„±
    4. 제 4 계측 : μ†Œν”„νŠΈμ›¨μ–΄ νŠΉμ„±μ„ μΈ‘μ •ν•˜κΈ° μœ„ν•œ λ©”νŠΈλ¦­μ΄λ‚˜ ν’ˆμ§ˆμΈμžκ°€ μœ„μΉ˜
  • κΈ°λŠ₯μ„±, μ‹ λ’°μ„±, μ‚¬μš©μ„±, νš¨μœ¨μ„±, 이식성, μœ μ§€λ³΄μˆ˜μ„±

μ •λŸ‰μ  λ¦¬μ„œμΉ˜

  • κ²½μŸμ‚¬μ΄νŠΈ, λ²€μΉ˜λ§ˆν‚Ήμ‚¬μ΄νŠΈ λ˜λŠ” 이전 λ””μžμΈκ³Ό λΉ„κ΅ν•˜μ—¬ ν˜„μž¬ λ‚˜μ˜ UX λ””μžμΈ μˆ˜μ€€μ„ ν‰κ°€ν•˜λŠ” 방법
  • μ„€λ¬Έ ν˜•νƒœμ˜ μ„œλ² μ΄κ°€ λŒ€ν‘œμ 
  • ν•œ νšŒλ‹Ή 20λͺ… μ •λ„μ˜ μ°Έκ°€μžλ₯Ό μˆ˜ν–‰

정성적 λ¦¬μ„œμΉ˜

  • ν™•μ‹€μ„±μ΄λ‚˜ λ°˜λ³΅μ„± λ³΄λ‹€λŠ” μ‚¬μš©μžμ˜ 행동과 κ΄€λ ¨λœ μ»¨ν…μŠ€νŠΈμ™€ μΈμ‚¬μ΄νŠΈλ₯Ό μ–»κΈ° μœ„ν•œ 방법
  • ν…ŒμŠ€νŠΈλ₯Ό 톡해 μ‚¬λžŒλ“¬μ˜ λ°˜μ‘μ„ 보고 μΈμ‚¬μ΄νŠΈλ₯Ό μ–»μ–΄ ν˜„μž¬μ˜ μ•ˆμ„ κ°œμ„ ν•˜λŠ” 것이 λͺ©μ 
  • μ»¨ν…μŠ€μΈ„μ–Ό 인쿼리가 λŒ€ν‘œμ 
  • 5~8λͺ…μœΌλ‘œ ꡬ성, ν•œ μ„ΈνŠΈ 이상 μˆ˜ν–‰ν•˜λŠ” 것이 이상적
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

DDL

  • 데이터λ₯Ό μ •μ˜ν•˜λŠ” μ–Έμ–΄
  • DDL λŒ€μƒ
    1. μŠ€ν‚€λ§ˆ : DBMS νŠΉμ„±κ³Ό κ΅¬ν˜„ν™˜κ²½μ„ κ°μ•ˆν•œ 데이터 ꡬ쑰, μ§κ΄€μ μœΌλ‘œ ν•˜λ‚˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€λ‘œ 이해 κ°€λŠ₯
    2. 도메인(속성) : μ†μ„±μ˜ 데이터 νƒ€μž…κ³Ό 크기, μ œμ•½ 쑰건 등을 μ§€μ •ν•œ 정보, 속성이 κ°€μ§ˆ 수 μžˆλŠ” κ°’μ˜ λ²”μœ„λ‘œ 이해 κ°€λŠ₯
    3. ν…Œμ΄λΈ” : 데이터 μ €μž₯곡간
    4. λ·° : ν•˜λ‚˜ μ΄μƒμ˜ 물리 ν…Œμ΄λΈ”μ—μ„œ μœ λ„λ˜λŠ” κ°€μƒμ˜ 논리 ν…Œμ΄λΈ”
    5. 인덱슀 : 검색을 λΉ λ₯΄κ²Œ ν•˜κΈ° μœ„ν•œ 데이터 ꡬ쑰
  • DDL μ‘°μž‘
    1. CREATE : 생성
      • create table ν…Œμ΄λΈ” 이름
      • λ‹€λ₯Έ ν…Œμ΄λΈ” 정보λ₯Ό μ΄μš©ν•œ ν…Œμ΄λΈ” 생성 : create table ν…Œμ΄λΈ” 이름 as select λ¬Έ
    2. ALTER : λ³€κ²½
      • μ—΄ μΆ”κ°€ : alter table ν…Œμ΄λΈ” 이름 add 열이름 λ°μ΄ν„°νƒ€μž…
      • μ—΄ 데이터 νƒ€μž… λ³€κ²½ : alter table ν…Œμ΄λΈ” 이름 modify 열이름 데이터 νƒ€μž…
      • μ—΄ μ‚­μ œ : atler table ν…Œμ΄λΈ” 이름 drop μ—΄ 이름
      • ν…Œμ΄λΈ” 이름 λ³€κ²½ : rename table 이전 ν…Œμ΄λΈ” 이름 to μƒˆλ‘œμš΄ ν…Œμ΄λΈ” 이름 / alter table 이전 ν…Œμ΄λΈ” 이름 rename μƒˆλ‘œμš΄ ν…Œμ΄λΈ” 이름
    3. DROP : μ‚­μ œ
      • ν…Œμ΄λΈ” μ‚­μ œ : drop table ν…Œμ΄λΈ” 이름
    4. TRUNCATE : ν…Œμ΄λΈ” μ΄ˆκΈ°ν™”
      • ν…Œμ΄λΈ” λ‚΄μš© μ‚­μ œ : truncate table ν…Œμ΄λΈ” 이름
  • μ œμ•½ 쑰건
    1. primary key : κΈ°λ³Έν‚€, NOT NULL, UNIQUE μ œμ•½μ΄ 포함 됨
    2. foreign key : μ™Έλž˜ν‚€, μ°Έμ‘° λŒ€μƒμ„ ν…Œμ΄λΈ”μ΄λ¦„μœΌλ‘œ λͺ…μ‹œν•΄μ•Ό 함, μ°Έμ‘° 무결성을 μœ„λ°° 상황 λ°œμƒ μ‹œ 처리 λ°©λ²•μœΌλ‘œ μ˜΅μ…˜ μ§€μ • κ°€λŠ₯
    3. unique : ν…Œμ΄λΈ” λ‚΄μ—μ„œ 열은 μœ μΌν•œ 값을 κ°€μ Έμ•Ό 함, λ™μΌν•œ 값을 κ°€μ Έμ„œλŠ” μ•ˆ λ˜λŠ” ν•­λͺ©μ— 지정함
    4. not null : μ—΄μ˜ 값은 null일 수 μ—†μŒ, ν•„μˆ˜ μž…λ ₯ ν•­λͺ©μ— λŒ€ν•΄ μ œμ•½μ‘°κ±΄μœΌλ‘œ 섀정함
    5. check : κ°œλ°œμžκ°€ μ •μ˜ν•˜λŠ” μ œμ•½ 쑰건, 상황에 따라 μ„€μ • κ°€λŠ₯

DML

  • 데이터λ₯Ό μ‘°μž‘ν•˜λŠ” λͺ…λ Ήμ–΄
  • DML μ‘°μž‘
    1. INSERT : 데이터 생성
      • insert into ν…Œμ΄λΈ” 이름(column1, cloumn2, ...) values (value1, value2, ...);
      • insert into ν…Œμ΄λΈ” 이름 values(value1, value2, ...)
    2. SELECT : 데이터 쑰회
      • select [option] columns from table [where절];
      • option : all (쀑볡 포함 쑰회 κ²°κ³Ό 좜λ ₯), distinct(쀑볡 μ œκ±°ν•œ 쑰회 κ²°κ³Ό 좜λ ₯)
      • columns : 컬럼λͺ… λͺ©λ‘(μ‘°νšŒν•  컬럼λͺ… μ§€μ •), μ™€μ΄λ“œμΉ΄λ“œ(전체λ₯Ό μ˜λ―Έν•˜λŠ” *)
    3. UPDATE : 데이터 λ³€κ²½
      • update table set column1 = value1, coumn2 = value2, ... [where 절];
    4. DELETE : 데이터 μ‚­μ œ
      • delete from table [where 절];

DCL

  • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터 μ΄μ™Έμ˜ μ˜€λΈŒμ νŠΈμ— λŒ€ν•΄ μ‘°μž‘ν•  ν•„μš”κ°€ 있음
  • DCL μ‘°μž‘ λŒ€μƒ
    1. μ‚¬μš©μž κΆŒν•œ : μ ‘κ·Ό ν†΅μ œ
    2. νŠΈλžœμž­μ…˜ : μ•ˆμ „ν•œ 거래 보μž₯
  • νŠΈλžœμ μ…˜ μ œμ–΄λ₯Ό μœ„ν•œ λͺ…λ Ήμ–΄ TCL이 있음
  • TCLκ³Ό DCL은 λŒ€μƒμ΄ 달라 μ„œλ‘œ λ³„κ°œμ˜ κ°œλ…μœΌλ‘œ λΆ„λ₯˜, μ œμ–΄κΈ°λŠ₯이 κ³΅ν†΅μ μœΌλ‘œ DCL의 μΌλΆ€λ‘œ λΆ„λ₯˜ν•˜κΈ°λ„ 함
    1. DCL : GRANT(λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš©μž κΆŒν•œ λΆ€μ—¬), REVOKE(λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš©μž κΆŒν•œ 회수)
    2. TCL : COMMIT(νŠΈλžœμž­μ…˜ ν™•μ •), ROLLBACK(νŠΈλžœμž­μ…˜ μ·¨μ†Œ), CHECKPOINT(λ³΅κ·€μ‹œμ  μ„€μ •)
      • νŠΈλžœμž­μ…˜μ€ 논리적 μ—°μ‚° λ‹¨μœ„
      • ν•œ 개 μ΄μƒμ˜ λ°μ΄ν„°λ² μ΄μŠ€ μ‘°μž‘
      • ν•˜λ‚˜ μ΄μƒμ˜ SQL λ¬Έμž₯이 포함
      • νŠΈλžœμž­μ…˜μ€ '거래'λ‹€
      • λͺ¨λ‘ λ°˜μ˜λ˜κ±°λ‚˜ λͺ¨λ‘ μ·¨μ†Œ λ˜μ–΄μ•Όν•¨
      • λΆ„ν•  ν•  수 μ—†λŠ” μ΅œμ†Œ λ‹¨μœ„
  • 데이트베이슀 λ³΄μ•ˆμ„ κ΅¬ν˜„ν•˜λŠ” λ°©λ²•μœΌλ‘œ μ ‘κ·Ό ν†΅μ œ 방법을 μ‚¬μš©
    1. μž„μ˜ μ ‘κ·Ό ν†΅μ œ(DAC)
    2. κ°•μ œ μ ‘κ·Ό ν†΅μ œ(MAC)
  • νŠΈλžœμ μ…˜μ˜ νŠΉμ„±
    1. μ›μžμ„±
    2. 일관성
    3. 고립성
    4. 지속성

데이터 사전

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ 데이터λ₯Ό μ œμ™Έν•œ λͺ¨λ“  정보가 μž‡μŒ
  • μ‚¬μ „μ˜ λ‚΄μš©μ„ λ³€κ²½ν•˜λŠ” κΆŒν•œμ€ μ‹œμŠ€ν…œμ΄ κ°€μ§€λ©°, μ‚¬μš©μžμ—κ²ŒλŠ” 읽기 μ „μš© ν…Œμ΄λΈ” ν˜•νƒœλ‘œ μ œκ³΅λ˜λ―€λ‘œ λ‹¨μˆœ 쑰회만 κ°€λŠ₯
  • 데이터 사전은 λ©”νƒ€λ°μ΄ν„°λ‘œ ꡬ성
  • 데이터 사전 λ‚΄μš©
    1. μ‚¬μš©μž 정보
    2. λ°μ΄ν„°λ² μ΄μŠ€ 객체 정보
    3. 무결성 μ œμ•½ 정보
    4. ν•¨μˆ˜, ν”„λ‘œμ‹œμ € 및 트리거
  • 데이터 사전 μš©λ„
    1. μ‚¬μš©μžμ—κ²Œ 데이터 사전은 λ‹¨μˆœ 쑰회의 λŒ€μƒ
    2. λ°μ΄ν„°λ² μ΄μŠ€ 엔진을 μ΄λ£¨λŠ” 컴파일러, μ˜΅ν‹°λ§ˆμ΄μ € λ“±κ³Ό 같은 ꡬ성 μš”μ†Œμ— 데이터 사전은 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ μ°Έμ‘° 정보일 뿐만 μ•„λ‹ˆλΌ μž‘μ—…μ˜ λŒ€μƒμ΄κΈ°λ„ 함
  • 였라클
    1. DBA_ > ALL_ > USER_
    2. DBA_ : λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λ“  객체 쑰회 κ°€λŠ₯
    3. ALL_ : μžμ‹ μ˜ κ³„μ •μœΌλ‘œ μ ‘κ·Ό κ°€λŠ₯ν•œ 객체와 타 κ³„μ •μ˜ μ ‘κ·Ό κΆŒν•œμ„ κ°€μ§„ λͺ¨λ“  객체 쑰회 κ°€λŠ₯
    4. USER_ : ν˜„μž¬ μžμ‹ μ˜ 계정이 μ†Œμœ ν•œ 객체 쑰회 κ°€λŠ₯
  • My SQL
    1. Information_schemaλΌλŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ•ˆμ— 쑴재
    2. use Information_schema; - 이동
    3. show tables; - ν…Œμ΄λΈ” λͺ©λ‘ 보기

SQL

  • μš©μ–΄ : ꡬ쑰적 질의 μ–Έμ–΄
  • μš©λ„ : λ°μ΄ν„°λ² μ΄μŠ€ μ‘°μž‘ μ–Έμ–΄
  • ν˜•μ‹ : ISO/ANSI ν‘œμ€€μœΌλ‘œ μ •μ˜
  • λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ
    1. μ €μž₯ 데이터
    2. 톡합 데이터
    3. 곡유 데이터
    4. 운영 데이터
  • DBMS
    1. λŒ€μš©λŸ‰ 곡유 λ©”λͺ¨λ¦¬μ™€ ν”„λ‘œμ„ΈμŠ€λ‘œ ꡬ성
    2. μΈμŠ€ν„΄μŠ€
    3. λ””μŠ€ν¬μ— μ €μž₯된 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œ

인덱슀

  • 데이터λ₯Ό λΉ λ₯΄κ²Œ 찾을 수 μžˆλŠ” μˆ˜λ‹¨
  • ν…Œμ΄λΈ”μ— λŒ€ν•œ 쑰회 속도λ₯Ό λ†’μ—¬ μ£ΌλŠ” 자료ꡬ쑰
  • pkμ»¬λŸΌμ€ pkλ₯Ό μƒμ„±ν• λ•Œ μžλ™μœΌλ‘œ μΈλ±μŠ€κ°€ 생성
  • DBMSλŠ” 인덱슀λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ λ₯Έ 검색을 μˆ˜ν–‰ν•¨
  • 인덱슀 생성
    1. create [unique] index <index_name> on <table_name>(<column(s)>);
  • 인덱슀 μ‚­μ œ
    1. drop index <index_name>;
  • 인덱슀 λ³€κ²½
    1. alter [unique] index <index name> on <table name>(<columns(s)>);

λ·°

  • λ…Όλ¦¬ν…Œμ΄λΈ”λ‘œμ„œ μ‚¬μš©μž ν…Œμ΄λΈ”κ³Ό 동일
  • κ°€μƒν…Œμ΄λΈ”
  • λ·° μ‚¬μš©
    1. select * from <View Name>;
  • λ·° μž₯점
    1. 논리적 독립성 제곡
    2. μ‚¬μš©μž 데이터 관리 용이
    3. 데이터 λ³΄μ•ˆ 용이
  • λ·° 단점
    1. λ·° 자체 인덱슀 λΆˆκ°€
    2. λ·° μ •μ˜ λ³€κ²½ λΆˆκ°€
    3. 데이터 λ³€κ²½ μ œμ•½ 쑴재
  • λ·° 생성
    1. create view <뷰이름>(컬럼λͺ©λ‘) as <λ·°λ₯Ό 톡해 보여쀄 데이터 쑰회용 쿼리문>
  • λ·° μ‚­μ œ 및 λ³€κ²½
    1. λ·° μ •μ˜ 자체λ₯Ό λ³€κ²½ν•˜λŠ” λΆˆκ°€λŠ₯함
    2. drop view <View Name>
  • λ·° λ‚΄μš© λ³€κ²½
    1. λ·°λ₯Ό 톡해 μ ‘κ·Ό κ°€λŠ₯ν•œ λ°μ΄ν…Œ λŒ€ν•œ 변경이 κ°€λŠ₯
    2. λ·° μžμ²΄κ°€ 논리적 κ°œλ…μ΄κΈ°μ— 물리적 상황에 μ˜μ‘΄μ μž„μ„ 의미

닀쀑 ν…Œμ΄λΈ” 검색

  • 데이터λ₯Ό λΆ„ν•΄ν•˜λŠ” λ°©λ²•μœΌλ‘œ μ •κ·œν™” 기법 μ‚¬μš©
  • ν†΅ν•©ν•˜λŠ” κΈ°λ²•μœΌλ‘œ 닀쀑 ν…Œμ΄λΈ”μ— λŒ€ν•œ 검색이 μ‚¬μš©
  • Join(쑰인)
    1. 결합을 의미
    2. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œμ˜ 쑰인의 ꡐ집합 κ²°κ³Όλ₯Ό κ°€μ§€λŠ” κ²°ν•© 방법을 의미
    3. 두 ν…Œμ΄λΈ”μ˜ 곡톡값을 μ΄μš©ν•˜μ—¬ μ»¬λŸΌμ„ μ‘°ν•©ν•˜λŠ” μˆ˜λ‹¨
    4. 논리적 쑰인과 물리적 쑰인이 있음
    5. 내뢀쑰인 (inner join)κ³Ό μ™ΈλΆ€ 쑰인(outer join)이 있음
  • Sub Quer(μ„œλΈŒ 컬리)
    1. SQLλ¬Έ μ•ˆμ— ν¬ν•¨λœ 또 λ‹€λ₯Έ SQL문을 의미
    2. 메인쿼리와 μ„œλΈŒμΏΌλ¦¬ κ΄€κ³„λŠ” μ£Όμ’… 관계
    3. λΉ„μ—°κ΄€ μ„œλΈŒμΏΌλ¦¬μ™€ μ—°κ΄€ μ„œλΈŒμΏΌλ¦¬κ°€ 있음
    4. Single row(단일 ν–‰)μ„œλΈŒ 쿼리, Multiple Row(닀쀑 ν–‰)μ„œλΈŒ 쿼리, Multiple Column(닀쀑 컬럼) μ„œλΈŒ 쿼리가 μž‡μŒ
  • μ§‘ν•©μ—°μ‚°
    1. 두 ν…Œμ΄λΈ” 연산에 μ§‘ν•œ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λŠ” 방식
    2. μ—¬λŸ¬ 질의 κ²°κ³Όλ₯Ό μ—°κ²°ν•˜μ—¬ ν•˜λ‚˜λ‘œ κ²°ν•©ν•˜λŠ” 방식을 μ‚¬μš©
    3. UNION : ν•©μ§‘ν•©(쀑볡 ν–‰ 제거)
    4. UNION ALL : ν•©μ§‘ν•©(쀑볡 ν–‰ μ œκ±°ν•˜μ§€ μ•ŠμŒ)
    5. INTERSECTION : ꡐ집합(쀑볡 ν–‰ 제거)
    6. EXCEPT(MINUS) : μ°¨μ§‘ν•©(쀑볡 ν–‰ 제거)
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

ν…ŒμŠ€νŠΈ μˆ˜ν–‰

  • ν…ŒμŠ€νŠΈλŠ” λ‹¨μœ„ ν…ŒμŠ€νŠΈ, 톡합 ν…ŒμŠ€νŠΈ, μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ, 인수 ν…ŒμŠ€νŠΈ 순으둜 μ§„ν–‰
  • V-λͺ¨λΈ : μš”κ΅¬μ‚¬ν•­ → 뢄석 → λ””μžμΈ → κ΅¬ν˜„ → λ‹¨μœ„ ν…ŒμŠ€νŠΈ → 톡합 ν…ŒμŠ€νŠΈ → μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ → 인수 ν…ŒμŠ€νŠΈ
  • λ‹¨μœ„ ν…ŒμŠ€νŠΈ : μž‘μ€ μ†Œν”„νŠΈμ›¨μ–΄ λ‹¨μœ„λ₯Ό ν…ŒμŠ€νŠΈν•˜λŠ” 것, μ•„μ£Ό μ€‘μš”ν•œ λΆ€λΆ„μ΄λ―€λ‘œ 개발 λ„κ΅¬μ—μ„œ μ§€μ›ν•˜μ§€ μ•Šμ•„λ„ λ°˜λ“œμ‹œ μˆ˜ν–‰
    1. ꡬ쑰기반 : ν”„λ‘œκ·Έλž¨ λ‚΄λΆ€ ꡬ쑰 및 λ³΅μž‘λ„λ₯Ό κ²€μ¦ν•˜λŠ” ν™”μ΄νŠΈλ°•μŠ€ ν…ŒμŠ€νŠΈ / μ œμ–΄ 흐름, 쑰건 κ²°μ •
    2. λͺ…μ„ΈκΈ°λ°˜ : λͺ©μ  및 μ‹€ν–‰ μ½”λ“œ 기반의 싀행을 ν†΅ν•œ λΈ”λž™λ°•μŠ€ ν…ŒμŠ€νŠΈ / 동등 λΆ„ν• , 경계 κ°’ 뢄석
  • 톡합 ν…ŒμŠ€νŠΈ : λͺ¨λ“ˆ μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€, ν†΅ν•©λœ μ»΄ν¬λ„ŒνŠΈ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ ν…ŒμŠ€νŠΈν•˜λŠ” 것
    1. 순차적 ν˜•νƒœλ‘œ μ§„ν–‰
    2. λΉ…λ±…, 상ν–₯, ν•˜ν–₯, μƒŒλ“œμœ„μΉ˜, Central, Collaboration, λ ˆμ΄μ–΄ 톡합 λ“±
  • μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ : ν†΅ν•©λœ λ‹¨μœ„ μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯이 μ‹œμŠ€ν…œμ—μ„œ μ •μƒμ μœΌλ‘œ μˆ˜ν–‰λ˜λŠ”μ§€λ₯Ό ν…ŒμŠ€νŠΈν•˜λŠ” 것
    1. κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­ : μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ, λΉ„μ¦ˆλ‹ˆμŠ€ 절차, μœ μŠ€μΌ€μ΄μŠ€ λ“± λͺ…μ„Έμ„œ 기반의 λΈ”λž™λ°•μŠ€ ν…ŒμŠ€νŠΈ
    2. λΉ„κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­ : μ„±λŠ₯ ν…ŒμŠ€νŠΈ, 회볡 ν…ŒμŠ€νŠΈ, λ³΄μ•ˆ ν…ŒμŠ€νŠΈ, λ‚΄λΆ€ μ‹œμŠ€ν…œ 메뉴 ꡬ쑰, μ›Ή νŽ˜μ΄μ§€μ˜ λ„€λΉ„κ²Œμ΄μ…˜ λ“±μ˜ ꡬ쑰적 μš”μ†Œμ— λŒ€ν•œ ν™”μ΄νŠΈ λ°•μŠ€ ν…ŒμŠ€νŠΈ
  • 인수 ν…ŒμŠ€νŠΈ : 일반적으둜 μ΅œμ’… μ‚¬μš©μžμ™€ 업무에 λ”°λ₯Έ μ΄ν•΄κ΄€κ³„μž 등이 ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•¨μœΌλ‘œμ¨ 개발된 μ œν’ˆμ— λŒ€ν•΄ 운영 μ—¬λΆ€λ₯Ό κ²°μ •ν•˜λŠ” ν…ŒμŠ€νŠΈ
    1. μ‚¬μš©μž 인수 ν…ŒμŠ€νŠΈ
    2. μš΄μ˜μƒμ˜ 인수 ν…ŒμŠ€νŠΈ
    3. 계약 인수 ν…ŒμŠ€νŠΈ
    4. κ·œμ • 인수 ν…ŒμŠ€νŠΈ
    5. μ•ŒνŒŒ ν…ŒμŠ€νŠΈ
    6. 베타 ν…ŒμŠ€νŠΈ
  • ν…ŒμŠ€νŠΈ κΈ°λ°˜μ— λ”°λ₯Έ ν…ŒμŠ€νŠΈμ˜ μ’…λ₯˜
    1. ꡬ쑰 기반 : μ†Œν”„νŠΈμ›¨μ–΄ λ‚΄λΆ€μ˜ 논리 흐름에 λ”°λ₯Έ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„± 및 결함 발견 ν™œλ™
    2. λͺ…μ„Έ 기반 : μ‚¬μš©μžμ˜ μš”κ΅¬μ‚¬ν•­ λΆ„μ„μ„œμ— μ£Όμ–΄μ§„ λͺ…μ„Έλ₯Ό λΉ λœ¨λ¦¬μ§€ μ•Šκ³  ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ν™”
    3. κ²½ν—˜ 기반 : μœ μ‚¬ μ†Œν”„νŠΈμ›¨μ–΄λ‚˜ κΈ°μˆ μ—μ„œμ˜ ν…ŒμŠ€νŠΈμ˜ κ²½ν—˜, 직관, 기술 λŠ₯λ ₯을 λ°”νƒ•μœΌλ‘œ ν•˜λŠ” ν…ŒμŠ€νŠΈ 기법

결함관리

  • 결함은 ν”„λ‘œκ·Έλž¨κ³Ό λͺ…μ„Έμ„œ κ°„μ˜ 차이, 업무 λ‚΄μš© 뢈일치
  • 결함은 κΈ°λŒ€ 결과와 μ‹€μ œ κ΄€μ°° κ²°κ³Ό κ°„μ˜ 차이
  • μ‹œμŠ€ν…œμ΄ μ‚¬μš©μžκ°€ κΈ°λŒ€ν•˜λŠ” νƒ€λ‹Ήν•œ κΈ°λŒ€μΉ˜λ₯Ό λ§Œμ‘±μ‹œν‚€μ§€ λͺ»ν•  λ•Œ 변경이 ν•„μš”ν•œ λͺ¨λ“  것은 결함
  • 결함관리 ν”„λ‘œμ„ΈμŠ€
    1. 결함관리 κ³„νš
    2. 결함 기둝
    3. 결함 κ²€ν† 
    4. 결함 μˆ˜μ •
    5. 결함 μž¬ν™•μΈ
    6. 결함 μƒνƒœ 좔적 및 λͺ¨λ‹ˆν„°λ§ ν™œλ™
    7. μ΅œμ’… 결함 뢄석 및 λ³΄κ³ μ„œ μž‘μ„±
  • 결함 λΆ„λ₯˜
    1. μ‹œμŠ€ν…œ 결함 : 비정상적인 μ’…λ£Œ/쀑단, 응닡 μ‹œκ°„ μ§€μ—°, λ°μ΄ν„°λ² μ΄μŠ€ μ—λŸ¬ λ“± 주둜 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν™˜κ²½κ³Ό λ°μ΄ν„°λ² μ΄μŠ€ μ²˜λ¦¬μ—μ„œ λ°œμƒν•˜λŠ” 결함
    2. κΈ°λŠ₯ 결함 : μ‚¬μš©μžμ˜ μš”κ΅¬μ‚¬ν•­ 미반영/뢈일치, λΆ€μ •ν™•ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€, 슀크립트 μ—λŸ¬, 타 μ‹œμŠ€ν…œ 연동 μ‹œ 였λ₯˜ λ“± 기획, 섀계, 업무 μ‹œλ‚˜λ¦¬μ˜€ λ‹¨κ³„μ—μ„œ λ°œμƒλœ 결함을 말함
    3. GUI 결함 : μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ UI 비일관성, λΆ€μ •ν™•ν•œ μ»€μ„œ/λ©”μ‹œμ§€, 데이터 νƒ€μž…μ˜ ν‘œμ‹œ 였λ₯˜ λ“±μœΌλ‘œ μ‚¬μš©μž ν™”λ©΄ μ„€κ³„μ—μ„œ λ°œμƒλœ 결함을 말함
    4. λ¬Έμ„œ 결함 : λΆˆμ™„μ „ν•œ μƒνƒœμ˜ λ¬Έμ„œμ˜ 경우
  • 결함 심각도
    1. Hight : μ‹œμŠ€ν…œμ΄ μ€‘λ‹¨λ˜μ–΄ 더 이상 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ§„ν–‰ν•  수 μ—†κ²Œ λ§Œλ“œλŠ” 결함
    2. Medium : μ‹œμŠ€ν…œμ˜ 흐름에 영ν–₯을 λ―ΈμΉ˜λŠ” 결함
    3. Low : μ‹œμŠ€ν…œμ˜ νλ¦„μ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ” κ²°ν•¨μ΄λ‚˜ 상황에 λ§žμ§€ μ•ŠλŠ” μš©λ„μ™€ 화면ꡬ성 결함

μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈ 기법

  • μ†Œν”„νŠΈμ›¨μ–΄ ν…ŒμŠ€νŠΈ 기법
    1. λ‹¨μœ„ ν…ŒμŠ€νŠΈ 기법
      • JUnit을 ν™œμš©ν•œ ν…ŒμŠ€νŠΈ : javaν™˜κ²½
      • Mock ν…ŒμŠ€νŠΈ
    2. 톡합 ν…ŒμŠ€νŠΈ 기법
    3. μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ 기법
    4. 인수 ν…ŒμŠ€νŠΈ 기법
  • 결함 κ΄€λ ¨ μš©μ–΄
    1. μ—λŸ¬(error)
    2. 였λ₯˜(fault)
    3. μ‹€νŒ¨(failure)
    4. 결함(defect)
  • κ²°ν•¨μ˜ νŒλ‹¨ κΈ°μ€€
    1. κΈ°λŠ₯ λͺ…μ„Έμ„œμ— κ°€λŠ₯ν•˜λ‹€κ³  λͺ…μ‹œλœ λ™μž‘μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šμ€ 경우
    2. κΈ°λŠ₯ λͺ…μ„Έμ„œμ— λΆˆκ°€λŠ₯ν•˜λ‹€κ³  λͺ…μ‹œλœ λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” 경우
    3. κΈ°λŠ₯ λͺ…μ„Έμ„œμ— λͺ…μ‹œλ˜μ–΄ μžˆμ§€ μ•Šμ€ λ™μž‘μ„ μˆ˜ν–‰ν•˜λŠ” 경우
    4. κΈ°λŠ₯ λͺ…μ„Έμ„œμ— λͺ…μ‹œλ˜μ–΄ μžˆμ§€ μ•Šμ§€λ§Œ μˆ˜ν–‰ν•΄μ•Ό ν•  λ™μž‘μ„ μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ” 경우
    5. ν…ŒμŠ€ν„°μ˜ μ‹œκ°μ—μ„œ λ³Ό λ•Œ λ¬Έμ œκ°€ μžˆλ‹€κ³  νŒλ‹¨λ˜λŠ” 경우

ν”„λ‘œκ·Έλž¨ μ½”λ“œ κ²€ν†  기법

  • μ†Œν”„νŠΈμ›¨μ–΄ μΈμŠ€νŽ™μ…˜ : μ½”λ“œ μΈμŠ€νŽ™μ…˜ 외에도 섀계 및 섀계 μ‚°μΆœλ¬ΌκΉŒμ§€ ν¬κ΄„ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄ μΈμŠ€νŽ™μ…˜μœΌλ‘œ λΆ€λ₯΄κΈ°λ„ 함

    1. μΈμŠ€νŽ™μ…˜ : μΈμŠ€νŽ™μ…˜μ€ 개발 κ°€μ΄λ“œμ— λ”°λ₯Έ ν‘œμ€€(체크리슀트)을 μ€€μˆ˜ν•˜μ˜€λŠ”μ§€λ₯Ό νŒŒμ•…ν•˜κΈ° μœ„ν•¨μ— μžˆμœΌλ―€λ‘œ κΈ°λŠ₯적으둜 이상이 μ—†λŠ” μ†ŒμŠ€ μ½”λ“œλ₯Ό λŒ€μƒμœΌλ‘œ 검증
    2. μΈμŠ€νŽ™μ…˜μ„ ν•΄μ•Όν•˜λŠ” λΉ„μ¦ˆλ‹ˆμŠ€μ μΈ 이유
      • 결함을 빨리 μ°Ύμ„μˆ˜λ‘ μˆ˜μ • λΉ„μš©μ΄ 적게 듬
      • μΈμŠ€νŽ™μ…˜μ˜ 데이터λ₯Ό 톡해 업무에 집쀑 ν•  수 있음
      • μΈμŠ€νŽ™μ…˜μ„ ν•¨μœΌλ‘œμ¨ ꡐ차 κ΅μœ‘μ„ 도움
      • μ œν’ˆμ˜ "re-engineering"이 κ°€λŠ₯ν•œ μ˜μ—­μ„ μ‹λ³„ν•˜λ„λ‘ 도움
      • μ†Œν”„μ›¨μ–΄λ₯Ό κ°œλ°œν•˜κ³  μœ μ§€ν•˜λŠ” 데 적은 λΉ„μš©μ΄ 듬
      • μŠ€μΌ€μ€„μ— 긍정적인 효과λ₯Ό 쀌
      • ν’ˆμ§ˆμ„ ν–₯상 μ‹œν‚΄
  • μ›Œν¬ 슀루 : νŒ€μ΄λ‚˜ κ΄€λ¦¬μžμ˜ ν•„μš”μ— 따라 집단 ν† μ˜ ν†΅ν•˜μ—¬ ν”„λ‘œκ·Έλž¨ μ‚°μΆœλ¬Ό 평가와 κ°œμ„ μ— λŒ€ν•˜μ—¬ 검증

ν˜•μƒ 관리

  • ν˜•μƒκ΄€λ¦¬(configuration management)λŠ” ν˜•μƒν•­λͺ©μ„ μ‹λ³„ν•˜μ—¬ κ·Έ κΈ°λŠ₯적, 물리적 νŠΉμ„±μ„ λ¬Έμ„œν™”ν•˜κ³ , κ·ΈλŸ¬ν•œ νŠΉμ„±μ˜ λ³€κ²½, μ œμ–΄, 처리 μƒνƒœλ₯Ό 기둝 및 λ³΄κ³ ν•˜λ©΄μ„œ λͺ…μ‹œλœ μš”κ΅¬μ‚¬ν•­μ— λΆ€ν•©ν•˜λŠ”μ§€ 확인 및 κ°λ…ν•˜λŠ” ν™œλ™μ„ 의미
  • ν˜•μƒ 식별
  • 버전 관리
  • λ³€κ²½ ν†΅μ œ
  • ν˜•μƒ 감사
  • μƒνƒœ 보고
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

λΉ„νŠΈ(bit)

  • λΉ„νŠΈλŠ” 컴퓨터λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•œ κ°€μž₯ 기본적인 μš©μ–΄
  • Binary Digit μ•½μΉ­
  • 0κ³Ό 1둜 κ΅¬μ„±λœ 이진법
  • λΉ„νŠΈμ™€ λ°”μ΄νŠΈμ˜ 관계
    1. byte
    2. kb ν‚¬λ‘œ
    3. mb λ©”κ°€
    4. gb κΈ°κ°€
    5. tb ν…ŒλΌ
    6. pb νŽ˜νƒ€
    7. eb 엑사
  • 컴퓨터 λͺ…λ Ή 전달

컴퓨터 μ‹œμŠ€ν…œ ꡬ쑰

  • ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 및 데이터 μ²˜λ¦¬λŠ” μ€‘μ•™μ²˜λ¦¬μž₯치(CPU)μ—μ„œ μˆ˜ν–‰ → μ €μž₯은 κΈ°μ–΅μž₯치(Memory)μ—μ„œ μˆ˜ν–‰ → μ€‘μ•™μ²˜λ¦¬μž₯치둜 λΆ€ν„° λͺ…령을 λ°›μ•„ 데이터λ₯Ό μž…λ ₯ λ˜λŠ” 좜λ ₯ν•˜λŠ” 일은 μž…μΆœλ ₯ μž₯치(I/O Device)μ—μ„œ μˆ˜ν–‰
  • λͺ…λ Ήμ–΄ 싀행단계
    1. 인좜(Fetch) → 해석(Decode) → μ‹€ν–‰(Excute) → 기둝(Wirte Back)
  • λͺ…λ Ήμ–΄ ν˜•μ‹
    1. μš©λ„μ— 따라 ν•„λ“œλ‘œ λ‚˜λˆŒ 수 있음
    2. ν•„λ“œμ˜ 수, 배치 방법, 각 ν•„λ“œμ— ν¬ν•¨λ˜λŠ” 0κ³Ό 1의 개수λ₯Ό μ •μ˜ν•˜λŠ” 것을 λͺ…λ Ήμ–΄ ν˜•μ‹μ΄λΌ 함
    3. μ—°μ‚° μ½”λ“œ : μˆ˜ν–‰λ  연산을 μ§€μ •
    4. 였퍼 λžœλ“œ : 연산을 μˆ˜ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ 데이터 λ˜λŠ” λ°μ΄ν„°μ˜ μ£Όμ†Œ

ν”„λ‘œκ·Έλž¨μ˜ ꡬ성 μš”μ†Œ

  • 자료ꡬ쑰
    1. λ‹¨μˆœκ΅¬μ‘° : ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ œκ³΅ν•˜λŠ” κΈ°λ³Έ 데이터 νƒ€μž…
    2. μ„ ν˜•κ΅¬μ‘° : μžλ£Œλ“€ μ‚¬μ΄μ˜ μ„ ν›„ 관계가 μΌλŒ€μΌ ꡬ쑰
    3. λΉ„μ„ ν˜•κ΅¬μ‘° : μžλ£Œλ“€ μ‚¬μ˜ μ„ ν›„ 관계가 계측 λ˜λŠ” κ·Έλ¬Ό ν˜•νƒœλ₯Ό κ°€μ§€λŠ” ꡬ쑰
    4. 파일ꡬ쑰 : 보쑰 κΈ°μ–΅μž₯μΉ˜μ— 데이터 값이 μ‹€μ œλ‘œ κΈ°λ‘λ˜λŠ” 자료ꡬ쑰
  • μ•Œκ³ λ¦¬μ¦˜ : μžμ—°μ–΄, μˆœμ„œλ„, μ˜μ‚¬μ½”λ“œ, ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μ΄μš©ν•˜λŠ” 방법이 있음, ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ μ•„λ‹ˆλ”λΌλ„ μ•Œκ³ λ¦¬μ¦˜ ν‘œν˜„ κ°€λŠ₯
    1. μž…λ ₯
    2. 좜λ ₯
    3. λͺ…ν™•μ„±
    4. μœ ν•œμ„±
    5. μœ νš¨μ„±
  • λ³€μˆ˜ : μ–΄λ–€ 값을 μ£ΌκΈ°μ–΅ μž₯μΉ˜μ— κΈ°μ–΅ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 곡간
  • μ‹λ³„μž : ν”„λ‘œκ·Έλž¨μ˜ ꡬ성 μš”μ†Œλ₯Ό κ΅¬λ³„ν•˜κΈ° μœ„ν•œ κΈ°μ€€, λ³€μˆ˜λͺ…이 μ‹λ³„μžμ— 속함
  • 바인딩 : λ³€μˆ˜μ™€ λ³€μˆœμ— κ΄€λ ¨λœ 속성을 μ—°κ²°ν•˜λŠ” κ³Όμ •
    1. 정적 바인딩 : ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œκ°„ 전에 속성을 μ—°κ²°ν•˜λŠ” 방식
    2. 동적 바인딩 : ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œμž”μ— 속성을 μ—°κ²°ν•˜λŠ” 방식
  • μ„ μ–Έ : λ³€μˆ˜μ— 이름, 데이터 νƒ€μž… λ“±μ˜ 속성을 λΆ€μ—¬ν•˜λŠ” μž‘μ—…
    1. λͺ…μ‹œμ  μ„ μ–Έ : 선언문을 μ΄μš©ν•˜μ—¬ λ³€μˆ˜ 이름을 λ‚˜μ—΄ν•˜κ³  속성을 λΆ€μ—¬ν•˜λŠ” 방식
    2. λ¬΅μ‹œμ  μ„ μ–Έ : λ³„λ„μ˜ μ„ μ–Έλ¬Έ 없이 λ””ν΄νŠΈ κ·œμΉ™μ— μ˜ν•΄ 속성이 λΆ€μ—¬λ˜λŠ” 방식
  • μ˜μ—­ : 이름이 μ‚¬μš©λ˜λŠ” λ²”μœ„λ₯Ό 의미
    1. 정적 μ˜μ—­ : λ³€μˆ˜λ₯Ό μ°Ύμ„λ•Œ ꡬ쑰에 κΈ°λ°˜ν•˜λŠ” 방식
    2. 동적 μ˜μ—­ : λ³€μˆ˜λ₯Ό μ°Ύμ„λ•Œ κ΅¬μ‘°λ³΄λ‹€λŠ” μˆœμ„œμ— κΈ°λ°˜ν•˜λŠ” 방식
  • ν• λ‹Ή : λ³€μˆ˜μ— λ©”λͺ¨λ¦¬ 곡간을 λ°”μΈλ”©ν•˜λŠ” μž‘μ—…μ„ 의미
  • 데이터 νƒ€μž… : λ³€μˆ˜κ°€ κ°€μ§ˆ 수 μž‡λŠ” μ†μ„±κ°’μ˜ 길이 및 μ„±μ§ˆμ„ 의미
    1. 뢈린 νƒ€μž… : 쑰건이 참인지 거짓인지 νŒλ‹¨ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
    2. 문자 νƒ€μž… : 문자 ν•˜λ‚˜λ₯Ό μ €μž₯ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
    3. λ¬Έμžμ—΄ νƒ€μž… : λ‚˜μ—΄λœ μ—¬λŸ¬ 개의 문자λ₯Ό μ €μž₯ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
    4. μ •μˆ˜ νƒ€μž… : μ •μˆ˜κ°’μ„ μ €μž₯ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
    5. 뢀동 μ†Œμˆ˜μ  νƒ€μž… : μ†Œμˆ˜μ μ„ ν¬ν•¨ν•˜λŠ” μ‹€μˆ˜κ°’μ„ μ €μž₯ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
    6. λ°°μ—΄ νƒ€μž… : μ—¬λŸ¬ 데이터λ₯Ό ν•˜λ‚˜λ₯Ό λ¬Άμ–΄μ„œ μ €μž₯ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©
  • μ—°μ‚°μž : 데이터 처리λ₯Ό μœ„ν•΄ 연산을 ν‘œν˜„ν•˜λŠ” 기호둜 +,- λ“±κ³Ό 같은 μ—°μ‚°μžλ₯Ό 포함
  • λͺ…λ Ήλ¬Έ : ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•˜λŠ” λ¬Έμžμ‘λ‘œ, μ§€μ‹œ 사항을 μ²˜λ¦¬ν•˜λŠ” λ‹¨μœ„λ₯Ό 의미

μ—°μ‚°μž

  • μ‚°μˆ  μ—°μ‚°μž
    1. +, -, *, /, %(λ‚˜λ¨Έμ§€)
  • μ‹œν”„νŠΈ μ—°μ‚°μž
    1. << : μ™Όμͺ½ 값을 였λ₯Έμͺ½ κ°’λ§ŒνΌ λΉ„νŠΈλ₯Ό μ™Όμͺ½μœΌλ‘œ μ΄λ™μ‹œν‚΄
    2. : μ™Όμͺ½ 값에 였λ₯Έμͺ½ κ°’λ§ŒνΌμ˜ λΆ€ν˜Έ λΉ„νŠΈλ₯Ό μ±„μš°λ©΄μ„œ μ™Όμͺ½μœΌλ‘œ 이동

  • 관계 μ—°μ‚°μž
    1.  
    2. <
    3. =

    4. =<
    5. == : μ™Όμͺ½μ— μžˆλŠ” 값이 였λ₯Έμͺ½κ³Ό κ°™μœΌλ©΄ μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“
    6. != : μ™Όμͺ½μ— μžˆλŠ” 값이 였λ₯Έμͺ½κ³Ό λ‹€λ₯΄λ©΄ μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“
  • 논리 μ—°μ‚°μž
    1. && : 두 개의 논리값이 λͺ¨λ‘ 참이면 μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“
    2. || : 두 개의 논리값 쀑 ν•˜λ‚˜κ°€ 참이면 μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“
  • λΉ„νŠΈ μ—°μ‚°μž
    1. & : 두 값을 λΉ„νŠΈλ‘œ μ—°μ‚°ν•˜μ—¬ λͺ¨λ‘ 참이면 μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“
    2. | : 두 값을 λΉ„νŠΈλ‘œ μ—°μ‚°ν•˜μ—¬ ν•˜λ‚˜κ°€ 참이면 μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“
    3. ^ : 두 값을 λΉ„νŠΈλ‘œ μ—°μ‚°ν•˜μ—¬ μ„œλ‘œ λ‹€λ₯΄λ©΄ μ°Έ κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ κ±°μ§“

쑰건문

  • if, case/switch

반볡문

  • while, for, do

μ‚¬μš©μž μ •μ˜ μžλ£Œν˜• ν™œμš©

  • 열거체
    1. κ΄„ν˜Έ μ•ˆμ— 연속적인 값이 λ“€μ–΄κ°€λŠ” μžλ£Œν˜•
    2. νŠΉμ • 값을 λ„£μ–΄μ£Όμ§€ μ•ŠμœΌλ©΄ 1μ”© λŠ˜μ–΄λ‚˜κΈ° λ•Œλ¬Έμ— μƒμˆ˜λ°°μ—΄μ΄λΌκ³ λ„ 함
  • ꡬ쑰체
    1. κ΄„ν˜Έ μ•ˆμ— 멀버 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 자료
  • 곡용체
    1. ꡬ쑰체와 거의 μœ μ‚¬ν•˜λ‚˜ 쑰금 더 λ²”μ£Όκ°€ 크닀고 λ³Ό 수 있음
  • 좔상화
    1. λ³΅μž‘ν•œ 문제의 λ³Έμ§ˆμ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ μ„ΈλΆ€ 사항은 λ°°μ œν•˜κ³  μ€‘μš”ν•œ 뢀뢄을 μ€‘μ‹¬μœΌλ‘œ κ°„λž΅ν™”ν•˜λŠ” 기법
      • κΈ°λŠ₯ 좔상화 : μž…λ ₯ 자료λ₯Ό 좜λ ₯ 자료둜 λ³€ν™˜ν•˜λŠ” 과정을 μΆ”μƒν™”ν•˜λŠ” 방법
      • 자료 좔상화 : μžλ£Œμ™€ μžλ£Œμ— μ μš©ν•  수 μžˆλŠ” μ˜€νΌλ ˆμ΄μ…˜μ„ ν•¨κ»˜ μ •μ˜ν•˜λŠ” 방법
      • μ œμ–΄ 좔상화 : μ™ΈλΆ€ μ΄λ²€νŠΈμ— λŒ€ν•œ λ°˜μ‘μ„ μΆ”μƒν™”ν•˜λŠ” 방법
  • 상속
    1. μƒμœ„ μˆ˜μ€€ 그룹의 λͺ¨λ“  νŠΉμ„±μ„ ν•˜μœ„ μˆ˜μ€€ 그룹이 이어받아 μž¬μ‚¬μš© λ˜λŠ” ν™•μž₯ν•˜λŠ” νŠΉμ„±μ„ 의미
    2. 단일 상속, 닀쀑 상속이 있음
  • ꡬ체화
    1. ν•˜μœ„ μˆ˜μ€€ 그룹이 μƒμœ„ μˆ˜μ€€ 그룹의 좔상적인 뢀뢄을 κ΅¬μ²΄ν™”μ‹œν‚€λŠ” 것을 의미

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ μœ ν˜• λΆ„λ₯˜

  • 개발 νŽΈμ˜μ„±μ— λ”°λ₯Έ λΆ„λ₯˜
    1. μ €κΈ‰ μ–Έμ–΄ : 기계가 이해할 수 μžˆλ„λ‘ λ§Œλ“€μ–΄μ§„ μ–Έμ–΄, 기계어, μ–΄μ…ˆλΈ”λ¦¬μ–΄
    2. κ³ κΈ‰ μ–Έμ–΄ : κ°œλ°œμžκ°€ μ†ŒμŠ€μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ μ‰½κ²Œ 이해할 수 μžˆλ„λ‘ μž‘μ„±λœ μ–Έμ–΄λ‘œ C, C++, JAVA κ³ κΈ‰ μ–Έμ–΄
  • μ‹€ν–‰ν•˜λŠ” 방식에 λ”°λ₯Έ λΆ„λ₯˜
    1. λͺ…λ Ήν˜• μ–Έμ–΄ : 컴퓨터에 μ €μž₯된 λͺ…령어듀이 순차적으둜 μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μœΌλ‘œ μ ˆμ°¨ν˜• 언어라고 함, FORTRAN, COBOL, PASCAL, C
    2. ν•¨μˆ˜ν˜• μ–Έμ–΄ : μˆ˜ν•™μ  μˆ˜μ‹κ³Ό 같은 ν•¨μˆ˜λ“€λ‘œ ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•˜μ—¬ ν˜ΈμΆœν•˜λŠ” 방식, LISP
    3. λ…Όλ¦¬ν˜• μ–Έμ–΄ : κ·œμΉ™μ— λŒ€ν•œ ν™œμ„±ν™” 쑰건이 만쑱되면 μ—°κ΄€λ˜ κ·œμΉ™μ΄ μ‹€ν–‰λ˜λŠ” ꡬ쑰, μΆ”λ‘ κ³Ό 관계 κ·œμΉ™μ— μ˜ν•΄ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό μ–»λŠ” 방식, PROLOG
    4. 객체 μ§€ν–₯ μ–Έμ–΄ : 객체 κ°„μ˜ λ©”μ‹œμ§€ 톡신을 μ΄μš©ν•˜μ—¬ ν”„λ‘œκ·Έλž˜λ° ν•˜λŠ” 방식, JAVA, C++
  • κ΅¬ν˜„ 기법에 λ”°λ₯Έ λΆ„λ₯˜
    1. 컴파일 λ°©μ‹μ˜ μ–Έμ–΄ : κ³ κΈ‰ μ–Έμ–΄λ₯Ό 기계어λ₯Ό λ²ˆμ—­ν•˜λŠ” λ°©μ‹μ˜ μ–Έμ–΄, FORTRAN, PASCAL, C, C++ λ“± 컴파일 λ°©μ‹μ˜ μ–Έμ–΄, 싀행에 ν•„μš”ν•œ 정보가 컴파일 μ‹œκ°„μ— κ³„μ‚°λ˜μ–΄ μ‹€ν–‰ 속도가 λ†’λ‹€λŠ” νŠΉμ§•
    2. 인터프리터 λ°©μ‹μ˜ μ–Έμ–΄ : κ³ κΈ‰ μ–Έμ–΄ λͺ…령문을 ν•˜λ‚˜μ”© λ²ˆμ—­ν•˜κ³  μ‹€ν–‰ν•˜λŠ” λ°©μ‹μ˜ μ–Έμ–΄, BASIC, PROLOG, LISP, SNOBOL, ν”„λ‘œκ·Έλž¨ μ‹€ν–‰μ‹œμ— κ³„μ‚°λœλ‹€λŠ” νŠΉμ§•μ„ κ°€μ§€κ³  있음
    3. ν˜Όν•©ν˜• λ°©μ‹μ˜ μ–Έμ–΄ : κ³ κΈ‰ μ–Έμ–΄λ₯Ό 컴파일 ν•˜μ—¬ 쀑간 μ–Έμ–΄λ‘œ λ³€ν™˜ ν›„, 인터프리터에 μ˜ν•΄ λ²ˆμ—­μ„ μ‹€ν–‰ν•˜λŠ” λ°©μ‹μ˜ μ–Έμ–΄λ₯Ό 의미, JAVA

컴파일러

  • κ³ κΈ‰μ–Έμ–΄λ₯Ό κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­ν•˜λŠ” 도ꡬ
  • μ»΄νŒŒμΌλ°©μ‹μ˜ μ–Έμ–΄λŠ” λͺ¨λ‘ 컴파일러λ₯Ό ν•„μš”

인터프리터

  • ν”„λ‘œκ·Έλž¨ λ¬Έμž₯을 ν•˜λ‚˜μ”© λ²ˆμ—­ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•˜λŠ” ν”„λ‘œκ·Έλž¨
  • κ°œλ°œν•˜λŠ” κ³Όμ •μ—μ„œ μ‚¬μš©ν•˜λ©΄ 유용
  • 인터프리터 λ°©μ‹μ˜ μ–Έμ–΄λŠ” λͺ¨λ‘ 인터프리터λ₯Ό ν•„μš”
  • 싀행속도가 느리고 λ©”λͺ¨λ¦¬ μ‚¬μš©μ΄ λΉ„νš¨μœ¨μ μž„

μ ˆμ°¨μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°

  • κ°μ²΄λΌλŠ” κ°œλ…μ΄ λ“±μž₯ν•˜κΈ° 이전에 λͺ¨λ“ˆ, λ³€μˆ˜, ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°œλ°œν•˜λŠ” 방법
  • ν”„λ‘œκ·Έλž¨μ„ 순차적으둜 μˆ˜ν–‰μ‹œν‚€λŠ” 방법
  • μžλ£Œκ΅¬μ‘°μ™€ λͺ…λ Ή μ€‘μ‹¬μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ ꡬ성

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

  • 객체와 객체 κ°„μ˜ 톡신을 톡해 ν”„λ‘œκ·Έλž¨μ΄ κ΅¬ν˜„λ¨
  • 객체와 속성, λ©”μ†Œλ“œλ‘œ κ΅¬μ„±λ˜λŠ”λ°, 절차 μ§€ν–₯μ—μ„œμ˜ λͺ¨λ“ˆμ€ 객체에 λŒ€μ‘λ˜κ³ , λ³€μˆ˜λŠ” 속성에 λŒ€μ‘λ˜λ©°, ν•¨μˆ˜λŠ” λ©”μ†Œλ“œμ— λŒ€μ‘
  • 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ ꡬ성 μš”μ†Œ
    1. 객체(Object) : 개체, 속성, λ©”μ†Œλ“œλ‘œ κ΅¬μ„±λœ 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό 의미
    2. 클래슀(Class) : 객체의 νƒ€μž…μ„ μ •μ˜ν•˜κ³  객체λ₯Ό μƒμ„±ν•˜λŠ” 틀을 의미
    3. λ©”μ‹œμ§€(Message) : 객체 κ°„μ˜ 톡신을 의미
  • 객체의 ꡬ성 μš”μ†Œ
    1. 개체(Entity) : ν˜„μ‹€ 세계에 λ³΄μ΄λŠ” λ³Έμ§ˆμ„ 의미
    2. 속성(Attribute) : 자료 μ €μž₯μ†Œ 역할을 ν•˜λ©°, 절차 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ λ³€μˆ˜μ™€ λŒ€μ‘
    3. λ©”μ†Œλ“œ(Method) : 호좜 λ‹¨μœ„λ₯Ό 의미, 절차 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ ν•¨μˆ˜μ™€ λŒ€μ‘

ν”„λ‘œκ·Έλž˜λ§Ή μ–Έμ–΄ νŒ¨ν„΄

  • 싱글톀 νŒ¨ν„΄ : 였직 ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ§Œμ„ 가지도둝 ν•˜λŠ” νŒ¨ν„΄
  • νŒ©ν† λ¦¬ λ©”μ†Œλ“œ νŒ¨ν„΄ : μ–΄λ–€ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν• μ§€λŠ” μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•˜λ„λ‘ ν•˜λŠ” νŒ¨ν„΄
  • μ˜΅μ„œλ²„ νŒ¨ν„΄ : ν•˜λ‚˜μ˜ 였브젝트 μƒνƒœκ°€ λ³€ν•  λ•Œ κ΄€λ ¨μžμ—κ²Œ μ•Œλ¦¬κ³  μžλ™ μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” νŒ¨ν„΄
  • νΌμ‚¬λ“œ νŒ¨ν„΄ : ν•˜λ‚˜μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ μ œκ³΅ν•˜λŠ” νŒ¨ν„΄
  • ν”„λ½μ‹œ νŒ¨ν„΄ : 객체의 λŒ€λ¦¬μžλ₯Ό μ΄μš©ν•˜μ—¬ λ‹€λ₯Έ 객체둜의 접근을 ν†΅μ œν•˜λŠ” νŒ¨ν„΄
  • μ»€λ§¨λ“œ νŒ¨ν„΄ : μš”μ²­ 자체λ₯Ό μΊ‘μŠν™”ν•˜μ—¬ νŒŒλΌλ―Έν„°λ₯Ό μ „λ‹¬ν•˜λŠ” νŒ¨ν„΄
  • ν…œν”Œλ¦Ώ λ©”μ†Œλ“œ νŒ¨ν„΄ : ν…œν”Œλ¦Ώμ„ μ •μ˜ν•˜κ³  κ΅¬μ²΄ν™”λŠ” μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ •μ˜ ν•˜λŠ” νŒ¨ν„΄

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

  • μ–΄λ–€ λΆ„μ•Όμ—μ„œ 반볡적으둜 λ‚˜νƒ€λ‚˜λŠ” λ¬Έμ œμ λ“€μ— λŒ€ν•΄ μ „λ¬Έκ°€λ“€μ˜ κ²½ν—˜μ„ μ •λ¦¬ν•˜μ—¬ ν•΄κ²°λ°©μ•ˆμ„ μ œμ‹œν•œ νŒ¨ν„΄

라이브러리

  • 효율적인 ν”„λ‘œκ·Έλž¨ κ°œλ°œμ„ μœ„ν•΄ ν•„μš”ν•œ ν”„λ‘œκ·Έλž¨μ„ λͺ¨μ•„ 놓은 집합체
  • ν•„μš”ν•  λ•Œ μ°Ύμ•„μ„œ μ“Έ 수 μžˆλ„λ‘ λͺ¨λ“ˆν™” λ˜μ–΄ μ œκ³΅λ˜λŠ” ν”„λ‘œκ·Έλž¨
  • 라이브러리 ꡬ성
    1. 도움말
    2. μ„€μΉ˜ 파일
    3. μƒ˜ν”Œ μ½”λ“œ
  • ν‘œμ€€ 라이브러리
    1. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ 기본적으둜 κ°€μ§€κ³  μžˆλŠ” 라이브러리λ₯Ό 의미
    2. μ—¬λŸ¬ μ’…λ₯˜μ˜ λͺ¨λ“ˆκ³Ό νŒ¨ν‚€μ§€λ₯Ό 가짐
  • μ™ΈλΆ€ 라이브러리
    1. ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ 달리 λ³„λ„μ˜ νŒŒμΌμ„ μ„€μΉ˜ν•΄μ•Ό 함
    2. λˆ„κ΅¬λ‚˜ κ°œλ°œν•˜μ—¬ μ„€μΉ˜ ν•  수 있음
    3. 인터넷 κ³΅μœ ν•  수 있음

λͺ¨λ“ˆ

  • ν•œκ°μ˜ νŒŒμΌμ—μ„œ κΈ°λŠ₯을 제곡

νŒ¨ν‚€μ§€

  • μ—¬λŸ¬ 개의 λͺ¨λ“ˆμ„ ν•œ 개의 폴더에 λ¬Άμ–΄μ„œ κΈ°λŠ₯을 제곡
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

운영체제

  • ν•˜λ“œμ›¨μ–΄λ₯Ό 보닀 μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•΄ μ£ΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄λ‹€.
  • 쀑앙 처리 μž₯치, κΈ°μ–΅μž₯치, 톡신μž₯치, μž…μΆœλ ₯ μž₯μΉ˜λ“±μœΌλ‘œ ꡬ뢄
  • μ‚¬μš©μž νŽΈμ˜μ„±μ„ μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€μΈ λ™μ‹œμ— λ‹€μ–‘ν•œ μžμ›μ„ κ΄€λ¦¬ν•˜λŠ” μžμ› κ΄€λ¦¬μž μž„

μœˆλ„μš°μ¦ˆ

  • λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ‚¬μ—μ„œ 개발
  • μœ λ‹‰μŠ€ κ³„μ—΄μ˜ μš΄μ˜μ²΄μ œμ— λΉ„ν•΄ λ³΄μ•ˆμ— μ·¨μ•½
  • 문제점 λ°œκ²¬μ‹œ μˆ˜μ • μ‹œκ°„μ΄ κΉ€
  • 고객지원 μ²΄κ³„μ μž„

λ¦¬λˆ…μŠ€, μœ λ‹‰μŠ€

  • μœ λ‹‰μŠ€ : λ©€ν‹°νƒœμŠ€ν¬ κΈ°λŠ₯ 초점, Cμ–Έμ–΄λ‘œ μž¬μ΄μ‹ λ˜μ–΄ λŒ€μ€‘ν™” 기반 마련
  • λ¦¬λ‹‰μˆ˜ : λ¦¬λˆ„μŠ€ ν† λ°œμ¦ˆ, μœ λ‹‰μŠ€ ν˜Έν™˜ 컀널, μžμœ μ†Œν”„νŠΈμ›¨μ–΄

CLI / GUI

  • CLI : μ‚¬μš©μžκ°€ 직접 λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ—¬ μ»΄ν“¨ν„°μ—κ²Œ λͺ…령을 λ‚΄λ¦¬λŠ” 방식
    1. λ¦¬λˆ…μŠ€ μ΅œμƒμœ„ μœ μ € #, 일반 μœ μ € $둜 ν‘œμ‹œ
  • GUI : 마우슀둜 화면을 ν΄λ¦­ν•˜μ—¬ 컴퓨터λ₯Ό μ œμ–΄ν•˜λŠ” 방식

λ¦¬λˆ…μŠ€ / μœ λ‹‰μŠ€ 계열 운영체제의 κΈ°λ³Έ λͺ…λ Ήμ–΄

  • Shellμ—μ„œ μž…λ ₯ν•  수 있음
  • μ„Έμ…˜λ³„ λ³€μˆ˜ μ„€μ •, 운영체제λ₯Ό μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μƒνƒœλ‘œ μ„€μ •
  • μ‚¬μš©μž μš”μ²­μ— κΈ°λ°˜ν•œ λͺ…λ Ήλ ¬ μž‘μ„±
  • 백그라운 처리, μ„œλΈŒ μ…Έ 생성
  • 일련의 λͺ…λ Ήμ–΄λ₯Ό λ¬Άμ–΄ μ²˜λ¦¬ν•˜λŠ” 슀크립트 κΈ°λŠ₯ 지원
  • Bourne 계열 : Bash μ…€, Korn μ…Έ, Bourne μ…Έ
  • C 계열 : Csh, Tcsh, Zsh, Ash
  • λ¦¬λˆ…μŠ€ μ΅œμƒμœ„ μœ μ € #, 일반 μœ μ € $둜 ν‘œμ‹œ

운영체제 핡심 κΈ°λŠ₯

  • λ©”λͺ¨λ¦¬κ΄€λ¦¬
    1. ν”„λ‘œκ·Έλž¨μ˜ 싀행이 μ’…λ£Œλ  λ•ŒκΉŒμ§€ λ©”λͺ¨λ¦¬λ₯Ό κ°€μš©ν•œμƒνƒœλ‘œ μœ μ§€ 및 κ΄€λ¦¬ν•˜λŠ” 것
    2. CPUλŠ” Virtual/logical addressλ₯Ό, λ©”λͺ¨λ¦¬λŠ” physical addressλ₯Ό μ‚¬μš©ν•˜λŠ”λ° 이λ₯Ό λ§€ν•‘ν•˜λŠ” 것은 MMU(Memory Management Unit)κ°€ λ‹΄λ‹Ή
    3. μ–΄λ–€ μˆœμ„œλ‘œ λ©”λͺ¨λ¦¬μ— μž…μΆœλ ₯λ˜μ–΄μ•Ό ν•˜λŠ”μ§€, 곡간을 μ–΄λ–»κ²Œ 확보 및 μ œκ±°ν• μ§€μ— λŒ€ν•œ 쒅합적인 관리
  • ν”„λ‘œμ„ΈμŠ€κ΄€λ¦¬
    1. μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ„ ν”„λ‘œμ„ΈμŠ€λΌ 함
    2. ν”„λ‘œμ„ΈμŠ€κ΄€λ¦¬ κΈ°λ²•μ—λŠ” 'μΌμ‹œ 쀑지 및 μž¬μ‹€ν–‰', '동기화', '톡신', 'κ΅μ°©μƒνƒœ 처리', 'ν”„λ‘œμ„ΈμŠ€ 생성 μ‚­μ œ' 등이 있음

가상화

  • 물리적인 λ¦¬μ†ŒμŠ€λ“€μ„ μ‚¬μš©μžμ—κ²Œ ν•˜λ‚˜λ‘œ 보이게 ν•˜κ±°λ‚˜, λ°˜λŒ€λ‘œ ν•˜λ‚˜μ˜ 물리적인 λ¦¬μ†ŒμŠ€λ₯Ό μ—¬λŸ¬ 개둜 보이게 ν•˜λŠ” 것을 의미
  • ν”Œλž«νΌ 가상화와 λ¦¬μ†ŒμŠ€ κ°€μƒν™”λ‘œ ꡬ뢄

ν΄λΌμš°λ“œ

  • 인터넷 κΈ°λ°˜μ—μ„œ κ΅¬λ™λ˜λŠ” μ»΄ν“¨νŒ… κΈ°μˆ μ„ 의미
  • ν΄λΌμš°λ“œ μ„œλΉ„μŠ€
    1. IaaS(Infrastructure as a Service) : μ›Ήμƒμ—μ„œ ꡬ글 λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ, μ•„λ§ˆμ‘΄ λ“±μ—μ„œ μ œκ³΅ν•˜λŠ” ν™˜κ²½μ˜ λ„€νŠΈμ›Œν¬, λ³΄μ•ˆ, 데이터 μ €μž₯μ†Œ, μ½˜ν…μΈ  λ”œλ¦¬λ²„λ¦¬ μ„œλΉ„μŠ€λ₯Ό ν¬ν•¨ν•œ λ‹€μ–‘ν•œ 인프라λ₯Ό μž„λŒ€ν•˜μ—¬ μ΄μš©ν•  수 μžˆλŠ” μ„œλΉ„μŠ€
    2. PaaS(Platform as a Service) : μš΄μ˜μ²΄μ œκ°€ 이미 κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μƒνƒœμ—μ„œ μ‚¬μš©μžλŠ” 데이터와 μ• ν”Œλ¦¬μΌ€μ΄μ…”λ§Œ 직접 관리할 수 μžˆλŠ” μ„œλΉ„μŠ€
    3. SaaS(Software as a Service) : 인프라와 운영체제뿐만 μ•„λ‹ˆλΌ μ‚¬μš©ν•  수 μžˆλŠ” μ†Œν”„νŠΈμ›¨μ–΄κΉŒμ§€ κ°–μΆ”μ–΄μ Έ μ›Ήμƒμ˜ 둜그인만으둜 λ‹€μ–‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‚¬μš©ν•œ 만큼 λΉ„μš©μ„ μ§€λΆˆν•΄ κ°€λ©° μ‚¬μš©ν•  수 μžˆλŠ” μ„œλΉ„μŠ€

λ°μ΄ν„°λ² μ΄μŠ€

  • λ‹€μˆ˜μ˜ 인원, μ‹œμŠ€ν…œ λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•  λͺ©μ μœΌλ‘œ ν†΅ν•©ν•˜μ—¬ κ΄€λ¦¬λ˜λŠ” λ°μ΄ν„°μ˜ μ§‘ν•©
  • 쀑볡성, 무결성, 일관성, μœ μš©μ„±μ΄ λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ˜ 핡심
  • DBMS : 데이터 κ΄€λ¦¬μ˜ λ³΅μž‘μ„±μ„ ν•΄κ²°ν•˜λŠ” λ™μ‹œμ— 데이터 μΆ”κ°€, λ³€κ²½, 검색, μ‚­μ œ 및 λ°±μ—…, 볡ꡬ, λ³΄μ•ˆ λ“±μ˜ κΈ°λŠ₯을 μ§€μ›ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄

λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ’…λ₯˜

  • 파일 μ‹œμŠ€ν…œ
    1. νŒŒμΌμ— 이름을 λΆ€μ—¬ν•˜κ³  μ €μž₯μ΄λ‚˜ 검색을 μœ„ν•˜μ—¬ λ…Όλ¦¬μ μœΌλ‘œ 그것듀을 어디에 μœ„μΉ˜μ‹œμΌœμ•Ό ν•˜λŠ”μ§€ 등을 μ •μ˜ν•œ λ’€ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œ
    2. ISAM, VSAM
  • κ³„μΈ΅ν˜• λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ(HDBMS)
    1. 데이터λ₯Ό μƒν•˜ 쒅속적인 κ΄€κ³„λ‘œ κ³„μΈ΅ν™”ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€
    2. 접근속도 λΉ λ₯΄λ‚˜ λ³€ν™”ν•˜λŠ” 데이터 ꡬ쑰에 μœ μ—°ν•˜κ²Œ λŒ€μ‘ν•˜κΈ°μ‚¬ 쉽지 μ•ŠμŒ
    3. IMS, System200
  • λ§ν˜• λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ(NDBMS)
    1. λ°μ΄ν„°μ˜ ꡬ쑰λ₯Ό λ„€νŠΈμ›Œν¬μƒμ˜ 망상 ν˜•νƒœλ‘œ λ…Όλ¦¬μ μœΌλ‘œ ν‘œν˜„ν•œ 데이터 λͺ¨λΈ
    2. νŠΈλ¦¬κ΅¬μ‘°λ‚˜ κ³„μΈ΅ν˜• λ°μ΄ν„°λ² μ΄μŠ€λ΄ μœ μ—°ν•˜μ§€λ§Œ 섀계가 볡작
    3. IDS TOTAL, IDMS
  • κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ(RDBMS)
    1. κ°€μž₯ λ³΄νŽΈν™”λœ λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ
    2. 상관관계 정리, λ³€ν™”ν•˜λŠ” μ—…λ¬΄λ‚˜ 데이트 ꡬ쑰에 λŒ€ν•œ μœ μ—°μ„±μ΄ μ’‹μ•„ μœ μ§€κ΄€λ¦¬κ°€ 용이
    3. Oracle, SQL Server, MySQL, Maria DB

λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ(DBMS) νŠΉμ§•

  • 무결성 : λ™μΌν•œ λ‚΄μš©μ— λŒ€ν•˜μ—¬ μ„œλ‘œ λ‹€λ₯Έ 데이터가 μ €μž₯된느 것을 ν—ˆμš©ν•˜μ§€ μ•ŠμŒ
  • 일관성 : μ‚½μž…, μ‚­μ œ, κ°±μ‹ , 생성 후에도 μ €μž₯된 데이터가 λ³€ν•˜μ§€ μ•ŠμŒ
  • νšŒλ³΅μ„± : μž₯μ• κ°€ λ°œμƒν•˜μ˜€μ„ μ‹œ νŠΉμ • μƒνƒœλ‘œ λ³΅κ΅¬λ˜μ–΄μ•Όν•¨
  • λ³΄μ•ˆμ„± : λΆˆλ²•μ μΈ λ…ΈμΆœ, λ³€κ²½, μ†μ‹€λ‘œλΆ€ν„° λ³΄ν˜Έλ˜μ–΄μ•Όν•¨
  • νš¨μœ¨μ„± : 응닡 μ‹œκ°„, μ €μž₯ 곡간 ν™œμš© 듀이 μ΅œμ ν™”λ˜μ–΄ μ‚¬μš©μž μš”κ΅¬ 쑰건을 만쑱 μ‹œμΌœμ•Όν•¨

ERD

  • 업무 뢄석 결과둜 λ„μΆœλœ 싀체(μ—”ν‹°ν‹°)와 μ—”ν‹°ν‹° κ°„μ˜ 관계λ₯Ό λ„μ‹ν™”ν•œ 것

  • ER Model

    1. μ—”ν‹°ν‹°(Entity)

      • 개체
      • μ‚¬κ°ν˜•μœΌλ‘œ λ‚˜νƒ€λ‚΄κ³  μ‚¬κ°ν˜• μ•ˆμ— μ—”ν‹°ν‹° 이름을 λ„£μŒ
      • κ°€λŠ₯ν•œ λŒ€λ¬Έμžλ‘œ μ“°κ³  λ‹¨μˆ˜ν˜•μœΌλ‘œ λͺ…λͺ…함
      • μœ μΌν•œ λ‹¨μ–΄λ‘œ μ •μ˜
    2. 속성(Attribute)

      • μ—”ν‹°ν‹°κ°€ κ°€μ§€κ³  μžˆλŠ” μš”μ†Œ λ˜λŠ” μ„±μ§ˆ
      • μ„ μœΌλ‘œ μ—°κ²°λœ λ™κ·ΈλΌλ―Έλ‘œ ν‘œκΈ°
      • 속성λͺ…은 λ‹¨μˆ˜ν˜•μœΌλ‘œ λͺ…λͺ…
      • μ—”ν‹°ν‹°λͺ…을 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ
      • 속성이 ν•„μˆ˜ 사항인지, ν•„μˆ˜ 사항이 μ•„λ‹Œμ§€ κ³ λ €ν•˜μ—¬ μž‘μ„±
    3. 관계(Relationship)
    4.  
  • ERD μ΅œμ ν™”(μ •κ·œν™” μˆ˜ν–‰)

    1. λ°μ΄ν„°λ² μ΄μŠ€ μ •κ·œν™”λŠ” 무결성을 ν™•λ³΄ν•˜κ³  쀑볡성을 λ°°μ œν•˜μ—¬ ν…Œμ΄λΈ”μ— μ •ν™•ν•œ 데이터가 듀어가도둝 ν•˜λŠ”λ° λͺ©μ μ΄ 있음
    2. 쀑볡성을 μ—†μ• λ©΄ μ €μž₯ 곡간을 μ΅œμ†Œν™”ν•˜κ³  μ‹œμŠ€ν…œμœΌ 속도 λ˜ν•œ λΉ λ₯΄κ²Œ ν•  수 있음
    3. 1μ°¨ μ •κ·œν™” : λ°˜λ³΅λ˜λŠ” 그룹의 속성을 λ³„λ„λ‘œ μΆ”μΆœ
    4. 2μ°¨ μ •κ·œν™” : λΆ€λΆ„ ν•¨μˆ˜μ  쒅속성을 제거
    5. 3μ°¨ μ •κ·œν™” : 킀에 μ’…μ†λ˜μ§€ μ•ŠλŠ” μΉΌλŸΌμ„ μ œκ²†33

WAN

  • κ΅­κ°€, λŒ€λ₯™κ³Ό 같이 κ΄‘λ²”μœ„ν•œ 지역을 μ—°κ²°
  • LAN보닀 속도가 느리고 μ—λŸ¬μœ¨λ„ λ†’μŒ
  • νšŒμ„ κ΅ν™˜λ°©μ‹
    1. 물리적 μ „μš©μ„ μ„ ν™œμš©
    2. 동일 경둜둜만 전달
    3. 데이터λ₯Ό λ™μ‹œμ— 전솑할 수 μžˆλŠ” 양을 μ˜λ―Έν•˜λŠ” λŒ€μ—¬ν­μ΄ κ³ μ •
    4. μ•ˆμ •μ μΈ 전솑λ₯  확보
  • νŒ¨ν‚· κ΅ν™˜λ°©μ‹
    1. νŒ¨ν‚·μ΄λΌλŠ” λ‹¨μœ„λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ†‘μ‹ ν•˜κ³  μˆ˜μ‹ 
    2. νŒ¨ν‚· : 정보λ₯Ό μΌμ •ν•œ 크기둜 λΆ„ν• ν•œ λ’€ 각각의 νŒ¨ν‚·μ— μ†‘μˆ˜μ‹  μ£Όμ†Œ 및 λΆ€κ°€ 정보λ₯Ό μž…λ ₯

OSI 7 계측

  • ISOμ—μ„œ κ°œλ°œν•œ λ„€νŠΈμ›Œν¬ 계측 ν‘œν˜„ λͺ¨λΈ
  • OSI 7 계측
    1. 물리 계측 : μ‹€μ œ μž₯비듀을 μ—°κ²°ν•˜κΈ° μœ„ν•œ μ—°κ²° μž₯치 (ν—ˆλΈŒ, 리피터)
    2. 데이터 링크 계측 : 였λ₯˜μ™€ 흐름을 μ œκ±°ν•˜μ—¬ μ‹ λ’°μ„± μžˆλŠ” 데이터 전솑 (λΈŒλ¦¬μ§€, μŠ€μœ„μΉ˜)
    3. λ„€νŠΈμ›Œν¬ 계측 : λ‹€μˆ˜μ˜ μ€‘κ°œ μ‹œμŠ€ν…œ 쀑 μ˜¬λ°”λ₯Ό 경둜λ₯Ό μ„ νƒν•˜λ„λ‘ 지원 (λΌμš°ν„°)
    4. 전솑 계측 : 솑신, μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ μ—°κ²° (TCP/IP, UDP)
    5. μ„Έμ…˜ 계측 : 솑신, μˆ˜μ‹  κ°„μ˜ 논리적 μ—°κ²° (호슀트, PC)
    6. ν‘œν˜„ 계측 : μ½”λ“œ 문자 등을 λ²ˆμ—­ν•˜μ—¬ μΌκ΄€λ˜κ²Œ μ „μ†‘ν•˜κ³  μ••μΆ•, ν•΄μ œ, λ³΄μ•ˆ κΈ°λŠ₯도 λ‹΄λ‹Ή (호슀트, PC)
    7. μ‘μš© 계측 : μ‚¬μš©μž μΉœν™” ν™˜κ²½μ œκ³΅ (이메일, μ›Ή)

λ„€νŠΈμ›Œν¬ μž₯치

  • NIC (Network Interface Card) : 컴퓨터에 μž₯μ°©λ˜μ–΄ μžˆλŠ” λžœμΉ΄λ“œλ₯Ό μ˜λ―Έν•œλ‹€. μ»΄ν“¨ν„°μ—μ„œ λ°œμƒν•˜λŠ” 데이터(자료)λ₯Ό 전솑가λŠ₯ν•œ 전기적인 μ‹ ν˜Έλ‘œ λ³€ν™˜ν•˜κ³ , λ³΅μ›ν•˜λŠ” 역할을 μˆ˜ν–‰
  • LAN 케이블 : NIC κ°€ λ³€ν™˜ν•œ 전기적인 μ‹ ν˜Έλ₯Ό λ‹€λ₯Έ μ»΄ν“¨ν„°λ‘œ μ „μ†‘ν•˜κΈ° μœ„ν•˜μ—¬ μ‚¬μš©λ˜λŠ” 케이블을 의미
  • ν—ˆλΈŒ (μ‹€μŠ΅μ‹€) : μ—¬λŸ¬κ°œμ˜ LAN 케이블(컴퓨터)을 ν•˜λ‚˜λ‘œ ν•©μ³μ£ΌλŠ” 역할을 ν•œλ‹€. IPλ₯Ό ν• λ‹Ήν•˜λŠ” κΈ°λŠ₯은 μ—†κ³ , IPκ°€ ν• λ‹Ήλœ 컴퓨터가 λ™μ‹œμ— 인터넷(WAN)을 μ‚¬μš©ν•  수 μžˆλ„λ‘ λΆ„λ°°ν•˜λŠ” 역할을 μˆ˜ν–‰
  • 곡유기 : ν—ˆλΈŒμ™€ λΉ„μŠ·ν•œ 역할을 μˆ˜ν–‰ν•˜μ§€λ§Œ 차이점은 IPλ₯Ό μ§μ ‘ν• λ‹Ήν•˜μ—¬ λΆ„λ°°ν•œλ‹€.
  • μŠ€μœ„μΉ˜ (학ꡐ) : ν—ˆλΈŒμ™€ 같이 케이블(ν—ˆλΈŒ)을 ν•˜λ‚˜λ‘œ ν•©μ³μ£ΌλŠ” 역할을 μˆ˜ν–‰ν•œλ‹€. ν—ˆλΈŒμ™€ 차이점은 μ—°κ²°λœ μΌ€μ΄λΈ”μ˜ μ „μ†‘λŒ€μ—­μ΄ λͺ¨λ‘ κ°™μŒ, 10Mbps ν—ˆλΈŒμ— 5개의 케이블이 μ—°κ²° 될 경우 : 2Mbps μ†λ„λ‘œ λ‚˜λˆ„μ–΄ μ‚¬μš© ,10Mbps μŠ€μœ„μΉ˜μ— 5개의 케이블이 μ—°κ²° 될 경우 : λͺ¨λ“  케이블 10Mbps 속도
  • λΌμš°ν„° (μ§€μ—­) : μ„œλ‘œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬(학ꡐ, κΈ°κ΄€ λ“±)λ₯Ό μ—°κ²°ν•΄μ£ΌλŠ” 역할을 ν•œλ‹€. λ³΄λ‚΄κ³ μž ν•˜λŠ” 데이터가 μ–΄λ–€ λ„€νŠΈμ›Œν¬λ₯Ό ν†΅ν•˜μ—¬ μ „μ†‘ν•˜λŠ”μ§€ μ „μ†‘κ²½λ‘œλ₯Ό 찾음

λ„€νŠΈμ›Œν¬ ν”„λ‘œν† μ½œ

  • λ‹¨νŽΈν™”, 재쑰립, μΊ‘μŠν™”, μ—°κ²° μ œμ–΄, 였λ₯˜ μ œμ–΄, 동기화, 닀쀑화, μ£Όμ†Œ μ§€μ •
  • IPv4
    1. 32λΉ„νŠΈ
    2. 8λΉ„νŠΈμ”© 4λΆ€λΆ„ 10μ§„μˆ˜
    3. λΉ„μˆœμ°¨μ  ν• λ‹Ή
  • IPv6
    1. 128λΉ„νŠΈ
    2. 16λΉ„νŠΈμ”© 8λΆ€λΆ„ 16μ§„μˆ˜
    3. 순차적 ν• λ‹Ή

TCP/IP ν”„λ‘œν† μ½œ

  • TCP와 UDP의 κ°€μž₯ 큰 차이점은 데이터 μ „μ†‘μ˜ μ‹ λ’°μ„±
  • TCPλŠ” μˆ˜μ‹  츑의 μˆ˜μ‹  κ°€λŠ₯ μƒνƒœ, μˆ˜μ‹  μ—¬λΆ€ 등에 λ‹¨κ³„λ³„λ‘œ 체크해 κ°€λ©° 데이터λ₯Ό μ „μ†‘ν•˜λŠ” 반면, UDPλŠ” 망으둜 데이터λ₯Ό 솑신할 뿐 확인 μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ§€ μ•ŠμŒ
  • λ„€νŠΈμš°μ»€ μ—‘μ„ΈμŠ€ 계측, 인터넷 계측, 전솑 계측, μ‘μš© 계측
  • TCP
    1. μ‹ λ’°μ„± μžˆλŠ” 전솑을 확보
    2. Flow Control κΈ°λŠ₯을 μˆ˜ν–‰, 단계별 데이터 전솑 상황을 체크
    3. 논리적인 1:1 가상 νšŒμ„ μ„ μ§€μ›ν•˜μ—¬ ν•΄λ‹Ή 경둜둜만 데이터가 전달
    4. FTP, Telent, Http, SMTP, POP, IMAP
  • UDP
    1. μ—°κ²°λ˜μ–΄ μžˆμ–΄λ„ 데이터λ₯Ό 솑신, μˆ˜μ‹  츑의 μˆ˜μ‹  μ—¬λΆ€λŠ” ν™•μΈν•˜κΈ° 어렀움
    2. ν•˜λ‚˜μ˜ 솑신 정보λ₯Ό λ‹€μˆ˜μ˜ 인원이 μˆ˜μ‹ ν•΄μ•Ό ν•  경우 UDP μ‚¬μš©
    3. SNMP, DNS, TFTP, NFS, NETBIOS, 인터넷 κ²Œμž„/방솑/증ꢌ

νŒ¨ν‚· μŠ€μœ„μΉ­

  • X25
    1. ITI-Tμ—μ„œ 관리 κ°λ…ν•˜λŠ” ν”„λ‘œν† μ½œ
    2. 데이터 블둝을 μ‚¬μš©ν•˜μ—¬ λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό λ‹€μˆ˜μ˜ νŒ¨ν‚·μœΌλ‘œ λΆ„λ¦¬ν•˜μ—¬ μ†‘μ‹ ν•˜λ©°, μˆ˜μ‹ μΈ‘μ—μ„œ λ‹€μˆ˜μ˜ νŒ¨ν‚·μ„ κ²°ν•©ν•˜μ—¬ μ›λž˜μ˜ λ°μ΄ν„°λ‘œ 볡원
  • ν”„λ ˆμž„ 릴레이
    1. ISDN을 μ‚¬μš©ν•˜κΈ° μœ„ν•œ ν”„λ‘œν† μ½œλ‘œμ„œ ITU-T에 μ˜ν•΄ ν‘œμ€€μœΌλ‘œ μž‘μ„±
    2. μ‚¬μš©μžμ˜ μš”μ²­μ— 따라 μœ μ—°ν•œ λŒ€μ—­ν­μ„ ν• λ‹Ή
    3. 망의 μ„±λŠ₯ ν–₯상을 μœ„ν•΄ μ—λŸ¬ μ œμ–΄ κΈ°λŠ₯κ³Ό 흐름 μ œμ–΄ κΈ°λŠ₯을 λ‹¨μˆœν™”
    4. X.25κ°€ OSI 7계측 쀑 1~3κ³„μΈ΅κΉŒμ§€ λ‹΄λ‹Ή, ν”„λ ˆμž„λ¦΄λ ˆμ΄λŠ” 1~2κ³„μΈ΅λ§Œ λ‹΄λ‹Ή
    5. 가격이 μ €λ ΄ν•˜κ³  X.25에 λΉ„ν•΄ 기술 μš°μœ„μ— 있음
  • ATM
    1. 비동기 전솑λͺ¨λ“œ

μ„œν‚· μŠ€μœ„μΉ­

  • λ„€νŠΈμ›Œν¬ λ¦¬μ†ŒμŠ€λ₯Ό νŠΉμ • μ‚¬μš©μΈ΅μ΄ λ…μ ν•˜λ„λ‘ ν•˜λŠ” 것

λΌμš°νŒ… μ•Œκ³ λ¦¬μ¦˜

  • 거리벑터 μ•Œκ³ λ¦¬μ¦˜ : λΌμš°ν„°μ™€ λΌμš°ν„° κ°„μ˜ μ΅œλ‹¨ 경둜 μŠ€νŒ¨λ‹ 트리λ₯Ό μ°Ύκ³  κ·Έ 졜적 경둜λ₯Ό μ΄μš©ν•  수 없을 경우 λ‹€λ₯Έ 경둜λ₯Ό 찾음
  • 링크 μƒνƒœ μ•Œκ³ λ¦¬μ¦˜ : λΌμš°ν„°μ™€ λΌμš°ν„° κ°„μ˜ λͺ¨λ“  경둜λ₯Ό νŒŒμ•…ν•œ λ’€ λŒ€μ²΄ 경둜λ₯Ό 사전에 λ§ˆλ ¨ν•΄ λ‘λŠ” 방식
  • λΌμš°νŒ… ν”„λ‘œν† μ½œ μ’…λ₯˜ : RIP, IGRP, OSPF, BGP

ν”„λ‘œν† μ½œ 헀더 ꡬ쑰

  • μ„œμ»· κ΅ν™˜ 방식
    1. 전솑 경둜λ₯Ό μ„€μ •ν•œ λ’€ 데이트λ₯Ό μ†‘μˆ˜μ‹ ν•˜λŠ” 방식
    2. 경둜 접속 μ‹œκ°„μ€ 1초 λ‚΄μ™Έλ‘œ 맀우 빠름
    3. 전솑 μ œμ–΄ μ ˆμ°¨μ™€ ν˜•μ‹μ— μ œμ•½μ„ λ°›μ§€ μ•ŠμŒ
    4. μ†‘μˆ˜μ‹  μΈ‘ λͺ¨λ‘ 데이터 κ΅ν™˜ μ€€λΉ„κ°€ μ™„λ£Œλ˜μ–΄μ•Όν•¨
    5. νšŒμ„ μ΄ λ…μ λ˜μ–΄ 있음
  • νŒ¨ν‚· κ΅ν™˜ 방식
    1. 데이터 λ‹¨μœ„λ₯Ό λ³΄λ‚΄λŠ” 방식
    2. νšŒμ„  효율이 우수
    3. 비동기 전솑이 κ°€λŠ₯
    4. μ—°κ²° 섀정이 ν•„μš” μ—†κ³  닀쀑 전달 용이
    5. μ‹€μ‹œκ°„ 전솑에 뢀적합
    6. λ„€νŠΈμ›Œν¬ 지연이 λ°œμƒ

κ°œλ°œν™˜κ²½ 인프라 ꡬ성 방식

  • On-Premise 방식 : μ™ΈλΆ€ 인터넷망이 μ°¨λ‹¨λœ μƒνƒœμ—μ„œ μΈνŠΈλΌλ„· λ§λ§Œμ„ ν™œμš©ν•˜μ—¬ κ°œλ°œν™˜κ²½μ„ κ΅¬μΆ•ν•˜λŠ” 방식
  • ν΄λΌμš°λ“œ 방식 : μ•„λ§ˆμ‘΄, ꡬ글 λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ λ“± ν΄λΌμš°λ“œ 곡슡 μ„œλΉ„μŠ€λ₯Ό ν•˜λŠ” νšŒμ‚¬λ“€μ˜ μ„œλΉ„μŠ€λ₯Ό μž…λŒ€ν•˜μ—¬ κ°œλ°œν™˜κ²½μ„ κ΅¬μΆ•ν•˜λŠ” 방식, νˆ¬μžλΉ„μš©μ΄ 적고 ꡬ좕 μ‹œκ°„μ΄ 빠름
  • Hybrid 방식 : On-Premise와 ν΄λΌμš°λ“œ 방식을 ν˜Όμš©ν•˜λŠ” 방식
728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

github

https://github.com/LUNA-Jun/License_exam.git

SQL

CREATE TABLE member_tbl_02(
custno number(6) PRIMARY KEY,
custname varchar2(20),
phone varchar2(13),
address varchar2(60),
joindate date,
grade char(1),
city char(2)
)

create sequence seq_no increment by 1 start with 100001;

insert into member_tbl_02 values(seq_no.nextval, '김행볡', '010-1111-2222', 'μ„œμšΈ λ™λŒ€λ¬Έκ΅¬ 휘경 1동', '20151202', 'A', '01');
insert into member_tbl_02 values(seq_no.nextval, '이좕볡', '010-1111-3333', 'μ„œμšΈ λ™λŒ€λ¬Έκ΅¬ 휘경 2동', '20151206', 'B', '01');
insert into member_tbl_02 values(seq_no.nextval, 'μž₯믿음', '010-1111-4444', 'μšΈλ¦‰κ΅° μšΈλ¦‰μ 독도 1리', '20151001', 'B', '30');
insert into member_tbl_02 values(seq_no.nextval, 'μ΅œμ‚¬λž‘', '010-1111-5555', 'μšΈλ¦‰κ΅° μšΈλ¦‰μ 독도 2리', '20151113', 'A', '30');
insert into member_tbl_02 values(seq_no.nextval, '진평화', '010-1111-6666', 'μ œμ£Όλ„ μ œμ£Όμ‹œ μ™Έλ‚˜λ¬΄κ³¨', '20151225', 'B', '60');
insert into member_tbl_02 values(seq_no.nextval, '차곡단', '010-1111-7777', 'μ œμ£Όλ„ μ œμ£Όμ‹œ κ°λ‚˜λ¬΄κ³¨', '20151211', 'C', '60');

CREATE TABLE money_tbl_02(
custno number(6),
salenol number(8),
pcost number(8),
amount number(4),
price number(8),
pcode varchar2(4),
sdate date
)

insert into money_tbl_02 values(100001, 2016001, 500, 5, 2500, 'A001', '20160101');
insert into money_tbl_02 values(100001, 2016002, 1000, 4, 4000, 'A002', '20160101');
insert into money_tbl_02 values(100001, 2016003, 500, 3, 1500, 'A008', '20160101');
insert into money_tbl_02 values(100002, 2016004, 2000, 1, 2000, 'A004', '20160102');
insert into money_tbl_02 values(100002, 2016005, 500, 1, 500, 'A001', '20160103');
insert into money_tbl_02 values(100003, 2016006, 1500, 2, 3000, 'A003', '20160103');
insert into money_tbl_02 values(100004, 2016007, 500, 2, 1000, 'A001', '20160104');
insert into money_tbl_02 values(100004, 2016008, 500, 1, 300, 'A005', '20160104');
insert into money_tbl_02 values(100004, 2016009, 600, 1, 600, 'A006', '20160104');
insert into money_tbl_02 values(100004, 2016010, 3000, 1, 3000, 'A007', '20160106');

select m1.custno, custname, grade, sum(price)
from MEMBER_TBL_02 m1 inner join money_tbl_02 m2
on m1.custno=m2.custno
group by m1.custno, m1.custname, m1.grade order by sum(price) desc;

 

 

JSP

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	header{
		background-color: blue;
		width: 100%;
		text-align: center;
		color: white;
		line-height: 100px;
		height:100px;
		padding: 0;
		margin: 0;
	}
	nav{
		background-color: skyblue;
		height: 50px;
		line-height: 50px;
	}
	
	footer{
		background-color: blue;
		text-align: center;
		color: white;
		height: 100px;
		line-height: 100px;
		bottom: 0;
	}
</style>
</head>
<body>
<header>
	<h1>μ‡Όν•‘λͺ° νšŒμ›κ΄€λ¦¬ ver1.0</h1>
</header>
<nav>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="joinForm.jsp">νšŒμ›λ“±λ‘</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="memberForm.jsp">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="SaleForm.jsp">νšŒμ›λ§€μΆœμ‘°νšŒ</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="index.jsp">ν™ˆμœΌλ‘œ</a>&nbsp;&nbsp;&nbsp;&nbsp;
</nav>
<section>
	<h2 style="text-align: center;">μ‡Όν•‘λͺ°νšŒμ›κ΄€λ¦¬ ν”„λ‘œκ·Έλž¨</h2>
	<pre>
		μ‡Όν•‘λͺ° νšŒμ›μ •λ³΄μ˜ νšŒμ›λ§€μΆœμ •λ³΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΅¬μΆ•ν•˜κ³  νšŒμ›κ΄€λ¦¬ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€.
		ν”„λ‘œκ·Έλž¨ μž‘μ„± μˆœμ„œ
		1. νšŒμ›μ •λ³΄ ν…Œμ΄λΈ”μ„ μƒμ„±ν•œλ‹€.
		2. λ§€μΆœμ •λ³΄ ν…Œμ΄λΈ”μ„ μƒμ„±ν•œλ‹€.
		3.νšŒμ›μ •λ³΄, λ§€μΆœμ •λ³΄ ν…Œμ΄λΈ”μ— μ„œμ‹œλœ λ¬Έμ œμ§€μ˜ 참쑰데이터λ₯Ό μΆ”κ°€μƒμ„±ν•œλ‹€.
		4.νšŒμ›μ •λ³΄ μž…λ ₯ ν™”λ©΄ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•œλ‹€.
		5.νšŒμ›μ •λ³΄ 쑰회 ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•œλ‹€.
		6.νšŒμ›λ§€μΆœμ •λ³΄ 쑰회 ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•œλ‹€.
	</pre>
</section>
<footer>
	<p>HRDKOREA Copyright&copy;2016 All rights reserved. Human Resources Development Service of Korea </p>
</footer>
</body>
</html>

joinForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;

try{
	Class.forName("oracle.jdbc.OracleDriver");
	con=DriverManager.getConnection
			("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
	
	pstmt=con.prepareStatement("select max(custno) from member_tbl_02");
	
	rs=pstmt.executeQuery();
	
	int custno=100001;
	if(rs.next()){
		custno=rs.getInt(1)+1;
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style>
	header{
		background-color: blue;
		width: 100%;
		text-align: center;
		color: white;
		line-height: 100px;
		height:100px;
		padding: 0;
		margin: 0;
	}
	nav{
		background-color: skyblue;
		height: 50px;
		line-height: 50px;
	}
	
	footer{
		background-color: blue;
		text-align: center;
		color: white;
		height: 100px;
		line-height: 100px;
		bottom: 0;
	}
</style>
<script>
function checkForm(f) {
	if(f.custname.value.trim()==""){
		alert("νšŒμ›μ„±λͺ…이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.custname.focus();
		return false;
	}
	if(f.phone.value.trim()==""){
		alert("νšŒμ›μ „ν™”λ²ˆν˜Έκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.phone.focus();
		return false;
	}
	if(f.address.value.trim()==""){
		alert("νšŒμ›μ£Όμ†Œκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.address.focus();
		return false;
	}
	if(f.joindate.value.trim()==""){
		alert("κ°€μž…μΌμžκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.joindate.focus();
		return false;
	}
	if(f.grade.value.trim()==""){
		alert("고객등급이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.grade.focus();
		return false;
	}
	if(f.city.value.trim()==""){
		alert("λ„μ‹œμ½”λ“œκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.city.focus();
		return false;
	}	
}
</script>
<body>
<header>
	<h1>μ‡Όν•‘λͺ° νšŒμ›κ΄€λ¦¬ ver1.0</h1>
</header>
<nav>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="joinForm.jsp">νšŒμ›λ“±λ‘</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="memberForm.jsp">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="SaleForm.jsp">νšŒμ›λ§€μΆœμ‘°νšŒ</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="index.jsp">ν™ˆμœΌλ‘œ</a>&nbsp;&nbsp;&nbsp;&nbsp;
</nav>
<section>
	<h2 style="text-align: center;">ν™ˆμ‡Όν•‘ νšŒμ›λ“±λ‘</h2>
	<form name="f" action="joinProcess.jsp" method="post" onsubmit="return checkForm(this)">
		<table border="1" style="margin-left: auto; margin-right: auto;">
			<tr>
				<td>νšŒμ›λ²ˆν˜Έ(μžλ™μƒμ„±)</td>
				<td><input type="text" name="custno" value="<%=custno%>"></td>				
			</tr>
			<tr>
				<td>νšŒμ›μ„±λͺ…</td>
				<td><input type="text" name="custname"></td>				
			</tr>
			<tr>
				<td>νšŒμ›μ „ν™”</td>
				<td><input type="text" name="phone"></td>				
			</tr>
			<tr>
				<td>νšŒμ›μ£Όμ†Œ</td>
				<td><input type="text" name="address"></td>				
			</tr>
			<tr>
				<td>κ°€μž…μΌμž</td>
				<td><input type="text" name="joindate"></td>				
			</tr>
			<tr>
				<td>고객등급[A:VIP, B:일반, C:직원]</td>
				<td><input type="text" name="grade"></td>				
			</tr>
			<tr>
				<td>λ„μ‹œμ½”λ“œ</td>
				<td><input type="text" name="city"></td>				
			</tr>
			<tr>
				<td colspan="2" style="text-align: center;">
					<input type="submit" value="λ“±  둝"/>
					<input type="button" value="쑰   회" onclick="location.href='memberForm.jsp'"/>
				</td>			
			</tr>
		</table>
	</form>
</section>
<footer>
	<p>HRDKOREA Copyright&copy;2016 All rights reserved. Human Resources Development Service of Korea </p>
</footer>
</body>
</html>
<%
}catch(Exception e){
}finally{
	if(rs!=null) rs.close();
	if(pstmt!=null) pstmt.close();
	if(con!=null) con.close();
}
%>

 

joinProcess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%
request.setCharacterEncoding("utf-8");
String custno = request.getParameter("custno");
String custname = request.getParameter("custname");
String phone = request.getParameter("phone");
String address = request.getParameter("address");
String joindate = request.getParameter("joindate");
String grade = request.getParameter("grade");
String city = request.getParameter("city");

String sql="insert into member_tbl_02 values(?,?,?,?,?,?,?)";

Connection con=null;
PreparedStatement pstmt=null;
try{
	Class.forName("oracle.jdbc.OracleDriver");
	con=DriverManager.getConnection
			("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
	
	pstmt=con.prepareStatement(sql);
	pstmt.setString(1, custno);
	pstmt.setString(2, custname);
	pstmt.setString(3, phone);
	pstmt.setString(4, address);
	pstmt.setString(5, joindate);
	pstmt.setString(6, grade);
	pstmt.setString(7, city);
	int result=pstmt.executeUpdate();
	
	if(result>0){
%>
<script>
	alert("νšŒμ›λ“±λ‘μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.");
	history.back();
</script>
<%} else{%>
<script>
	alert("νšŒμ›λ“±λ‘μ΄ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.");
	history.back();
</script>
<%
}}catch(Exception e){
	}finally{
		if(pstmt!=null) pstmt.close();
		if(con!=null) con.close();
}
%>

memberForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%
	Connection con=null;
	PreparedStatement pstmt=null;
	ResultSet rs=null;
	
	try{
		Class.forName("oracle.jdbc.OracleDriver");
		con=DriverManager.getConnection
				("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
		
		pstmt=con.prepareStatement("select * from member_tbl_02");
		
		rs=pstmt.executeQuery();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	header{
		background-color: blue;
		width: 100%;
		text-align: center;
		color: white;
		line-height: 100px;
		height:100px;
		padding: 0;
		margin: 0;
	}
	nav{
		background-color: skyblue;
		height: 50px;
		line-height: 50px;
	}
	
	footer{
		background-color: blue;
		text-align: center;
		color: white;
		height: 100px;
		line-height: 100px;
		bottom: 0;
	}
</style>
</head>
<body>
<header>
	<h1>μ‡Όν•‘λͺ° νšŒμ›κ΄€λ¦¬ ver1.0</h1>
</header>
<nav>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="joinForm.jsp">νšŒμ›λ“±λ‘</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="memberForm.jsp">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="SaleForm.jsp">νšŒμ›λ§€μΆœμ‘°νšŒ</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="index.jsp">ν™ˆμœΌλ‘œ</a>&nbsp;&nbsp;&nbsp;&nbsp;
</nav>
<section>
	<h2 style="text-align: center;">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</h2>
	<table border="1" style="margin-left: auto; margin-right: auto; text-align: center;">
		<tr>
			<td>νšŒμ›λ²ˆν˜Έ</td>
			<td>νšŒμ›μ„±λͺ…</td>
			<td>μ „ν™”λ²ˆν˜Έ</td>
			<td>μ£Όμ†Œ</td>
			<td>κ°€μž…μΌμž</td>
			<td>고객등급</td>
			<td>κ±°μ£Όμ§€μ—­</td>
		</tr>
<%
	if(rs.next()){
		do{
			String grade="직원";
			if(rs.getString(6).equals("A")) grade="VIP";
			else if(rs.getString(6).equals("B")) grade="일반";
%>
		<tr>
			<td><a href="modForm.jsp?custno=<%=rs.getString(1)%>"><%=rs.getString(1) %></a></td>
			<td><%=rs.getString(2) %></td>
			<td><%=rs.getString(3) %></td>
			<td><%=rs.getString(4) %></td>
			<td><%=rs.getString(5).substring(0,10) %></td>
			<td><%=grade %></td>
			<td><%=rs.getString(7) %></td>
		</tr>
<%
		}while(rs.next());
	}else{
	}		
%>
	</table>
</section>
<footer>
	<p>HRDKOREA Copyright&copy;2016 All rights reserved. Human Resources Development Service of Korea </p>
</footer>
</body>
<%
	}catch(Exception e){
	}finally{
		if(rs!=null) rs.close();
		if(pstmt!=null) pstmt.close();
		if(con!=null) con.close();
	}
%>
</html>

SaleForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%
	String sql="select m1.custno, custname, grade, sum(price)"
	+" from MEMBER_TBL_02 m1 inner join money_tbl_02 m2"
	+" on m1.custno=m2.custno"
	+" group by m1.custno, m1.custname, m1.grade order by sum(price) desc";

	Connection con=null;
	PreparedStatement pstmt=null;
	ResultSet rs=null;
	
	try{
		Class.forName("oracle.jdbc.OracleDriver");
		con=DriverManager.getConnection
				("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
		
		pstmt=con.prepareStatement(sql);
		rs=pstmt.executeQuery();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	header{
		background-color: blue;
		width: 100%;
		text-align: center;
		color: white;
		line-height: 100px;
		height:100px;
		padding: 0;
		margin: 0;
	}
	nav{
		background-color: skyblue;
		height: 50px;
		line-height: 50px;
	}
	
	footer{
		background-color: blue;
		text-align: center;
		color: white;
		height: 100px;
		line-height: 100px;
		bottom: 0;
	}
</style>
</head>
<body>
<header>
	<h1>μ‡Όν•‘λͺ° νšŒμ›κ΄€λ¦¬ ver1.0</h1>
</header>
<nav>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="joinForm.jsp">νšŒμ›λ“±λ‘</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="memberForm.jsp">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="SaleForm.jsp">νšŒμ›λ§€μΆœμ‘°νšŒ</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="index.jsp">ν™ˆμœΌλ‘œ</a>&nbsp;&nbsp;&nbsp;&nbsp;
</nav>
<section>
	<h2 style="text-align: center;">νšŒμ›λ§€μΆœμ‘°νšŒ</h2>
	<table border="1" style="margin-left: auto; margin-right: auto; text-align: center;">
		<tr>
			<td>νšŒμ›λ²ˆν˜Έ</td>
			<td>νšŒμ›μ„±λͺ…</td>
			<td>고객등급</td>
			<td>맀좜</td>
		</tr>
<%
	if(rs.next()){
		do{
			String grade="직원";
			if(rs.getString(3).equals("A")) grade="VIP";
			else if(rs.getString(3).equals("B")) grade="일반";
%>
		<tr>
			<td><%=rs.getString(1) %></td>
			<td><%=rs.getString(2) %></td>
			<td><%=grade %></td>
			<td><%=rs.getString(4) %></td>
		</tr>
<%
		}while(rs.next());
		}else{
	}
%>
	</table>
</section>
<footer>
	<p>HRDKOREA Copyright&copy;2016 All rights reserved. Human Resources Development Service of Korea </p>
</footer>
<%
	}catch(Exception e){
	}finally{
		if(rs!=null) rs.close();
		if(pstmt!=null) pstmt.close();
		if(con!=null) con.close();
	}
%>
</body>
</html>

modForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
request.setCharacterEncoding("utf-8");
String custno=request.getParameter("custno");

try{
	Class.forName("oracle.jdbc.OracleDriver");
	con=DriverManager.getConnection
			("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
	
	pstmt=con.prepareStatement("select * from member_tbl_02 where custno=?");
	pstmt.setString(1, custno);
	rs=pstmt.executeQuery();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style>
	header{
		background-color: blue;
		width: 100%;
		text-align: center;
		color: white;
		line-height: 100px;
		height:100px;
		padding: 0;
		margin: 0;
	}
	nav{
		background-color: skyblue;
		height: 50px;
		line-height: 50px;
	}
	
	footer{
		background-color: blue;
		text-align: center;
		color: white;
		height: 100px;
		line-height: 100px;
		bottom: 0;
	}
</style>
<script>
function checkForm(f) {
	if(f.custname.value.trim()==""){
		alert("νšŒμ›μ„±λͺ…이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.custname.focus();
		return false;
	}
	if(f.phone.value.trim()==""){
		alert("νšŒμ›μ „ν™”λ²ˆν˜Έκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.phone.focus();
		return false;
	}
	if(f.address.value.trim()==""){
		alert("νšŒμ›μ£Όμ†Œκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.address.focus();
		return false;
	}
	if(f.joindate.value.trim()==""){
		alert("κ°€μž…μΌμžκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.joindate.focus();
		return false;
	}
	if(f.grade.value.trim()==""){
		alert("고객등급이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.grade.focus();
		return false;
	}
	if(f.city.value.trim()==""){
		alert("λ„μ‹œμ½”λ“œκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
		f.city.focus();
		return false;
	}	
}
</script>
<body>
<header>
	<h1>μ‡Όν•‘λͺ° νšŒμ›κ΄€λ¦¬ ver1.0</h1>
</header>
<nav>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="joinForm.jsp">νšŒμ›λ“±λ‘</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="memberForm.jsp">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="SaleForm.jsp">νšŒμ›λ§€μΆœμ‘°νšŒ</a>&nbsp;&nbsp;&nbsp;&nbsp;
	<a href="index.jsp">ν™ˆμœΌλ‘œ</a>&nbsp;&nbsp;&nbsp;&nbsp;
</nav>
<section>
	<h2 style="text-align: center;">ν™ˆμ‡Όν•‘ νšŒμ› 정보 μˆ˜μ •</h2>
	<form name="f" action="modProcess.jsp" onsubmit="return checkForm(this)">
		<table border="1" style="margin-left: auto; margin-right: auto;">
<%
	if(rs.next()){ 
%>
			<tr>
				<td>νšŒμ›λ²ˆν˜Έ(μžλ™μƒμ„±)</td>
				<td><input type="text" name="custno" value="<%=rs.getString(1)%>" readonly></td>				
			</tr>
			<tr>
				<td>νšŒμ›μ„±λͺ…</td>
				<td><input type="text" name="custname" value="<%=rs.getString(2)%>"></td>				
			</tr>
			<tr>
				<td>νšŒμ›μ „ν™”</td>
				<td><input type="text" name="phone" value="<%=rs.getString(3)%>"></td>				
			</tr>
			<tr>
				<td>νšŒμ›μ£Όμ†Œ</td>
				<td><input type="text" name="address" value="<%=rs.getString(4)%>"></td>				
			</tr>
			<tr>
				<td>κ°€μž…μΌμž</td>
				<td><input type="text" name="joindate" value="<%=rs.getString(5).substring(0, 10)%>"></td>				
			</tr>
			<tr>
				<td>고객등급[A:VIP, B:일반, C:직원]</td>
				<td><input type="text" name="grade" value="<%=rs.getString(6)%>"></td>				
			</tr>
			<tr>
				<td>λ„μ‹œμ½”λ“œ</td>
				<td><input type="text" name="city" value="<%=rs.getString(7)%>"></td>				
			</tr>
			<tr>
				<td colspan="2" style="text-align: center;">
					<input type="submit" value="수  μ •"/>
					<input type="button" value="쑰   회" onclick="location.href='memberForm.jsp'"/>
				</td>			
			</tr>
		</table>
	</form>
<% 
	}
%>
</section>
<footer>
	<p>HRDKOREA Copyright&copy;2016 All rights reserved. Human Resources Development Service of Korea </p>
</footer>
</body>
</html>
<%
}catch(Exception e){
}finally{
	if(rs!=null) rs.close();
	if(pstmt!=null) pstmt.close();
	if(con!=null) con.close();
}
%>

modProcess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%
request.setCharacterEncoding("utf-8");
String custno = request.getParameter("custno");
String custname = request.getParameter("custname");
String phone = request.getParameter("phone");
String address = request.getParameter("address");
String joindate = request.getParameter("joindate");
String grade = request.getParameter("grade");
String city = request.getParameter("city");

String sql="update member_tbl_02 set"
	+" custname=?, phone=?, address=?, joindate=?, grade=?, city=?"
	+" where custno=?";

Connection con=null;
PreparedStatement pstmt=null;
try{
	Class.forName("oracle.jdbc.OracleDriver");
	con=DriverManager.getConnection
			("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
	
	pstmt=con.prepareStatement(sql);
	pstmt.setString(1, custname);
	pstmt.setString(2, phone);
	pstmt.setString(3, address);
	pstmt.setString(4, joindate);
	pstmt.setString(5, grade);
	pstmt.setString(6, city);
	pstmt.setString(7, custno);
	int result=pstmt.executeUpdate();
	
	if(result>0){
%>
<script>
	alert("νšŒμ›μˆ˜μ •μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.");
	history.back();
</script>
<%} else{%>
<script>
	alert("νšŒμ›μˆ˜μ •μ΄ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.");
	history.back();
</script>
<%
}}catch(Exception e){
	}finally{
		if(pstmt!=null) pstmt.close();
		if(con!=null) con.close();
}
%>

 

728x90
λ°˜μ‘ν˜•

+ Recent posts