본문 바로가기

전체 글164

[React]왜 리액트는 뮤텍스 잠금(Mutex Lock)이 없을까? 최근 컴퓨터 공학 개론에 관련된 강의를 듣게 되면서 동기화(synchronization)와 교착상태(deadlock)에 대해 좀 더 깊게 알아볼 기회가 생겼다. 관련된 공부를 하면서 한 가지 의문이 들었다. 자바스크립트, 리액트에서 뮤텍스 락(Mutex Lock)이 있나?  가만히 생각해보면 답은 의외로 쉬운데, 누군가에게 이 개념에 대해 깔끔히 설명하자니 왜 이런 의문을 가지게 됐는지, 왜 정답이 다소 뻔한데도 답을 하기 어려운지 설명하기 쉽지 않았다. 이번 포스팅을 통해 뮤텍스 락과 관련된 개념들의 정의, 그리고 왜 리액트에 뮤텍스 락이 불필요한지 정리해보고자 한다. 동기화와 뮤텍스 뮤텍스를 알기 위해서는 동기화를 먼저 알아야 한다. 동기화(synchronization)란, 여러 스레드나 프로세스가 .. 2024. 12. 15.
[Upstage AI Lab]부트캠프 20~21일차 오늘의 생각20일차를 밀려서 같이 쓰는데, 21일차는 진짜 다 아는 내용이어서 쉬웠다. 밀린 강의가 걱정이지만, 다행히 git 관련된 부분은 듣기만 할 수 있어서 한결 마음이 편해졌다.  오늘의 학습내용네트워크 - 회선교환 네트워크, LAN, WANOSI 모델과 TCP/IP 모델트래픽, 처리율(throughout), 대역폭(bandwidth), 패킷 손실(packet loss)이더넷과 이더넷 프레임허브와 CSMA/CD스위치와 VLANIP와 ARPICMP로 알아보는 IP의 한계IP 주소의 구성과 클래스풀/클래스리스 주소 체계라우터와 라우팅 테이블Git과 GitHub의 차이Git CLI의 기본적인 명령어들 (add, commit, push)Repository 생성과 git clone으로 원격 저장소 연동하.. 2024. 12. 13.
[Upstage AI Lab]부트캠프 18~19일차 오늘의 생각처음에는 아는 내용이 나와서 신났다. 분명 아는 내용인데...뭔가 더 디테일하게 많다. 학교 커리큘럼 과정이 달라서 그런가? 영어로 배워서 그런가? 의문들이 좀 많아졌다. 내용 자체는 매우 흥미로웠는데, 최근 온라인 강의가 좀 밀려 있어서 이 부분이 걱정이다. 오늘의 학습내용CPU 스케줄링 - I/O bound process, CPU bound process스케줄링 큐선점형 스케줄링과 비선점형 스케줄링CPU 스케줄링 알고리즘 (FIFO, SJF, RR 등)프로세스 동기화 - 공유 자원과 임계 구역뮤텍스 (Mutex)와 세마포어 (Semaphore)조건 변수와 모니터교착 상태 (deadlock)와 해결 방법페이징과 페이지 테이블요구 페이징, 스레싱페이지 교체 알고리즘파일과 디렉터리파일시스템 종.. 2024. 12. 11.
[Upstage AI Lab]컴퓨터공학 개론 학습 후기 김용담 강사님의 컴퓨터 공학 개론을 4일에 걸쳐 수강하게 되었다. 말 그대로 "개론"이었기 때문에 컴퓨터와 관련된 기초 지식을 배우기 위해 뛰어들었는데, 보통 한 학기에 걸쳐 들을 내용을 압축해서 배우다보니 그 지식과 양이 실로 방대했다.  강의를 듣기 전에는 이런 생각도 나름 가졌던 것 같다. 간과한 점은 이미 수업을 들은지 5년도 넘었고, 영어러 학습했으며, 교과 과정 자체도 다르다는 것...학습한 내용이 생각보다 더 깊이가 있었다. 오히려 좋아 참여형(?) 이론 수업컴퓨터 공학 관련된 수업들은 대부분 code-along이 많다. 프로그래밍 언어를 기반으로 하기 때문에도 그렇고, 직접 쳐보지 않으면 잘 기억에 남지 않기 때문이다. 나도 실제 수업들을 들을 때는 굳이굳이 필기를 해가며 수업을 듣는 것이.. 2024. 12. 11.
[Upstage AI Lab]부트캠프 17일차 오늘의 생각컴퓨터 구조 자체도 꽤나 복잡했는데, 운영체제가 서서히 그 모습을 드러내고 있다. CPU, 메모리, 보조기억장치 등 기존에 알고 있으면서도 좀 더 디테일한 강의들이 이어졌고, 이를 통해 더 다양한 지식을 알 수 있었는데 운영체제는 그보다 더 크고 자세하게 다뤄질 예정이라 조금 걱정이다. 그럼에도 흥미로운 것이 참...오묘하다오늘의 학습내용메모리 계층에 따른 계층별 접근 속도 및 용량메모리의 종류 (RAM, ROM, Flash Memory)입출력장치 (I/O)I/O 시스템의 구조 (장치 컨트롤러, 장치 드라이버 등)I/O 데이터 전송 방식들 (폴링, 인터럽트, DMA)운영체제의 4가지 구성 요소 (Kernel, Interface, System call, driver)프로그램과 프로세스의 차이프로.. 2024. 12. 9.
[Upstage AI Lab]부트캠프 16일차 오늘의 생각컴퓨터에 대한 지식이 점점 늘고 있다. 대학교 때도 꽤 자세하게 배웠는데, 온라인 강의를 통해 컴퓨터 구조에 대해 다시 배우게 되면서 단순히 프로세서의 개념보다도 더 깊은 개념에 대해 배우게 되었다. 데이터 저장장치라던가, CPU의 구조라던가...모든 구조를 다 파악한 건 아니지만 지식이 늘고 있다. 근데 재밌다...오늘의 학습내용저수준 언어와 고수준 언어명령어 구조유효 주소와 주소 지정 방법이진수와 2의 보수부동 소수점문자 인코딩과 디코딩CPU의 구성 요소 - ALU / 제어 장치 / 레지스터명령어 사이클과 인터럽트멀티 코어와 멀티 프로세서명령어 병렬 처리 (파이프라이닝)비순차적 명령어 처리RAM 과 ROM리틀 엔디안과 빅 엔디안논리 주소와 물리 주소저장 장치 계층 구조와 캐시 메모리캐시 .. 2024. 12. 6.