Life 85

Sign Extension

16진수 1칸(4bit) 표현은 2진수 4칸(4bit)으로 표현 16진수 2칸(8bit)은 1byte 따라서 32bit 프로세서는 2진수 32칸, 16진수 8칸/64bit 프로세서는 2진수 64칸, 16진수 16칸 현재 컴퓨터는 부호 있는 수는 2의 보수로 표현, 부호 없는 수는 1의 보수로 표현 0시작→양수 1시작→음수 int a=-2이고 unsigned int b=1일때 long c=a+b 계산 결과 값은 부호 unsigned 자료형 int인 -1 이는 32bit 16진수로 표현하면 FFFF FFFF 이 결과값이 long 타입 c에 대입되게 되는데 long이 32bit일때는 FFFF FFFF 그대로 64bit일때는 기존의 결과값이 unsigned였기에 zero extension이 일어나게 되고 16진..

OS 2023.04.19

실행중인 프로세스 확인 및 종료 명령어

ps 명령어로 프로세스 확인 ps -ef -e: 모든 프로세스 -f: 모든 정보 netstat 명령어로 프로세스 확인 netstat -tulpn -t: TCP 소켓 표시 -u: UDP 소켓 표시 -l: 연결 대기 상태 소켓 표시 -p: 소켓 사용하는 프로세스 pid 표시 -n: 호스트, 포트 번호등의 이름 확인을 하지 않고 숫자로 표시 kill 명령어로 프로세스 종료 kill -9 -9: 강제 종료 참고 https://doldoldol21.github.io/linux-checkPid-fintPathByPid/ Linux 실행중인 프로그램 PID확인 및 PID로 파일 위치찾기 Linux check PID and find path by PID doldoldol21.github.io

Linux 2023.03.26

JavaScript 쓰로틀링(Throttling), 디바운싱(Debouncing)

회사 프로젝트 진행 중 브라우저 resize, scroll 이벤트에 따라 함수를 호출할 일이 생겼는데 비효율적으로 이벤트가 발생할 때 마다 콜백 함수를 호출하는 것을 발견하였다. 두 이벤트 같은 경우에는 연속해서 일어날 확률이 높은 이벤트들인 만큼 연결된 콜백 함수가 있다면 빈번한 콜백 함수 호출이 일어날 것이고 이는 성능 저하의 원인이 될 수도 있다. 이러한 문제를 해결할 수 있는 방법에 대해서 조사해 보았고 쓰로틀링(Throttling)과 디바운싱(Debouncing)이라는 개념을 알게 되었다. 쓰로틀링(Throttling): 처음 이벤트 실행 후 설정한 시간 동안 발생한 이벤트는 묶어서 한번의 콜백 함수 호출만 이루어지게 하는 개념. resize, scroll 등의 이벤트에 사용하기 적합하다. 디바..

개발 지식 2023.03.25

git origin과 upstream 차이

GitHub fork context에서 이해하는 것이 좋음 upstream: 일반적으로 GitHub에서 forked한 original repository 가리킴 origin: GitHub에서 fork한(사용자가 소유하고있는) repository, original repository의 clone 따라서 origin과 upstream은 다를 수 있다. ex. local에서 작업할 때 origin은 자신이 소유한 GitHub repository로 설정하고 upstream은 GitHub의 다른 repository(original repository)로 설정할 수 있다.

Git 2023.03.24