일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- global soop
- 애플 디벨로퍼 아카데미
- 애플 디벨로퍼 아카데미 21주차 회고
- 앱 비교 프로젝트
- Swift 문법
- 네이버 부스트캠프
- swift문법
- thread safe
- 데이터베이스 공부
- OS
- 네이버 치지직
- memoization
- useReducer
- 제앱소
- 숭실대
- 운영체제
- ObservedObject
- 동시성 프로그래밍
- 소프트웨어분석및설계
- StateObject
- Swift 디자인패턴
- react
- iOS 개발 오류
- 치지직
- 애플 디벨로퍼 아카데미 후기
- Apple Developer Academy @ POSTECH
- Swift 기능
- ObservableObject
- SWIFT
- 데이터베이스
- Today
- Total
목록대학 전공 공부 (58)
사과하는 제라스
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..
색인이란...? : 데이터에 접근을 할 때 속도를 높이기 위한 도구. ex.책 뒤의 pg에 대한 태그 - : index 레코드 -> 이게 모이면 index 화일. - 인덱스의 2종류: 1. Ordered index : search-key가 정렬되어 있는 index. 2. Hash index : search-key가 정렬되어 있지 않고 hash 함수를 통해 구분하는 index. 색인의 평가요소 5가지 1. 접근 타입 지원 : Exact match query(속성의 특정 값과 일치하는 터플을 검색하는 일치 질의 형태) VS. Range query(속성이 일정 범위에 속하는 터플을 검색하는 범위 질의 형태) 2. 접근 시간 3. 삽입 시간 4. 삭제 시간 5. 공간 오버헤드 Ordered Index(정렬 색인..
OS의 중요 기능 2가지 중 하나인 'HW 자원에 대한 배분' ∴ OS가 각 프로세스들에게 CPU를 어떻게 배분?? 이걸 알아야 함. (CPU) Scheduling이란? : 어떻게 프로세스들에게 CPU의 사용을 할당할 것인가. - Multiprogramming이란 기법이 발전하게 되면서 CPU Scheduling이 발전함. -> 멀티프로그래밍: Memory 내의 Ready State의 프로세스들 중 하나에 CPU를 할당하는 방법. - CPU 스케줄링 목표: CPU 사용률과 처리량의 최대화 프로세스 수행 사이클 - CPU-I/O Burst Cycle : 프로세스가 CPU Burst와 I/O Burst를 번갈아 가며 수행을 함. - CPU Burst: CPU로 연산을 수행하는 시간 - I/O Burst: I..
소프트웨어 품질(Software Quality)이란? 외부적으로는 명시적 기능 및 성능 요구사항, 문서화된 개발 표준 및 내부적으로는 전문적으로 개발된 모든 소프트웨어에 예상되는 특징에 대한 부합 정도. -> 필요 사항: 품질을 측정하는 기준. 소프트웨어 분석(Software Analysis)이란? 주어진 요구사항을 이해하고 다이어그램과 텍스트 설명을 통해 명시하는 활동 뭘 이해할 건데?? 1) 명시적인 요구사항 2) 묵시적인 요구사항 SW 분석이 중요한 이유? : 소프트웨어 설계(Software Design)란? 분석 모델을 보다 세부적으로 세분화하고 그 구현을 위한 기술적 의사 결정을 내리는 활동 뭐가 좋은 설계인데?? 1) 분석 모델과 일치하는 것. 2) 구현을 위한 필수 사항들이 명시된 것. 3)..
State Machine Diagram : 상태 혹은 상태의 변화에 대한 행위를 나타내는 다이어그램 - 주로 전체 시스템이나 서브 시스템, 객체가 타깃이 될 수 있음. - 객체 지향 개발에서는 객체가 타깃임. State - state: 일정 시간동안 타깃이 차지하는 특정 조건을 나타냄. - current state: 현재 타깃이 남아있는 state로 단 하나만이 될 수 있음.(한번에 여러 state에 위치 불가능.) Transition : 현재 state의 변화. Event에 의해서 발생함. Transition의 3요소 1) Event : Transition을 실행하기 위한 트리거.(ex. 속도 증가 버튼 클릭) 2) Guard : Transition을 실행하기 위한 Boolean 조건(ex. 현재 속도..