강의 내용 정리(126)
-
컴퓨터 네트워크 (10), Cloud Computing
Cloud Computing 1. Introduction to Cloud Computing 1) Cloud Computing이란? (1) Cloud Computing의 기본 개념 - 구름처럼 실체가 존재하지만 정체가 드러나지 않는 것을 구름, 안개에 빗대어 설명한다. 다시말해 어딘가에서 서버와 네트워크가 존재하지만 어디에 위치한지는 잘 몰라도 사용할 수 있다. 단지 내가 필요할 때 필요한 만큼 사용하고 이에 대해 돈을 지불하는 것을 클라우드 컴퓨팅이라 한다. - 구름에 작업을 요청하는 것이 우리의 어플리케이션 혹은 웹사이트이다. 실제 내가 디스크, 컴퓨터를 가지고 있지는 않지만 어딘가에 있을 컴퓨터에 필요한 양만큼 요청한다. 이에 따라 클라우드 컴퓨터는 일을 처리한 다음 끝난다는 메세지를 보낸다. 필요하..
2022.06.15 -
소프트웨어 공학 (15), Configuration Management
Configuration Management 0. Overview 1) Configuration management란? 우리가 만들 소프트웨어 프로덕트에 들어가는 다양한 소스코드, 자원 등에 대해 유지/관리하는 것 (1) Configuration management - 소스 코드를 관리하고 변경되면 이력이나 파일도 관리하고, 이를 가지고 실제 릴리즈할 때 특정 릴리즈 버전에 대한 이력 등도 관리한다. - 소프트웨어에 들어가는 여러 것들을 버전별로 이력과 함께 관리하는 것이다. - 소스코드와 정책, 절차, 도구 등이 포함된다. - CM을 통해서 수정이 발생하면 어떤 파일에 대해 어떤 이유로 언제, 어떤 부분이 바뀌었는지, 이후 결과물과 버전을 관리할 수 있다. - 소프트웨어가 계속 개선되고 나아지면서 이볼..
2022.06.15 -
소프트웨어 공학 (14), Quality Management
Quality Management 정성적/정량적으로 소프트웨어가 도달해야하는 수준에 대한 품질 관리 - 대부분의 소프트웨어가 기능적으로 만족되었다하더라도 QA팀에서 품질이 보장된다고 도장을 찍어야지 이를 배포할 수 있다. 0. 개요 1) Software quality management - 평가 지표가 있고, 이를 달성했는지 확인한다. - 소프트웨어마다 평가 항목과 레벨이 정해진다. 일반적으로 고려해야하는 소프트웨어의 퀄리티 등을 수시로 체크하고 관리한다. 2) Three principal concerns (1) At the organizational - 어떤 소프트웨어가 되던, 우리 회사가 만드는 소프트웨어는 어떤 체계와 방침을 가지고 소프트웨어를 유지하는지 명시한다. - 체계화된 경우에는 이에 대한 ..
2022.06.14 -
소프트웨어 공학 (13), Project planning
Project planning 0. Overview 1) Project Planning - 돈을 받고 다른 사람에게 소프트웨어를 판매하는 것과 plan-based approach를 통해 개발하는 것을 가정해 이번 챕터를 설명하고자 한다. - 돈을 받고 소프트웨어를 짠다는 것은 Project planning, Quality management, Configuration management에 대한 내용은 매우 중요하다. Agile 개발 프로세스를 따른다면 위의 내용을 하는 것에 큰 의미를 두지 않을 수 있다. 그렇다하더라도 이를 반영해 스스로 점검할 수 있는 부분이 존재한다. - 제조 중심의 회사들이 소프트웨어에 적용하려고 했지만 실패했던 Man-Month 신화와 같이 돈을 받고 수직적인 구조 속에서 소프트..
2022.06.14 -
컴퓨터 구조(12), Memory Hierarchy & Caches
Memory Hierarchy & Caches Memory is Critical for Performance - 메모리는 성능에 많은 영향을 미친다. ex) 메모리에서 로드 및 저장 -> 메인메모리나 디렘에서 한다면 매우 오랜 시간이 걸린다. ex2) 캐쉬 미스 - Fine-grained multithreading만 하더라도 매 사이클마다 발생하는 스톨을 줄일 수 있다. - SIMD processors Computation is bottlencked by Memory - 데이터에 인텐시브하고, 큰 데이터에 대해 더 효율적이고 빠르게 처리하길 원한다. - 이를 어떻게 핸들링하냐가 중요해진다. - 데이터도 점차 증가한다. Memory in a Modern System - 캐쉬도 데이터를 들고 있을 수 있는 ..
2022.06.13 -
컴퓨터 구조(11), Multithreading
Multithreading 1. Multithreading Basic - thread: state한 명령어 스트림. state은 레지스터나 메모리에 있다. 쉽게 생각해서 프로그램으로 볼 수 있다. - 쓰레드 컨텍스트는 레지스터에 있는 state를 의미한다. - 그동안은 하나의 쓰레드에서의 동작 처리 방식을 배웠다. - 매우 많은 쓰레드가 처리해서 시스템 성능을 올릴 수 있다. - 동일한 프로그램 내에서도 여러 쓰레드가 있기도 하다. - 포탈 사이트에 접속하면 사용자가 접속할 때마다 쓰레드를 배정해준다. 로컬 컴퓨터에서는 각각의 프로그램으로 이해하면 쉽다. - 프로세서는 쓰레드의 컨텍스트를 명령어를 통해 업데이트해준다. - 레지스터의 개수가 제한되어있기에 쓰레드의 컨텍스트를 업데이트하고 내리고 하는 것을 ..
2022.06.13