chaesunbak 님의 블로그
close
프로필 사진

chaesunbak 님의 블로그

github: @chaesunbak

  • 분류 전체보기 (37) N
    • 회고 (13)
    • 트러블슈팅 (5)
    • 위키 (12)
    • 후기 (3)
    • 분석 (4)
  • 블로그 이사합니다
  • 홈
  • 태그
  • GitHub
터미널에서 ls 명령어를 치면 무슨 일이 일어날까?

터미널에서 ls 명령어를 치면 무슨 일이 일어날까?

ls 명령어는 파일 및 디렉터리 목록을 보여주는(list) 기본 리눅스 명령어다.입력출력그렇다면, 터미널에 ls 명령어를 칠 때 내부적으로는 무슨 일어날까? 이번에는 운영체제(OS)의 관점에서 그 여정을 따라가 보며 OS의 핵심 원리들을 정리해보고자 한다.프로그램과 프로세스우리가 터미널에 ls를 입력하기 전, ls는 디스크의 특정 위치(/usr/bin/ls)에 저장되어 있는 프로그램(Program)으로 존재한다. 정확히는 C 언어로 작성되어 컴파일된 바이너리 형식의 파일이다. 프로그램이란 어떤 작업을 위해 실행될 수 있는 파일을 말한다.엔터키를 입력하는 순간, 이 정적인 파일은 메모리에 올라가 실행 엔진이 돌아가는 프로세스(Process)로 변신한다. 프로세스란 실행 중인 프로그램을 의미하며, CPU에 ..

  • format_list_bulleted 분석
  • · 2026. 1. 4.
2025 회고 : The Best Programmer I Know

2025 회고 : The Best Programmer I Know

The Best Programmers I Know오픈소스 관리자이자 Rust 컨설팅 회사 corrode의 설립자 Matthias Endler는 2025년 4월, 자신이 관찰한 최고의 프로그래머들의 특징을 공유하며 프로그래밍 입문자에게 조언을 주는 The Best Programmers I Know>을 블로그에 게시했다. 이후 이 글은 레딧과 해커뉴스같은 개발자 커뮤니티에 공유되며 많은 주목을 받았다.2025년 회고하기나 또한 위 글을 읽고 많이 공감하며 여러 인사이트를 얻을 수 있었다. 사실, 이 글을 처음 읽은 것은 올해 5~6월 쯤이이었는데, 이를 바탕으로 늦은 2024년 회고를 해보면 좋겠다고 생각했다. 하지만, 이런저런 이유로 늦어졌다. 저자는 위 내용이 체크리스트가 아님을 명확히 했지만. 이를 체..

  • format_list_bulleted 회고
  • · 2025. 12. 9.

클로저로 디바운싱과 스로틀링 구현하기

이벤트 그룹화여러 이벤트가 짧은 시간 간격으로 연속해서 발생하는 경우, 이러한 이벤트에 바인딩한 이벤트 핸들러가 과도하게 호출될 경우 성능에 문제를 일으킬 수 있다. 디바운싱(Debouncing)과 스로틀링(Throttling)은 짧은 시간 간격으로 연속해서 발생하는 이벤트를 그룹화해서 과도한 이벤트 핸들러의 호출을 방지하는 프로그래밍 기법이다.디바운싱디바운싱는 짧은 시간 간격으로 이벤트가 연속해서 발생하면 이벤트 핸들러를 호출하지 않다가 일정 시간이 경과한 이후에 이벤트 핸들러가 한 번만 호출되도록 한다. 즉, 디바운싱은 짧은 시간 간격으로 발생하는 이벤트를 그룹화해서 마지막에 한 번만 이벤트 핸들러가 호출되도록 한다. (예: 검색어 자동 완성)스로틀링스로틀링은 짧은 시간 간격으로 이벤트가 연속해서 발..

  • format_list_bulleted 위키
  • · 2025. 10. 19.

클래스로 리액트 상태관리하기? (클래스 컴포넌트 아님)

class로 상태 관리하기?학점은행제 플래너 앱의 핵심 로직은 사용자가 입력한 학점은행제 플랜을 복잡한 규칙에 따라 검증하는 것이었다. 개발 초기 필요한 데이터와, 자료구조, 입출력 타입이 정해지지 않은 상황에서, class로 서비스 로직을 분리하고 클래스 인스턴스로 상태를 관리하는게 어떨까라는 생각이 들었다. 하위 클래스를 조립하는 방식으로 만들어 모듈화할 수 있고 테스트 코드를 작성하기도 용이하다고 생각했다. 물론 클래스 인스턴스를 리액트 상태로 관리하는 것이 까다롭고 권장되지 않는다는 것도 어렴풋이 알고 있었다. 하지만, UI 작업 이전에 서비스 로직을 먼저 구현할 필요성을 느꼈고 class가 좋은 선택지로 보였다.열띤 토론해당 방식으로 개발하며 이러한 방식의 장단점을 느껴볼 수 있었고, 개발완료 ..

  • format_list_bulleted 회고
  • · 2025. 8. 16.
TCP 세그먼트의 최대 크기와 OSI 7 계층

TCP 세그먼트의 최대 크기와 OSI 7 계층

스택오버플로우에서 TCP의 전송 크기 한계에 관한 흥미로운 질답을 발견해서 이를 정리하고 공유해본다.질문TCP 연결에서 ‘패킷’의 최대 크기는 얼마인가요?by informatik01답변 1애플리케이션 계층에서, 애플리케이션은 TCP를 스트림 지향 프로토콜로 사용합니다. 그리고 TCP는 ‘세그먼트(segment)’를 가지고 있으며, 신뢰할 수 없는 IP 패킷을 다루는 세부 사항을 추상화합니다(숨겨줍니다).TCP는 ‘패킷’ 대신 ‘세그먼트’를 다룹니다. 각 TCP 세그먼트는 TCP 헤더 안에 포함된 시퀀스 번호(sequence number)를 가집니다. TCP 세그먼트로 전송되는 실제 데이터의 크기는 가변적입니다.일부 OS에서 지원하는 getsockopt의 TCP_MAXSEG 라는 값을 사용하여 최대 TCP..

  • format_list_bulleted 위키
  • · 2025. 8. 12.
콜백 함수, 익명 함수(람다), 클로저

콜백 함수, 익명 함수(람다), 클로저

콜백 함수(Callback Function)콜백 함수란 인수(argument)로 다른 함수에 전달되는 함수를 말한다. 일종의 루틴이나 동작을 완료하기 위해 외부 함수 내부에서 호출된다.콜백함수의 용도비동기 처리 : 어떤 작업이 완료되었었을 때 후속 처리를 하기 위해 사용된다.const fs = require('node:fs');fs.readFile('/Users/joe/test.txt', 'utf8', (err, data) => { if (err) { console.error(err); return; } console.log(data);});이벤트 핸들러 : 이벤트가 발생했을 때 실행할 함수를 등록할 때 사용된다.// HTML: 클릭하세요const myButton = document.ge..

  • format_list_bulleted 위키
  • · 2025. 7. 28.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • ···
  • 7
  • navigate_next
Copyright © chaesunbak All rights reserved. Powered by Tistory.

티스토리툴바