일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Swift 디자인패턴
- global soop
- 애플 디벨로퍼 아카데미 후기
- 제앱소
- 운영체제
- 소프트웨어분석및설계
- StateObject
- 데이터베이스
- 치지직
- SWIFT
- 애플 디벨로퍼 아카데미
- 앱 비교 프로젝트
- ObservedObject
- swift문법
- 애플 디벨로퍼 아카데미 21주차 회고
- 네이버 부스트캠프
- OS
- apple developer academy 후기
- useReducer
- 네이버 치지직
- 애플 아카데미 후기
- 숭실대
- iOS 개발 오류
- Swift 기능
- 데이터베이스 공부
- react
- ObservableObject
- Swift 문법
- sqoop
- Apple Developer Academy @ POSTECH
- Today
- Total
목록전체 글 (290)
사과하는 제라스
1장 1.1. ACID란? Atomicity(원자성)는 all or nothing으로 트랜잭션을 구성하는 모든 연산이 수행되거나 어느 연산도 수행이 되지 않는 것. Consistency(일치성)는 트랜잭션의 시작과 끝에서 DB의 상태와 제약사항이 같아야 하는 것. Isolation(고립성)은 여러 트랜잭션이 동시 수행 중에 있어도 각 트랜잭션들은 다른 것들과 분리되어 서로의 상태를 알 수 없는 상태로 실행되어야 하는 것. Durability(지속성)은 commit된 트랜잭션의 결과는 시스템 장애가 발생하여도 DB 상태에 반영되어야 하는 것. 1.2. UNIX 파일 시스템 관련한 문제 a. 파일의 생성 및 삭제, (파일에 데이터를 쓰는) 과정 step1. 파일 시스템에서는 파일 생성 시 파일에 저장소가 할..
DBMS는 데이터를 저장 및 관리를 하기에 이를 저장해둘 데이터 저장 장치에 대한 지식을 갖춰야 함. 4.1. 물리적 저장 매체 - 물리적 저장 매체는 1) 데이터 접근 속도, 2) 데이터 저장 비용, 3) 신뢰성 4)휘발성(volatile) 여부 등으로 분류함. 캐시 메모리 VS 메인 메모리 캐시 메모리 - 가장 빠른 형태의 메모리이고 가장 비쌈. - CPU 안에 위치함. - volatile 메인 메모리 - volatile - 전체의 DB를 저장하기엔 아직도 비싸기에 용량이 작고 모든 DB가 올라가지는 않음. - 데이터 접근 속도는 나노초 단위이고 10-100 나노초 정도의 빠른 속도로 접근함. 플래시 메모리 - non-volatile - Read하는 건 메인 메모리만큼 속도가 빠르지만, Write하는..
3.1. 장애 및 복구 DBMS가 처리하는 장애는 3가지가 있음. 1) Transaction Failure : 트랜잭션 자체의 내부 논리 오류, 사용자의 명시적인 요구, 시스템 내부 결정에 의하여 발생 가능. ex) deadlock -> victim이 abort됨. 2) System Failure(=Crash) : 휘발성 기억 장치인 메인 메모리에 문제가 발생하여 내용이 사라지는 것. ex) 정전, OS 오류, HW 결함 3) Disk Failure : HW 및 SW 결함으로 인해 디스크 내용이 사라지는 현상. 장애는 언제 어디서든 다양한 형태로 발생할 수 있기에 시스템은 트랜잭션의 ACID성질 지원을 위해 복구 기법이 필요함. Recovery Algorithms : 복구 알고리즘은 DB의 일치성(C)과..
현재까지 나와있는 동시성 제어 방법 중 Locking이 가장 효율적인 방법이기에 현재 가장 많은 DBMS에서 쓰인다. ∴ Locking 방법만 찾아볼 거임. 2.1. 록 기반 규약(Lock-based Protocols) Lock: 데이터 아이템에 대한 동시성 접근을 다루기 위한 메커니즘. Locking Protocol: 모든 트랜잭션이 Lock을 Requesting, releasing 을 할 때 따르는 규약들. -> 이 프로토콜을 씀으로서 가능한 스케쥴 세트를 제한함. 데이터 아이템은 두가지 방식으로 Lock 될 수 있음. 1) Exclusive mode(=Write Lock): 데이터 아이템은 Read/Write 가능(Write가 필수는 아님), 주로 lock-X instruction 사용, 다른 Lo..
Activity Diagram이란...? : 일련의 활동(Activity)들로 workflow(i.e.Runtime-control flow)를 표현하는 다이어그램으로 Behavior Modeling을 위한 UML Diagram 4가지 중 하나이다. - Sequence Diagram(순서 다이어그램) Activity Diagram은 시스템 전체, sub 시스템의 흐름을 표현하지만, Sequence Diagram은 주로 Use Case Set을 다룬다. 추가 정보... - State Diagram(상태 다이어그램)과의 차이: State Diagram은 하나의 객체의 흐름을 표현함. 그렇다면 이제 Activity Diagram의 구성을 알아보자! Activity Diagram의 구성요소 1. Action/Ac..
단일 Bus 구조 Bus: CPU, RAM, I/O 장치 간 데이터가 전송되는 통로 ex) Data Bus, Address Bus 그렇다면... 단일 Bus 구조란...? - 하나의 시스템 버스에 여러가지 모듈이 연결되어 있는 형태. - CPU, Memory, I/O 속도가 비슷했던 초창기에 발생 but 속도 격차가 증가하면서 '병목 현상'이 발생하는 문제가 생기기 시작함. 병목 현상 : 같은 버스에 연결된 디바이스들 사이의 속도 차이로 발생하는 현상으로, 빠른 디바이스가 처리하는 양 만큼을 느린 디바이스가 처리하지 못하여 전체 시스템 속도가 느린 디바이스의 속도로 제한되는 현상. - 주로 CPU> Memory >> I/O로 속도의 격차가 커짐. 속도: CPU > 메모리 > Disk > Network >..
OS가 하는 일 - Process 관리 - 여러가지 프로그램들을 실행하기 위해서 프로세스를 만들고 그 안에 유저가 원하는 응용 프로그램을 실행 - Memory 관리 - 각 프로세스가 사용하는 메모리 관리 - File 관리 - 각 프로세스가 사용하는 파일 관리 - I/O System 관리 - 각 프로세스가 사용하는 I/O 시스템 관리 - Networking - 네트워크를 사용하는 프로그램이 많아지면서 이를 관리해야 하는 부분도 커짐. - Security - 더 안전한 실행환경을 위한 연구 증가. 컴파일러(Compiler) : 사람이 이해 가능한 PL로 작성된 Source Code -> CPU가 이해할 수 있는 기계어인 Object 파일로 변환 (정확히는 Source Code를 Compiler를 통해 ass..
System Structure 운영체제는 규모가 매우 크고 복잡한 SW이다. ∴ 설계 시 'SW 구조'를 신중히 고려 필요. 좋은 설계 시... 1. 개발 시 편리함.(Develop) 2. 수정 및 디버깅 easy.(Modify&Debug) 3. 유지 보수가 쉬움.(Maintain) 4. 확장성이 좋아짐.(Extend) OS의 Design Priciple(디자인 원칙) 1. Policy : OS가 무엇이 되게 할 것인가. 2. Mechanism: 어떻게 그것을 제공할 것인가. -> 이렇게 Policy와 Mechanism을 분리함으로서 OS 설계를 보다 모듈화할 수 있음. OS 설계를 위한 방법 1. Layering : OS 설계의 복잡도를 낮추기 위한 방안 - 각 Layer는 Well-defined 함수..
1.1 트랜잭션 개념 트랜잭션(Transaction): 하나의 논리적 작업을 수행하는 DB 연산의 순서로, 여러개의 작업을 하나로 묶은 실행 유닛. 트랜잭션 관리 1) HW, SW, Transaction 등 다양한 시스템의 장애를 극복하는 회복 기능(Recoverability) 2) 다수개의 트랜잭션을 동시에 수행 시 발생하는 문제점을 해결하는 동시성 제어 기능(Concurrent Execution) -> 이 두가지 이슈의 관점에서 접근한다. 트랜잭션의 ACID 성질 Atomicity(원자성) : all-or-nothing으로, 트랜잭션을 구성하는 연산은 모두 수행되거나 어느 연산도 수행되지 않아야 한다.(연산의 일부만 수행되는 것은 불가능) 예시) 계좌이체를 할 때 1. A 계좌에서 10만원을 출금을 ..
1. 컴퓨터의 기원 - Compute + -er => 2차 세계대전(암호 해석, 미사일 탄도 분석, 물리 계산 등) 1) 1950년대 초반 매우 원시적임, 1bit 단위로 입력되어 실행 2) 1950년대 중반 모든 프로그램이 기계어로 쓰여짐, 아직 PL, OS도 존재하지 않음, 영구적인 저장장치 없음(매번 프로그램 재입력) 3) 1960년대 초반 펀치카드 등장, 프로그래밍한 카드로 컴퓨터 구동 2. 일괄처리(Batch) - 일단 시작한 job이 끝나야 다음 job이 수행됨. - 결과를 받기까지 중간에 유저 인터랙션 불가능함(= 중간에 개입이 안됨.) - 사람이 Job을 스케쥴링함.(∵OS가 없기 때문에) - CPU가 빈번히 IDLE 상태(프로세스가 실행되고 있지 않은 상태)로 전환됨 3. Automati..