Architecture

섀계 지ν–₯적 κ΄€μ μ—μ„œ κ΄€λ ¨λœ 것을 μ •λ¦¬ν•œλ‹€.

μ ‘κ·Ό ν†΅μ œ (Access Control)

λ³΄μ•ˆμ „λž΅

RBAC (Role Based Access Control : μ—­ν™œ 기반 μ ‘κ·Ό ν†΅μ œ)

μ ‘κ·Όν•˜λ €λŠ” μ‚¬μš©μžμ™€ μžμ›μ΄ μ–΄λ–»κ²Œ μƒν˜Έμž‘μš© ν•˜λŠ”μ§€ κ²°μ •ν•˜μ—¬ μ€‘μ•™μ—μ„œ μ§‘μ€‘μ μœΌλ‘œ μž‘μš©ν•œλ‹€.

  • μ—­ν•  ν• λ‹Ή (Role Assignment)
  • μ—­ν•  κΆŒν•œ λΆ€μ—¬ (Role Authorization)
  • κΆŒν•œ λΆ€μ—¬ (Permission Authorization)

DAC (Discretionary Access Control : μž„μ˜μ  μ ‘κ·Ό ν†΅μ œ)

λ¦¬μ†ŒμŠ€μ˜ μ†Œμœ μž ν˜Ήμ€ 그룹의 λŒ€μƒμ΄ κ²°μ •ν•œ μ ‘κ·Ό 정책을 톡해 λ¦¬μ†ŒμŠ€μ˜ 접근을 ν—ˆμš©ν•˜κ±°λ‚˜ μ œν•œν•˜λŠ” μ ‘κ·Ό μ œμ–΄λ°©λ²•μ˜ 일쒅이닀.

즉 μ •λ³΄μ˜ μ ‘κ·Ό κΆŒν•œμ„ μ‚¬μš©μžμ—κ²Œ 전솑할 수 있기 λ•Œλ¬Έμ— μž¬λŸ‰μ μœΌλ‘œ λ³€κ²½ κ°€λŠ₯ ν•˜λ‹€.

MAC (Mandatory Access Control : κ°•μ œμ  μ ‘κ·Ό ν†΅μ œ)

λ¦¬μ†ŒμŠ€ μ†Œμœ μžκ°€ 파일 μ‹œμŠ€ν…œμ˜ λ¦¬μ†ŒμŠ€ κ°œμ²΄μ— λŒ€ν•œ μ ‘κ·Όμ œμ–΄λ₯Ό λΆ€μ—¬ν•˜κ±°λ‚˜ κ±°λΆ€ν•  수 μžˆλŠ” λŠ₯λ ₯을 μ œν•œν•˜λŠ” λ³΄μ•ˆ μ „λž΅μ΄λ‹€.
μ΄λŠ” μ‹œμŠ€ν…œ κ΄€λ¦¬μžκ°€ μ •μ˜ν•˜κ³  μš΄μ˜μ²΄μ œλ‚˜ λ³΄μ•ˆ 컀널에 μ˜ν•΄ μ—„κ²©ν•˜κ²Œ 적용 되며 μ΅œμ’…μ‚¬μš©μžκ°€ λ³€κ²½ν•  수 μ—†λ‹€.

MACλŠ” 졜고 μˆ˜μ€€μ˜ μ ‘κ·Ό μ œμ–΄λ‘œμ„œ DAC 와 λŒ€μ‘°λ˜λŠ” μ œμ–΄λ°©λ²•μ΄λ‹€.

Separation Of Concern (κ΄€μ‹¬μ˜ 뢄리)

SOA (Service-Oriented Architecture : μ„œλΉ„μŠ€ 지ν–₯ μ•„ν‚€ν…μ²˜) 의 핡심 μ›μΉ™μ€‘μ˜ ν•˜λ‚˜λ‘œ 관심이 λ‹€λ₯Έκ²ƒμ€ κ°€λŠ₯ν•œ λΆ„λ¦¬ν•˜μ—¬ μ„œλ‘œ 영ν–₯을 주지 μ•Šλ„λ‘ ν•˜λ©°, 관심이 같은 것은 ν•˜λ‚˜μ˜ κ΄€λ ¨ 객체둜 λͺ¨μ΄λ„둝 μ„€κ³„λ‚˜ κ΅¬ν˜„ 을 ν•˜λŠ” 것

ν…ŒμŠ€νŠΈ 주도 개발 (TDD / BDD / DDD)

TDD (Test Driven Development)

  • ν…ŒμŠ€νŠΈ 주도 개발 방법둠
  • ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³  ν•΄λ‹Ή ν…ŒμŠ€νŠΈ μ½”λ“œμ— 맞게 κ°œλ°œμ„ μ§„ν–‰ν•œλ‹€.

BDD (Behavior Driven Development)

  • λ™μž‘ 지ν–₯ 개발 방법둠
  • μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν’ˆμ§ˆμ„ ν–₯상 μ‹œν‚€κΈ° μœ„ν•΄ κ°œλ°œμžκ°„μ˜ ν˜‘λ ₯ κ°€λŠ₯ν•œ Agile Software Development 기법이닀.
  • BDD 의 λͺ©ν‘œλŠ” TDD λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ κ²ƒμœΌλ‘œ, TDD λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ BDD λ₯Ό ν†΅ν•œ ν–‰μœ„ 자체λ₯Ό λ³€κ²½ κ°€λŠ₯ν•˜λ‹€.

Micro Service Architecture (MSA)

@TODO