
Project : 일요일에 뭐 먹지? Keep 3시간 단위 팀 회의 회의시간은 15분 이내로 빠르게 끝냈음 회의 간 각자 진행하는 것, 앞으로 진행할 것, 에러 발생시 에러 원인을 공유 회의 종료 직전 다음 진행 사항 리마인드 하며 종료 팀장으로서 팀원들이 각자 어

첫 발걸음, 참 무겁다.Git 기초CSAPP 1.1 ~ 1.4 (컴퓨터 시스템 개괄)백준 문제 풀이(파이썬 입출력, 배열, 조건문, 반복문)C언어의 배열과 문자열HEAD미니 프로젝트 하면서 Git이 꼬였을 때, git log를 볼때 HEAD가 뭐냐는 팀원의 질문에머리.

동료와 공유하는 것의 중요성을 다시금 느낀 하루.배열, 문자열반복문, 재귀함수정렬(버블, 선택, 삽입)소수 판별어쩌면 아무 의미 없겠지만, 문자열보다 배열이 앞에 있기에 배열부터 살펴보았다.여러개의 데이터를 저장할 수 있는 공간이다.index라는 고유의 주소값을 통해서

허리가 아파요.... 정렬(병합, 퀵, 힙, 도수/계수)병합 정렬앞 부분과 뒷 부분의 두 그룹으로 분리하고 각각 정렬하고 병합하는 방식으로 정렬서로 떨어진 원소를 교환하지 않기에 Stable(안정적, 동일 원소 순서 보장) 하다.시간 복잡도는 O(N log N)퀵 정렬

구멍이 숭숭 뚫린 내 지식.시간 복잡도 & 공간 복잡도정렬 2회독(안정성,Do it 자료구조 내용 추가)하노이 탑 알고리즘(재귀)⏳ 시간 복잡도코딩 테스트 문제를 풀 때 시간 복잡도가 중요한 힌트가 될 수 있다.보통 채점용 PC는 1초에 약 1억 번의 연산을 수행한다고

(오늘은 사진으로 요약해볼게요)재귀( vs 반복문, 8-Queen)정렬 3회차파이썬( sort() vs sorted(), remove() vs pop() vs del vs slice)반복문으로 구현한 피보나치 수열재귀로 구현한 피보나치 수열퀸을 서로 공격할 수 없는 위

하루도 짧고 일주일도 짧아요...N-Queen백준 종이자르기, 외판원 순회, JS 입출력, 조건문, 반복문일단 큰 그림은 그릴 수가 있게 되었다.3개의 큰 규칙을 매 열에 퀸을 두면서 확인한다 고 한줄 요약 할 수 있겠다.같은 열/행에 퀸이 있으면 안됨.같은 대각선 ↗

백준(9095,1110)스택 자료구조JS (indexOf vs find vs findIndex)DP이코테 책에서 분명히 DP 개념을 배웠는데, 정글 들어와서 하얗게 잊어버렸다DP는 점화식을 찾고, 그 점화식에 맞추어서 큰 문제를 작은 문제 여러개로 나누어 푸는 것자세히

다시 폭풍속으로...!스택 자료구조 2회차(수식 후위 표기)백준(9012, 2493)CSAPP (캐시, 프로세서)수식의 표기법은 세가지로 나뉜다전위 표기 : \* + A B + C D중위 표기 : (A + B) \* (C + D)후위 표기 : AB+C+\*이때 중위 표

더 많은 시간을 투자하는데 왜 푸는 문제 수는 적을까 ㅠ큐 & 우선순위 큐 & 해시자료구조 vs 추상 자료형백준(이진탐색 문제 - 2805)FIFO, 먼저 들어간 것이 먼저 나온다 \- Rear로 데이터가 들어가고 Front로 나온다Rear로 데이터를 집어넣는 것은

파이썬만 하다가 JS하니까 왜... 재밌지?JS로 파이썬으로 풀었던 1주차 문제 다시 풀어보기JavaScript로 백준 풀기fs 모듈백준에서 저 파일 경로를 다른 경로로 넣게 되면 ENOENT 에러가 발생하니 주의할 것!readline 모듈백준 문제를 풀이할 때는 더

