전체 글

스레드(Thread)
스레드란 무엇?스레드는 하나의 프로세스 위에서 동시에 동작하는 여러 작업들이라고 보면된다(작업의 단위)멑티 스레드위 그림처럼 두개 이상의 스레드가 있는 것을 멀티 스레드라고 한다저렇게 진행이 중간에 끊기는 이유는 스레드는 프로세스 내에서 자원을 공유하는데스레드가 동시에 진행되게 되면 동일한 자원에 동시에 손을 대서 원하는 동작을 안할수가있다그래서 동시성을 제한해서 구현해야함예) 하나의 버튼을 한 스레드당 10번씩 누를 때 예상 값은 20이 카운트 되길 원했는데, 동시에 눌린 경우가 있어서 카운트가 15인경우 스레드의 자원 공유스레드는 프로세스의 4가지 메모리 영역 중, stack영역 만을 독립적으로 갖고나머지 3개의 메모리 영역은 다른 스레드와 공유하게된다 독립적인 stack을 가지고 있다는 것의 의미s..

프로세스
프로세스란운영체제 위에서 실행되고 있는 프로그램을 의미한다단순히 저장된 프로그램 자체가 아니라,실행되어 메모리와 cpu 자원 등을 활용하고 있는 동적인 실행 단위 이다멀티 프로세스란?하나의 프로그램이 여러개의 프로세스로 이루어져있으면 멀티 프로세스 프로그램이라고 부름예) 크롬을 예로 들면 정확하진 않지만 탭하나당 하나의 프로세스이거나,확장프로그램 하나당 하나의 프로세스이거나 하는 식이다멀티 프로세스 구현 방식단일 코어 cpu단일 코어에서는 병렬적으로 프로세스가 돌아가게는 불가능대신 운영체제가 동시성(Concurrency)을 활용하여여러 프로세스가 교대로 실행되도록 스케줄링합니다.다중 코어 cpu다중 코어에서는 실제로 병렬적으로 동시에 프로세스가 동작하는것이 가능코어가 프로세스를 하나씩 맡아서 처리 가능프..
[네트워크][ip] ip주소 클래스란
Ip의 표현192.168.3.150 라는 ip가 있을 때.으로 구분된 한 덩어리의 숫자를 '옥텟'이라고 부른다하나의 옥텟은 8bit의 2진수를 10진수로 변경한것이다 즉 위의 ip는11000000 . 10101000 . 00000011 . 10010110이런 2진수를 10진수로 바꿔놓은것이다서브넷 마스크일단 ip주소는 공통된 부분과 고유한 나만의 부분으로 나뉘는데 , 공통된 부분 = Network Address고유한 부분 = Host Address 주소를 예로들어 서울시 00동 A아파트 A동 101호 라는 주소가 있을때"서울시 00동 A아파트 A동" 까지가 Network Address로 볼수있고고유하게 식별되는 "101호"가 Host Address로 볼 수 있다 192.168.10.22 라는 ip주소가 ..
[linux] curl 명령어
curl 이란?Client Url의 약자로클라이언트에서 url을 사용해서 서버와 데이터를 송수신하는 명령어 툴이다.리눅스, 윈도우, 맥 등 다양한 os에서 쓰이는 프로그램이고 다양한 프로토콜을 지원한다https://curl.se/지원 프로토콜등 자세한 사항은 여기서 확인 가능하다 터미널에서 사용 방식은 아래와 같다curl [option] [url] homebrew설치를 예로들면curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh위의 명령어중 욥션의 의미는 -f : 오류발생시 출력없이 실패( 조용히 종료시키기 )-s : 진행 내역이나 메세지를 출력하지 않기-S: --show-error : Show error even ..
[typescript] import,export 구문
export에는 named export, default export 두가지 방식이 있다1. default exportexport default const A_Module위와 같이 작성하면되고export했을 때는 해당 파일에서 하나의 항목만을 내보낼 수 있고import시에 원하는 이름으로 import 할 수 있음import myModule from './A_module'이런식으로 ./A_module에서 myModule로 바꾸는 식으로 이름으로 바꿀 수 있음2. named exportexport const A_Module위 방식은 내보내진 이름 그대로 import해야하고import 시에 {} 중활호를 꼭 붙여줘야한다import { A_Module } from './A_Module'
[nodejs]맥북 nodejs 완전 삭제 방법
# first:lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; donesudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*# To recap, the best way (I've found) to completely uninstall node + npm is to do the following:# go to /usr/local/lib and delete any node and node_modulescd /usr/local/libsudo rm -rf node*# go to ..
[node][nvm][turbo][pnpm] 트러블 슈팅
여러가지 문제가 얽혀서 그냥 문제들 쭉 나열함1. 현제 백엔드는 codeDeploy를 사용해서 배포중이다. 깃액션 -> 레포지토리를 zip파일로 만들기 -> zip파일 codeDeploy 통해서 ec2로 배포대략이런 방식이다 깃헙 레포에는 pnpm-lock.yaml 파일이 9.0으로 최신 코드가 반영되어있음배포가 된 ec2에는 계속 이전 버전인 6.x 버전대의 pnpm-lock.yaml 파일이 존재하고 덮어쓰기가 안되는데이건 아직 왜 이런지 모르겠음현재는 그냥 지우고 ec2에서 다시 pnpm install을 통해서 pnpm-lock.yaml파일 생성함2. Cannot find module '/app/node_modules/.pnpm/typescript@5.2.2/node_modules/typescript..
[TIL][트러블 슈팅][rxjs]에러 처리
회사에서 rxjs를 사용하는 부분이 있는데pipe안에 여러개의 concatMap을 사용중이고저 rxjs를 사용하는 함수가 아래 코드처럼 try catch로 감싸져있어서 try{ funcA() //rxjs사용 함수}catch(e){ throw new InternalServer에러(e)}함수에서 에러가나면 throw로 잘 던지고 있는줄 알았는데서버 crash나고 있었음 (pm2로 금방 다시 시작은 됨)확인해보니 rxjs의 pipe내부에서 발생한 에러는try catch에서 잡히지 않음try { const source$ = rxjs.of(1, 2, 3); const mapped$ = source$.pipe( rxjs.operators.map(value => { if (value ===..