2024/10 9

게임 프로그래밍과 삼각함수는 무슨연관이 있을까?

1. 서론: 삼각함수란 무엇일까?수학을 배우면서 한 번쯤은 들어본 단어, 바로 삼각함수입니다. 하지만 이름만 들어도 어려울 것 같고 실제로 어디에 쓰이는지 감이 오지 않는 것이 사실입니다. 그럼에도 불구하고 삼각함수는 우리 생활 곳곳에 숨어 있습니다. 예를 들어, 여러분이 매일 보는 스마트폰의 화면 움직임, 음악 소리의 파형, GPS로 현재 위치를 정확하게 찾는 기술 등 삼각함수는 보이지 않는 곳에서 큰 역할을 하고 있습니다.삼각함수는 직각삼각형을 통해 각도와 변의 비율을 분석하는 수학적 개념에서 출발합니다. 이를 통해 각도가 일정한 비율로 변할 때, 그 변화가 주기적인 패턴을 가지게 된다는 점을 수학적으로 설명할 수 있습니다. 이런 주기적 패턴이 바로 우리 일상과 과학기술에서 삼각함수가 필수적인 이유입..

TIL 00:17:59

Load Balancing에 대하여

1. 로드밸런싱 (Load Balancing)로드밸런싱은 여러 서버에 트래픽을 분산시켜 서버의 부하를 효율적으로 관리하는 기술입니다.이를 통해 특정 서버에 과부하가 걸리는 것을 방지하고, 시스템의 가용성과 성능을 향상시킬 수 있습니다.예를 들어, 웹 서비스에서 수많은 사용자가 동시에 접속할 경우, 하나의 서버만으로는 처리할 수 없으므로 여러 대의 서버가 필요합니다.로드밸런서는 이 트래픽을 서버들 간에 고르게 분산시킴으로써 효율적인 자원 활용과 장애 대비를 가능하게 합니다. 예시:쇼핑몰 웹사이트에서 사용자가 많아지면 하나의 서버만으로는 사용자 요청을 모두 처리할 수 없습니다.로드 밸런서는 이러한 요청을 여러 서버로 나누어 처리합니다.A 서버, B 서버, C 서버가 있다고 가정하면, 로드밸런서는 각 요청을 ..

TIL 2024.10.21

대칭키, 비대칭키 암호화에 대하여

1. 대칭키 암호화와 비대칭키 암호화대칭키 암호화:개념: 송신자와 수신자가 동일한 키를 사용해 데이터를 암호화하고 복호화하는 방식입니다. 같은 키를 사용하기 때문에 암호화와 복호화 속도가 빠릅니다.장점:빠른 속도: 대칭키 암호화는 비대칭키보다 암호화, 복호화가 빠르기 때문에 대용량 데이터를 처리할 때 유리합니다.낮은 계산 복잡도: 대칭키 방식은 비대칭키 방식보다 계산 과정이 단순해 리소스가 적게 사용됩니다.단점:키 관리의 어려움: 키를 송신자와 수신자가 공유해야 하므로, 키가 외부로 노출되면 보안에 취약해질 수 있습니다. 특히, 여러 사람과 통신해야 하는 경우, 각각의 사람에게 키를 안전하게 전달하고 관리하는 데 어려움이 있습니다.예시: AES, DES, 3DES 등상황 설명: A는 B에게 비밀 파일을 ..

TIL 2024.10.17

전송 계층 프로토콜에 대하여