공부의 방향성, 쉽지 않지만 하나씩 안개를 걷어가는 느낌Queue 모듈 vs Deque 모듈투포인터 vs 이분탐색원형 힙https://www.acmicpc.net/problem/18258이 문제를 두가지 모듈을 활용하여 풀었다.결론부터 말하자면 Queue 모듈

부족한 깊이감, 어떻게 채울까?CSAPP(해시 충돌과 체인법, 지역성의 원리, 프로세스 vs 스레드)분할 정복deque 자료구조두개 이상의 아이템이 동일한 저장 공간에 지정되는 현상해시 함수의 특성상 동릴한 해시값을 가질 수 있기 때문에 발생함체인법각 버킷에 연결리스트

답이 아닌 접근법을 공부하자.이분탐색(8983 사냥꾼 ,2110 공유기 설치)스택(2504 괄호 찾기, 2812 크게 만들기)https://www.acmicpc.net/problem/8983https://www.acmicpc.net/problem/21

백준(10815 숫자카드)CSAPP (1.8 ~ 1.9)그래프의 종류와 구현(표현) 방법19815 : 숫자 카드https://www.acmicpc.net/problem/10815bisect 모듈로 딸깍 하려고 했지만 모듈 말고 최대한 구현해보라는 누군가의 가르

알고리즘도 머슬메모리!트리 & 그래프(순회)DFS/BFS위상 정렬좋아요! 가독성 좋게 정리해드리겠습니다. “모든 트리는 그래프이지만, 모든 그래프가 트리는 아니다.”트리와 그래프의 가장 중요한 차이는 사이클의 존재 여부와 부모-자식 관계 유무이다. 트리는 사이클이 없고

무언가 넣었는데 100%로 남아있지 않다...ㅠ최단경로 알고리즘dx, dy 테크닉한 정점에서 다른 정점까지 최단 경로를 구하는 알고리즘(one to ALL)동작 단계출발 노드와 도착 노드 설정최단 거리 테이블초기화현재 위치한 노드와 인접한 모든 노드의 최단 거리 값을

바쁘다 바빠 정글...단일 프로세서 시스템의 동시성스택을 활용한 DFSOS관점에서의 추상화실제로 여러 프로그램을 한번에 돌리는게 아니라, 프로세서가 빠르게 교차 실행하면서 마치 동시에 실행시키는 것 '처럼' 보이는 것실제로 여러개를 돌리는 것은 병렬성!재귀를 활용한 D

쌓여가는 REVIEW QUEUE, 복잡해진 내머리...DFS (21606, 14888)BFS (7569, 3055)위상 정렬(2637)기본 코드틀린 이유일단 실내 - 실외 - 실내 Case 이외 실외가 여러개인 Case와, 실내 - 실내 Case를 생각하지 못했다.틀린

한주가 마무리 됐으니 신나요... 물론 다시 한주의 시작입니다.BOJ(1388, 2667)CSAPP 3.0 ~ 3.4https://www.acmicpc.net/problem/1388일단 DFS로 풀려고 했다.이유는 탐색 방향이 가로 한방향 혹은 세로 한방향으로

