본문 바로가기
728x90

스터디101

[네트워크] 프로토콜(Protocol) 💡프로토콜이란? 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약. 즉 컴퓨터와 컴퓨터가 서로 이해 할 수 있는 언어, 공용된 언어를 사용하도록 하기 위해 사용하는 통신 규약을 의미한다. 💡프로토콜 3가지 요소 1. 구문(syntax) : 데이터의 형식이나 신호로, 부호화 방법 등을 정의 2. 의미(semantics) : 오류 제어, 동기 제어, 흐름 제어 같은 각종 제어 절차에 관한 제어 정보 정의 3. 순서(timing) : 송/수신자 간 혹은 양단 (end-to-end)의 통신 시스템과 망 사이의 통신 속도나 순서 등을 정의 💡프로토콜의 기능 1. 주소 설정 2. 순서 제어 3. 연결 제어 4. 흐름 제어 5. 오류 제어 6. 동기화 7. 다중화.. 2021. 5. 28.
[보안] 공개키 기반구조(PKI) 구성요소 공개키 기반구조(Public Key Infrastructure, PKI) 1. PKI란 - 공인 인증기관이 인터넷상에서 사용자간에 법적 효력이 있는 인증서를 전자적으로 분배, 전달, 제공함으로써 - 비인가된 자로부터 개인 정보보호, 전자상거래 위변조 방지 등을 수행 가능 - 목적 : 누구나 안전하고 편리하게, 효율적으로 공개키를 획득, 사용하게 함 - 사용하는 인증서는 주로 x.509 - pki는 공개키를 인증/등록 기관과 같이 신뢰성 있는 제3자를 통해 관리하고 전달함. 2. PKI의 주요 구성 요소 인증서 (Certificate) : 공개키나 공개키의 정보를 포함하는 인증서 인증기관 (Certification Authority, CA) : 인증서의 발급 및 관리 등록기관 (Registration Au.. 2021. 5. 28.
[보안] 정보보안 3요소 정보보안은 정보 및 정보 시스템을 허가되지 않은 접근, 사용, 공개 등으로 부터 보호함으로써 무결성, 기밀성, 가용성을 제공한다. 1. 무결성 (Integrity) 정보가 인가된 사람에 의해서만 데이터에 접근 또는 변경이 가능하다는 것을 의미 예) 오직 정부만이 한국은행을 통해 지폐를 만들거나 변경 가능하고 그렇지 않은 경우 위조지폐로 취급 2. 기밀성 (Confidentiality) 허가되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 함. 즉 허가된 사람만 정보를 알 수 있게함. (비밀 보장) 예) 방화벽 암호, 패스워드 등 3. 가용성 (Availability) 정보에대한 접근과 사용이 적시에 보장되는 상태. 정보 또는 정보 시스템이 원하는 때에 제대로 제공되어야 하는 것을 의미한다. 2021. 5. 28.
[보안] 대칭키 vs 공개키(비대칭키) 1. 대칭키 - 하나의 비밀키를 클라이언트와 서버과 함께 사용 (key가 1개) - 암호화와 복호화 키가 같은 암호화 알고리즘 장점 : 공개키에 비해 계산 속도가 빠름 단점 : 비밀키 하나만 알아내면 암호화된 내용 해독 가능 -> 정보 유출 위험 높음 - 대칭키 암호는 암호화 단위에 따라 스트림암호와 블록암호로 나뉨 - 대칭키 알고리즘 : DES, AES 등 2. 공개키 (비대칭키) - 공개키와 비밀키 존재 (key가 2개) - 공개키 암호를 구성하는 알고리즘을 비대칭 암호라고도 불림 장점 : 개인키로인해 대칭키 방식보다 보안성 높음 단점 : 공개키에 비해 계산 속도가 느림 - 암호화 키 = 공개키 = public key - 비밀 키 = 개인키 = private key - 암호화 키와 비밀키는 서로 다름.. 2021. 5. 28.
[소프트웨어공학] 디자인 패턴 💡디자인 패턴이란? 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학에서 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. (출처 : 위키백과) - SW를 설계 할 때 자주 발생하는 문제를 재사용하여 해결할 수있도록 하는 해결책 - 이미 만들어져 잘 되는 것을 처음부터 다시 만들 필요 X - 패턴 : 각기 다른 SW 모듈이나 기능을 다양한 응용 SW 시스템을 개발할 때에도 서로 공통되는 설계 문제나 해결책에 공통점이 있다. 이러한 유사점을 패턴이라고 한다. 💡디자인 패턴 종류 G.. 2021. 5. 28.
[DB] Locking (잠금 기법) 💡Locking 이란? 데이터베이스에서 Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법이다. (트랜잭선 : DB의 나누어지지 않는 최소한의 작업 단위) 잠금 단위란 = 잠그는 단위 잠금 기법이란 = 하나의 트랜잭션이 데이터에 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목에 접근할 수 없도록 하는 병행제어 기법. Lockd은 잠금 기법에서 사용하는 데이터 객체이다. 🍒Lock 종류 - 공유 잠금 (Shared Lock) 공유 잠금은 데이터를 읽을 때 사용되어지는 Lock이다. 공유 잠금은 공유 잠금끼리 동시에 접근이 가능하다. - 베타 잠금 (Exclusive Lock) 베타 잠금은 데이터를 변경하고자 할 때 사용되며, 트랜잭션이 완료 될 때까지 유지된다. 베타 잠금은 Lock이 해제 될 때까.. 2021. 5. 28.
[DB] 데이터 정규화 1NF, 2NF, 3NF, BCNF 💡데이터 정규화란? 데이터 베이스의 설계를 재구성. 불필요한 데이터를 제거하고, 삽입/삭제/갱신 시 각종 이상현상 방지를 하기 위함 💡데이터 정규화 목적 1. 불필요한 데이터 제거 2. 논리적인 데이터 저장 (이상현상 방지) 정규화는 제1정규화, 2정규화, 3정규화, BCNF, 4정규화, 5정규화로 나눌 수 있다. 보통 4, 5정규화까지는 하지 않는다고한다. 제 1정규화 제1정규화는 각 row마다 컬럼의 값이 1개씩 있어야한다. 즉, 컬럼의 값이 원자값이어야 한다. 예를들어 subject 라는 컬럼에 값이 math, biology 이렇게 2개의 값이 들어가면 제 1정규화를 만족하지 못 한다. 제 2정규화 2정규화는 테이블의 모든 컬럼이 완전 함수 종속을 만족한다. 완전 함수 종속이란 기본키 중에 특정 컬.. 2021. 5. 28.
[DB] Transation / Undo / Redo 트랜잭션을 공부하면서 나온 undo, redo 에 대해서 알게되어 정리를 해보려고한다. 트랜잭션이란? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장한다. 이 성질을 첫글자를 따 ACID라 부른다. 그러나, 실제로는 성능향상을 위해 이런 특성들이 종종 완화되곤 한다. 어떤 시스템들에서는 트랜잭션들은 논리적 작업 단위(LUW, .. 2021. 5. 17.
[Algorithm] Prefix Sum 구간합 🍒구간합이란? -부분합 : 0~k 까지의 합 -구간합 : a~b 까지의 합 구간합은 말 그대로 시작점 a 부터 끝점 b까지 사이의 모든 값의 합을 의미한다. 🍒구간합 적용 구간합을 구하는 문제인데 구간사이의 수의 개수가 5천만개라면? 이러한 요청이 2천만개라면? 이중반복문을 사용해서 해결하면 분명 시간복잡도가 O(N^2)으로 오래걸리는 문제가 생긴다. int n; //요청 수 scanf("%d", &n); while(n--){ int a, b; scanf("%d %d", &a, &b); int sum = 0; for(int i=a; i 2021. 5. 11.
[GCP] Spanner 🧀GCP Spanner란? Cloud Spanner는 관계형 데이터베이스 구조의 이점을 비 관계형 수평 확장과 결합하기 위해 특별히 클라우드 용으로 구축된 서비스이다. 완전 관리형 미션 크리티컬 관계형 데이터베이스 서비스로서 글로벌 규모의 트랜잭션 일관성, 스키마, SQL(ANSI 2011, 확장 프로그램 포함), 고가용성을 위한 자동 동기식 복제를 제공한다. 즉, 페타 바이트 규모의 용량을 제공 가능하고 global scale, 스키마 , SQL 및 고 가용성을 위한 자동 동기 복제에서 트랜잭션 일관성을 제공한다. 확장성이 높지만 비용이 비싸다는 단점이 있다. 관게형 데이터베이스를 능가하거나 처리량을 높이기 위해 데이터베이스를 분할하거나, 트랜잭션 일관성 및 글로벌 데이터/강력한 일관성이 필요한 경우,.. 2021. 3. 30.
[GCP] Composer ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow,Dataproc, Dataprep Data storage : BigQuery, Bigtable,GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Composer 란? Google Cloud 에서 Composer는 Apache Airflow로 워크플로를 만들고 배포하기 위한 Google Cloud 솔루션이다. 인기 있는 Apache Airflow 오픈소스 프로젝트를 기반으로 구축되어 Pyth.. 2021. 3. 30.
[GCP] GCS (Google Cloud Storage) ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow,Dataproc, Dataprep Data storage : BigQuery, Bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP GCS (Google Cloud Storage)란? Cloud Storage란 객체 저장소로 해당 서비스를 통해서 데이터의 양과 상관없이 언제 어디서나 데이터를 저장하고 가져올 수 있는 서비스이다. 객체는 버킷이라는 컨테이너에 저장한다. 모든 버.. 2021. 3. 30.
[GCP] Dataprep ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow,Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Dataprep이란? Google Cloud Dataprep은 간단한 드래그 앤 드롭 브라우저 환경에서 데이터를 시각적으로 탐색 및 정리하고 분석이 가능하도록 여러 데이터 세트를 준비하는 데 활용되는 지능형 데이터 서비스이다. 데이터를 내 입맛대.. 2021. 3. 30.
[GCP] Dataproc ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Dataproc이란? Dataproc은 일괄 처리, 쿼리, 스트리밍, 머신 러닝에 오픈소스 데이터 도구를 활용할 수 있는 관리형 Spark 및 Hadoop 서비스입니다. Dataproc 자동화를 통해 신속하게 클러스터를 만들고 손쉽게 관리하며 .. 2021. 3. 30.
[GCP] Dataflow ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Dataflow 란? 다양한 데이터 처리 패턴을 개발하고 실행하기위한 통합 프로그래밍 모델 및 관리 서비스입니다. Cloud Dataflow에는 데이터 처리 워크 플로를 정의하기위한 SDK와 Compute Engine, BigQuery 등과 같.. 2021. 3. 30.
[GCP] Transfer appliance ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : BigQuery, bigtable, GCS Data analysis : BigQuery Data ochestration : Composer 🧀GCP Transfer Appliance 란? Transfer Appliance는 비즈니스 운영 중단 없이 수백 테라바이트에서 1페타바이트까지 대량의 데이터를 Google Cloud Platform으로 안전하게 마이그레이션하는 데 사용할 수 있는 하드.. 2021. 3. 30.
[GCP] Transfer Service ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : igQuery, bigtable, GCS Data analysis : bigQuery Data ochestration : Composer 🧀GCP Transfer Service 란 BigQuery Data Transfer Service는 정해진 일정에 따라 관리되는 방식으로 BigQuery로 데이터를 자동 전송합니다. 그러면 분석팀에서 코드를 단 한 줄도 작성하지 않고 BigQuery 데이.. 2021. 3. 30.
[GCP] Pub/sub ✨Google Cloud Platform의 Data Processing과 관련한 Product✨ Data collection : Pub/sub, Transfer service, Transfer appliance Data transform : Dataflow, Dataproc, Dataprep Data storage : igQuery, bigtable, GCS Data analysis : bigQuery Data ochestration : Composer 🧀 GCP의 Pub/Sub 란 Pub/Sub는 클라우드 기반의 대용량 메시지 큐이다. 흔히 사용하는 JMS나 Kafka의 클라우드 버전 (별도의 설치나 운영이 필요 없음). 이벤트를 처리하는 서비스에서 이벤트를 생성하는 서비스를 분리하는 비동기 메시징 서.. 2021. 3. 30.
[GCP] Bigtable 과 BigQuery 💡Bigtable 대규모 분석 및 운영 워크로드를 위한 확장 가능한 완전 관리형 NoSQL 데이터베이스 서비스 Bigtable은 테라바이트, 수페타바이트의 데이터까지 저장할 수 있고 데이터 밀도가 낮은 테이블이다. 각 행의 단일 값마다 index가 생성되는데 이 값을 row key라고 한다. Bigtable은 지연시간이 낮아서 많은 양의 단일 key 입력 데이터를 저장하는데 적합하다. 따라서 읽기 및 쓰기 처리량이 많을 경우에 사용하기 적합하다. -> 매우 높은 쳐리량과 확장성이 필요한 애플리케이션에 적합 ->일괄 MR작업, 스트림 처리/분석, ML 애플리케이션을 위한 스토리지 엔진으로 적합 -장점 뛰어난 확장성 : 클러스터를 확장하여 더 많은 read & write 처리 가능 간단한 관리 : 테이블 스.. 2021. 3. 23.
[네트워크] DNS와 IP 💡DNS란? DNS (Domain Name System) 은 사람이 읽을 수 있는 도메인 이름 (ex : www.naver.com) 을 머신이 읽을 수 있는 IP주소 (ex: 10.123.23.09)로 변화해 준다. 💡IP란? IP(Internet Protocol)은 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다. 💡DNS와 IP의 관계 Client가 도메인 주소인 URL(Uniform Resource Locator)을 (www.naver.com 처럼) 웹 브라우저에 입력하면 웹 브라우저는 입력된 URL에 해당하는 서버에게 사용자에게 보여줄 데이터(웹페이지)를 요청해야 하지만 URL만 가지고는 요청해야 할 서버를 알 수 .. 2021. 3. 16.
728x90