그럴듯한 개발 블로그
article thumbnail
js는 비동기 큐가 2개다?
<language>/javascript 2024. 3. 26. 14:52

vanilla JS로 핑퐁게임 SPA 사이트 프로젝트 하다가 겪은 일이다.커스텀 게임 방 리스트 페이지위 페이지에선 2가지 비동기 동작이 정의되어 있다.1. 먼저 5초마다 setInterval로 현재 페이지네이션 숫자를 담아 fetch후 방 리스트를 렌더링 하는 로직2. 아래 화살표를 누르면 페이지네이션을 + - 하고 그 숫자를 담아 fetch후 방 리스트를 렌더링 하는 로직 그런데 아래 화살표를 광클하니 현재 페이지네이션이 아닌 페이지가 깜빡거리면서 렌더링 되는 이슈가 생겼다.로직상 문제가 없었고, 콘솔로 페이지네이션을 찍어봐도 이상이 없어서 이틀 내내 고민하고 찾아본 결과 비동기 큐가 2개라는 걸 찾았다. setInterval, setTimeout같은 macrotask이 들어가는 macrotask q..

article thumbnail
바닐라 js SPA 스타터킷
<language>/javascript 2024. 2. 8. 00:16

https://github.com/donghyun1998/vanilla_js_SPA_starter_kit GitHub - donghyun1998/vanilla_js_SPA_starter_kit: 바닐라 js로 SPA 구현하기 위한 스타터킷바닐라 js로 SPA 구현하기 위한 스타터킷. Contribute to donghyun1998/vanilla_js_SPA_starter_kit development by creating an account on GitHub.github.com바퀴의 재발명이긴 하지만 많이 배울 수 있는 시간이었다.component 분할, useState 활용하는 예시 페이지 만들어 두었으니 자바스크립트 잘하시는 분은 그냥 코드 보시면 됩니다.초심자 분들은 아래 설명 봐주세유 router ..

클로저
<language>/javascript 2024. 1. 30. 23:35

c, c++ 만 해 본 나로선 클로저라는 머싯는 이름을 붙이는 게 이해가 안 갔다. 이거 그냥 함수 포인터 리턴하는 거 아니냐??라고 생각했다. 허나 아래 같은 상황에서는 애매하다. function createCounter() { let count = 0; return function() { count += 1; return count; }; } const counter = createCounter(); console.log(counter()); // 1 console.log(counter()); // 2 counter변수에 담긴 createCounter 내부에 선언되어 리턴된 function의 경우 counter 변수가 참조하고 있으므로 인스턴스가 살아있는 게 맞지만, 함수 createCounter의 ..

article thumbnail
간단 echo server 구현 (C++)
<language>/c++ 2023. 10. 16. 18:47

socket관련 시스템콜 함수들을 사용해 보았다.#include #include // server.cpp #include #include #define PORT 8080 int main() { int sock, new_sock; struct sockaddr_in addrStruct; // 소켓 만들기 if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == 0) { std::cerr

article thumbnail
c++ class 상속, 가상함수 테이블, 추상클래스
<language>/c++ 2023. 8. 7. 17:12

상속 class 자식클래스 : 접근제한자(public, protected, private) 부모클래스 { 추가 멤버 선언 }; 틀을 가져다 그대로 복사하고 추가하는 느낌으로 이해했다. 자식 클래스에선 부모의 private는 접근할 수 없다. private는 해당 클래스 내에서만 접근이 가능하고, protected는 해당 클래스와 하위 클래스에서 접근이 가능하다. 접근 제한자를 설정하면 그 접근 제한자보다 높은 권한? 은 같은 권한으로 바꾼다. ex) private로 상속하면, 상속받은 부모의 public멤버도 다 private처리됨 private < protected < public public으로 상속하면 그냥 권한 그대로 쓴다는 뜻. virtual ? 자식 클래스에서 함수를 재정의(override)할..

c++ 레퍼런스(참조자)
<language>/c++ 2023. 7. 6. 18:56

// 포인터와 레퍼런스의 차이를 알아보는 코드이다. intmain() { std::stringstr = "HI THIS IS BRAIN"; std::string*stringPTR; std::string&stringREF = str; // 레퍼런스는 선언하면서 초기화 해줘야 한다. stringPTR = &str; // 주소 출력부 std::cout