728x90

CS 188

24.08.13 CS, C#

24.08.13 CS, C#CSAuthentication/Authorization보통 우리가 권한이라고 불리우는 것엔 인증(Authentication)과 인가/승인(Authorization) 두 가지 단어가 존재하는데, 비슷해보이지만 엄연한 차이가 존재한다.인증(Authentication)본인이 누구인지 확인 (로그인)승인(Authorization)특정 리소스에 권한이 있는지 확인 (등급 권한)인증 (Authentication) 인가(Authorization)기능자격 증명 확인권한 허가/거부진행 방식비밀번호, 생체인식, 일회용 핀보안 팀에서 관리하는 설정사용자가 볼 수 있는가?예아니요사용자가 직접 변경할 수 있는가?부분적으로 가능불가능데이터 전송ID 토큰 사용액세스 토큰 사용참조https://inpa.t..

24.08.12 CS, C#

24.08.12 CS, C#CS컴파일/트랜스파일/인터프리터컴파일(Compile)한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것이 컴파일이다.C언어를 기계어로 옮기는 것, Java를 Bytecode로 옮기는 것 모두 이 정의에 따르면 Compile에 해당한다. 심지어 TypeScript를 JavaScript로 옮기는 것 역시 이 범주안에 속한다고 할 수 있기도 하다. (엄밀히 말하면 트랜스파일링이다.)고수준의 언어를 바이트 단위의 기계어로 변환해야 컴파일이라고 말하는 것이 아니다. 컴파일은 한 언어로 작성된 코드를 다른 언어로 옮기는 일 자체를 통칭한다고 보면 된다.트랜스파일(Transpile)한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것이 트랜스파일이다.Tra..

Redis

Redis빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어이다.보통 데이터베이스는 하드디스크나 SSD에 저장한다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠르다.캐싱도 실시간으로 가능하며 실시간 채팅에 적합하다. 세션 공유를 위해서 세션 클라스터링에도 활용 가능하다.저장 공간이 RAM 이라면 휘발성 문제는?백업 과정이 존재한다.Snapshot : 특정 지점을 설정하고 디스크에 백업한다.AOF(Append Only File) : 명령(쿼리)들을 저장해두고, 서버가 셧다운 되면 재실행해서 다시 만들어 놓는 것이다.데이터 구조는 key/value 값으로 이루어져 있다. 따라서 Redis는 비정형 데이터를 저장하는 비관계형 데이터베이스 관리 시스템이다.value 5가지S..

Computer/CS 2024.07.16

24.07.16 C#

C#조건 연산자(Conditional Operator)조건 연산자는 ?: 은 큭이하게도 피연산자가 세 개이다.조건식 ? 참일 때의 값 : 거짓일 때의 값null 조건부 연산자?. 은 객체의 멤버에 접근하기 전 해당 객체가 null인지 검사해서 그 결과가 참이면 그 결과로 null을 반환하고, 그렇지 않은 경우 . 뒤에 지정된 멤버를 반환한다.?[] 도 동일한 기능을 수행한다. 배열과 같은 컬렉션 객체의 첨자를 이용한 참조에 사용된다는 점이 다르다.null 병합 연산자?? 연산자는 두 개의 피연산자를 받아들이고 왼쪽 피연산자가 null인지 평가한다. 평가 결과가 null이 아닌것으로 나타나면 왼쪽 피연산자를 그대로 반환하고, 만약 왼쪽 피연산자가 null인 것으로 평가되면 오른쪽 피연산자를 반환한다.Swi..

24.07.12 서버 프로그래밍 복습

게임 서버 프로그래밍 교과서게임 서버와 클라이언트패키지 게임에서 게임서버데디케이티드(decidated server) 렌더링과 사용자 입력 처리를 전혀 받지 않고, 순전히 클라이언트의 연결을 받는 세션을 처리만 하는 프로그램이 따로 들어있는 경우서버의 역할싱글 플레이 게임의 게임루프(game loop)입력받기 → 게임 로직 처리하기 → 렌더링게임 클라이언트와 서버의 상호작용게임 클라이언트가 서버에 데이터, 즉 메시지를 전달하면 서버는 이를 수신하여 메시지 내용에 따라 특정한 행동을 한다. 반대로 서버에서 클라이언트에 메시지를 전달하면 클라이언트는 수신한 메시지 내용에 따라 특정한 행동을 한다. 이렇게 메시지가 오가는 과정을 상호작용(interaction)이라고 한다.게임 클라이언트와 서버의 상호작용은 크게..

