전체 글 (47) 썸네일형 리스트형 제 5장 컴퓨터 아키텍처 개요 Hack시스템 아키텍처 개요시스템 구성하드웨어는 크게 CPU와 메모리로 구성된다.메모리 구조(하버드 아키텍처)물리적으로는 레지스터의 집합체이나, 논리적으로는 데이터 메모리(RAM) 와 명령어 메모리(ROM) 로 엄격히 분리되어 있다.데이터 메모리(RAM): 물리적으로 범용 RAM, 스크린(Screen), 키보드(Keyboard) 3개의 칩으로 구성된다.설계 의도범용 컴퓨터는 OS가 메모리 자원을 관리하지만, Hack은 학습용 미니멀 시스템이다. 따라서 복잡한 '메모리 보호(Memory Protection)' 로직을 소프트웨어로 구현하는 대신, 물리적으로 칩을 나누어 하드웨어 수준에서 주소 공간 격리를 실현했다.명령어 메모리(ROM)범용 컴퓨터는 저장장치에서 RAM으러 프로그램을 로드(Load)하지만, H.. 251215 ### 오늘 배운 것- nand2tetris 기계어의 조작방법을 배웠다.- @xxx를 실행하면 주소 레지스터에 xxx값이 설정, xxx주소에 해당되는 데이터 메모리 레지스터가 선택되고 M으로 참조할 수 있음, xxx 주소에 해당되는 명령어 메모리 레지스터의 명령어가 선택된다.- aws identity center를 도입하는 데 상당한 시간이 걸린다는 것을 알았다.- 이유에 대해서는 내일 정리할까 한다.- 스토리의 내용을 작성하는데도 상당한 시간이 걸린다는 것을 깨달았다.- 문제에 대한 이해할 시간이 어느정도 필요하다.### 오늘 해결한 문제- 팀원들이 담당해야할 스토리를 정해주었다.### 내일 개선할 점- 오늘 딴짓을 1시간정도 했는데 그 시간에 명상을 하거나 개발을 하자.### 생각- 너무 미래에 대해.. 기계어 - 주소 레지스터, 데이터 레지스터, 데이터 메모리 레지스터, 명령어 레지스터의 사용방법 @xxx를 실행하면 주소 레지스터에 xxx가 입력된다.그와 동시에 xxx 주소에 해당되는 데이터 메모리 레지스터가 선택된다. 명령어에서 M으로 참조된다.그와 동시에 xxx 주소에 해당하는 명령어 메모리 레지스터에 있는 명령어가 선택된다. 제 3장 메모리: program counter구현 // This file is part of www.nand2tetris.org// and the book "The Elements of Computing Systems"// by Nisan and Schocken, MIT Press.// File name: projects/3/a/PC.hdl/** * A 16-bit counter. * if reset(t): out(t+1) = 0 * else if load(t): out(t+1) = in(t) * else if inc(t): out(t+1) = out(t) + 1 * else out(t+1) = out(t) // 저장한다는 뜻 3개 sel bit 중 /.. 251112 오늘 배운 것재귀함수는 base case가 없다면 무한히 실행된다.재귀함수는 호출자 함수 위에 피호출자 함수가 쌓이는 LIFO구조다.CORS가 발생하는 곳은 브라우저이다. 서버에서 request하는 것은 CORS Error가 발생하지 않는다.노트 필기와 디지털 기기에 기록하는 것, 둘다 하는 것이 이롭다.노트 필기는, 암기를 위해서가 아니라 내 언어로 알게 된 것을 정리하거나 그림을 그리고, 이를 디지털 기기에 박제하는 것으로 내 실력을 올릴 수 있다.노트나 디지털 기기를 사용해서 배운것을 정리하는 것은 주가 아니다. 한줄이라도 더 개발하는게 나에게 맞다.정리는 필요하지만, 결과물로 보이도록 한다.기술, 개념을 배울 때에는 제 1원리, 이것이 도대체 무슨 일을 하는건지, 어떤 패턴을 갖고 있는건지 아는게.. 251111 오늘 배운 것nand2teris의 레지스터의 명세를 이해했다.if load(t) then out(t+1) = in(t) , else out(t+1) = out(t)t시점에 load값이 true라면, t+1시점의 out의 값은 t시점의 in의 값이다. t시점의 load값이 0일 경우, t+1시점의 out의 값은 t시점의 out의 값이다.load(t)가 무슨 뜻인지 해깔렸는데 이해가 됬다.fastapi에서 logger.error, warning, info를 사용해서 '명시적'으로 로그를 출력하지 않는다면 액세스 로그만 나온다는 것을 새삼 깨달았다.(access log는 api endpoint + status code형식이다.)오늘 해결한 문제access token을 갱신할 때 race condition이 발.. 251110 오늘 배운 것BigO표기법에서 복잡도는 인풋크기에 따른 시간 혹은 공간의 변화량이라는 것을 알았다.인풋이 변하는 것에 따라 연산량, 메모리소비량이 달라지는 것에 주목하자.O(1)이라는 것은 빠르다는 뜻이 아니라, 인풋 크기에 상관없이 일정한 연산량, 메모리소비량이 걸린다는 것이다.알고리즘은 최선의 경우, 평균의 경우, 최악의 경우 모두 고려할 줄 알아야한다. 그리고 이 셋중에 고른다면 최악의 경우를 골라야한다.google apps script는 종속형 스크립트와 독립형 스크립트가 있다.종속형 스크립트는 spread sheet에 직접 연결되는 것이다.종속형 스크립트는 spread sheet와 M:1관계다.spread sheet별로 google apps script가 존재하기 때문에 유지보수성은 떨어진다.독.. 251108 오늘 배운 것BigO가 무엇인지 배웠다.알고리즘의 계산 복잡도를 묘사하기 위한 표기법이다.시간 복잡도(input size에 따라 알고리즘이 필요로 하는 시간량), 공간 복잡도(input size에 따라 알고리즘이 사용하는 메모리량)오늘 해결한 문제내 github에 leetcode, github의 status를 표시하도록 설정했다.내일 개선할 점포기하지 말고 행동을 계속하자.하루하기로 정한 것은 전력을 다해 하도록 한다. 시간이 부족했다면, 되돌아보고 양을 조절하자.생각하고 싶은 거, 이루고 싶은 거를 하기 위해서는 시간이 많이 필요하다.전략적으로 도전해보자. 안되면 내가 정말 필사적으로 노력했다면 그만큼 쌓인게 있을테니 또 다른 길을 갈 수 있을 거다.스스로 생각하기에 올바른 것을 하자.식습관, 자세, .. 이전 1 2 3 4 ··· 6 다음