본문 바로가기

CS

(36)
금융보안원 - 2024년 디지털금융 및 사이버보안 이슈 정리 참고자료[보도자료] 금융보안원이 전망하는 2024년 디지털금융 및 사이버보안 이슈(23.11.2.) 금융보안원금융보안원이 전망하는 2024년 디지털금융 및 사이버보안 이슈 기획부 2023-11-01www.fsec.or.kr내용 : 금융회사 디지털금융・보안업무 종사자, 글로벌 연구기관, 산・학계 전문가 등 약 300여명의 의견을 수렴 확보한 이슈 9가지  1. 자율보안체계 전환과거 정보보안 규제는 [전자금융감독규정]에 열거된 “규칙”을 이행했는지를 위주로 수행됨. 그러나 이는 상황에 따른 유연한 대응을 어렵게 하고 오히려 규정상 의무만 다하면 면책된다는 인식으로 인해 금융회사의 소극적 대응을 야기한다는 지적이 있었음 .이에, 금융위원회는 금융보안규제를 규칙이 아닌 “목표·원칙” 중심으로 합리화하여 금융회사.. 2024. 5. 12. 17:28
[DB] 정규화 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. 1. 이상현상 이상 현상이란? 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입,수정,삭제 연산을 수행할 때 부작용들이 발생할 수 있다. 이러한 부작용을 이상 현상이라고 한다. 이상 현상을 제거해가면서 데이터베이스를 올바르게 설계해 나가는 과정이 정규화이다. 삽입 이상 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 위 테이블에서 (고객아이디, 이벤트번호)가 기본키이기 때문에, melon이라는 고객의 데이터를 위 테이블에 삽입하려면, 반드시 이벤트번호가 있어야 한다. 따라서, 이벤트 등록이 되지 않은 고객은 위 테이블에 삽입될 수 없다. 갱신 이상 중복 튜플 중 일부만 변경하여 .. 2024. 2. 1. 15:34
[HTTP] URL 인코딩, 또는 Percent-encoding Java-Spring 환경에서 URL을 다루다가, URL 인코딩이 두번 중복해서 수행되는 문제를 접하고, URL 인코딩이 무엇인지 제대로 파헤치기 위해 이 글을 작성합니다. URL 인코딩이란, URI에서 구분자로 사용되는 예약어들과, 예약어와 동일한 문자이지만 단순한 문자로서 사용되는 것들을 구분하여, 혼동을 없애기 위해 도입된 Spec이다. 예약어와 동일하지만 구분자 역할을 수행하지 않는 문자를 ‘%’ + ‘16진수’ + ‘16진수’ 형태( ex. %25 )로 인코딩한다. URI에서는 특수한 목적을 위해 사용될 예약어들을 정의해 두었다. 만약 URI 컴포넌트에서 예약어들이 포함될 경우, 해당 문자가 URI 컴포넌트들을 구분하는 ‘구분자’의 역할을 하는 녀석인지, 아니면 단순한 문자인지를 알 수가 없다... 2024. 1. 30. 00:49
[DB] Real MySQL 8.0 - 8. 인덱스 & B-tree 이 글은 Real MySQL 8.0 책을 읽고 정리한 것입니다. Real MySQL 8.0 1권 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 수록했다. www.aladin.co.kr 데이터베이스의 성능 튜닝은 어떻게 디스크 I/O를 줄이느냐가 관건일 때가 상당히 많다. 따라서, 이 장의 앞부분에서는 먼저 ‘랜덤 I/O’ 와 ‘순차 I/O’에 대해 설명하고자 한다. 8.1 디스크 읽기 방식 8.1.1 HDD와 SDD SDD는기존 하드 디스크 드라이브에서 데이터 저장용 플래터(원판)를 제거하고 그 대신 ‘플래시 메모리’를 장착하고 있다. DRAM보다.. 2024. 1. 23. 16:36
[DB] SQL - JOIN 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. JOIN 수행 원리 조인이란 두 개 이상의 테이블을 하나의 집합으로 만드는 연산이다. JOIN 절 뿐만 아니라, SQL문에서 FROM절에 두 개 이상의 테이블이 나열된 경우에도 조인이 수행된다. 다만, 여러개의 테이블에 대해 JOIN이 수행되더라도, JOIN은 실제 동작할 때 두개의 테이블을 대상으로 수행된다. 여러개의 테이블을 다룰때는 연쇄적으로 JOIN이 수행되는 것이다. 조인 기법은 여러가지가 존재하는 데, 대표적으로 NL JOIN, Hash JOIN, Sort Merge JOIN이 있다. 1. NL JOIN(Nested Loop JOIN) NL JOIN은 프로그래밍에서 사용하는 FOR 반복문을 중첩으로 사용한 것과 유사하다. 반복문의.. 2024. 1. 23. 11:28
[DB] Real MySQL 8.0 - 4.2 InnoDB 스토리지 엔진 아키텍처 이 글은 Real MySQL 8.0 책을 읽고 정리한 것입니다. Real MySQL 8.0 1권 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 수록했다. www.aladin.co.kr 위 이미지는 InnoDB의 구조를 나타낸 그림이다. MySQL 8.0 기준으로, InnoDB가 가장 성능이 뛰어난 스토리지 엔진이다. MySQL의 스토리지 엔진 중 거의 유일하게 레코드 락을 지원하며, 이러한 장점 덕분에 높은 동시성 처리가 가능하다. (MyISAM은 테이블 락을 지원한다.) MySQL :: MySQL 8.0 Reference Manual :: 8.1.. 2024. 1. 22. 22:05
[네트워크] 컴퓨터 네트워크와 기본 장치들 이 글은 '컴퓨터 네트워킹 - 하향식 접근' 도서를 학습하며 정리한 것입니다. 컴퓨터 네트워킹 하향식 접근 컴퓨터 네트워킹 하향식 접근 www.aladin.co.kr 컴퓨터 네트워크란 무엇인가? 호스트 혹은 End System으로 구성된 네트워크를 의미한다. 컴퓨터 네트워크는 ‘인터넷’으로 이해할 수 있는데, 구성요소의 관점에서 본 인터넷과 분산 어플리케이션을 지원하기 위한 인프라의 관점으로 본 인터넷으로 구분할 수 있다. 구성요소의 관점에서, 컴퓨터 네트워크는 다양한 시스템들로 구성되어있다. End point에서는 ‘통신 링크’와 ‘스위치’의 연결로 네트워크가 구성된다. 종단 시스템과 다른 종단 시스템이 이어지기 위해서는 ISP를 거쳐야 한다. ISP란 SKT, KT, LG U+와 같은 회사들을 지칭한.. 2024. 1. 22. 19:48
[OS] I/O 장치 - 폴링 & 인터럽트 & DMA 이 글은 '운영체제 아주 쉬운 세가지 이야기' 책을 학습하고 정리한 내용입니다. 운영체제 아주 쉬운 세 가지 이야기 운영체제 아주 쉬운 세 가지 이야기 www.aladin.co.kr 위 이미지는 일반적인 시스템 구조를 나타낸 것이다. RAM과 GPU와 같이 고속 통신을 요구하는 장치는 CPU와 근접해 있고, HDD와 그외 다른 장치들을 상대적으로 CPU로 부터 멀리 떨어져있다. 이런 계층적인 구조를 갖는 이유는 ‘비용’과 장치간의 ‘물리적인 거리’를 고려하여 등장한 개념이다. 버스가 고속화되려면 더 짧아져야 되지만, 고속의 메모리 버스는 여러 장치를 수용할 수 없다(또한, 비싸다). 이러한 이유로, 고성능 장치는 CPU와 가깝게 두고, 느린 성능의 장치들을 그보다 멀리 배치한다. 36. 2 표준 장치 가.. 2024. 1. 22. 17:43
[DB] SQL 질문 정리 이 글은 데이터베이스 스터디 중 데이터베이스 기본개념 관련 질문을 정리한 것입니다. SQL에 대해서 설명해주세요. C언어와 같은 프로그래밍 언어와 어떤차이가 있나요? SQL이란 RDB와 상호작용하기 위한 컴퓨터 언어입니다. 데이터베이스를 관리 및 조작하기 위한 언어입니다. 이때, SQL은 DBMS가 어떤 동작을 수행하면 되는지 알려주는 역할을 합니다. C언어와 같은 프로그래밍 언어와 비교했을 때, SQL은 DB를 대상으로 하는 언어인 반면, C언어는 OS를 대상으로 한다는 점에서 다릅니다. 또한, SQL은 원하는 작업의 결과만을 기술하고, 그 작업이 어떻게 수행되는지 고려하지 않아도 되는 비절차적 언어인 반면, C언어는 절차적 언어입니다. 개발자가 작성한 SQL이 어떤 과정을 통해 실행 되는지 설명해주세.. 2024. 1. 18. 21:27
[DB] SELECT 문장 처리 순서 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_table ON mytable.column = another_table.column WHERE constraint_expression GROUP BY column HAVING constraint_expression ORDER BY column ASC/DESC LIMIT count; 위와 같은 쿼리문을 예시로 들겠다. 위 쿼리에서 각 절은 아래의 순서로 실행된다. 1. FROM & JOIN FROM절과 JOIN절이 가장 첫번째로 실행되며, 수행되어야 할 데이터 셋을 결정한다. 만약 FROM & .. 2024. 1. 18. 19:33
[DB] SQL -DDL 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. CREATE 데이터베이스, 테이블, 프로시저등을 생성하기 위해서 사용된다. 테이블 생성 -- 문법 CREATE TABLE_테이블_이름 ( (1) 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값] (2) [PRIMARY KEY (속성)] (3) [UNIQUE (속성_리스트)] (4) [FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)] [ON DELETE 옵션] [ON UPDATE 옵션] (5) [CONSTRAINT 이름] [CHECK(조건)] ); -- 예시 CREATE TABLE Customer( CustomerID INT PRIMARY KEY, CustomerName VARCHAR(5.. 2024. 1. 17. 21:52
[DB] SQL 개요 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. SQL이란? RDB와 상호작용하기 위한 컴퓨터 언어로서, 데이터베이스로 부터 데이터를 관리하고 조작하고, 필요한 데이터를 검색하기 위한 언어이다. DBMS는 SQL 쿼리를 처리하여, 요청된 데이터를 검색한 이후, 반환한다. 이때 SQL은 DBMS가 어떤 동작을 수행하면 되는지 알려주는 역할을 한다. 예를 들어, 데이터베이스에 어떤 구조의 테이블이 생성되어야 하는지 명령을 내릴 수 있고, 테이블로 부터 특정 조건에 일치하는 데이터를 조회하고, 특정 형태로 데이터를 반환받을 수 있다. C언어와 비교한 SQL의 특징 SQL은 비절차적 언어 SQL 언어는, 원하는 작업의 결과만을 기술하고, 그 작업이 어떻게 수행될 것인지는 고려하지 않아도 되는 비.. 2024. 1. 17. 20:21
[OS] 시스템콜, 그리고 관련된 개념들 이 글은 '운영체제 아주 쉬운 세가지 이야기' 책을 학습하고 정리한 내용입니다. 운영체제 아주 쉬운 세 가지 이야기 운영체제 아주 쉬운 세 가지 이야기 www.aladin.co.kr OS에서 가상화 기법을 구현하기 위해서 ‘성능 저하’, ‘제어 문제’라는 이슈를 해결해야 했다. 초기 OS 개발자들은 프로그램을 빠르게 실행시키기 위해, 가장 기초적인 접근법인 ‘직접 실행’을 적용하였다. (시스템콜 도입 배경) 직접 실행 (여기서 직접 실행이란, 프로그램이 시스템에 필요한 모든 연산들을 직접 통제 가능하다는 의미이다) 직접 실행이란 간단하다. 말그대로 프로그램을 CPU 상에서 실행시키는 것이다. 프로그램이 실행되기 위해서 OS는 아래의 절차를 수행한다. 프로세스 목록에 해당 프로세스 항목 생성 메모리 할당 .. 2024. 1. 17. 18:49
[OS] 운영체제 개요 이 글은 '운영체제 아주 쉬운 세가지 이야기' 책을 학습하고 정리한 내용입니다. 운영체제 아주 쉬운 세 가지 이야기 운영체제 아주 쉬운 세 가지 이야기 www.aladin.co.kr 운영체제란? OS(운영체제)란 프로그램을 쉽게 실행시키고, 여러 프로그램을 하나의 컴퓨터에서 동작할 수 있도록 하며, 여러 프로그램이 하나의 메모리를 함께 공유할 수 있게 하며, 프로그램이 컴퓨터의 물리적인 장치와 상호작용할 수 있게 도와주는 소프트웨어를 말한다. OS에서 위와 같은 기능들을 지원하기 위해, 도입한 핵심적인 개념은 ‘가상화(virtualization)’, ‘병행성(concurrency)’, ‘영속성(persistence)’이다. 가상화를 지원한다는 측면에서 가상 머신(virtual machine)리가 불리기도.. 2024. 1. 17. 17:08