목록소프트웨어/Database (3)
julia coding story
유지보수성 - 소프트웨어 비용의 대부분은 유지보수 비용임 - 버그 수정, 시스템 운영 유지, 장애 조사, 새로운 플랫폼 적응, 새 사용 사례를 위한 변경, 기술 채무 상환, 새로운 기능 추가 등 - 레거시 시스템을 다루지 않기 위해 주의를 기울여야할 소프트웨어 설계 원칙 : 운용성, 단순성, 발전성 1. 운용성(operability) : 운영의 편리함 만들기 - 운영팀이 시스템을 원활하게 운영할 수 있게 쉽게 만들어라 - 자동화 할 것들은 자동화 시켜야함 - 운영팀에서 하는 작업들 : 1) 시스템 상태를 모니터링하고 상태가 좋지 않다면 빠르게 서비스를 복원 2) 시스템 장애, 성능 저하 등의 문제의 원인을 추적 3) 보안 패치를 포함해 소프트웨어와 플랫폼을 최신 상태로 유지 4) 다른 시스템이 서로 어떻..
확장성 - 부하 증가에 대처하는 시스템 능력을 설명하는 데 사용하는 용어 - 우리는 확장성에 대해 "시스템이 특정 방식으로 커지면 이에 대해 어떻게 대처할 것 인가? 와 "추가 부하를 다루기 위해 계산 자원을 어떻게 투입할까?" 질문을 던져야 한다. 1. 부하 기술하기 - 부하 매개변수(load parameter) : 몇개의 숫자로 나타냄 - 부하 매개변수로 웹 서버의 초당 요청 수, 데이터베이스의 읽기 대 쓰기 비율, 대화방의 동시 활성 사용자, 캐시 적중률 등 이 있음 ▶ 트위터 - 트웟 작성 : 작성자는 팔로워에게 새로운 메시지를 게시할 수 있음 - 홈 타임라인 : 사용자는 팔로우한 사람이 작성한 트윗을 볼 수 있다. - 작동 방식 : 1) 트윗 작성은 새로운 트윗을 트윗 전역 컬렉션에 삽입한다. ..

인터넷은 잘 동작하고 있어서 대부분의 사람들은 인공의 무언가라기보다 태평양 같은 천연 자원으로 생각한다. 이런 규모의 기술이 이토록 오류가 없었던 적은 언제가 마지막일까? - 앨런 케이, Dr. Dobbs 저널 인터뷰에서(2012) 오늘날의 애플리케이션 - 계산 중심(compute-intensive)(과거) -> 데이터 중심(data-intensive) - 애플리케이션을 제한 하는 요소 : CPU 성능 (과거) -> 데이터 양, 데이터의 복잡도, 데이터의 변화 속도 데이터 중심 표준 구성 요소 (standard building block) - 데이터 베이스 : 구동 애플리케이션이나 다른 애플리케이션에서 나중에 다시 데이터를 찾을 수 있게 데이터를 저장 - 캐시 : 읽기 속도 향상을 위해 값비싼 수행 결과..