728x90

Computer 120

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

IPC(Inter Process Communication)

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

Computer/CS 2024.07.03

PCB & Context Switching

PCB & Context SwitchingProcess ManagementCPU가 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말한다.이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능하다. 프로세스들의 특징을 가지고 있는 것이 바로 Process Metadata 이다.Process MetadataProcess IDProcess StateProcess PriorityCPU RegistersOwnerCPU UsageMemory Usage이 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)이라는 곳에 저장된다.PCB(Process Control Block)프로세스 메타데이터들을 저장해 놓은 곳을 말한다.한 PCB안에는 한 프로세스의 정보가 담겨있다.PC..

Computer/CS 2024.07.03

게임그래픽프로그래밍 주제 2. introduction | 3D Graphics Production 2 & Advanced topics

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

게임그래픽프로그래밍 주제 1. introduction

https://www.kmooc.kr/view/course/detail/10266?tm=20240701193446 K-MOOC 자료실 www.kmooc.kr주제1_introductionWhat is 3D Graphics?3차원 scene이 어떻게 만들어지는지 전체적인 내용key technology for developing computer game.input 3D object → texturing → rendering인풋 이미지가 주어졌을 때 프레임이 그려진다.이런 이미지, 프레임을 빠르게 재생하면 영상처럼 재생된다.Why 30 frames per second?게임의 경우에는 행위 자체에서 일어날, 파생될 결과물을 그 자리에서 바로 계산해서 초당 30 frames 정도의 속도로 렌더링 해줘야한다.필름 메..

프로세스 & 스레드

프로세스 & 스레드프로세스 : 프로그램을 메모리 상에서 실행중인 작업스레드 : 프로세스 안에서 실행되는 여러 흐름의 단위기본적으로 프로세스마다 최소 1개의 스레드를 소유하고 있다.(메인 스레드 포함)주소 공간프로세스는 각각 별도의 주소공간을 할당한다.(독립적)Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령)Data : 전역변수, 정적변수, 배열 등초기화 된 데이터는 data 영역에 저장된다.초기화 되지 않은 데이터는 bss 영역에 저장된다.Heap : 동적 할당 시 사용한다.(new(), malloc() 등)Stack : 지역변수, 매개변수, 리턴 값(임시 메모리 영역)스레드는 Stack만 따로 할당 받고 나머지 영역은 서로 공유한다.하나의 프로세스가 생성될 떄, 기본적으로 하나의 스레드가 ..

Computer/CS 2024.06.28

운영체제(OS, Operationg System)

운영체제(OS, Operationg System)하드웨어를 관리하고, 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있다.운영체제의 역할프로세스 관리프로세스, 스레드스케줄링동기화IPC 통신저장장치 관리메모리 관리가상 메모리파일 시스템네트워킹TCP/IP기타 프로토콜사용자 관리계정 관리접근권한 관리디바이스 드라이버순차접근 장치임의접근 장치네트워크 장치1. 프로세스 관리운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다.현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할..

Computer/CS 2024.06.28
728x90