Differences between revisions 2 and 4 (spanning 2 versions)
Revision 2 as of 2022-09-26 03:45:52
Size: 1580
Editor: 정수
Comment:
Revision 4 as of 2022-09-26 03:48:01
Size: 1632
Editor: 정수
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
 * Reliability: 시스템이 신뢰할만한가?  * Reliability: 시스템이 신뢰할만한가? 정확한가? 안정적인가?
Line 16: Line 16:
   * Installability

제가 아주 예전에는 기술면접때 “좋은 코드 / 소프트웨어란 무엇이라고 생각하는지“를 물어보곤 했었어요. 요즘은 의미없는 질문이라고 생각해서 잘 안하지만…

대부분 읽기 쉬운 코드라고 대답하시는데, 실제 업무나 코드리뷰 하면서 제가 코멘트하는 것들을 가만히 보니, 소프트웨어 아키텍처 품질속성들(testability, reusability, modifiability, scailability, …)에 해당하는 것들을 많이 얘기하고 있더라고요.

그래서, 만들고 있는 소프트웨어를 각 속성의 관점에서 균형있게 점검해보면 유익하더라고요.

  • Availability: 돌다가 죽지는 않는가? 항상 가동되어 있는 상태로 잘 돌아가는가?
  • Modifiability: 수정하기 용이한가? 수정(동작이나 기능 추가, 변경)할 때 수정이 필요한 부분이 산탄총 수술이나 비엔나 소세지처럼 줄줄이 엮이는 현상은 없는가?
  • Performance: 속도나 throughput은 잘 나오나?
  • Security: 안전한가? 보안적으로.
  • Usability: 사용하기 편한가?
  • Testability: 테스트하기 용이한가/쉬운가?
  • Interoperability: 다른 제품과 맞물려 돌아가기 쉽게 되어있나?
  • Reliability: 시스템이 신뢰할만한가? 정확한가? 안정적인가?
  • Maintainability: 유지보수하기 쉬운가? 업데이트 방법은?
    • Installability
  • Scalability: 부하가 늘어날 때, 늘어난 부하에 확장하며 대응 가능한 구조인가?
  • Reusability: 코드나 부분들이 재사용 가능하게 되어있나?

SoftwareArchitecture (last edited 2022-09-26 03:50:28 by 정수)