품질: 변하지 않는 것, 입력값 대비 출력값의 변화를 제약하는 것 (= 부사)
품질에 있는 것: 성능, 안정성, 효율성, 사용성, 보안성, 유지보수성
성능이 좋다(3가지) -> 쉬움: 모든 것을 다 숫자로 나타낼 수 있기 때문, 회사에 가장 많음(성능 요구사항)
- 시간과 관련된 것(버튼->결과가 나올 때까지 걸리는 시간)
- Resource (CPU 조금 먹음 > CPU 많이 먹음) => 성능을 좋게 짰다. (더 정확한 건 효율성이지만 성능이라 부름)
- Capacity 동시에 확 몰리는 것, = 구글 (견뎌낼 수 있는 능력)
Relability (신뢰성)
-Recoverability 빠르게 회복되는 것
-Port tol~
( Error -> Fault ) - X > Failure
(Bug)
error - fault -> failure이 안나게 하려면?
- 시스템을 두개 두는 것, (= 서버) -> fault (falut막기 위해 redundancy를 사용)
error(처리) -> Redundancy(잉여)
다음 CPU 많이 먹음 -> 서버가 다 다운됨(과부하돼서) -> 2대 - 복구 24시간 걸림 -> 그 이후로 naver 못이김
네이버 redundancy를 400대를 만듦 -> 그래서 만들어진 것이 하드웨어 AWS
에러가 터졌을 때 그걸 견디는 능력이 있으면 좋음.
ava (안정성) -> 99%안정성 -> 안좋은 것.
relabiliity -> 100% -> 좋은 것
mutuality 버전
sequrity, usability -> 기능성으로
기능보다 기능성이 더 많다.
입력값 대비 출력값의 변화로 다 됨
사용편의성과 보안은 대부분 기능으로 다 커버가 된다.
Functional stability ->기능성
보안과 사용성은 기능성으로 거의다 커버가 된다. (보안, 사용성 안 적어도 됨)
software의 유지보수성은 성능, 신뢰성과 비교할 수 없이 중요하다.
유지보수성은 품질의 근간이다. 유지보수가 안되면 버그가 생긴다.
잡기 어려운 버그: 고칠 때 생기는 버그
유지보수성
modulability (7번째)
- 코드에 쉴드를 쳐줌, 어떻게 바꿔도 영향을 못미침, 터져도 나만 죽음 -> 모듈화가 되는 것
- 나만 독자적으로 돌게 짜면 됨. multi process가 되면 된다.
- 도커 - 터져도 나혼자 죽음
ex. 화면이 다 쪼개져 있음. - netflix
- 도망을 못가게 가둬놓는다. (짠 에러를 가둬놓음)
usability 재사용성 - 소스코드를 재사용하면 좋음
modifiability: 수정이 쉽다. 수정하기 쉬운 소스코드는 없다. 소스코드는 한줄도 안 고치는 것이 정답이다. -> 어떻게? 설정화하면 소프트웨어는 항상 설정화를 읽어서 처리해야 한다. static은 무조건 설정으로 처리한다. 설정화한다.-> 소스코드는 건드리는 순간 버그가 터진다. => " " 으로 되어있는 경우가 보통 오류가 잘남. configration file을 많이 가질수록 소스코드는 유지보수가 좋아진다. 왜냐면 변경이 쉽기 때문. , 설정을 많이 쓴다
23일 레포트
'명지대학교 3-2 > 분산프로그래밍2' 카테고리의 다른 글
[1007] 분산프로그래밍2 (0) | 2024.10.10 |
---|---|
[0930] 분산프로그래밍2 (0) | 2024.09.30 |
[0923] 분산프로그래밍2 (0) | 2024.09.23 |