위의 글은 모의 면접을 대비하여 미리 공부를 하기 위하여 정송 계층 프로토콜에 대하여 그리고 IP의 한계, 오류 제어, 흐름 제어에 대한 내용을 학습한 내용입니다. 전송 계층 프로토콜전송 계층은 OSI 7 계층 중 4번째 계층으로, 애플리케이션 계층과 네트워크 계층 사이에서 데이터를 주고받는 역할을 담당합니다. 서버 개발자의 관점에서 이 계층은 애플리케이션이 네트워크를 통해 데이터를 안전하고 효율적으로 송수신할 수 있도록 도와주는 중요한 요소입니다. 대표적인 전송 계층 프로토콜에는 TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)가 있습니다. 다른 전송 계층 프로토콜로는 SCTP(Stream Control Transmission Prot..

TIL 2024.10.16

NodeTowerDefense KPT 회고록 작성

1. Keep: 잘한 점이나 계속 유지해야 할 것. 성공적으로 진행되었거나 긍정적인 영향을 준 것들을 기록합니다. 팀원 중 한 명의 실력이 다른 사람들보다 월등해서 그 팀원이 다른 팀원들을 지속적으로 도와주는 방식으로 진행했는데, 해당 팀원이 계속 동의한다면 이러한 방식으로 협업을 유지했으면 좋겠다.기존에 존재하는 코드를 충분히 이해한 덕분에 기능 추가 시 필요한 점이나 적절한 방법을 선택하는 데 혼란을 줄일 수 있었다.팀원 모두가 적극적으로 회의에 참여하여 활발한 의견 교환이 이루어져 긍정적인 결과를 얻을 수 있었습니다.회의 시간을 정해서 진행 상황을 일 단위로 서로 공유한 점이 좋았었습니다. 내가 구현하려는 기능을 다른 팀원에게 설명하는 과정이 내가 작성한 코드를 이해하는 데도 도움이 되었습니다..각..

회고록 2024.10.16

메모리란?

(서버 프로그래머적 관점으로 간단하게)1. 메모리란 무엇인가?메모리는 컴퓨터에서 데이터와 프로그램을 일시적으로 또는 영구적으로 저장하는 하드웨어 리소스를 의미하며, 프로세스의 실행 속도와 서버의 처리 성능에 직접적인 영향을 미칩니다. 서버 프로그래머의 관점에서, 메모리 관리는 성능 최적화와 리소스 효율성에 중요한 역할을 합니다.RAM(Random Access Memory, 임의 접근 메모리): 서버에서 RAM은 프로세스 실행 시 필요한 데이터를 저장하여 CPU가 빠르게 접근할 수 있도록 돕습니다. 메모리가 부족하면 서버는 스왑 메모리를 사용하게 되고, 이는 디스크 I/O를 유발해 성능 저하를 초래할 수 있습니다. 따라서 메모리 사용량 모니터링과 최적화는 서버 성능 관리의 핵심입니다.캐시 메모리: CPU와..

TIL 2024.10.11

CPU란? (기초)

CPU(Central Processing Unit)는 컴퓨터의 핵심 연산 장치로, 모든 계산과 명령 처리를 담당하는 "컴퓨터의 두뇌"라고 할 수 있습니다. CPU는 프로그램에서 요청하는 명령을 받아 해석하고, 필요한 연산을 수행하며, 결과를 출력하는 과정을 반복합니다.CPU는 크게 다음과 같은 세부 장치들로 구성됩니다:연산 장치(ALU, Arithmetic Logic Unit):산술 연산(덧셈, 뺄셈 등)과 논리 연산(AND, OR, NOT 등)을 수행하는 장치입니다.데이터를 처리하고 계산하는 핵심 역할을 담당합니다.제어 장치(CU, Control Unit):프로그램 명령을 해석하고, CPU 내 각 구성 요소와 메모리 사이의 데이터 흐름을 제어합니다.명령어를 읽고, 이를 해석한 후, ALU나 레지스터 등..

TIL 2024.10.10

chome_dino_websocket_game 개인 프로젝트 트러블 슈팅

1. 개요redis를 사용하여 websocket_game 프로젝트를 진행하면서 redisCli.ZRANGE(... , 'WITHSCORES');부분에서 'WITHSCORES' 부분이 제대로 동작하지 않아서 userUUID값만 나오는 문제가 생겼습니다.이 문제를 해결하는 방법에 대해서 트러블 슈팅을 진행하겠습니다. 2. 트러블 슈팅 2.1 배경  - 최고 점수를 get하는 부분인 score.model.js부분에서 await redisCli.ZRANGE(HIGH_SCORE_KEY, 0, -1, 'WITHSCORES'); 부분에서 WITHSCORES기능이 제대로 동작하지 않는 문제가 발생하게 되었습니다. 2.2 발단 - 위의 부분이 제대로 동작하지 않아 redis에 userUUID와 그 사람의 최고 score..

TIL 2024.10.07

VSCode에서 .js 확장자가 빠지는 문제 해결

최근에 코드를 치던 도중 자꾸 다른 곳에서 import를 해올 때 자동으로 .js가 생성되지 않고 빠져가지고 찾아야하는 번거로움을 겪게 되었습니다. 해결 방법은 간단합니다.바로 VSCode 설정을 수정하는 방법 입니다.읽기 전 방법이 총 2가지 이기 때문에 1번 방법이 되지 않으면 바로 2번 방법으로 가주세요. VSCode 설정 수정하기1. VSCode 설정 열기먼저, Visual studio Code를 실행한 후, 아래 단축키를 사용해 설정을 엽니다.Windows/Linux: Ctrl + ,Mac: Cmd + 또는, VSCode 상단 메뉴에서 파일(File) -> 기본 설정(Preferences) -> 설정(Settings)으로 이동할 수도 있습니다.2. 검색창에 settings.json 검색설정 창에..

TIL 2024.10.01