목록CS & SW & IT 용어 (18)
한 걸음씩 기록하며
1. MSA 등장 배경 및 Monolithic 1) MSA 등장 배경 80년대 초, 큰 규모의 시스템을 설계할 때 직면할 수 있는 공통 문제를 해결하기 위해서 아키텍쳐나 패턴의 필요성이 대두되었다. 가장 처음 등장한 용어는 Software Architecture였고, 그 후로 Monolithic Architecture, SOA, MSA 등 아키텍처 용어들이 탄생하게된다. Software Architecture : 소프트웨어 요소와 이들 요소의 외부 속성 그리고 이들 사이의 관계를 구성하는 시스템의 구조 서비스 지향 아키텍처(Service Oriented Architecture): 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워..
과거에는 CPU와 메모리가 같은 속도로 작업을 했지만, 컴퓨터 하드웨어의 발전에 따라 CPU는 기하급수적으로 빨라졌지만, 메모리가 그 성능을 따라오지 못하는 비효율의 문제가 대두되었다. 이러한 문제를 해결하고자 컴퓨터 구조에서는 메모리의 계층을 분리하여 가장 빠른 메모리인 레지스터를 프로세스 데이터 패스 안에 넣고, 메모리에서 레지스터로 미리 데이터를 보내놓는 방식으로 속도 차이의 문제를 완화 시키는 방법을 사용한다. 메모리 계층(Memory Hierachy) 메모리의 성능에 차등이 있기 떄문에, 성능과 필요와 목적에 따라 여러가지 종류로 나누어 두는 것을 메모리 계층이라고 한다. 메모리 계층은 컴퓨터의 설계에 있어 각각의 특징이 있는 서로 다른 여러 종류의 저장 장치를 함께 사용하여 최적의 효율을 낸다..
참고문서 1. https://blog.coderifleman.com/2017/12/18/the-clean-architecture/ / 로버트 C.마틴의 The Clean Architecture를 한국어로 번역한 글 2. https://k-elon.tistory.com/38 / 설명 글 3. https://dailyheumsi.tistory.com/239 1. system architecture? 시스템 아키텍처는 시스템의 구조(structure), 행위(behavior), 뷰(views)를 정의하는 개념 모델이다. 시스템의 목적을 달성하기 위한 각 컴포넌트가 어떻게 상호작용하고 정보가 어떻게 교환되는지를 설명한다. → 시스템 아키텍쳐들의 “관심사의 분리(separation of concerns)” 라는 ..
0. 선행지식 CPU : 중앙처리장치 코어(core) : 각종 연산을 하는 CPU의 핵심 요소 (CPU 안에서 일하는 실무진이라 보면 된다..) 프로세서 (processor) : 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로, 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛 초기의 컴퓨터는 멀티 태스킹이 불가능했다. 그러나 CPU 성능이 개선됨에 따라 Context Switching을 통해서 동시성을 구현하는 것이 가능해졌다. 동시성(Concurrency) : 동시에 실행되는 것 같이 보이는 것 2000년대 초반, 한계치 이상까지 CPU의 쿨럭을 끌어올리던 CPU 제조회사들은 2002년에 3Ghz 쿨럭을 돌파했다. 그러나 이로 인해 발생하는 발열, 엄청난 전력 소모로 인해 CP..
0. 선행 지식 *정적 메모리 할당 - 동적 메모리 할당과 반대되는 개념 - 프로그램이 시작되기 전에 미리 정해진 크기의 메모리를 할당 받는 것을 말함 - 처음에 결정된 크기의 값 만을 처리함 1. 동적 메모리 (Dynamic Memory Allocation) 동적 메모리 할당이란 프로그램이 실행 도중에 동적으로 메모리를 할당 받는 것을 의미한다. 프로그램에서는 필요한 만큼의 메모리를 시스템으로부터 할당을 받아서 사용하고, 사용이 끝나면 메모리를 반납한다. 운영 체제의 힙 영역의 메모리를 할당 받아서 사용한다. 힙 메모리 : 메모리를 프로그램이 실행되는 동안 동적으로 결정하는 경우 사용되는 공간 필요한 만큼만 할당 받고, 반납함으로써 메모리의 효율적 사용, 유연한 관리가 가능하다는 장점이 있다. 운영체제..
0. Analog & Digital Analog 아날로그는 “외부적인 원인에 의해 연속적으로 변하는 것들을 연속된 물리량"으로 나타내는 것을 뜻한다. 우리가 자연에서 얻는 신호는 대개 아날로그이다. (빛의 밝기, 소리의 높낮이나 크기, 바람의 세기 등) Digital 아날로그의 반대로서, 연속적이지 않고, 특정한 최소 단위를 갖는 이산적인 수치를 이용하여 나타내는 방식을 뜻한다. Sampling (표본화) 아날로그 자료 샘플을 일정한 주기로 채집하여 디지털로 변환하는 과정을 샘플링이라고 한다. 1. 디지털을 아날로그로 변환 DAC (Digital to Analog Converter) 디지털 신호를 아날로그 신호로 변환해주는 장치 즉 2진수의 디지털 신호를 연속적인 아날로그의 값으료 변환하는 장치이다. ..
정의 - 평문(Plaintext) : 해독 가능한 형태의 메시지(암호화전 메시지) - 암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지) - 암호화(Encryption) : 평문을 암호문으로 변환하는 과정 - 복호화(Decryption) : 암호문을 평문으로 변환하는 과정 - 전자서명 - 송신자의 Private Key로 메시지를 서명하여 전달 - 수신자측에서는 송신자의 Public Key를 이용하여 서명값을 검증 암호화는 평문을 특정 key를 이용해 해독할 수 없는 형태로 변경하는 것을 뜻한다. 암호화 기법에는 크게 양방향과 단방향 암호화가 있는데, 평문을 암호화 한 암호문을 반대로 복호화 할 수 있는지 여부에 따라서 양방향, 단방향이 나눠진다. [양방향 암호화] 양방향 암호화는..
[시간 표현과 상태 기억] 📋 Logic 조합 논리 (Combinational Logic) : 현재 출력은 현재 입력의 함수 순차(순서) 논리 (Sequential Logic) : 현재 출력은 현재 입력과 과거의 입출력에 영향을 받는다 주기적 함수의 예시 : 지구의 자전 지구가 한 바퀴를 다 돌면 이를 하루라고 부른다. 하루를 나누어 구분하면 하루는 86,400초이므로, 1초는 지구 자전의 1/86,400이라고 정의 할 수 있다. Q. 그렇다면 디지털 회로에서는 시간을 어떻게 만들어내는가? 👉🏻 전자공학적으로 주기적인 전기 신호를 만들어내는 방식을 사용 [ 발진자(oscilator) ] 발진자는 인버터의 출력을 그림과 같이 입력에 연결하는 트릭을 이용하여 동작 feedback(되먹임) : 인버터의 출력이..