반응형

Computer Science 30

[Design Pattern] GoF의 Design Pattern 총 정리

#요약생성 패턴 5가지, 구조 패턴 7가지, 행동 패턴 11가지로 나타낼 수 있다. 모두가 OOP에 기반한 클래스와 객체 중심으로 설계되어 있다.# 생성 패턴 (Creational Pattern)1. Singleton(싱글톤)하나의 클래스 인스턴스를 전역에서 접근 가능하게 하면서 "해당 인스턴스가 한 번만 생성되도록 보장"하는 패턴하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수 없음클래스 내에서 인스턴스가 하나뿐임을 보장하며, 불필요한 메모리 낭비를 최소화 할 수 있음2. Factory Method(팩토리 메서드 패턴)객체를 생성하기 위한 "인터페이스를 정의하고 서브 클래스에서 어떤 클래스의 인스턴스를 생성할지 결정"하는 패턴객체 ..

[Creational Pattern] Abstract Factory(추상 팩토리)

Design Pattern의 첫 포스팅이다. 먼저 디자인패턴에 대한 간략한 설명을 하자면, 우리가 인프라 시스템을 구축하는 것을 Architect Pattern이라고 한다. 클라이언트-서버가 예시이다. Design Pattern은 서버면 서버, 클라이언트면 클라이언트 별로 더 세세하게 설계를 한다는 것이다. Architect Pattern은 건물로 비교하자면 윤곽을 잡는 것이라면 Design Pattern은 건물의 방의 인테리어를 설계하는 것이라고 볼 수 있다는 것이다. 즉, Design Pattern은 모듈 간의 관계 및 인터페이스(Interface)를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제를 의미한다. 더보기 # Interface란? 사전적의미의 Interface는 "경계면"을 의미한..

[Software Engineering] RAID(Redundant Array of Independent Disk)

RAID는 여러개의 Disk를 묶어 하나의 Disk처럼 사용하는 기술을 의미한다. (여기서 말하는 디스크는 Hard Disk를 의미한다. 우리가 이제 보편적으로 사용하는 SSD도 RAID가 가능하다.) 약간 찰흙을 생각하면 되지 않을까? 찰흙을 100g씩 가지고 5개를 갖고있다고 보자. 그러면 500g이되는거다. 근데 찰흙의 갯수는 1개이다. 이걸 디스크 메모리 용량으로 옮겨가면 똑같다. 10GB짜리 하드디스크를 5개가 있다면 RAID를 통해 50GB짜리 하드디스크를 1개로 사용할 수 있다는 것이다. # 장점 위에서 말한 장점인 대용량의 단일 볼륨을 사용하는 효과가 있는 것처럼 다른 장점들도 있다. 디스크 I/O 병렬화로 인한 I/O성능 향상 Data 복제로 인한 안정성 향상 # 구성방식 RAID를 구성..

[DB] Anomaly(이상) & Normalization(정규화)

2024.02.21 - [Computer Science/DataBase] - [DB] Key의 종류 [DB] Key의 종류 2024.02.20 - [Computer Science/DataBase] - [DB] 데이터 모델과 용어정리 [DB] 데이터 모델과 용어정리 2024.02.19 - [Computer Science/DataBase] - [DB] DataBase와 SQL VS. NoSQL [DB] DataBase와 SQL VS. NoSQL # DataBase 먼저, 데이터베 blaj2938.tistory.com DB의 키 종류를 저번 포스팅에 알아보았는데 데이터의 관계를 할때 외래키를 사용하는 것을 알았다. 테이블을 여러개 구성하고 기본키를 참조하여 외래키를 구성한다. 그러면 여기서 궁금한 사항이 있을..

[DB] Key의 종류

2024.02.20 - [Computer Science/DataBase] - [DB] 데이터 모델과 용어정리 [DB] 데이터 모델과 용어정리 2024.02.19 - [Computer Science/DataBase] - [DB] DataBase와 SQL VS. NoSQL [DB] DataBase와 SQL VS. NoSQL # DataBase 먼저, 데이터베이스의 정의가 무엇인지 알아보겠다. 여러 사람에 의해 공유되어 사용될 목적으로 통합하 blaj2938.tistory.com 이전 포스팅에서 우리가 데이터모델과 용어 정리에 대해서 알아보았고, 용어에는 속성(attribure) 엔티티, 인스턴스와 같은 여러 용어들과 이를 하나로 묶을 수 있는 테이블 구조라는 것도 알아보았다. 여기서 우리는 Table(테이블..

