분류 전체보기 203

[책리뷰] 퀀텀의 세계 : 양자물리는 이해하는 것이 아니다.

이번 파이브북스의 독서 주제는 '양자물리학'이다. 미시세계에 별 관심이 없던 나는 '양자'라는 개념이 물리학에서 얼마나 대단한 발견이었는지는 딱히 안중에 없었다. 내가 아는 '양자'는 양자컴퓨터가 다였다. 양자컴퓨터도 주식 때문에 알고 있었을 뿐이다. 작년에 '아이온큐'를 비롯한 양자컴퓨터와 관련된 회사의 주가가 많이 올라서 연일 뉴스 헤드라인을 장식했던 것이 생각난다. 그리고 아이러니하게도 양자컴퓨터와 관련된 뉴스가 나올 때마다 비트코인의 가격이 흔들리는 양상도 포착이 되었다. 물론 이러한 가격의 변동성이 단순히 '양자컴퓨터가 발전하면 비트코인 다 뚫리는거 아니냐'하는 대중적 불안감에서 촉발된 건 아닐 것이다. 사실 나는 자산시장에서 가격이 오르고 내리는 큰 흐름은 결국 매크로 변수가 좌우하며, 결국..

책리뷰 2025.07.22

아두이노에 PWM을 적용해서 LED에 페이드 인 & 페이드 아웃 효과 주기

알다시피 디지털 신호는 켜짐(HIGH)과 꺼짐(LOW) 딱 두 가지 상태만 가진다. 그런데 LED를 서서히 밝히거나 어둡게 하고 싶다면 어떻게 해야 할까? 마치 아날로그 신호처럼 부드러운 밝기 조절이 필요할 때, 바로 PWM(Pulse Width Modulation), 즉 펄스 폭 변조가 그 솔루션이 될 수 있다. PWM은 디지털 신호를 아날로그처럼 활용하는 기술이다.PWM 개념PWM은 일정한 주기를 가진 펄스 신호를 사용한다. 이 주기 안에서 신호가 켜져 있는 시간의 비율을 듀티 사이클(Duty Cycle)이라고 부른다.듀티 사이클이 높으면: 켜져 있는 시간이 길어져 평균 전압이 높아진다.듀티 사이클이 낮으면: 켜져 있는 시간이 짧아져 평균 전압이 낮아진다.이때 펄스가 너무 느리게 켜지고 꺼지면 장치가..

ESP32 시뮬레이터 - WOKWI 소개

오늘은 아두이노와 비슷하면서도 몇 가지 부가 기능을 더 갖춘 ESP32에 대해서 간략하게 설명하고, ESP32 보드를 웹에서 (일부) 무료로 시뮬레이션 해볼 수 있는 사이트를 소개하려고 한다. ESP32란? ESP32는 Espressif Systems에서 개발한 마이크로컨트롤러 보드로, Wi-Fi와 Bluetooth 기능이 내장되어 있어 IoT 프로젝트에 많이 사용된다. 저전력으로 동작하며 가격이 저렴하고, 다양한 센서 및 액추에이터와 쉽게 연동할 수 있어 스마트홈, 환경 모니터링, 원격 제어 시스템 등에 적합하다.개발은 Arduino IDE나 PlatformIO 같은 환경에서 진행할 수 있고, C나 C++를 기반으로 동작한다. ESP32는 아두이노처럼 사용할 수 있지만, 내장 무선통신, 높은 클럭 ..

[아두이노] 푸시버튼을 적용한 S.O.S 신호 점멸 구현

어제 우리 프로젝트 팀의 첫 오프라인 미팅이 있었다. 플젝 진행 방향에 대한 논의가 끝나고 잠시 남아서 리더님에게 아두이노 푸시버튼 연결을 좀 도와달라고 했다. 지난 글에서 아두이노 내장 LED로 S.O.S 신호 깜빡이기 실습을 했는데, 이 때 사실 원래 목표는 루프로 계속 돌리지 않고, 버튼을 한 번 눌렀다 떼면 S.O.S 신호가 한 차례 점멸하도록 하는 것이었다. 그런데 브래드보드에 푸시버튼과 점퍼와이어를 연결하는 방법을 제대로 몰라서 결국 이렇게 저렇게 시도하다가 포기했었는데, 어제 드디어 프로젝트 미팅에 가서 성공시켰다. (내가 한 건 아니고 리더님이 해주셨지만... ㅎㅎ) 우선 가장 중요한 회로를 다시 복기해 보도록 한다. 지난 포스팅에서 소개했던 팅커캐드를 이용해서 회로를 깔끔하게 정리해 보..

[책리뷰] 찰스 펫졸드의 "CODE"를 읽고...

독서모임에서 세 번째로 읽게 된 책은 찰스 펫졸드의 『CODE』(2판)이다. CODE는 컴퓨터 전공자라면 한 번쯤은 들어봤을 유명한 고전이고(참고로 2판은 1판이 나온 지 15년 뒤인 2022년에 출판되었다.), 우리 모임의 구성원 모두가 방송대 컴퓨터과학과 재학생인 점을 생각하면 이 책이 투표로 선정된 것은 어쩌면 당연한 일이었다. 처음에는 교양서 느낌으로 가볍게 읽기 시작했는데, 실제로 책장을 넘길수록 상당히 밀도 있는 책이라는 것을 실감했다. 그만큼 깊이 있는 사고와 많은 집중력을 요하는 책이었다. 저자는 곧바로 '컴퓨터'라는 본론으로 들어가지 않는다. 인간이 정보를 어떻게 표현하고 전달해왔는지에서 출발해 단계적으로 컴퓨터의 본질에 도달해 간다는 점에서, 완전히 새로운 관점에서 컴퓨터에 대해 가르..

