Major`(171)
-
[SE] 요구 분석
소프트웨어 프로젝트에서 계획이후 가장 먼저 할 일은 "소프트웨어 시스템이 가져야할 기능/성능을 분석하고 요구사항을 정리"하는 것이다 요구 분석 요구 분석이란 "사용자의 여러가지 요구에 대해서 이해하는 단계"라고 생각하면 된다 요구 분석은 간단해보이지만 소프트웨어 개발의 성패에 굉장히 큰 영향을 미치는 단계이다 요구 분석단계에서 사용자의 스토리를 제대로 이해하지 못하고 설계및 구현에 들어가게 되면 반드시 스토리와 맞지 않는 부분이 도출될 것이고 그러면 설계및 구현에서 오류에 대한 fix를 해야하는데 그 경우 오류 처리에 대한 cost가 굉장히 많이 들어가게 된다 그리고 요구 분석 단계에서는 작업에 대한 "How"가 아니라 "What"에 초점을 두어서 작업해야 한다 1. 요구에 대한 정의 요구란 시스템에 대..
2022.07.19 -
[OS] 9. 파일 시스템
File "A named Collection of related Information" 논리적으로는 byte단위로 저장되어있다고 볼 수 있지만 실제 물리적으로는 "Block"단위로 Disk에 저장되어 있다 이 Block들이 Disk 여러곳에 흩어져 있는데 파일은 "흩어진 관련된 Block들을 모아놓은 것"이다 당연한 말이지만 파일은 "비휘발성 기억장치(Disk)"에 저장되어 있다 File Attribute (File's Metadata) 파일 내부의 내용이 아니라, 파일을 관리하기 위한 정보들을 File's Metadata라고 한다 - 파일 이름 - 유형 - 저장된 위치 - 파일 사이즈 - 접근 권한(r w x) - 시간 (생성된 / 변경된 / 사용된) - 소유자 - .... ▶ 그러면 OS입장에서는 "..
2022.06.11 -
[AI] 강화 학습 (Reinforcement Learning)
Supervised Learning은 인간이 "Labeled Data"를 줌으로써 Agent는 Learning을 통해서 주어진 훈련 데이터를 모두 만족하는 가설함수를 찾아낸다 Unsupervised Learning은 인간이 "input Data"만을 줌으로써 Agent는 Learning을 통해서 주어진 input data들을 "Clustering"한다 Reinforcement Learning은 이전의 Learning과는 완전히 다른 방식이다 왜냐하면 아예 훈련 데이터를 주지 않기 때문이다 그러면 어떻게 Agent는 Learning을 할까?? >> Agent는 아무것도 모르는채로 "환경"에 투입되어서 경험을 통해서 Learning을 한다 일단 Agent가 환경에 놓여지면 1) 먼저 state를 인식하고, ..
2022.06.10 -
[AI] Unsupervised Learning (Clustering)
Unsupervised Learning Supervised Learning은 인간이 "학습데이터 (Input Data - Output Lable)"를 부여하고 Agent는 받은 학습 데이터들의 output을 모두 만족시키기 위한 가설함수를 Learning을 통해서 알아낸다 Unsupervised Learning도 인간이 학습 데이터를 부여하기는 하지만 그 학습 데이터에는 "Output Label"이 존재하지 않는다. 그러면 Agent는 Unsupervised상에서 어떻게 Learning을 하라는 것일까?? >> Input Data끼리 "그룹화"를 시키는 Clustering을 학습의 결과로 도출해낸다 - Input Data안에 "숨겨진 패턴"을 학습하는 것 - 패턴이 비슷한 Data끼리 묶어준 "Clust..
2022.06.10 -
[정보보호개론] 9. 단순 인증 프로토콜
네트워크 측면에서 프로토콜은 연결된 다양한 통신시스템이 준수해야 할 규칙이다. 여기서는 "인증"을 목적으로 네트워크를 통해 전송되는 메시지에 대한 보안 문제를 다룰 것이다. 네트워크를 통해 전송되는 메시지에 대한 공격은 크게 {Replay Attack & MITM Attack}로 분류할 수 있다 단순 보안 프로토콜 1) 미 국가보안국 (NSA)의 출입증 & PIN NSA에 들어가려면 직원은 항상 출입증을 가지고 있어야 한다 그리고 어떤 gate에 출입증을 제시함과 동시에 자신이 알고있는 PIN을 입력해야 한다 1. 출입증을 판독기에 넣기 2. PIN 번호 입력 >> PIN번호가 유효하면 건물에 들어가고, 유효하지 않으면 총에 맞아 죽는다 2) ATM에서 현금 인출 1. 현금카드를 판독기에 넣기 2. PI..
2022.06.04 -
[OS] 8. 가상 메모리
시스템 내부에서는 "여러 프로세스들"이 CPU와 메인 메모리 등의 자원을 공유한다. CPU를 공유하는 부분에 대해서는 단지 어느 프로세스에게 할당해주고 & 이 과정에서 Context Switch가 발생하고 & .... 이러한 것들은 Response Time이나 이러한 시간적 측면에서 느려질 뿐, 시스템에 심각한 오류가 발생하지는 않는다 반면에 여러 프로세스들이 공유하는 "메인 메모리"는 다르다 각 프로세스들이 메인 메모리에 예전 방식으로는 Contiguous하게 올라갈 수도 있고, 아니면 고정 크기로 분할한 Paging 기법을 사용해서 올라갈 수도 있고, 의미있는 가변 크기로 분할한 Segmentation 기법을 사용해서 올라갈 수도 있다. 여기서 각 프로세스들은 본인에게 할당된 영역만 access해야 ..
2022.06.04 -
[정보보호개론] 8. 인가 (Authorization)
Access Control Matrix 인가는 "인증된 user"에게 어디까지 권한을 줄지에 관한 것이다 대표적으로 "인증된 user에 대한 시스템 자원의 권한"을 Matrix 형태로 나타낸다 row는 인증된 user로써 사람이 될 수도 있고, 시스템 상의 자원이 될 수도 있다 column은 시스템 상의 자원을 나타낸다 Bob을 보면 OS에 대한 "rx"권한이 존재하고 Accounting Program에 대해서도 "rx"권한이 존재하고 Accounting Data에 대해서는 "r"권한이 존재한다 r : read w : write x : execute 하지만 이러한 Matrix방식은 "user - Resource"가 많아질수록 크기가 굉장히 커진다 이러한 Matrix를 2가지 측면에서 나눈 "Access ..
2022.06.03 -
[정보보호개론] 7. 인증 (Authentication)
접근제어란, 시스템 자원에 대한 접근과 관련된 주제를 지칭한다 이 접근 제어는 {인증 & 인가}로 나눌 수 있다 인증이란 "신원을 모르는 user"에 대해서 시스템에 접근을 허용할지 여부를 결정하는 것이다 인가란 "인증된 user"에 대해서 시스템 자원의 어디까지 허용할지 여부를 결정하는 것이다 인증된 user라고 해도 시스템상의 모든 자원에 접근하게 내버려두는 것은 안된다 인증 (Authentication) 기본적으로 인증에는 3가지 방법이 존재한다 1. 알고 있는 것 (지식) 2. 가지고 있는 것 (보유) 3. 본인 자체의 것 (생체) 1. 알고 있는 것 (지식) 가장 대표적으로 user가 알고 있는 것은 "user의 Password"이다 Password는 가장 대중적인 "인증 방식"이고 가장 편리하..
2022.06.02 -
[AI] 비-모수 모델
모수 모델 : Parametric Model 모수 모델이란 "인간"이 가설 함수의 범위(다항식 차수)를 Agent에게 알려주고, 차수를 바탕으로 Agent는 Learning을 통해서 Parameter를 구하는 방식이다 A Learning Model summarizing data with a set of parameteres of fixed size 비-모수 모델 : Nonparametric Model 비-모수 모델은 인간이 학습하라고 부여한 학습데이터를 "학습"에 사용하지 않고 전부 보유만 하고 있다 학습을 안하고 놀고있고, 받은 훈련 데이터는 가지고 있기만 한다 매번 input이 들어올때마다 "보유하고 있는 학습 데이터를 사용"해서 해당 input에 대한 결과를 도출해내는 방식이다 개체-기반 학습(In..
2022.05.28 -
[AI] 인공 신경망
Neural Network Neural Networks는 신경세포(Neuron)들의 "연결(Link)"로 구현되어 있다 Neuron들을 "Unit"이라고 부르기도 한다 Input Links는 N차원으로 구성이 되고, 각 Input Link마다 "가중치"가 존재한다 {Input Value & Weight}를 각 input마다 곱해서 들어온 총 합(Input Function)이 "Neuron으로 들어오는 Input Value"라고 할 수 있다 이렇게 Neuron내부로 들어온 Value는 "Neuron의 Activation Function"에 의해서 Processing되고, Processing이 완료된 값이 Output으로 나가게 된다 Input Function Input Function이란 들어오는 valu..
2022.05.28 -
[OS] 7. 메모리 관리
Memory 컴퓨터 시스템에서 메모리는 굉장히 중요한 하드웨어이다. 디스크에 존재하는 프로그램은 OS에 의해서 메인 메모리로 올라가게 되고, 스케줄링에 의해서 CPU를 할당받고 실행이 된다 이 때 CPU는 "해당 프로세스의 주소"를 통해서 프로세스에 접근할 수 있다 CPU가 직접 Access 가능한 것은 메인 메모리 & CPU 내부 레지스터이다 Logical Address Logical Address란 "CPU가 보는 프로세스의 주소"이다 프로세스마다 독립적으로 보유하는 주소 공간이고 당연히 프로세스 입장에서는 0번지부터 시작된다 Physical Address Physical Address는 "프로세스가 실제 메인 메모리에 올라가는 위치"를 의미한다 따라서 CPU가 프로세스에 access하려면 CPU가 ..
2022.05.21 -
[Algorithm Week_9&10] DP : Dynamic Programming
[Algorithm Week_3] Recursion Recursion - 자기 자신을 호출하는 구조? - 알고리즘 설계 & 문제해결의 필수 Recursion의 예 1) Factorial 2) 자료구조 (LinkedList & Binary Tree) LinkedList Null은 List이다 어떤 A가 List이면, A앞에 노드.. cs-ssupport.tistory.com "Fn은 n번째 피보나치 수" ▶ 1-(b) Solution 1-(a)에서 "추상적인 문제"를 묘사했다면 여기서 "해당 문제에 대한 Algorithm | 점화식"을 설계해야 한다 DP에서 점화식없이 문제를 해결할 수가 없다 2. Build Solutions to your recurrence from the bottom up 정의한 Pr..
2022.05.18