[DB] 데이터 모델과 용어정리

2024.02.19 - [Computer Science/DataBase] - [DB] DataBase와 SQL VS. NoSQL [DB] DataBase와 SQL VS. NoSQL # DataBase 먼저, 데이터베이스의 정의가 무엇인지 알아보겠다. 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 의미한다. 데이터베이스 관리 시스템(DBMS)를 통해 blaj2938.tistory.com 이전 포스팅에서 DB의 감을 잡기 위해서 개요 형식으로 DB가 무엇인지, 그리고 요즘 최근 트렌드인 NoSQL과 SQL이 무엇인지 그 차이점을 알아보았다. 개요를 요약정리 하자면 아래와 같다. DB는 사람들이 정보를 수집한 집합이고 이를 정리하기 위해서 DBMS라고한다. 우리가 엑셀로 정리하는..

[DB] DataBase와 SQL VS. NoSQL

# DataBase 먼저, 데이터베이스의 정의가 무엇인지 알아보겠다. 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 의미한다. 데이터베이스 관리 시스템(DBMS)를 통해 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다. 일반적으로 미들웨어를 통해서 관리된다. ※ 미들웨어(Middleware) 간단하게 설명하면, OS와 application 사이에서 실행되는 응용프로그램 사이에 존재하게 되며 분산 컴퓨터 환경(client와 server)에서 동작을 한다. 이는 컴퓨터와 컴퓨터간의 연결을 안전하고 용이하게 해주게된다. 다시말해, 서로 다른 기기의 하드웨어나 프로토콜, 통신환경 등을 연결하게된다. 그게 우리가 아는 WAS, DBMS, Web Server 등등 이..

[Network] Async & Sync (비동기와 동기)

간간히 네트워크 관련해서 포스팅을 진행했다. 가장 재밌게 했던 글을 썼던건 아마 loadBancler였다. 항상 뭔가 주먹구구식 외우기 공부였다면, 사실 로드밸런싱을 공부를 하면서 꼬리에 꼬리를 무는 질문들을 많이했던거 같다. 2023.12.28 - [Computer Science/Network] - [Network] Load Balancer(부하 분산 장치) [Network] Load Balancer(부하 분산 장치) #개요 이번에 프로젝트를 하다 로드밸런서가 무엇인지 정확히 잡고 넘어가야했다. 네트워크쪽에서는 자주 등장하는 용어이고 사용하는 장치이다. Load Balancer(부하 분산 장치) 즉, 로드밸런서라 blaj2938.tistory.com 2023.09.14 - [Computer Scienc..

[Security] 암호학 - 단방향, 양방향 암호

어느정도 OS를 마무리하고 지난 번 면접에서 질문이 나왔던 암호학에 대해서 한번 알아보도록하겠다. 사실 컴공 전공하시는 분들은 암호학 과목이 있거나, 보안관련학과분들은 전문적으로 해당 내용을 배우는 것 같다. 일단 평문(Text)을 암호문(Ciphertext)으로 바꾸는 것을 암호화(Encryption), 암호문(Ciphertext)을 평문(Text)으로 바꾸는 것을 복호화(Decyption) 라고 한다. 이점을 헷갈려서는 안된다. 사실 면접에서 이런것을 질문해주실 줄은 몰랐기 때문에 이참에 한번 깊게 파보겠다.아래는 오늘 공부를 해볼 내용을 어떤것들이 있는지 직접 만들어본것이다. Flow Chart를 코드 처럼 짜는 툴이 있어서 한번 활용을 해보았다.(나중에 리뷰도 할 예정) # 단방향 암호화(무결성)..

[OS] Virtual Memory와 Paging기법

2024.01.12 - [Computer Science/Operation System] - [OS] 메모리 관리 전략 & Paging / Segmentaion 기법 [OS] 메모리 관리 전략 & Paging / Segmentaion 기법 거의 OS의 최종장이라고 할 수 있을지는 모르겠으나 내 나름의 커리큘럼에서는 최종장까지 왔다. 내가 느낀 OS의 장점은 보안 관련도 있겠지만, 어떻게 자원을 효율적으로 관리하느냐? 이다. 앞 blaj2938.tistory.com 위에 포스팅에서 가상메모리 방식에 대해서 살짝이나마 찍.먹. 했다. 가상메모리를 제대로 알아보고 어떤식으로 동작하는지 공부하고, 그에 따른 paging, Page Falut, Thrashing, Demand Paging도 알아 보겠다. # Pag..

반응형