목록2024/12 (27)
개발자공부일기
오늘 팀프로젝트에서 forEach안에서 Promise를 사용했는데 작동을 안해서 알아봤다. Promise와 forEach의 동작 차이1. forEach의 동작 방식forEach는 배열의 각 요소를 동기적으로 순회하며 콜백 함수를 실행합니다.즉, 배열의 모든 요소를 비동기 작업 여부와 관계없이 바로 처리합니다.기본 동작const numbers = [1, 2, 3];numbers.forEach((num) => { console.log(num); // 동기적으로 즉시 실행});console.log('Done'); // forEach가 끝나고 실행출력:123Done2. forEach와 비동기 함수forEach에서 콜백 함수가 async일 경우, 콜백 함수가 반환하는 Promise는 무시됩니다.forEach 자..
I/O 최적화와 Non-blocking I/O는 특히 실시간 애플리케이션(예: 게임 서버, 채팅 애플리케이션, 웹 서버)에서 성능을 극대화하는 데 중요한 개념입니다. 나는 Non-blocking I/O와 Node.js의 Event Loop를 중심으로 알아봤다.I/O(Input/Output) 최적화란?I/O 최적화는 프로그램이 데이터를 읽고 쓰는 과정에서 발생하는 지연 시간(latency)과 대기 시간(wait time)을 최소화하는 것을 목표로 합니다. 전통적인 블로킹 방식에서는 데이터가 완전히 처리될 때까지 다른 작업을 하지 못하지만, Non-blocking I/O 방식에서는 작업을 기다리지 않고 다른 작업을 동시에 처리할 수 있습니다.블로킹 I/O (Blocking I/O)와 비블로킹 I/O (Non..
웹소캣 팀프로젝트를 진행중이다.저번주 개인과제까지만해도 내가 뭘 해야하고 뭘 만들고 있는지 몰랐는데 이제 좀 보이기 시작하는거 같다.팀원분들도 많이 도와주셔서 방향도 잘 잡히는거 같다. 주말에도 계속 코드 읽어보고 생각하며 만들어봐야겠다.팀원들의 코드와 연결되는 부분이 많아서 소통도 더 자주하고 다른 팀원들 코드도 계속 봐야겠다.그리고 이번주에 진행한 이론 수업들에서 내가 많이 부족함을 느꼈다. 기술면접 대비하려면 TIL열심히 쓰면서 모르거나 헷갈리는 개념들을 차곡차곡 쌓아가야겠다.
백엔드 아키텍처의 중요성현대의 소프트웨어 개발에서 백엔드 아키텍처는 시스템의 성능, 확장성, 유지보수성을 결정짓는 핵심 요소입니다. 왜냐하면 백엔드 아키텍처가 잘 설계되어 있지 않으면, 애플리케이션의 성능 저하, 확장 곤란, 유지보수 어려움 등의 문제가 발생할 수 있기 때문입니다.현대적인 백엔드 아키텍처는 이러한 문제들을 해결하기 위해 모듈성, 재사용성, 테스트 용이성을 고려하여 설계됩니다. 이는 애플리케이션의 신속한 개발과 효율적인 운영을 가능하게 합니다.백엔드 아키텍처를 설계할 때는 시스템의 요구 사항과 목표를 명확하게 이해하는 것이 중요합니다. 왜냐하면 아키텍처는 이러한 요구 사항과 목표를 충족시키기 위한 해결책을 제공하기 때문입니다.또한, 현대적인 아키텍처 설계는 지속적인 변화와 기술의 진화에 유..
TCP/IP 4계층 또는 OSI 7계층 모델에서 응용 계층은 네트워크 프로토콜의 최상위 계층으로, 사용자와 네트워크 간의 인터페이스 역할을 수행합니다. 이 계층은 사용자가 네트워크를 통해 데이터를 송수신하고 다양한 서비스를 사용할 수 있도록 지원하며, 주로 웹 브라우징, 이메일 전송, 파일 전송과 같은 애플리케이션 중심의 작업을 처리합니다.응용 계층은 사용자의 요구를 충족시키기 위해 다양한 응용 프로그램과 상호작용하며, 이들 응용 프로그램이 네트워크 자원을 효율적으로 사용할 수 있도록 필요한 프로토콜을 제공합니다. 이 계층에서 작동하는 프로토콜은 사용자가 이해할 수 있는 형식으로 데이터를 처리하며, 데이터의 전송, 수신, 처리 과정을 투명하게 만들어 사용자는 복잡한 네트워크 작업을 알 필요 없이 서비스를..
운영체제 (Operating System)란?운영체제(OS)는 컴퓨터 시스템의 핵심 소프트웨어로, 하드웨어와 소프트웨어를 관리하고 사용자와 컴퓨터 간의 인터페이스 역할을 수행합니다. 운영체제는 컴퓨터가 정상적으로 작동하기 위해 반드시 필요하며, 자원 관리, 프로세스 실행, 파일 시스템 관리, 보안 등의 역할을 수행합니다. 여기서는 운영체제의 구조와 역할을 더욱 자세히 살펴봅니다. 운영체제의 정의운영체제는 컴퓨터 하드웨어를 제어하고, 다양한 응용 프로그램과 사용자 간의 상호작용을 지원하는 소프트웨어 계층입니다. 운영체제는 하드웨어를 직접 제어하며, 응용 프로그램이 이를 효과적으로 사용할 수 있도록 자원을 추상화합니다. 운영체제의 주요 역할1. 자원 관리 (Resource Management)운영체제는 컴퓨..
온라인 게임에서는 클라이언트와 서버 간의 역할 분담이 매우 중요합니다. 1인용 게임에서는 게임이 단일 플레이어의 경험에 초점이 맞춰져 있지만, 온라인 게임은 여러 사용자가 동시에 상호 작용하면서 게임을 진행하므로, 그에 맞는 기술적 설계와 관리가 필요합니다. 클라이언트와 서버는 각각 다른 역할을 맡아 공정한 게임 진행과 안정적인 데이터 처리를 담당합니다.1. 클라이언트와 서버의 역할 게임 클라이언트는 게임의 사용자 인터페이스를 담당하는 부분으로, 플레이어와 상호작용하는 장치입니다. 클라이언트는 사용자 입력을 처리하고, 그 입력을 서버에 전송합니다. 예를 들어, 플레이어가 게임 내에서 이동하거나 공격하는 등의 액션을 취하면, 클라이언트는 그 정보를 서버에 전달하여 서버가 해당 액션을 처리하도록 합니다. 서..
과제하랴 OSI7계층같은 네트워크 이론들 공부하랴 여러모로 바쁜 한주였다.웹소캣이 생각보다 익숙해지는데 오래 걸렸고 과제를 100%의 상태로 제출하지 못했다.시간이 2주라 꽤 널널하다 생각한 오만이었던거같다. 주어진것에서 끝내지말고 항상 최선을 다하고 시간이 남으면 더 뭔가 할 수 있는건데 사람이 그게 참 힘들다. 다음주만이라도 시간이 널널하다 생각되어도 그건 나의 착각이지 실제로 남은게 아니라고 생각해야겠다. 이번에 과제제출 직전에 배포하다 오류나서 곤욕을 치뤘으니 다음주에는 달라지리라 믿는다.다음주부터 새 팀 프로젝트가 시작되는데 총기간중 60%의 기간안에 끝낸다고 생각하고 달려보려한다.