본문 바로가기
ESP32 시뮬레이터 - WOKWI 소개 오늘은 아두이노와 비슷하면서도 몇 가지 부가 기능을 더 갖춘 ESP32에 대해서 간략하게 설명하고, ESP32 보드를 웹에서 (일부) 무료로 시뮬레이션 해볼 수 있는 사이트를 소개하려고 한다. ESP32란? ESP32는 Espressif Systems에서 개발한 마이크로컨트롤러 보드로, Wi-Fi와 Bluetooth 기능이 내장되어 있어 IoT 프로젝트에 많이 사용된다. 저전력으로 동작하며 가격이 저렴하고, 다양한 센서 및 액추에이터와 쉽게 연동할 수 있어 스마트홈, 환경 모니터링, 원격 제어 시스템 등에 적합하다.개발은 Arduino IDE나 PlatformIO 같은 환경에서 진행할 수 있고, C나 C++를 기반으로 동작한다. ESP32는 아두이노처럼 사용할 수 있지만, 내장 무선통신, 높은 클럭 .. 2025. 6. 24.
[아두이노] 푸시버튼을 적용한 S.O.S 신호 점멸 구현 어제 우리 프로젝트 팀의 첫 오프라인 미팅이 있었다. 플젝 진행 방향에 대한 논의가 끝나고 잠시 남아서 리더님에게 아두이노 푸시버튼 연결을 좀 도와달라고 했다. 지난 글에서 아두이노 내장 LED로 S.O.S 신호 깜빡이기 실습을 했는데, 이 때 사실 원래 목표는 루프로 계속 돌리지 않고, 버튼을 한 번 눌렀다 떼면 S.O.S 신호가 한 차례 점멸하도록 하는 것이었다. 그런데 브래드보드에 푸시버튼과 점퍼와이어를 연결하는 방법을 제대로 몰라서 결국 이렇게 저렇게 시도하다가 포기했었는데, 어제 드디어 프로젝트 미팅에 가서 성공시켰다. (내가 한 건 아니고 리더님이 해주셨지만... ㅎㅎ) 우선 가장 중요한 회로를 다시 복기해 보도록 한다. 지난 포스팅에서 소개했던 팅커캐드를 이용해서 회로를 깔끔하게 정리해 보.. 2025. 6. 23.
그로스로그 북클럽 파이브북스 세 번째 책, 찰스 펫졸드의 "CODE"를 읽고... 파이브북스에서 세 번째로 읽게 된 책은 찰스 펫졸드의 『CODE』(2판)이다. CODE는 컴퓨터 전공자라면 한 번쯤은 들어봤을 유명한 고전이고(참고로 2판은 1판이 나온 지 15년 뒤인 2022년에 출판되었다.), 우리 모임의 구성원 모두가 방송대 컴퓨터과학과 재학생인 점을 생각하면 이 책이 투표로 선정된 것은 어쩌면 당연한 일이었다. 처음에는 교양서 느낌으로 가볍게 읽기 시작했는데, 실제로 책장을 넘길수록 상당히 밀도 있는 책이라는 것을 실감했다. 그만큼 깊이 있는 사고와 많은 집중력을 요하는 책이었다. 저자는 곧바로 '컴퓨터'라는 본론으로 들어가지 않는다. 인간이 정보를 어떻게 표현하고 전달해왔는지에서 출발해 단계적으로 컴퓨터의 본질에 도달해 간다는 점에서, 완전히 새로운 관점에서 컴퓨터에 대해 가.. 2025. 6. 21.
아두이노 내장 LED로 S.O.S 구조 신호 깜빡이게 만들어 보기 3주동안 나의 체력을 무지막지하게 갉아먹었던 기말시험이 드디어 끝났다. 시험이 끝난 기념으로 드디어 한 달 전에 산 아두이노 보드를 꺼내서 실제로 작동을 시켜보기로 했다. 어떤 프로그래밍을 해볼까 하다가, 모스 부호를 이용해서 SOS 신호를 만들어 보기로 했다. "따따따 따-따-따- 따따따" 지금 파이브북스에서 찰스 펫졸드의 를 읽고 있는데, 거기 모스부호에 대한 이야기가 나온다. 모스부호야 말로 1과 0 그 자체, 컴퓨터의 근본이 아니던가? 원래는 아두이노 주문할때 패키지로 딸려온 푸시버튼, 브래드보드, 와이어 등을 사용해서 버튼을 누르면 SOS 신호를 점멸하도록 만들려고 했는데, 무슨 이유에서인지 한 시간을 씨름을 했는데 스위치가 인식이 안 되었다. 방법은 나중에 차차 생각해 보기로 하고, 오늘은 .. 2025. 6. 14.
[DBS] 트랜잭션 - Part3. 타임스탬프 기반 트랜잭션 동기화 규약 🕒 타임스탬프 기반 규약이란?타임스탬프 기반 규약은 데이터베이스 시스템에서 여러 트랜잭션이 동시에 실행될 때 충돌 없이 안전하게 작동하도록 해주는 규칙이다.이 규약은 각 트랜잭션과 데이터 항목에 타임스탬프를 부여하고, 이 타임스탬프를 기준으로 읽기(Read)나 쓰기(Write) 연산의 허용 여부를 판단한다. 타임스탬프 설정 TS(Ti): 트랜잭션 Ti가 시작될 때 부여받는 타임스탬프. 값이 작을수록 먼저 시작된 트랜잭션이다. 각 데이터 항목 A는 다음과 같은 정보를 가진다: R-TS(A): 지금까지 A를 읽은 트랜잭션 중 가장 큰 타임스탬프 (가장 최근에 A를 읽은 트랜잭션의 TS) W-TS(A): 지금까지 A를 쓴 트랜잭션 중 가장 큰 타임스탬프 (가장 최근에 A를 쓴 트랜잭션의 .. 2025. 6. 10.
[운영체제] 가상메모리와 주소 변환 - Part4. 페이징/세그먼테이션 혼용기법 앞의 두 글 Part2, Part3에서 페이징 기법에 대해 살펴보았다. 이번 글에서는 세그먼테이션의 개념과, 페이징과 세그먼테이션을 혼용한 메모리 관리 기법에 대해 다뤄보도록 한다. 세그먼테이션이란? 세그먼테이션은 메모리를 **논리적인 단위(세그먼트)**로 나누는 방식이다.프로그램은 보통 여러 영역으로 구성되는데, 예를 들어 다음과 같은 영역들이 있다.코드 영역데이터 영역스택 영역세그먼테이션은 이 각각을 별도의 세그먼트로 분리하여, 각 영역을 독립적으로 관리할 수 있도록 해준다.이 방식의 장점은 다음과 같다:논리적 구조를 명확하게 표현 가능각 세그먼트의 크기가 가변적이라 필요한 만큼만 메모리 할당 가능메모리 보호, 공유, 동적 확장 등 고급 기능에 유리하지만 단점도 있다. 단편화(fragmentatio.. 2025. 6. 10.
[운영체제] 가상메모리와 주소 변환 - Part3. 연관/직접사상의 동적 주소변환 과정 앞선 글 Part2에서 페이지 사상표를 이용하여 동적 주소변환을 하는 직접사상에 대해 알아보았다. 이번 글에서는 주소변환의 또 다른 방식인 연관사상(associative mapping) , 그리고 연관사상과 직접사상을 같이 사용하는 연관/직접 사상에 대해 알아보도록 한다. 연관/직접 사상 방식의 주소 변환 흐름가상주소는 (p, d) 형태다.p: 가상 페이지 번호d: 해당 페이지 안에서 몇 바이트 떨어져 있는지 나타내는 변위(오프셋)이 주소를 물리주소 (p′, d)로 변환하는 과정은 다음 두 가지 중 하나로 진행된다. ✅ 1단계: 연관사상표에서 먼저 찾기프로세스가 어떤 변수나 데이터(a)를 참조하는 명령어를 실행한다.CPU가 해당 명령을 실행해 가상 주소 (p, d)를 사용해서 메모리 접근을 시도한다.. 2025. 6. 10.
[운영체제] 가상메모리와 주소 변환 - Part2. 페이징 기법과 데이터 참조 과정 페이징이란? 페이징(paging)은 운영체제가 가상 메모리와 물리 메모리를 효율적으로 관리하기 위해 사용하는 대표적인 메모리 관리 기법이다. 핵심 아이디어는 메모리를 고정된 크기의 블록(페이지)으로 나누고, 필요한 페이지만 메모리에 적재해서 사용하는 것이다. 지난 Part1 글에서 가상 메모리와 물리 메모리의 개념에 대해 알아보았다. 페이징 기법에 대해 알아보기 전에 간단히 가상메모리와 가상 주소의 개념을 복습해보자. 가상메모리와 메모리 가상메모리는 프로세스(프로그램)가 사용하는 논리적인 메모리 공간이다.실제로는 물리메모리(RAM)와 디스크(보조기억장치)에 걸쳐 존재한다.가상메모리는 고정된 크기의 블록인 페이지(page) 단위로 나뉜다.메모리도 같은 크기의 블록인 페이지 프레임(page frame)으로 .. 2025. 6. 10.
[DBS] 트랜잭션 - Part 2. 회복 가능한 스케줄과 비연쇄적 스케줄 지난 글에서는 트랜잭션의 의미와 동작 과정에 대해 살펴보았다. 데이터베이스 시스템에서 트랜잭션의 안정성과 성능을 보장하려면 스케줄의 유형을 이해하는 것이 중요하다. 이번 글에서는 회복 가능한 스케줄과 비연쇄적 스케줄에 대해 알아보자. 회복 가능한 스케줄이란?회복 가능한 스케줄은 트랜잭션 간의 데이터 읽기와 커밋 순서를 고려하는 스케줄이다. 트랜잭션 Tj가 트랜잭션 Ti가 작성한 데이터를 읽었다면, 반드시 Ti가 먼저 커밋을 해야 Tj도 커밋할 수 있다. 이렇게 해야 하나의 트랜잭션이 실패하더라도 데이터베이스를 일관된 상태로 되돌릴 수 있다. 예를 들어, T1이 데이터 A를 수정하고 T2가 그 데이터를 읽은 다음 커밋하는 경우, T1이 먼저 커밋한 후에 T2가 커밋해야 회복 가능한 스케줄이 된다. 반대로.. 2025. 6. 9.