Database - 트랜잭션 격리 수준(Transaction Isolation Level)

트랜잭션 격리 수준(Transaction Isolation Level)Isolation Level트랜잭션에서 일관성 없는 데이터를 허용하도록 하는 수준이다.Isolation level의 필요성데이터베이스는 ACID 특징과 같이 트랜잭션이 독립적인 수행을 하도록 한다.따라서 Locking을 통해, 트랜잭션이 DB를 다루는 동안 다른 트랜잭션이 관여하지 못하도록 막는 것이 필요하다.하지만 무조건 Locking으로 동시에 수행되는 수많은 트랜잭션들을 순서대로 처리하는 방식으로 구현하게 되면 데이터베이스의 성능은 떨어지게 될 것이다.그렇다고 해서, 성능을 높이기 위해 Locking의 범위를 줄인다면, 잘못된 값이 처리될 문제가 발생하게 된다.Isolation level의 종류Read Uncommitted(레벨 ..

Computer/CS 2024.07.11

24.07.11 C#, CS

C#using System;usingC#의 키워드 중 하나다.SystemC# 코드에 기본적을 필요한 클래스를 담고 있는 네임스페이스다.;(세미콜론)컴파일러에게 문장의 끝을 알려준다.using static어떤 데이터 형식의 정적 멤버를 데이터 형식의 이름을 명시하지 않고 참조하겠다.전역 using(global using)소스파일 한 곳에서만 네임스페이스를 참조하면 프로젝트 내 모든 파일에서 별도의 using문 없이 해당 네임스페이스를 참조할 수 있도록 한다.파일 범위 네임스페이스namespace 선언 뒤에 {} 대신 ;(세미콜론)을 붙이면 그 파일의 모든 코드는 해당 네임스페이스 소속으로 들어간다.Static void Main(string[] args){}이 메소드는 프로그램의 진입점(Entry Point..

Database - DB 트랜잭션(Transaction)

DB 트랜잭션(Transaction)데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이다.상태를 변화시킨다는 것은 SQL 질의어를 통해 DB에 접근하는 것을 의미한다.작업 단위많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다.트랜잭션의 특징원자성(Atomicity)트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다.일관성(Consistency)트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 한다.독립성(Isolation)둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.지속성(Durability)트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 한다.Commit하나의 트랜잭션이 성공적으로..

Database - 정규화(Normalization)

정규화(Normalization)데이터의 중복을 줄이고, 무결성을 향상시킬 수 있는 정규화에 대해 알아보자Normalization중복된 데이터를 허용하지 않는 것이다.중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다.목적데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다.무결성을 지키고, 이상 현상을 방지한다.테이블 구성을 논리적이고 직관적으로 할 수 있다.데이터베이스 구조를 확장에 용이해진다.과정정규화에는 여러가지 단계가 있지만, 대체적으로 1~3단계 정규화까지의 과정을 거친다.제 1정규화(1NF)테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것을 말한다.만족해야 할 조건어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있..

Computer/CS 2024.07.10

24.07.10 CS

CS정규화(Normalization)데이터의 중복을 줄이고, 무결성을 향상시킬 수 있는 정규화에 대해 알아보자Normalization중복된 데이터를 허용하지 않는 것이다.중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다.목적데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다.무결성을 지키고, 이상 현상을 방지한다.테이블 구성을 논리적이고 직관적으로 할 수 있다.데이터베이스 구조를 확장에 용이해진다.과정정규화에는 여러가지 단계가 있지만, 대체적으로 1~3단계 정규화까지의 과정을 거친다.제 1정규화(1NF)테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것을 말한다.만족해야 할 조건어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어..

728x90