일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 애플 디벨로퍼 아카데미
- 앱 비교 프로젝트
- 숭실대
- OS
- 제앱소
- ObservedObject
- 애플 디벨로퍼 아카데미 21주차 회고
- 데이터베이스
- react
- Swift 기능
- StateObject
- ObservableObject
- 동시성 프로그래밍
- memoization
- Swift 디자인패턴
- Apple Developer Academy @ POSTECH
- 운영체제
- useReducer
- swift문법
- 네이버 부스트캠프
- SWIFT
- 치지직
- iOS 개발 오류
- 데이터베이스 공부
- 소프트웨어분석및설계
- thread safe
- 네이버 치지직
- Swift 문법
- 애플 디벨로퍼 아카데미 후기
- global soop
- Today
- Total
목록전체 글 (285)
사과하는 제라스
Design Pattern이란? SW를 개발 시 Context에서 발생할 수 있는 Problem과 이에 대한 Solution이다. 또한, 이를 통해 성공적인 SW 구조 및 디자인을 재사용할 수 있다. Classification of Design Patterns 1) Creational Patterns : 클래스와 객체의 초기화와 설정을 함. 2) Structural Patterns : 클래스와 객체의 interface와 implementation(인터페이스를 구체화한 실행체)를 분리함. -> 여러 객체들을 집합화하는데에 쓰임. 3) Behavioral Patterns : 클래스와 객체들 간의 dynamic interaction을 다룸. Design Pattern 원칙 디자인 패턴을 개선하기 위한 3원칙이..
5.1 일반적으로 서로 다른 검색 키에 대해 동일한 관계에 있는 두 개의 군집화 지수를 갖는 것이 가능한가? 당신의 답을 설명하세요. 답변: 일반적으로 동일한 값을 함께 저장하려면 관계의 튜플이 서로 다른 순서로 저장되어야 하기 때문에 서로 다른 키에 대해 동일한 관계에 있는 두 개의 기본 인덱스를 가질 수 없습니다. 우리는 관계를 두 번 저장하고 모든 값을 복제함으로써 이것을 달성할 수 있지만, 이것은 데이터베이스 시스템에서는 단순히 허용되지 않는다. 5.11 When is it preferable to use a dense index rather than a sparse index? Explain your answer. Answer: It is preferable to use a dense index..
File이란? : Array of Bytes : A Collection of Related Information File System -> Memory Management System과 유사한 일을 함. 1) File과 Physical Disk Block 간의 Mapping을 제공함. - Disk 위치 배치를 담당함(File Blocks -> Disk Blocks) ∴ 유저는 File이 저장된 위치를 알 필요가 없음. 2) Disk에 들어가 있는 File 전체를 총칭함. -> File System의 종류에 따라 File들의 배치나 구성이 달라질 수 있음. File Operations Open / Close Semantics 여러 프로세스가 파일을 공유하는 경우, 두개의 Open File Table을 유지..
멀티 프로그래밍 시스템에서 메모리 내에 위치한 유저 프로세스의 수가 증가함. -> 모든 유저 프로세스가 사용하는 Page 수보다 PM의 Frame 수가 적은 상황이 발생 -> 메모리 과다 할당 상태(= 다 PM에 올려둘 순 없잖아~~) 이걸 해결하려면 Page Fault 처리에 Page Replacement를 추가해야함. Page Replacement : PM에 위치한 Page를 디스크에 저장하고 요구된 Page가 해당 Frame을 할당 받도록 하는 방법 Page Fault with Page Replacement 1. 디스크에서 요구된 Page의 위치를 찾음. 2. PM에서 Free Frame을 찾음 - Free Frame이 있으면 그거 바로 사용함. - 없으면 Page Replacement Algori..
범용 컴퓨터 시스템의 목적(=운영체제의 목적) - CPU의 활용률을 극대화시킴. - 사용자에게 빠른 응답을 제공함. 이러다 보니...!! 메모리 관리의 필요성 등장 - 여러 프로그램이 동시에 메모리에 적재되어 실행됨 -> "메모리 공유가 필요함!" - 컴퓨터의 메모리는 한정적인 자원이다보니 관리가 필요 -> "자원이 한정적!" Address Space(주소 공간) : 프로세스에서 참조할 수 있는 주소들의 범위 및 집합 - 프로세스와 1:1 관계 - User Thread는 주소 공간을 공유함. 주소 공간의 크기 - CPU의 주소 버스의 크기에 의존함. ex. 주소 버스가 32bit이면 2^32개의 서로 다른 주소에 대한 식별자를 만들 수 있기에, 0~2^32-1까지의 주소 범위를 Addressing할 수 ..
동기화의 고전적인 문제 Big 3 1. Bounded-Buffer Problem 2. Readers and Writers Problem 3. Dining Philosophers Problem Bounded-Buffer Problem : N개의 Item을 삽입할 수 있는 Buffer가 있음. 여기에 여러 생산자와 소비자들이 접근함. - 생산자: 하나의 Item을 생산해서 Buffer에 넣는 사람. -> Buffer 배열 중 같은 index에 접근해서 Item을 넣을 시 Race Condition이 발생할 수 있음. - 소비자: Buffer에서 하나의 Item을 가져오는 사람. -> Buffer에서 가져오는 Item을 소비하고 비워주는데 Buffer의 상태가 Empty면 대기함. 근데 이런 거에 많이들 대기..
Race Condition : 공유 데이터에 대해 여러 프로세스가 동시 접근 및 변경을 시도하는 상황 -> 이러한 동시 접근 및 변경은 데이터의 일관성(Consistency)을 해침. Race Condition 예시 은행의 입출금 문제 : 1000원의 잔고가 있는데, 여기에 500원 입금, 500원 출금이 동시에 일어남. 결과는? 이 소스코드들은 컴파일러에 의해 분해되기에 레지스터 수준에서 봐야함. Critical Section : 여러 프로세스들이 공유하는 데이터에 접근하는 Code 영역 ex. 위 입출금 문제 예제에서는 Balance = Balance + 500; , Balance = Balance - 500; Race Condition을 방지하기 위해!!! 한번에 단 하나만의 프로세스가 Critic..
Process가 뭐여...?? 이거 되게 추상적인데... OS에서 추상적인 개념으로는... 1) Scheduling의 단위 2) 소유하고 있는 자원(Virtual Memory, file 등)에 대한 보호 프로그램과의 관계에서는... 3) 정적인 단위의 프로그램에 반해 하나의 실행 흐름을 갖고 실행 중인 프로그램 -> 근데 이거 실행 흐름이 여러 개일 수도 있는데...?!?!?!?!? 이렇게 프로세스 안에서 실행되고 있는 논리적인 각각의 실행 흐름 => 이게 Thread다!!! Thread - Execution Unit - 프로세스 내의 실행 흐름 - 프로세스보다 작은 단위 - 프로세스가 제공한 Protection Domain은 없음 Thread 라는 개념은 왜 생겨남...?? 프로세스를 여러개를 쓸 수는..
프로세스들이 어떻게 서로 협력을 할 수 있음...? OS는 이를 어떻게 지원함...? 궁금해...!!! IPC란...? : 프로세스들 간에 데이터/정보를 주고 받기 위한 메커니즘. -> 커널에서 IPC를 위해 System Call 형태로 도구를 제공함. (프로세스들은 이 System Call들을 호출함으로서 프로세스 간에 통신할 거라고 OS에게 얘기해 줌.-> OS는 그 프로세스들에게 그 기능을 사용 가능하게 해줌.) - IPC의 필요성 : Process 협력 모델을 구현하기 위해서 반드시 필요함. -> 실행 중인 프로세스는 협력하는 다른 프로세스의 영향을 받음. 어떤 시스템이 돌아갈 때 여러 프로세스들이 사용되는데 그들 간에는 통신을 해야 함. 이러한 통신을 위해서는 IPC가 필요함. IPC 모델 2가..
소프트웨어 설계에서의 SW 컴포넌트를 얘기할 거임. 크게 1. Functional Component 2. Data Component가 있음. Functional Component : 타깃 시스템에 대한 특정한 기능을 제공하는 기능적 응집 단위임. ex. 차 대여 관리 시스템에서는... - User Profiler - Inventory Manager - Reservation Manager - Rental Manager - Payment Hander Data Component : 지속적인 데이터 모음을 관리하는 응집 단위임.(기능별이 아니라...!) ex. 차 대여 관리 시스템에서는... - User Profile - Reservation - Rental - Payment -> 이처럼 Data Compone..