Computer Science

웹에서 3D 그래픽을 그리려고 WebGL을 써보려고 하면, “셰이더가 뭐지?”, “버퍼는 왜 써야 하지?” 같은 질문부터 들게 됩니다.이 글에서는 WebGL 셰이더(Shader)에 대해 다룹니다.🌏 Shader✅ WebGL은 Low Level APIWebGL은 GPU를 직접 제어할 수 있게 해주는 API의 구현체입니다. 다양한 구현 방식 중에 WebGL은 Low-Level API라서, 우리가 GPU에게 모든 걸 직접 지시해야 하는 방식입니다.예를 들어서, "삼각형을 이렇게 이렇게 그려줘!" 라고 명령하기 위해서는 내가 그리고 싶은 삼각형을 화면 상에 어떤 점에 세 가지 꼭지점을 표시하고 각 픽셀을 어떤 색으로 칠할 지 일일이 명령해야 합니다. (추가로, 각 꼭짓점을 GPU에 전송하고 연결, 렌더링 방식..
🌏 WebGL: Canvas, Viewport, 그리고 렌더링까지WebGL을 처음 접하면 가장 먼저 만나는 개념은 canvas, gl, 그리고 render() 함수다. 이 글에서는 처음으로 WebGL로 그래픽을 그릴 때 꼭 이해해야 하는 요소들을 하나하나 짚어보며, 실제로 어떻게 동작하는지도 함께 알아보자.✅ HTML Canvas: 픽셀을 담는 공간HTML5에서 제공하는 요소는 브라우저 안에서 그림을 그릴 수 있는 공간을 제공한다. 이 공간은 비트맵 형식의 2D 또는 3D 그래픽을 표현할 수 있다.자바스크립트로 접근할 수 있으며, 이렇게 사용할 수 있다:const canvas = document.getElementById('myCanvas');canvas.width, canvas.height: 캔버스..
🌏 차등 프라이버시 (ε-Differential Privacy)데이터셋 D=(x1,x2,…,xn) 이 있고, 이로부터 어떤 통계값 f(D)를 공개하고 싶다고 가정합니다. 그런데 직접 f(D)f(D)를 공개하면 개인정보가 유출될 수 있기 때문에, 노이즈를 섞는 방법(무작위화, randomization)을 사용합니다.✅ Neighboring datasetD와 D′는 단 한 사람의 데이터만 다른 데이터셋이라고 가정합니다. 아래와 같이 n번 데이터 하나만 다르고 1~n-1 의 데이터는 모두 같습니다.이 둘을 neighboring datasets라고 부릅니다.✅ DP의 수식적 정의어떤 메커니즘 M이 다음을 만족하면, 이를 ε-차등 프라이버시라고 부릅니다. ε은 프라이버시 손실 허용 정도를 의미하는 파라미터입니다..
🌏 Reconstruction Attack데이터 프라이버시의 보장은 오늘날 데이터 기반 시스템에서 가장 중요한 이슈 중 하나입니다. 그중에서도 재구성 공격(Reconstruction Attack)은 개인 데이터를 보호하는 데 있어 심각한 위협이 됩니다.이번 글에서는 이러한 재구성 공격이 어떻게 이루어지는지, 그리고 이를 막기 위해 랜덤성을 활용한 기법이 어떻게 작동하는지를 수학적으로 자세히 살펴보겠습니다.✅ Reconstruction Attack(재구성 공격)이란?개인 정보가 담긴 데이터를 그대로 공개하면 심각한 문제가 생길 수 있습니다. 각각의 정보를 직접 공개하지 않는다고 하더라도 통계만 가지고도 특정 데이터가 어떠한 데이터인지 알아낼 수 있다는 것이 문제입니다. 예를 들어서 2명의 몸무게 평균을 ..
이 문제는 이분 탐색(Binary Search) 을 이용해서 해결할 수 있는 전형적인 최적화 문제입니다.전체적인 아이디어는 다음과 같습니다.✅ 문제 요약n명의 사람이 입국심사를 기다림각 심사관이 한 사람을 처리하는 시간은 times 배열에 있음모든 사람이 심사를 받는 데 걸리는 최소 시간을 구하기💡 핵심 아이디어어떤 시간 t가 주어졌을 때, 그 시간 내에 n명을 처리할 수 있는지를 판단할 수 있다면,t를 이분 탐색으로 줄여가며 최소의 시간을 구할 수 있습니다.만약 28분이라는 시간이 있다고 치면?각 심사관이 28분 안에 몇 명 처리할 수 있을까요?28 / 7 = 4명 (첫 번째 심사관)28 / 10 = 2명 (두 번째 심사관)총 6명 처리 가능근데 더 짧은 시간에도 가능할 수도 있잖아요?🔍 여기서 이..
🖥️ Modification Anomaly의 종류와 예시데이터베이스는 유용한 정보를 저장하고 관리하기 위한 시스템입니다. 하지만 데이터베이스 설계가 적절하지 않으면 Modification Anomaly(수정 이상현상)가 발생할 수 있습니다. 이는 데이터베이스에 데이터를 추가하거나 수정, 삭제하는 과정에서 발생하는 문제들을 의미합니다. 이러한 문제는 데이터의 무결성을 손상시키고 불필요한 중복 데이터를 유발할 수 있습니다. Modification Anomaly는 크게 삽입 이상(Insertion Anomaly), 갱신 이상(Update Anomaly), 삭제 이상(Deletion Anomaly)으로 나뉩니다. 각각의 이상현상과 예시를 살펴보겠습니다.✅ 삽입 이상 (Insertion Anomaly)삽입 이상..
🖥️ 데이터베이스의 세 가지 제약: Domain, Entity, Referential Integrity Constraint데이터베이스는 유용한 정보를 저장하고 관리하기 위한 시스템입니다. 이 시스템에서는 데이터의 무결성을 보장하고 오류가 발생하지 않도록 다양한 제약 조건을 설정할 수 있습니다. 대표적으로 세 가지 제약, 즉 Domain Constraint, Entity Integrity Constraint, Referential Integrity Constraint가 있습니다. 각각의 제약은 데이터의 정확성과 일관성을 유지하는 데 중요한 역할을 합니다.✅ Domain Constraint (도메인 제약)도메인 제약은 특정 속성에 저장될 수 있는 값의 범위를 정의하는 제약입니다. 각 컬럼에 허용된 데이터 ..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 What is OS? ✔️ 정의 하드웨어 자원을 애플리케이션에서 사용할 수 있도록 하는 소프트웨어 Software that converts hardware into a useful form for applications ✔️ 기능 소프트웨어 관점에서 프로그램의 실행 환경 제공 하드웨어 자원을..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 Unsupported hardware architecture detected! Virtualbox를 다운로드하려고 하다보면 아래와 같은 에러 메세지를 만날 수 있다. Unsupported hardware architecture detected! The installer has detected..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 인트로 어제 스터디 통해서 현직 개발자님의 RESTful API에 대한 강의를 듣고 정리해본 글이다. 최대한 쉬운 언어로 작성하려고 노력했고, 나의 재해석이 많이 들어가 있으니, 참고해서 읽어주시면 감사하겠습니다. 💋 용어 정리 ✔️ API 약속, 규약으로 통신에 참여하는 애플리케이션 간의 ..