[CS] 컴퓨터 구조
·
Computer Science/Computer Architecture
CPU컴퓨터 시스템 전체를 제어한다.ALU, CU, 레지스터로 이루어져 있다.ALU(Arithmetic Operation): 산술, 논리 연산장치를 말한다. 사칙 연산을 수행하는 산술 연산과 참과 거짓을 판별하는 논리 연산을 수행한다.CU(Control Unit): 제어장치이다. CPU 내부에서 일어나는 모든 작업을 통제하고 관리하며, 적절한 순서로 명령을 꺼내고 명령을 해석해서 해석에 따라 컴퓨터 시스템의 적절한 부분으로 제어신호를 전달한다. 주 기억장치수행 프로그램과 수행에 필요한 데이터를 기억하고 있는 장치이다.비교적 CPU에 접근 속도가 빠르며 많은 용량을 기억한다. -> 비교적은 보조기억장치보다 빠르다는 의미이다. 아래 그림을 참고하자.RAM이 주로 사용된다. 보조 기억장치외부 기억장치를 의미한..
[Typescript] typescript에서 express의 request를 확장해서 사용하는 방법
·
Programming/Typescript
express + typescript 환경 사용중에 express의 requset에 임의의 객체를 추가해야 하는 상황이 생겼다. request 객체를 확장해서 객체를 추가하고 타입도 추론되게 만들어보자. 환경 typescript: 4.4.3 express: 4.x Request 확장 typescript 환경에서 Express 사용시 Request는 아래와 같은 방식으로 확장할 수 있다. request 객체 안에서 사용될 객체를 아래 문법을 사용해서 app.ts 최상단에 선언한다. declare global { namespace Express { export interface Request { test?: string } } } 이제 Request안에서 test라는 커스텀 객체를 사용할 수 있다. 실제로 ..
[Typescript] Typescript에서 class가 다중상속을 지원하지 않는 이유 (다이아몬드 문제)
·
Programming/Typescript
만약 Typescript에서 class로 다중상속을 하려고 하면 에러가 발생한다. 예시를 통해서 확인해보자 아래와 같은 코드가 있다고 가정한다. class Test1 extends TestProblem { test() {} } class Test2 extends TestProblem { test() {} } // Error class Diamond extends Test1, Test2 {} 이렇게 2개 이상의 클래스를 상속받으려고 하면 에러가 난다. 다이아몬드 문제 왜 Typescript에서는 class의 다중상속을 막아두었을까? 조금 더 자세한 설명을 위해 다른 코드를 예시로 들어보자. class TestProblem { test(logString: string = 'TestProblem') { con..
[MacOS] MacOS에서 네트워크 속도 테스트하는 방법 (Network Link Conditioner)
·
기타
프로젝트 중 네트워크 속도에 따른 속도 저하(추정)가 발생했다. 해당 상황을 재현하기 위해서 임의적으로 MacOS에서 네트워크 속도를 낮추거나 높이는 작업이 필요했다. Network Link Conditioner를 설치하고 사용해보자. Xcode 버전 확인 Network Link Conditioner를 테스트하기 위해서는 먼저 Xcode의 버전을 알아야한다. Xcode의 추가 툴이기 때문이다. 버전 확인은 아래 링크로 대체한다. Xcode 버전 확인 [MacOS] Xcode 버전 확인 (Xcode version check) 이 글에서는 Xcode의 버전을 확인하는 방법에 대해 서술한다. Xcode 버전 확인하기 1. 왼쪽 상단의 애플 로고 -> 이 Mac에 관하여 2. 시스템 리포트 클릭 3. 소프트웨어..
얼은펭귄
'분류 전체보기' 카테고리의 글 목록 (39 Page)