728x90

CS 188

Database - Index

IndexDB Index목적RDBMS에서 검색 속도를 높이기 위한 기술Table의 Column을 색인화 한다.(따로 파일로 저장한다)과정Table을 생성하면, MYD, MYI, FRM 3개의 파일이 생성된다.FRM : 테이블 구조가 저장되어 있는 파일이다.MYD : 실제 데이터가 있는 파일이다.MYI : Index 정보가 들어가 있는 파일이다.Index를 사용하지 않는 경우, MYI 파일은 비어져 있다. 그러나, 인덱싱하는 경우 MYI 파일이 생성된다.이후에 사용자가 Select 쿼리로 Index를 사용하는 Column을 탐색 시, MYI 파일의 내용을 검색한다.단점Index 생성시, .mdb 파일 크기가 증가한다.한 페이지를 동시에 수정할 수 있는 병행성이 줄어든다.인덱스 된 Field에서 Data를 ..

Computer/CS 2024.07.09

SQL과 NOSQL의 차이

SQL 장점명확하게 정의된 스키마, 데이터 무결성 보장한다.관계는 각 데이터를 중복 없이 한번만 저장한다.SQL 단점덜 유연하다. 데이터 스키마를 사전에 계획하고 알려야 한다.관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있다.대체로 수직적 확장만 가능하다.NoSQL 장점스키마가 없어서 유연하다. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능하다.데이터는 애플리케이션이 필요로 하는 형식으로 저장된다. 데이터 읽어오는 속도 빨라진다.수직 및 수평 확장이 가능해서 애플리케이션이 발생 시키는 모든 읽기/쓰기 요청 처리 가능하다.NoSQL 단점유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다데이터 중복을 계속 업데이트 해야 한다데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 ..

Computer/CS 2024.07.09

SQL Injection

SQL Injection해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법이다.공격 방법인증 우회데이터 노출방어 방법input 값을 받을 때, 특수문자 여부 검사하기로그인 전, 검증 로직을 추가하여 미리 설정한 특수 문자들이 들어왔을 때 요청을 막아낸다.SQL 서버 오류 발생 시, 해당하는 에러 메시지 감추기view를 활용하여 원본 데이터베이스 테이블에는 접근 권한을 높인다. 일반 사용자는 view로만 접근하여 에러를 볼 수 없도록 만든다.preparestatement 사용하기preparestatement를 사용하면, 특수문자를 자동으로 escaping 해준다. 이를 활용해 서버 측에서 필터링 과정을 통해서 공격을 방어한다.

Computer/CS 2024.07.08

Database - Join

Database - Join두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법테이블을 연결하려면, 적어도 하나의 칼럼을 서로 공유하고 있어야 하므로 이를 이용하여 데이터 검색에 활용한다.JOIN의 종류INNER JOIN교집합으로, 기준 테이블과 join 테이블의 중복된 값을 보여준다.LEFT OUTER JOIN기준 테이블 값과 조인테이블과 중복된 값을 보여준다.왼쪽 테이블을 기준으로 join 한다.RIGHT OUTER JOINLEFT OUTER JOIN과는 반대로 오른쪽 테이블을 기준으로 JOIN한다.FULL OUTER JOIN합집합을 뜻한다.A와 B 테이블의 모든 데이터가 검색된다.CROSS JOIN모든 경우의 수를 전부 표현해주는 방식이다.A가 3개, B가 4개면 3*4 = 12개..

Computer/CS 2024.07.08

Database - Key

Database - Key1. Candidate Key(후보키)Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합.(기본키로 사용할 수 있는 속성들)2가지 조건을 만족한다.유일성 : key 하나로 tuple을 유일하게 식별할 수 있다.최소성 : 꼭 필요한 속성으로만 구성한다.2. Primary Key(기본키)후보키 중 선택한 Main Key특징Null 값을 가질 수 없다.동일한 값이 중복될 수 없다.3. Alternate Key(대체키)후보키 중 기본키를 제외한 나머지 키 = 보조키4. Super Key(슈퍼키)유일성은 만족하지만, 최소성은 만족하지 못하는 키5. Foreign Key(외래키)다른 릴레이션의 기본키를 그대로 참조하는 속성의 집