책리뷰 2025.06.21

아두이노 내장 LED로 S.O.S 구조 신호 깜빡이게 만들어 보기

3주동안 나의 체력을 무지막지하게 갉아먹었던 기말시험이 드디어 끝났다. 시험이 끝난 기념으로 드디어 한 달 전에 산 아두이노 보드를 꺼내서 실제로 작동을 시켜보기로 했다. 어떤 프로그래밍을 해볼까 하다가, 모스 부호를 이용해서 SOS 신호를 만들어 보기로 했다. "따따따 따-따-따- 따따따" 지금 파이브북스에서 찰스 펫졸드의 를 읽고 있는데, 거기 모스부호에 대한 이야기가 나온다. 모스부호야 말로 1과 0 그 자체, 컴퓨터의 근본이 아니던가? 원래는 아두이노 주문할때 패키지로 딸려온 푸시버튼, 브래드보드, 와이어 등을 사용해서 버튼을 누르면 SOS 신호를 점멸하도록 만들려고 했는데, 무슨 이유에서인지 한 시간을 씨름을 했는데 스위치가 인식이 안 되었다. 방법은 나중에 차차 생각해 보기로 하고, 오늘은 ..

[DBS] 트랜잭션 - Part3. 타임스탬프 기반 트랜잭션 동기화 규약

🕒 타임스탬프 기반 규약이란?타임스탬프 기반 규약은 데이터베이스 시스템에서 여러 트랜잭션이 동시에 실행될 때 충돌 없이 안전하게 작동하도록 해주는 규칙이다.이 규약은 각 트랜잭션과 데이터 항목에 타임스탬프를 부여하고, 이 타임스탬프를 기준으로 읽기(Read)나 쓰기(Write) 연산의 허용 여부를 판단한다. 타임스탬프 설정TS(Ti): 트랜잭션 Ti가 시작될 때 부여받는 타임스탬프. 값이 작을수록 먼저 시작된 트랜잭션이다.각 데이터 항목 A는 다음과 같은 정보를 가진다:R-TS(A): 지금까지 A를 읽은 트랜잭션 중 가장 큰 타임스탬프 (가장 최근에 A를 읽은 트랜잭션의 TS)W-TS(A): 지금까지 A를 쓴 트랜잭션 중 가장 큰 타임스탬프 (가장 최근에 A를 쓴 트랜잭션의 TS)Read(A) 규칙트랜..

[운영체제] 가상메모리와 주소 변환 - Part4. 페이징/세그먼테이션 혼용기법

앞의 두 글 Part2, Part3에서 페이징 기법에 대해 살펴보았다. 이번 글에서는 세그먼테이션의 개념과, 페이징과 세그먼테이션을 혼용한 메모리 관리 기법에 대해 다뤄보도록 한다. 세그먼테이션이란? 세그먼테이션은 메모리를 **논리적인 단위(세그먼트)**로 나누는 방식이다.프로그램은 보통 여러 영역으로 구성되는데, 예를 들어 다음과 같은 영역들이 있다.코드 영역데이터 영역스택 영역세그먼테이션은 이 각각을 별도의 세그먼트로 분리하여, 각 영역을 독립적으로 관리할 수 있도록 해준다.이 방식의 장점은 다음과 같다:논리적 구조를 명확하게 표현 가능각 세그먼트의 크기가 가변적이라 필요한 만큼만 메모리 할당 가능메모리 보호, 공유, 동적 확장 등 고급 기능에 유리하지만 단점도 있다. 단편화(fragmentatio..

[운영체제] 가상메모리와 주소 변환 - Part3. 연관/직접사상의 동적 주소변환 과정

앞선 글 Part2에서 페이지 사상표를 이용하여 동적 주소변환을 하는 직접사상에 대해 알아보았다. 이번 글에서는 주소변환의 또 다른 방식인 연관사상(associative mapping) , 그리고 연관사상과 직접사상을 같이 사용하는 연관/직접 사상에 대해 알아보도록 한다. 연관/직접 사상 방식의 주소 변환 흐름가상주소는 (p, d) 형태다.p: 가상 페이지 번호d: 해당 페이지 안에서 몇 바이트 떨어져 있는지 나타내는 변위(오프셋)이 주소를 물리주소 (p′, d)로 변환하는 과정은 다음 두 가지 중 하나로 진행된다. ✅ 1단계: 연관사상표에서 먼저 찾기프로세스가 어떤 변수나 데이터(a)를 참조하는 명령어를 실행한다.CPU가 해당 명령을 실행해 가상 주소 (p, d)를 사용해서 메모리 접근을 시도한다..

[운영체제] 가상메모리와 주소 변환 - Part2. 페이징 기법과 데이터 참조 과정

페이징이란? 페이징(paging)은 운영체제가 가상 메모리와 물리 메모리를 효율적으로 관리하기 위해 사용하는 대표적인 메모리 관리 기법이다. 핵심 아이디어는 메모리를 고정된 크기의 블록(페이지)으로 나누고, 필요한 페이지만 메모리에 적재해서 사용하는 것이다. 지난 Part1 글에서 가상 메모리와 물리 메모리의 개념에 대해 알아보았다. 페이징 기법에 대해 알아보기 전에 간단히 가상메모리와 가상 주소의 개념을 복습해보자. 가상메모리와 메모리 가상메모리는 프로세스(프로그램)가 사용하는 논리적인 메모리 공간이다.실제로는 물리메모리(RAM)와 디스크(보조기억장치)에 걸쳐 존재한다.가상메모리는 고정된 크기의 블록인 페이지(page) 단위로 나뉜다.메모리도 같은 크기의 블록인 페이지 프레임(page frame)으로 ..