somebody help meCSAPP Team StudyDPGreedy가장 헷갈렸던 데이터 이동 명령어 부분을 확실히 집고 갈 수 있었음.mov는 단순 복사. 변환 없음두 오퍼랜드 모두 메모리는 불가 (중간에 레지스터 거쳐야 함) 예:movabsq64비트 상수값(

여긴 어디 나는 누구?CSAPP 3.5 ~ 3.7제어권 전달리턴 주소를 스택에 저장P가 Q 함수 호출PC 값이 Q의 시작 주소로 이동Q 종료 후 스택에서 주소를 꺼내 P의 다음 명령어로 복귀데이터 전달 (Parameter Passing)P가 값을 Q에 전달Q가 값을 리

맨땅에 헤딩.CSAPP 3.8 (배열의 할당과 접근)LCSKnapSackC에서 T A\[N]은 L\*N 바이트의 연속된 공간 할당 (L = 자료형 T의 크기)A\[i]의 주소는 Xa + L \* i로 계산됨x86-64에서는 movl (%rdx, %rcx, 4), %ea
오늘 한줄 요약 삽질 마스터 새로 배우게 된 것 LCS(Subsequence) 컴퓨터 시스템에서의 스택과 레지스터 행렬 곱셈 순서(11049.Py) LCS (이거 그러고보니 어제 했잖아) 공부하다가 아쉬운 점
이걸 어떻게 생각해 내?LCS(최장 공통 부분 수열 구성방식)C언어에서의 LinkedList어제는 점화식, 오늘은 LCS 구성방식을 정복...(?)결국 두 문자열의 마지막 문자열을 비교해볼때똑같다면 그 문자는 100퍼 LCS이다.그러기에 그 문자열을 제외한 문자열에서

DP(14916)C언어 기초https://www.acmicpc.net/problem/14916집념과 불굴의 의지로 맞추었다...ㅎㅎ그리디로 풀었고, 5원을 최대한 써야한다는 것을 파악을 했다.그래서 5를 계속 빼다가 2의 배수를 만나면 2로 나눈 몫을 더해주었

물론이야! 마크다운 구조는 유지하면서, 전체적으로 가독성과 흐름을 정돈해봤어.pointer....C언어 기초컴퓨터 HW의 흐름Git Rebase로 Conflict 해결JS에서도 종종 사용했던 구조라 쉽게 이해했다.if-else는 조건을 순차적으로 검사하는 반면,swit

오늘 한줄 요약 과거의 나야 왜그랬어... 새롭게 배우게 된 것 C언어 구조체 & 포인터 (연결리스트) B Tree 삽입 삭제 C언어 구조체 & 포인터 구조체는 다양한 자료형의 변수들을 모아서 하나의 자료형으로 만들어서 더 편하게 코드를 구현할 수 있도록 도와

쉽지 않다.C언어 동적 메모리 할당, 메인함수 인자BST 노드 삭제배열 원소 접근 방법(배열방식과 포인터 방식)이게 왜 필요한가?사용자 입력을 받는 등, 배열의 크기가 정해지지 않았을 때 동적 메모리 할당을 통해 RunTime에 메모리를 할당할 수 있기 때문어떻게 쓰는

진도 빼기에 급급하여 본질을 잃어버림.C언어(재귀 vs 반복문)메모리 LayoutOperand Overloading문제 요구사항연결리스트의 원소들을 역순으로 배치하기반복문 풀이동작 원리는 간단하다.저장용 임시 연결리스트를 생성하고, 원본 리스트를 순회하며 그 원소를 i

C 언어 방향성RB Tree 개념 및 노드 삽입하드웨어와 가까운 언어: 시스템 프로그래밍에 적합세밀한 메모리 제어 가능다양한 타입(short, int, long, signed, unsigned 등) 지원상황에 맞는 타입 선택으로 메모리 절약 가능심지어 bit 단위 제어

천천히 하니까 할 수 있자나...!RB 트리 삽입GCC메모리 누수삽입 전 RB트리의 5가지 속성을 만족삽입 방식은 일반적인 BST 방식과 동일삽입 후 RB트리 위반 여부 확인RB트리 속성 위반시 재조정RB 트리 속성을 다시 만족⇒ 루트를 블랙으로 변경CASE3 (일직선

RB 트리 삭제gdb 디버거서브트리 이동u: 삭제되는 노드 v: u를 대체할 노드 (u의 successor 등)삭제되는 노드에 따라 세 가지 케이스로 나뉨:자식이 없는 경우: 그대로 삭제자식이 1개인 경우: 해당 자식이 u의 위치로 이동자식이 2개인 경우: succ

RB 로직 수정CSAPP 링커발생 에러34를 넣으면 재조정 통해 루트가 바뀌는데 이 과정에서 기존 루트였던 10이 사라졌던 에러 발생기존 로직수정 후기존에 분기처리를 통해 CASE 2 -> CASE 3 가는 로직 하나, CASE 3 검사 로직 하나로 중복으로 검사하다보

Q. 지금 지쳤나요?A. 네RB TREE 정복 완료CSAPP 07,08https://github.com/Anas-wg/jg_rbtree/blob/main/rbtree_lab/src/rbtree.crbtree_delete_fixup() 함수에서 형제 노드 bro

슬슬 벅차요 이거...ㅠ 매일쓰는거 디다

내 멘탈 잘있어...CSAPP 9 ~9.8물리 주소 지정: 초기 컴퓨터 시스템가상 주소 지정: 현대 프로세서페이지 & 페이지 테이블지역성(Locality) → 동적 집합, 쓰레싱 방지사적 주소 공간 제공: 각 프로세스에 독립적 주소 공간 제공효율적 메모리 사용: 디스크

CSAPP 9.9장힙(Heap): 프로세스 가상 메모리에서 동적 할당을 위해 사용되는 영역.힙은 brk 포인터로 확장/축소 가능.mmap, sbrk를 통해 저수준 메모리 직접 관리 가능.일반적으로 malloc/free 같은 할당기를 통해 힙 사용.명시적 할당기: 프로그

CSAPP 9.9JS algorithm - 1978.소수찾기특징:모든 블록(할당된 블록 + 가용 블록)을 순서대로 탐색.블록의 헤더에 저장된 크기와 할당 여부를 통해 블록 상태를 확인.가용 블록끼리 따로 연결 X, 전체 힙을 순회하면서 찾음.장점:구조가 단순하고 구현이

제 멘탈 정상영업 합니다...?Explicit Free List(with LIFO)JS- 2751, 수 정렬하기2포인터 크기는 시스템의 주소 공간 크기에 따라 결정됩니다.64비트 시스템에서는 메모리 주소도 8바이트로 표현됩니다.가용 블록끼리만 연결한 이중 연결 리스트.

Explicit Free ListDMA, EhternetJS 2309 일곱 난쟁이32비트일 때 블록과 도커 환경의 리눅스 환경에서 64비트의 블록 초기화가 달라져서 그림으로 표현해보았다.나는 가용 가능한 블록을 8바이트로 크게 잡았는데 이걸 4바이트로 줄여 24바이트를

CSAPP Segregated Free List최근 구현한 메모리 할당기는 Segregated Free List + Best Fit 전략을 기반으로 합니다. 놀랍게도 이 전략은 기존 방식보다 훨씬 뛰어난 처리량(Throughput) 을 보여주었습니다. 아래는 성능 테스

오늘 자 발표 자료 
CSAPP 11 Computer Network ~ 11.4 Echo Server가장 기본적인 네트워크 애플리케이션 구조는 클라이언트-서버 모델입니다.핵심: 클라이언트 프로세스가 서버 프로세스에게 서비스를 요청하고, 서버는 그 요청을 처리하여 응답하는 방식입니다.Tran

반성합시다...CSAPP Echo Server 2회차OSI 7계층. TCP/IP 4계층그림으로 그리면 이렇다.소켓 프로그래밍은 네트워크 통신의 기반 위에서 동작합니다. 따라서 기본적인 TCP/IP 프로토콜 스택에 대한 이해는 필수입니다. 이 글에서는 IP, TCP, U

어린이날 컨셉입니다 미리 죄송합니다내 tiny Webserver에 지젤님 오셨다아아Tiny MPG (11.7 homework)그저 내 지젤님을 내 localhost에 모시고 싶었다일단, 기존 코드는 jpeg,gif등 동영상이란 매체에 아무런 대비가 없었기에, 그래서 M

CSAPP Homework 문제Proxy 설계기존 Mmap, Rio_writen 활용mmap을 활용, 가상 메모리 공간에 직접 매핑파일 내용 별도 버퍼로 복사 X특정 메모리 주소를 통해 내용에 직접 접근Rio_written → mmap으로 얻은 메모리 주소인 srcp

Web_Proxy Lab Sequental Proxy, Thread per connectionmake 파일 안쓰고 일일히 컴파일하던 내자신....

어버이날 컨셉입니다.Docker 환경설정https://www.chooblog.xyz/blog/mac_pintos지식 공유이번 PintOS가 Ubuntu 18.04 인데, VSC 버전이 안맞아서 다운그레이드 안내를 했다.지식 공유 2그리고 Docker 설정 관련

뭐부터...해야하니?Busy Waitingglobal tick vs local_tickOS에서 원하는 자원을 얻기 위해 권한을 얻을때까지 계속 확인=> 기다리는 것이 아니고, CPU 자원을 낭비하는 쓰레드 동기화 방식CPU가 계속해서 쓸데없이 무한 루프를 돌면서 확인해

테스트PASS 한잔해\~~Busy Waiting => Block State 추가수정한 함수timer_sleepparameter : 깨우는 시간start ⇒ 12시, 현재 시간ticks ⇒ 5분, 재울 쓰레드가 깰 시간thread_sleeptimer_interrputth

지금 내 상태...PintOS Lab : Priority Scheduling -> Ready list 우선순위에 따른 정렬일단 Ready List를 우선순위에 따라서 정렬하는 것 부터 하기로 했다.따라서 Ready Status와 관련 있는 저 3개의 함수를 수정해야했다

길을 잃었다PintOS : Waiters list 정렬 + Ready Queue 검사로직 함수화기존에는 어떻게 Waiter리스트를 관리 했는가semaphoresema_init에서 초기화sema_down(P연산)에서 pushbacklist_inserted_order로

CSAPP : Proirity Donation위 코드의 else 블록 (즉, donations 리스트가 비어있지 않을 때)에서 새로운 우선순위를 계산할 때, 비교 대상이 되는 curr->priority는 스레드의 원래 우선순위(origin_priority)가 아닌, 이

WEIL은 WeekEnd I Learnedd...JavaScript로 코테를 준비하면서 자주사용한 메서드들을 정리하려고 한다.python의 enumerate 와 같은 기능을 한다파이썬의 in 연산자와 동일한 역할복사기에 원본은 그대로 유지가 된다삭제, 추가 둘다 가능한

PintOS LAP Argument Passing 구현(미완료)프로그래머스 DP정수삼각형 문제 풀이일단 procee_exec함수에서 file_name을 받아서 이를 띄어쓰기를 기준으로 잘라서사용자 스택에 차곡차곡 쌓는 과제이다.GitBook 가이드에 따라 단계별 Ste

Args Passing 완료...?프로그래머스 JS, 전력망을 둘로 나누기이렇게 뜨길래 GDB를 찍었더니내가 넘긴건 args-single onearg 이라서 argc가 2가 되어야하는데60까지 갔길래 뭔가 했더니strtok_r 함수를 통해 token을 갱신하는 과정에서

PintOS SYSCALL : OPEN 80% 완료프로그래머스 JS 최댓값과 최솟값열려고 하는 해당 파일을 포인터로 받음파일 열기가 실패하면 -1을 반환하고 성공하면 file Descriptor 값을 반환한다.쉽게 파일을 구분할 수 있는 식별자라고 생각하면 된다.이 식

그동안 TIL 이 뜸했죠...?PintOS에 딥다이브 하느라 잠자기 바빴습니다...process_exec() 에 Argument Passing 구현사용자 APP, 정수인자 전달 목적%rdi, %rsi, %rdx, %rcx, %r8, %r9 레지스터를 순서대로 사용호출자

User Program이 파일 시스템, 메모리, 프린터 등의 여러 프로세스가 동시에 사용하는자원에 접근할때, 커널 모드로 진입하기 위해 호출하는 함수.그림으로 그리면 위와 같다.여러 프로세스가 동시에 사용하는 자원, 즉 공유자원에 아무렇게나 접근하면그 자원을 쓰는 모든

CSAPP 09. 가상주소를 물리주소로 번역하는 과정PintOS VM Gitbook Introduction가상 주소는 Virtual Page Number(8비트) 와 Virtual Page Offset(6비트)으로 분리 가능하다만약 0x03D4 라는 가상 주소가 있다면

PintOS VM Gitbook Introduction 재정리 & Memory ManagementSupplemental Page Table 초기화(미완료)현재 PintOS 에는 가상 주소와 물리주소 매핑하는 (하드웨어) 페이지 테이블(pml4) 이 존재pml4는 현재

아 냉방병...PintOS VM LayOut 그려보기일단 보통의 리눅스 프로세스의 VM과 다른 부분은물리 메모리와 직접 매핑되는 부분이 있다는 점인 것같다고 생각했다.저 VM이 PintOS의 다른 요소들과 어떤 관계를 같는지를 좀 파악을 해야 더 명확해지지 않을까 싶다

진짜 길잃음Page Loading flowPintOS SPT 구현 관련 함수 구현Pml4을 보조하는 용도로 SPT를 사용한다...라는걸 알 수 있었다.저번 글에서 SPT 초기화는 완료했다.물론 TC가 없기에 검증은 못한다이후 SPT 구현에 필요한 spt_find_pag

https://casys-kaist.github.io/pintos-kaist/project3/introduction.htmlhttps://oslab.kaist.ac.kr/pintosslides/🚨 두번째 링크인 Kaist EE 자료는 64비트가 아닌

참고 자료 > https://casys-kaist.github.io/pintos-kaist/project3/introduction.html > https://oslab.kaist.ac.kr/pintosslides/ 🚨 두번째 링크인 Kaist OS LAB(EE) 자

https://casys-kaist.github.io/pintos-kaist/project3/introduction.htmlhttps://oslab.kaist.ac.kr/pintosslides/🚨 두번째 링크인 Kaist OS LAB(EE) 자료는

Process OS가 제공하는 실행 중인 프로그램의 개념./ 구성 요소 Program Counter Stack pointer 주소 공간 => 마치 자신만의 메모리를 갖도록 Process 상태 단순화해서 3가지 경우가 있는데 PintOS에서는 대기 상태(S

OS의 동작 과정은 두가지 모드가 존재한다.1\. 사용자에게 인터페이스를 제공하는 USER MODE2\. 하드웨어 자원을 직접 관리하는 Kernel MODE그래서 PintOS의 VM 구조 역시KERN BASE를 기준으로 사용자 영역과 커널 영역으로 나뉘어 있다.그럼 왜

Virtual Memory 가상 메모리는 프로그램이 혼자서 메모리를 다 쓰는 것 처럼 메모리를 가상화한 것을 말한다. 이를 통해서 물리적으로 사용 가능한 메모리보다 더 큰 공간을 제공할 수 있다. 이 가상 메모리의 주소 공간은 Page라는 일정한 크기로 분할되어 있

사실 정글에 있으면서도 FE 채용공고를 꾸준히 보고 있었다.흔히 말하는 네카라쿠배 부터 스타트업까지 쭈우우우욱 살펴보니TypeScript 가 없는 공고가 없었다.지금까지 주로 jsx파일로 React로 SPA 를 구현했는데,나 자신에게 온전히 투자할 수 있는 7일동안

FE : React, TypeScript, tailwind CSSBE : node.js, expressDB : MySQLFrontEnd 에선 다양한 스타일링 기법이 있는데CSS-in-JS 방식의 Styled Components 와 유틸리티 퍼스트 접근 방식의 tailW

https://velog.io/@bongjoki/npm-concurrently개발을 진행하다 보니 front 쪽 터미널 열고 Npm run dev, back 쪽 터미널 열고npm start 하는게 귀찮아서 한번에 하는게 없을까? 하고 찾아보니concurrent

DOM + CSSOM -> Render Tree -> LayOut -> Paint -> Composite 순 DOM : HTML을 브라우저가 이해할 수 있는 형태로 변환하여 요소간 관계를 트리구조로 표현CSSOM : CSS를 브라우저가 이해할 수 있느 형태로 변환하여
Canvas API JS와 HTML을 사용하여 그래픽을 그릴 수 있는 HTML Tag. 태그를 사용하고 JS로 이 element 인터페이스를 그려서 조작하는 방식이다. 웹 상에서 2D 그래픽을 그릴 수 있는 Tag.
오늘은 FrontEnd 협업을 위해 코드스타일을 통일하는 ESLint와 Prettier 를 설정해 보았다.사람들은 다양한 방식으로 코드를 짠다.같은 컴포넌트라도 마지막 닫는 태그를 같은 줄에 넣는 분도 있고 줄을 넘겨서 넣는 분도 있다.이게 별거 아닌 것 같지만 코드가
진행중인 프로젝트 특성상 MVP를 빠르게 개발해야해서현재 FrontEnd 기능을 개발하면서 배운 것들을 정리한다.px : Pixel, 디지털 화면에 표시되는 가장 작은단위, 고정크기em : 부모 요소의 글꼴 크기에 상대적인 단위위와 같다면 p 태그의 font-size는
https://ko.react.dev/reference/react/useMemo재렌더링 사이 계산 결과를 캐싱할 수 있도록 React Hook같은 값을 반환하는 함수를 반복적으로 호출한다면 이전에 계산한 값을 메모리에 저장.동일한 계산의 반복수행을 제거해서 실

옛날 옛적 클래스 컴포넌트를 쓸때는 컴포넌트의 생명주기에 따라서 필요한 함수를 호출하였다.https://ko.legacy.reactjs.org/docs/react-component.html크게 보면 Mount(생성) - Update (업데이트) - UnMoun

https://www.youtube.com/watch?v=Mh3LaHmA21I&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9C%ED%85%8C%ED%81%AC특정 서비스에 접근하는 사람(사용자)가 누구인 지 확인하는 것회원가입과 로그인 과
https://developer.mozilla.org/ko/docs/Web/HTML/Reference/Elements/canvas웹에서 그래픽이나 Animation 을 구현하기 위해 사용하는 HTML tag.이 안에서 어떤 것을 그릴지는 JavaScript 코

package.json 파일을 확인하여 기존 테스트 관련 설정을 분석. 초기 상태에서는 eslint만 설정되어 있었으며, 별도의 테스트 프레임워크는 부재.Vitest: Vite 기반 프로젝트를 위해 설계된 빠르고 가벼운 테스트 프레임워크입니다. Jest와 유사한 API
일반 JS함수 내 훅 호출 => 훅 규칙 위반'
렌더링시 기본 캔버스의 픽셀 데이터를 가져오는 로직을 수행하는 함수.데이터를 가져오기 + canvas 태그 내용 채우기 이 두가지 역할을 수행.canvasFetch.ts일단 유틸함수로 미리 분리해두었기 때문에 분리하기가 편했다.함수 동작을 위해 필요한 정보와 타입들을

https://developer.mozilla.org/ko/docs/Web/API/OffscreenCanvashttps://tech.kakao.com/posts/442https://velog.io/@hoonsbory/offscreencanva

https://github.com/Pick-px/frontend/pull/142우리는 여러개의 캔버스 tag를 활용했다.하나는 데이터 저장용이고, 나머지는 위쪽 부터 interaction - imageOverlay - preview - render - Star

https://web.dev/articles/workers-overview?hl=ko브라우저는 기본적으로 단일 스레드를 사용하여 모든 JS 코드를 실행한다.웹 환경에서 앱 처럼 멀티 스레딩 모델을 활용하기 위해 사용하는 것이 바로 웹 워커.기본이라고 적혀있는

일단 처음에 캔버스 하나로만 하려고 했다.그 당시에는 구현된 기능도 색칠 기능 딱 하나이기도 했고캔버스 태그에 관련된 로직들도 별로 많지도 않아서,렌더링 지연도 없었다.그런데 미리보기 기능, 픽셀 경계 효과 등을 추가하면서캔버스가 무거워지기 시작했다.동료 개발자와 캔버
https://tech.kakaoent.com/front-end/2023/230310-webview-pinch-zoom/다시한번 압도적 감사...우리가 지도앱을 쓸때 많이 하는 행위로,손가락 두개가 멀어지거나 가까워지는 제스처를 Pinch Zoom 이라고 한다