Computer/CS 2024.07.08

24.07.08 CS

CSDatabase - Key1. Candidate Key(후보키)Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합.(기본키로 사용할 수 있는 속성들)2가지 조건을 만족한다.유일성 : key 하나로 tuple을 유일하게 식별할 수 있다.최소성 : 꼭 필요한 속성으로만 구성한다.2. Primary Key(기본키)후보키 중 선택한 Main Key특징Null 값을 가질 수 없다.동일한 값이 중복될 수 없다.3. Alternate Key(대체키)후보키 중 기본키를 제외한 나머지 키 = 보조키4. Super Key(슈퍼키)유일성은 만족하지만, 최소성은 만족하지 못하는 키5. Foreign Key(외래키)다른 릴레이션의 기본키를 그대로 참조하는 속성의 집Database - Join두 개 이상의 테이블..

24.07.05 CS

CS세마포어(Semaphore) & 뮤텍스(Mutex)공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 한다.세마포어멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법임계 구역(Critical Section)여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분이다.공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계 구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 한다.세마포어 P, V 연산P : 임계 구역에 들어가기 전에 수행(프로세스 진입 여부를 자원의 개수(S)를 통해..

IPC(Inter Process Communication)

IPC(Inter Process Communication)프로세스는 독립적으로 실행된다. 독립 되어있다는 것은 다른 프로세스에게 영향을 받지 않는다고 말할 수 있다.(스레드는 프로세스 안에서 자원을 공유하므로 영향을 받는다.)이런 독립적 구조를 가진 프로세스 간의 통신을 해야 하는 상황이 있을 것이다. 이를 가능하도록 해주는 것이 바로 IPC 통신이다.프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있다.IPC 종류익명 PIPE파이프는 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 데이터를 읽기만 할 수 있다.한쪽 방향으로만 통신이 가능한 반이중 통신이라고도 부른다.따라서 양쪽으로 모두 송/수신을 하고 싶으면 2개의 파이프를 만들어야 한다.매..

Computer/CS 2024.07.03

24.07.03 그래픽스, CS

그래픽스introduction | 3D Graphics Production 2 & Advanced topics최종적으로 내 눈에 들어오는 이미지를 만들어내는 과정을 렌더링이라고 한다.Post-production우리가 원하는 느낌을 주기 위해서 여러 효과를 준다.VFX, Color correction, etc..게임에서는 보통 컬러 조정, particle을 좀 더 넣어준다던가 빛 반사 효과를 극대화시킨다던가 하는 효과를 준다.Advanced topicsscene을 조금 더 사실적으로 보여주기 위해서, scene을 빨리 렌더링하기 위해서 필요한 문제들이 있다.게임은 시간이 매우 한정적이다.수학적으로 잘 모델링 하되, 모든 것을 다 고려하지 않더라도 결과물이 비슷하게 나오게 근사화 시켜야 한다.물리적으로 엄밀..

24.07.01 CS, 그래픽스

CS인터럽트(Interrupt)프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것이다.지금 수행 중인 일보다 더 중요한 일이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속한다.외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해서 발생한다.소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다.외부 인터럽트입출력 장치, 타이밍, 장치, 전원 등 외부적인 요인으로 발생한다.전원 이상, 기계 착오, 외부 신호, 입출력내부 인터럽트Trap이라고도 부르며, 잘못된 명령이나 데이터를 사용할 때 발생한다.소프트웨어 인터럽트프로그램 처리 중 명령의 요청에 의해 발생한 것(SVC 인터럽트)과정주 프로그램 실행..

728x90