분류 전체보기(619)
-
소프트웨어 공학 (9), Implementation
Design and Implementation 탑다운 방식이면 디자인과 구현을 명확하게 구현하곤 한다. 이를테면 설계는 한국에서 하되 구현은 외국에서 진행하는 등의 역할을 구분해 나눌 수 있다. 이러한 경우에는 디자인 단계에서 많은 문서가 나올 수 있다. 그러나 데브옵스와 인터넷 설계 등을 봤을 때 설계와 구현은 밀결합되어있는 경우가 많다. 소프트웨어에 대한 상세 설계와 구현은 프로그래밍 언어를 통해 만드는 과정을 의미한다. 결과적으로는 executable한 시스템을 만들 수 있다. 상세 설계와 구현은 매우 밀결합한 경우가 많다. 구현을 하다가 문제가 발생하는 경우에는 상세설계에 피드백을 줄 수도 있다. 둘은 매우 많이 인터렉션해야한다. 둘을 함께 진행하는 경우에는 일반적으로는 agile 기법이다. ag..
2022.04.25 -
소프트웨어 공학 (8), Architectural Design
Architectural Design 1. Architectural Design 앞서 정의한 시스템을 큰 틀에서 디자인 하는 것 0) 개요 - 성취하고자 하는 기능과 성능을 비롯해 보안, 신뢰성, 유지보수 가능성 등의 비기술적인 부분에 대한 뼈대를 결정하는 것 - 요구사항 엔지니어링의 다음 단계로 세부적인 사항을 디자인하기 이전 단계에 해당한다. 따라서 어떤 구성요소가 들어가는지, 구성요소들 간의 관계를 디자인하는 작업이 주 작업이 된다. - 시스템을 구성하는 구성요소와 구성요소간 상호작용이 정형화된 문서나 포맷의 결과물로 도출되어야한다. - 큰 틀을 디자인하는 것이기에 Agile 기법에서도 아키텍쳐에 대한 디자인은 중요하다. - 아키텍쳐를 잘못 만들면 incremental이 어려울 수 있다. 이를 실패..
2022.04.25 -
소프트웨어 공학 (7), System modeling
System modeling 개념적인 모델에서 상호작용하는 내용과, 세부적인 동작을, 시스템 구성 요소에 대한 정의하는 것 1. System modeling 1) System modeling이란? - 요구사항을 반영한 시스템을 모델링하는 것으로 다른 단계에서 사용할 수 있는 도구가 된다. - 상호작용도 반영한다. - 여러 기법들이 존재하며, 이는 요구사항을 구체적으로 풀어가기 위한 단계가 된다. - 각 모델의 특장점을 활용해서 적절하게 맞는 기법을 추출하는 것이 중요하다. - 구체적인 그림을 가지고 서로의 생각을 표현할 것이다. ex) UML(unified modeling language) - 방법 각각이 의미가 있으며 순차적으로 해도 의미있으며 requirement나 소프트웨어 디자인 등에서도 내용을 ..
2022.04.25 -
오픈소스 SW개발 (6) NodeJS
NodeJS 1. NodeJS란? 1) NodeJS의 특징 - 자바스크립트 기반의 엔진을 인터프리터로 가지고 있고 프레임워크는 아니고 런타임 환경이다. - 이벤트 중심의 아키텍쳐이고, 이는 비동기적으로 동작한다. - Non-Blocking I/O를 지원하고, 실행 흐름이 싱글 스레드로 하나만 실행된다. - 독립적으로 짜여진 객체 집합인 모듈이 많이 짜여져있다. 2) NodeJS의 장점 (1) Asynchronous - I/O 작업은 일반적으로 많은 시간이 걸리는데 이 작업이 끝날 때까지 이를 기다리는 경우가 많다. 하지만 NodeJS는 non-blocking을 지원하고 CPU를 기다리는 시간이 없어도 된다. (2) Productivity - 자바스크립트는 프론트엔드에서 사용하는데 도움을 주었지만 이를 활..
2022.04.23 -
컴퓨터 구조 (5), Instruction Set Architecture 02
Instruction Set Architecture ISA는정확히 표현하고, 효율성이 있어야한다. 1. Instruction의 타입 1). Machine Instruction의 타입 (1) Opcode: 어떤 연산을 할건지 정의하는 파트 (2) Operands: 데이터 위치에 대해 알림 2) MIP Instruction의 타입 (1) Arithmetic and logic instructions (2) Data transfer instructions (3) Control transfer instructions 3) MIP Instruction format (1) R type - MIPS의 명령어는 32비트를 가지고 데이터 워드는 모두 같은 사이즈이다. - 두 개의 피연산자를 가지는 각각의 레지스터가 존재하..
2022.04.21 -
자료구조 (5), Stack and Queue
Stack and queue 1. Stack이란? 1) Stack이란? 항목의 제거 및 추가가 Stack의 상단에서만 발생할 수 있는 정렬된 동족 항목의 그룹 - 같은 데이터 타입의 자료구조만 모아서 사용한다. - Stack은 LIFO (Last In Fisrt Out) 구조이다. cf) 메모리 상에서의 Stack: 지역변수를 저장하는 공간 cf) Call Stack: 함수를 호출할 때 추적하는 것을 의미하는데 함수가 호출될 때 스택 구조로 쌓이기 때문에 이를 Call Stack이라고 한다. 2) 멤버 함수 구현 시 주의 사항 - 요소를 pop할 때는 실질적으로 요소를 삭제할 필요가 없이 top의 위치만 조정하면 된다. 메모리 상에는 남아있지만 이를 사용할 수는 없다. - pop 메소드는 마지막 데이터를..
2022.04.19