Computer Science
-
Builder Pattern (생성 패턴)의 정의와 예제Computer Science 2021. 9. 21. 01:33
빌더 패턴은 객체의 생성과 관련된 디자인 패턴이다 빌더 패턴과 비교 가능한 예시는 점층적 생성자 패턴(Telescoping Constructor Pattern), 자바빈 패턴(JavaBeans Pattern)이 있다. 점층적 생성자 패턴 - Telescoping Constructor Pattern Pizza hawaiian = new Pizza("cross"); Pizza hawaiian = new Pizza("cross", "mild"); Pizza hawaiian = new Pizza("cross", "mild", "ham+pineapple"); // Dough, Sauce, Topping 필수 인자를 받는 생성자와 선택적 인자를 받는 생성자들을 객체가 생성될 수 있는 케이스 숫자대로 만들어 객체를 ..
-
TCL(Transaction Control Language) in MySQLComputer Science/Database 2021. 9. 17. 22:28
DBMS에서 사용할 수 있는 SQL Commands는 크게 DDL(Data Definition Launguage): 데이터베이스, 테이블을 제어 DML(Data Manipulation Launguage): 테이블 내 데이터의 검색/등록/삭제/갱신의 연산 제어 DCL(Data Control Launguage): 데이터베이스에 접근할 때의 권한을 제어 TCL(Transaction Control Launguage): 논리적 작업 단위인 트랜잭션에 관한 연산을 제어 로 나뉜다. 대표적인 RDBMS인 MySQL에서의 TCL 연산을 직접 수행해보고 이해해보자 TCL 연산 COMMIT: 트랜잭션 내의 변경 사항을 영속적으로 데이터베이스에 반영한다 ROLLBACK: SAVEPOINT 혹은 마지막 커밋 시점으로 데이터베..
-
[OS] Memory ManagementComputer Science/Operating System 2021. 8. 10. 08:38
프로그램을 실행하기 위해서는 프로세스를 메모리에 올려야 한다. 운영체제는 한정된 메모리 공간을 활용하기 위한 메모리 관리 전략을 지니고 있다 Logical Address(Virtual Address) : 프로세스마다 독립적으로 가지는 주소공간. CPU가 보는 주소. 각 프로세스마다 0번지 부터 시작 Physical Address: 메모리에 실제로 올라가는 위치 Address Binding : Symbolic Address ➡ Logical Address ➡ Physical Address로 변환하는 과정 사용자 프로그램을 물리적 메모리에 직접 접근할 수 없기 때문에(권한을 가져서는 안 된다) 상징 - 논리 - 물리 주소로 바인딩하는 과정이 필요하다 주소 바인딩은 다음의 세 시점에 발생할 수 있다. 1️⃣ ..
-
[OS] 공유 자원의 접근을 제한하는 Process SynchronizationComputer Science/Operating System 2021. 8. 6. 08:59
많은 프로세스들은 자원 혹은 메모리를 공유한다. ex) 공유 메모리를 사용하는 프로세스들, 커널 내부 데이터를 접근하는 루틴들 Storage-Box: Memory Address Space / Execution-Box: CPU Process 프로세스의 수행은 공유 자원에 변화를 끼치게 되고, 여러 프로세스가 동시에 공유 자원에 접근하면 데이터의 일관성을 보장받을 수 없다. 그래서 프로세스는 특정 공유 자원을 선점할 때 다른 프로세스가 접근할 수 없게끔 제한한다. 하지만 특정 자원에 접근하려는 프로세스가 여러 개 일 경우 Race Condition이 발생할 수 있다 공유 데이터의 동시 접근은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다 !! 따라서 consistency 유지를 위해서는..
-
[Network] ARP 프로토콜Computer Science/Network 2021. 8. 2. 09:13
ARP 프로토콜(Address Resolution Protocol): IP주소를 이용해서 같은 네트워크 대역에서 통신하기 위해 필요한 MAC 주소를 알아내는 프로토콜 같은 네트워크 대역에서 통신을 하더라도 데이터를 보내기 위해서는 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP주소와 MAC주소가 모두 필요하다. 이 때, IP주소는 알고 MAC주소는 모르더라도 ARP 프로토콜을 통해 통신이 가능하다. ARP 프로토콜 구조 Hardware type : 2계층에서 사용하는 프로토콜 타입 Protocol Type : IPv4 Hard Add Len : 06 Proto Add Len : 04 Opcode : 어떤 동작을 하는지 나타내는 코드(1 - 요청, 2 - 응답) source hardware addre..
-
[OS] CPU Scheduling - 어떤 Job이 CPU를 선점할까Computer Science/Operating System 2021. 8. 2. 01:34
우리는 컴퓨터를 사용할 때 한 가지 작업만 하지 않는다. 크롬도 키고 vscode도 키고 카톡도 하고 유튜브도 봐야된다. CPU 스케줄링은 여러 종류의 Job들이 섞여있는 운영체제 환경에서 이러한 다중 프로그래밍을 가능하게 하는 동작 기법이다. 운영체제의 CPU 스케줄링은 다음의 두 가지 사항을 고려해야 한다. Interactive Job에게 적절한 시기에 Response를 제공하는 것 CPU와 I/O device 등 시스템 자원을 골고루 & 효율적으로 제공(I/O-bound job / CPU-bound job) CPU 스케줄러는 Ready 상태의 프로세스 중 CPU를 할당할 프로세스를 선택하는 역할, Dispatcher는 CPU의 제어권을 CPU Scheduler에 의해 선택된 프로세스에게 넘기는 역할..
-
[Network] 네트워크를 설명하는 두 가지 모델 - TCP/IP, OSI 7계층Computer Science/Network 2021. 7. 17. 13:57
OSI 7계층 - 네트워크 통신을 체계적으로 다루는 ISO에서 표준으로 지정한 모델. 데이터를 주고받을 때 데이터 자체의 흐름을 각 구간별로 나눠 놓은 것 TCP/IP 모델 - HTTP, TCP/UDP, IP, ICMP, ARP, Ethernet 등 각종 프로토콜을 중심으로 Layer를 4계층으로 단순화시킨 모델 공통점 계층적 네트워크 모델 계층간 역할 정의 차이점 OSI는 역할 기반, TCP/IP는 프로토콜 기반 OSI는 통신 전반에 대한 표준 TCP/IP는 데이터 전송기술 특화 + 패킷 - 네트워크 상에서 전달되는 데이터를 통칭하는 말 네트워크에서 전달하는 데이터의 형식화된 블록 제어 정보와 사용자 데이터로 이루어지며 사용자 데이터는 페이로드라고도 한다. Encapsulation - 여러 프로토콜을 ..
-
[Network] 데이터 링크 계층의 역할과 Ethernet 프로토콜Computer Science/Network 2021. 7. 15. 18:02
OSI 7계층의 2계층에는 데이터 링크 계층이 위치한다. 데이터 링크 계층 : 장치 간 신호를 전달하는 물리 계층을 이용하여 네트워크 상의 주변 장치들 간 데이터를 전송하는 계층 이 계층에서는 주로 로컬 네트워크에서 통신하는 방법에 대해 정의한다. 실질적인 네트워크 역할을 분류한 TCP/IP 네트워크 모델에서는 데이터 링크 계층과 물리 계층을 묶어 네트워크 인터페이스 모델로 설명하기도 한다. 데이터 링크 계층에서는 같은 네트워크 상(같은 LAN 대역)에 존재하는 여러 장비 중, 어떤 장비가 어떤 장비에게 데이터를 전달하는지의 역할을 수행한다. 또한 추가적으로 그 과정에서 CRC 기반의 오류 제어 및 흐름 제어를 수행한다. 다른 네트워크와 통신하기 위해서는 3계층의 주소와 프로토콜이 필요하며, 3계층을 이..