[전산기조직] 프로세서(The Processor)
·
개인 공부
4.1 Introduction이 챕터는 프로세스의 구현방법에 대해서 다룬다. 아주 추상화/단순화된 관점에서부터 datapath를 만들고 간단한 버전의 MIPS를 구현하기에 이른다. 또한, 현실 세계에서 x86같은 복잡한 ISA 구현에 필수적인, 병렬적인(pipelined) 구현 방법 또한 다룬다.우리는 일부 정수 인스트럭션이나, 부동 소수점 인스트럭션 등을 제외하고 아래의 3종류로 분류되는, 간단한 MIPS 인스트럭션들만을 구현할 것이다.메모리 참조 인스터럭션: lw(load word), sw(store word)산수연산 인스트럭션: add, sub, AND, OR, slt브랜치 인스트럭션: beq(branch equal), j(jump)큰 그림모든 인스터럭션은 아래의 두 과정을 거친다.Program C..
[데이터베이스 개론] 8. 쿼리 실행(Query Execution)
·
개인 공부
15장과 16장은 쿼리 처리를 다룬다. SQL은 쿼리를 매우 높은 수준에서 표현하기 때문에, 쿼리 프로세서는 쿼리를 단순히 실행만 하기 보다, 어떻게 실행할지 고민하여 실행 효율을 높여야 한다. 15장에서는 쿼리 실행, 16장에서는 쿼리 컴파일에 집중한다.쿼리 컴파일 단계는 세 가지 단계로 나뉜다.파싱(parsing): 쿼리로부터 맥락 트리(parse treee)를 만듦논리적 계획 생성(Logical Plan Generation): 맥락 트리로부터 논리적 계획(보통 대수적 표현)을 생성한다. 실행시간을 최소화 하기 위해, 동등하지만 더 효율적인 계획으로 변경한다.물리적 계획 생성(Phyisical Plan Generation): 논리적 계획을 물리적 계획으로 변경한다.2번과 3번 단계를 흔히 쿼리 옵티마..
[데이터베이스 개론] 7. 인덱스 구조(Index Structures)
·
개인 공부
SELECT * FROM R이라는 쿼리를 실행 하기 위해서 어떻게 해야할까? 저장소의 모든 블럭을 검사해야한다면, 너무 비효율적이다. 일부 블록과 실린더를 따로 R을 위해 예약할 수도 있지만, 여전히 비효율적이다.인덱스는 하나 이상의 필드 값을 받아서, 그 값을 가진 레코드를 빠르게 찾을 수 있게 해주는 자료구조다. 인덱스를 사용하면 전체 레코드 중 일부만 보고, 원하는 레코드를 모두 찾을 수 있다. 인덱스가 기반하는 필드를 검색 키(search key)라고 한다.이 챕터에는 가장 흔한 형태의 인덱스를 다룬다. B-tree 이다. 또 다른 중요한 인덱스 구조인 2차 저장소의 해시 테이블도 다룬다. 마지막으로, 다차원의 데이터를 다루기 위해 디자인 된 인덱스 구조도 다룬다. 이 이덱스 구조들은 여러 값이나..
[데이터베이스 개론] 6. 2차 저장소 관리(Secondary Storage Management)
·
개인 공부
데이터베이스는 항상 디스크 등의 대용량의 데이터를 저장하는 2차 저장소를 갖습니다. 이 챕터에서는 전통적인 컴퓨터가 어떻게 스토리지를 관리하는지 요약합니다. 또, 릴레이션의 튜플들을 어떻게 저장하는지 다룹니다.13.1 메모리 계층(The Memory Hierarchy)컴퓨터 속 메모리 계층을 시작으로 챕터를 시작해봅시다. 메모리를 저장하는 부품들은 7종류로 나뉩니다. 크기와 접근 속도가 모두 다르며, 크기가 작을수록 접근속도는 빠르고, 바이트 당 가격도 올라갑니다.캐시(Cache): 내장 캐시(On-board cache)는 프로세서 그 자체 안에 포함되어 있고, 추가적인 level-2 캐시는 다른 칩에 포함됩니다. 프로세서가 요구하는 데이터는 메인 메모리에서 캐시로 옮겨져서, 몇 나노초 안에 데이터를 프..
[데이터베이스 개론] 5. 데이터베이스의 언어 SQL(The Database Language SQL)
·
개인 공부
SQL은 관계형 데이터베이스에서 널리 쓰이는 쿼리언어이다. SQL은 쿼리의 기능 뿐 아니라 데이터를 수정하는 DML(Data Manipulation Language)의 기능과 스키마를 정의하는 DDL(Data Definition Language)의 기능도 갖는다.SQL도 다양한 버전이 있다. ANSI, SQL-92(SQL2, SQL:1992), SQL-99(SQL3, SQL:1999), SQL:2023 등이다. 이 글에서 다루는 것은 SQL-92이다.6.1 Simple Queries in SQLSELECT, FROM, WHERE을 가지고 기초적인 쿼리를 할 수 있다. 관계대수(relational algebra)로 치자면, SELECT는 사영(projection) 조건, WHERE은 선택(selection..
크롬 익스텐션 개발 아이디어: 드롭다운에서 한국을 찾아주는 KoreaDropdown
·
생각과 기록
긱뉴스에 소개된 크롬 익스텐션, KoreaDropdown 이다.드롭다운 메뉴에서 한국을 찾기 어려운, 많은 사람들이 공감할 만한 경험을 재치 있게 해결해주는 간단하지만 인상적인 익스텐션이다. 특히 인상 깊었던 점 몇 가지를 적어본다.크롬 익스텐션의 랜딩 페이지작은 규모의 익스텐션임에도 별도의 랜딩 페이지를 제공한다는 점이 제품의 완성도를 한층 끌어올린 느낌이었다. 이 익스텐션이 무엇을 하는지 바로 보여주고, 사용자가 체험해볼 수 있도록 한 뒤 "지금 무료로 설치하기" 버튼을 통해 크롬 웹스토어로 자연스럽게 연결되는 플로우가 인상적이었다. 수직 플렉스박스 구조로 구성된 랜딩 화면에는 자주 묻는 질문과 후원 링크까지 포함되어 있다.익스텐션 자체의 재치드롭다운 메뉴에서 한국이 "South Korea", "Ko..
윈도우 PC와 맥북을 듀얼모니터로 함께 사용하던 책상 근황
·
일상이야기
https://junbyeol.tistory.com/4 윈도우 PC와 맥북을 듀얼모니터로 함께 사용하기안녕하세요. 저는 게임을 좋아하는 백엔드 개발자로서, 줄곧 맥북과 윈도우 데스크탑을 함께 사용하고 싶은 욕구가 있었습니다.그리고, 최근에 꽤나 만족스러운 퀄리티로 이 둘을 모두 사용하junbyeol.tistory.com위 글을 작성한지 2년이 지난 지금 제 책상 상태를 공개합니다.2년 사이에 이사를 하여, 컴퓨터 책상 배경이 달라졌고, 깔끔헀던 선정리가 다시 엉망으로 돌아갔습니다. 이것들은 논외로 하고, 다른 변경점들을 소개합니다.모니터암과 모니터 받침대원래는 카멜마운트의 듀얼모니터암 제품을 사용하고 있었는데, 지금은 사용하고 있지 않습니다. 제가 모니터암을 쓰면서 기대했던 효과는 이런 것이었습니다.모니..
TailwindCss로 도막도막 끊기는 스크롤 화면 구현하기: Full Page Scroll과 Scroll snap
·
개발이야기
웹사이트들을 돌아다니다보면, 내린만큼 화면이 스크롤 되는 것이 아니라 특정구간마다 탁탁 걸리면서 정지하는 스크롤을 이용한 사이트들이 많이 보인다. 이 사이트는 스크롤을 내릴때마다 화면 전체의 배경색이 바뀌면서 극적인 효과를 준다. 눈으로 보면 쉽지만, 말로 설명하자면 어려운 이런 스크롤 방식을 "scroll snap"이라고 부른다.Scroll SnapCSS의 scroll-snap-type을 이용해서 구현된다. 스크롤이 멈출 수 있는 지점을 지정하는 것이다. 이 멈춤 지점을 앵커(anchor)라고 부른다. 예를 들어, tailwind 에서는 가로로 이미지를 스크롤하는 예시를 보여준다.비슷한 용어로 "Full Page Scroll"이라는 표현이 있다. 이는 scroll snap을 활용해 구현되며, 페페이지 ..