SC FE01

아키텍쳐와 칸반 알아보기

hr7 2023. 12. 7. 14:46
아키텍쳐 ‘Architecture’

 

⌜ 아키텍쳐(Architecture)란? ⌟
영단어로는 ‘건축학’ 이라는 뜻으로 '하나의 서비스가 어떻게 구성되며 어떻게 동작이 된다'를 표현하는 것이라고 볼 수 있으며 시스템의 구조, 동작 등을 정의하는 개념적인 모형으로 시스템의 목적을 달성하기 위해 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용 하는지, 정보가 어떻게 교환되는 지를 설명한다.

∙시스템 구성 및 동작 원리를 나타내는 것
∙구성 요소 간의 관계 및 시스템 외부 환경과의 관계를 묘사하는 것  
∙시스템 구성 요소에 대한 설계 및 구현을 지원하는 수준을 기술하는 것
∙요구 사양 및 시스템 수명 주기를 고려하는 것  
∙시스템의 전체적인 최적화를 목표로 하는 것

 

⌜ 소프트웨어 아키텍처가 중요한 이유 ⌟

https://www.osckorea.com/post/bigaebaljado-swibge-ihaehaneun-akitegceoyi-gaenyeom

위의 소프트웨어 기능의 고도화 그래프를 통해 확인할 수 있듯이 좋지 않은 디자인을 가진 소프트웨어는 시간이 지날수록 기능을 추가하는 것이 어려워지는 반면, 좋은 디자인을 가진 소프트웨어는 소프트웨어의 컴포넌트화가 잘 되어 있기 때문에 기능을 추가하기 수월하다. 

즉, 더 나은 내부 퀄리티를 가진 소프트웨어를 고른다면 추후엔 새로운 기능을 더 빠르게 많이 추가할 수 있게 되고 내부 퀄리티가 낮은 제품은 문제 사항에 대한 빠른 개선이 불가능하게 된다는 것이다.

 

결국 아키텍처는 '구조화 과정의 시작이자 기준'이라고 할 수 있으며 변화에 저항하기 위해 만드는 것이 아닌, 변화에 능동적으로 대응할 수 있는 미래를 위해 만드는 것이다. 

 

언제 필요한가? 

아키텍처라는 것은 일반적으로는 서비스의 설계를 의미하지만 개발자들 사이에서는 각 플랫폼에 맞는 설계를 말한다. 따라서 서비스에 맞는 설계 속에서 각 플랫폼에 맞는 설계(아키텍처)를 구현해야 하며 이미 결정한 언어의 한계 때문에 전체 코드를 다른 언어로 바꿔야하는 경우가 생기면 안되기에 아키텍처 설계는 반드시 프로젝트가 시작되기 전에 우선적으로 진행되어야 한다.

 

 소프트웨어 아키텍처의 설계과정 ( 참조 : https://ithotplace.tistory.com/25 )

아키텍처의 설계 과정은 설계 목표 설정-시스템 타입 결정-아키텍처 패턴 적용-서브시스템 구체화-검토 순으로 진행된다.
1. 설계 목표 설정 : 시스템의 개발 방향을 명확히 하기 위해 설계에 영향을 주는 비즈니스 목표, 우선순위 등의 요구사항을 분석하여 전체 시스템의 설계 목표를 설정
2. 시스템 타입 결정: 시스템과 서브시스템의 타입을 결정하고, 설계 목표와 함께 고려하여 아키텍처 패턴을 선택
3. 아키텍처 패턴 적용 : 아키텍처 패턴을 참조하여 시스템의 표준 아키텍처를 설계 
4. 서브시스템 구체화 : 서브시스템의 기능 및 서브시스템 간의 상호작용을 위한 동작과 인터페이스를 정의
5. 검토 : 아키텍처가 설계 목표에 부합하는지, 요구사항이 잘 반영되었는지, 설계의 기본원리를 만족하는지 등을 검토

https://luv-n-interest.tistory.com/398

⌌ 소프트웨어에서 대표적으로 요구되는 조건 7가지 ( 참조 : https://luv-n-interest.tistory.com/398 )

1. 변경,유지보수 용이성_ 변동사항이 생기면 시스켐도 자주 변경되어야 하는가?

2. 상용 컴포넌트의 사용_ 상용 컴포넌트가 사용되는가? 사용된다면 얼마나?

3. 시스템 성늠_ 실시간 데이터를 처리하거나 대용량의 트랙젝션을 처리하는 고성능 요구 시스템인가?

4. 신뢰성_ 어떠한 조건에 어느 정도로 정확히 수행해야하는가?

5. 보안_ 시스템은 요구하는 자원과 데이터를 어느 수준으로 보호해야 하는가?

6. 고장인내성_ 고장이 있더라도 시스템이 계속 운용될 수 있는 정도는 어느 정도인가?

7. 복구_ 시스템이 꺼진 후에 다시 원상태로 복구되기를 너므 정도로 요구하는가?


칸반 'Kanban'
⌜ 칸반(Kanban)이란? ⌟ 

반복적인 프로세스의 단계를 명확히 나누는 프로젝트 관리 방식으로 칸반 프레임워크를 기반으로 하는 '칸반 보드'에 모든 업무 단계를 시각적으로 표현하며, 팀원은 이 보드를 보며 모든 작업의 상태를 명확히 파악할 수 있다.

https://business.adobe.com/kr/blog/basics/what-is-kanban

 

 

⌜ 왜 필요한가? ⌟ 

조직 내에 진행 중인 업무(Works In-Progress , WIP)가 일정 수준 이상 밀려 있지 않게 하는 데 도움을 준다.

 강력한 리더십, 조직적 투명성, 팀워크, 사내 열린 소통과 협업을 지원한다.

 눈에 보이지 않는 작업을 가시화할 수 있기 때문에 우선순위를 놓치는 일을 막고 어떤 일이 처리되고 있는지 모든 사람이 알 수 있다.

⌜ 칸반의단계 ⌟

칸반 게시판용 단계를 만들 때 일반적으로 사용되는 템플릿은 없다. 각 작업 완수에 필요한 단계가 지나치게 복잡하지 않게 하고 전체적으로 간단하게 유지하는 것이 원칙이다. 각 조직은 각 열에 맞는 범주를 자유롭게 선택할 수 있으나 대부분의 칸반 게시판에는 다음과 같은 단계를 포함한다.
- 대기: 팀이 인지하고 있는 미뤄진 작업을 주로 보관하는 열이다. 대기 중이던 작업은 시작할 여유 시간이 생기면 오늘의 구체적인 작업 열로 이동되거나 ‘진행 중’ 열로 이동할 수 있다.
- 진행 중: 현재 작업 중인 모든 작업이 포함된 열이다. ‘하는 중’ 열이라고 부르기도 한다. 작업할 새로운 작업을 선택하면 곧장 이 열로 이동된다. 작업이 진행되는 한 이 열에 머무른다.
- 완료: 따로 설명이 필요 없는 열이다. 일단 완료된 작업은 최종적인 ‘마침’ 또는 ‘완료’ 열로 이동된다.
- 차단: 무슨 이유에서든지 작업을 완료할 수 없거나 진행이 중단 또는 일시 정지된 경우에는 재개될 수 있을 때까지 ‘차단’ 또는 ‘보류’ 범주로 옮겨 놓는다.

https://scv-life.tistory.com/5