물리적인 메모리의 주소변환은 운영체제가 관여하지 않지만,virtual memory 기법은 운영체제가 전적으로 관여함실제로 필요할 때 page를 메모리에 올림(요청이 있으면 페이지를 메모리에 올림. 모든 페이지를 메모리에 올리는 것이 아닌) I/O 양 감소Memory 사
Graphql 찍먹을 위해 작고 귀여운 개인 프로젝트를 진행하던 중 service layer에서 prisma orm을 통해 CRUD를 하는 코드의 타입 설정부분에서 다음과 같은 오류 덕분에 하루 정도 헤매었다....(parameter) collectionId: stri
한 대의 스위치를 마치 여러 대의 분리된 스위치처럼 사용하나의 스위치에 여러개의 포트들이 있는데 이 포드들을 파트별로 나눠 마치 여러 대의 분리된 스위치처럼 사용하는 것VLAN에 대해 알아야 할 몇 가지VLAN을 지원한다면, 스위치 이상의 장비이다.VLAN은 한 대의
2021/12/31에 회고록을 작성하려 했지만, 연말이고 각종 이벤트들이 겹쳐 계획대로 하진 못했었다.그래도 한 해를 되돌아 보고 돌아오는 해를 잘 맞이하기 위해 늦게라도 회고록을 작성해보려 한다.코로나 상황이라 그렇게 다이나믹한 이슈들이 많지는 않았다. 그 부분이 아
DB 연결을 위해 orm 세팅 작업을 진행하고, DB 연결에 필요한 설정 값들(DB_URL, DB_PORT 등)을 .env 파일에 추가해주었다.그리고 이제 설정 값들의 정보를 보안을 위해 저장소에 올라가지 않도록 하기 위해 .gitignore에 .env 파일을 무시하도
최근 facebook에서 개발한 GraphQL이라는 API 쿼리 언어를 접하고 한번 공부해보기로 했다. GraphQL에 대해 학습을 하기 전 REST와 다른점은 무엇인지에 대해 궁금해져 그 부분들을 먼저 짚고 시작해보려 한다.자원에 ID를 표기해 구분할 수 있음응답으로
NestJS 프로젝트를 빌드할 때 빌드 시간에 가장 큰 영향을 미치는 것이 바로 TypeScript 컴파일이다. 원래라면 프로젝트에 변경사항을 적용하고 다시 실행시킬때마다 전체적으로 다시 TypeScript 컴파일을 해야한다.조그마한 변경에도 이 일을 똑같이 반복하게
프로젝트를 하던 중 인터페이스로 타입을 선언하는 과정에서 null 타입도 아니고 유니언 타입으로 null을 포함해주지도 않았는데 null 값을 넣었을 때 오류가 나지 않는 것을 보고 의아해 했었다.바로 구글링에 들어갔고, 도움이 되는 정보를 얻을 수 있었다.기본적으로
NestJS로 API를 뽑아내는 작업을 하면서, 직면한 문제이다.a/:id가 a/b를 먹다굉장히 신중하게 Route Handler의 URL을 작업했기 때문에 URL을 바꾸는 방법은 저 뒤로 하고, 왜 params를 포함한 url이 그 뒤에꺼를 먹을까에 대해 계속 분석해
스위치나 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜출발지에서 목적지로 가는 경로가 2개 이상 존재할 떄 1개의 경로만을 남겨두고 나머지는 모두 끊었다가, 사용하던 경로에 문제가 생기면 끊었던 경로를 하나씩 살림두 가지 개념브리지ID: 브리지나 스위치들이 통신 시
Logical Address(Virtual Address)프로세스마다 독립적으로 가지는 주소 공간각 프로세스마다 0번지부터 시작CPU가 보는 주소는 logical addressPhysical Address메모리에 실제 올라가는 위치주소 바인딩주소를 결정하는 것Symbo
위 그림대로 차들이 무조건 진행방향으로만 나아가려고 한다면 진전이 없이 계속 막히게 될 것이다 이러한 상황을 Deadlock이라 한다.Deadlock일련의 프로세스들이 서로가 가진 자원(하드웨어, 소프트웨어 등을 포함하는 개념)을 기다리면 block된 상태ex) 시스템
TCP/IP 프로토콜을 만들 때 이 프로토콜을 사용하는 모든 장비들을 구분하기 위해 만들어진 것허브나 스위치에도 관리르 위해 IP 주소가 부여되지만, 배정하지 않아도 통신에는 지장이 없음 IP 주소는 이진수 32자리로 되어있음.(8자리마다 점을 찍음. 8개를 묶어 옥텟
공유 데이터의 동시 접근은 데이터 불일치 문제를 발생시킴데이터의 일관성을 유지하기 위해 협력 프로세스 간 실행 순서를 정해주는 메커니즘 필요Race Condition여러 프로세스들이 동시에 공유 데이터를 접근하는 상황데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬
보통 랜카드라고 함(LAN에 접속하기 위해 필요한 카드처럼 생긴 것. 카드형으로 되어있기도 하고, 메인보드에 붙어있기도 함)유저의 데이터를 케이블에 실어 허브나 스위치, 라우터 등에 전달하고, 자신에게 온 데이터를 CPU에 전달랜가드의 구분랜카드를 어디에 설치하느냐에
I/O bound job(Interactive Job): CPU burst 시간이 짧은 프로그램의 종류(I/O 작업이 자주 끼어드는 경우. CPU를 짧게 자주 씀. 주로 사람과 Interaction을 많이 함)CPU bound job: CPU burst 시간이 긴 프로
Copy-on-write(COW) 기법: 자식 프로세스가 부모 프로세스를 공유만 하고 있다고, 수정 사항이 생기면 해당 부분만 copy하는 기법(복제 생성이 아닌 방식)부모 프로세스가 자식 프로세스 생성(복제 생성)프로세스의 트리(계층 구조) 형성프로세스가 실행되기 위
TCP/IP는 인터넷을 사용하기 위해 필요한 프로토콜이다.각각 네트워크에 접속되는 호스트들은 고유의 주소를 가져, 자신이 속한 네트워크뿐 아니라 다른 네트워크에 연결되어있는 호스트와도 데이터를 주고받을 수 있음호스트들의 소유 주소는 Internet Network Inf
프로세스는 실행중인 프로그램이다.프로세스의 현재 상태를 나타내는 아래와 같은 것들을 프로세스의 문맥이라 한다. 프로세스들이 번갈아가며 실행되기때문에 프로세스의 문맥에 대한 백업을 필수이다.(시분할, 멀티태스킹 환경 등에서)CPU 수행 상태를 나타내는 하드웨어 문맥Pro
0= 0, 1= 1, 2= 2, 3= 3, 4= 4, 5= 5, 6= 6, 7= 7, 8= 8, 9= 9, 10= a, 11= b, 12= c, 13= d14= e, 15= f십진수 245= 2 10^2+ 4 10^1 + 5 \* 10^0= 24516진수 245=