인프런42 [C] 입출력장치 레지스터 조작 (인터럽트 서비스 루틴) GPIO(General-Purpose Input/Output): 마이크로컨트롤러나 컴퓨터의 칩에서 주변 장치와 상호 작용하기 위해 사용하는 핀(Pin).🔹 GPIO의 주요 특징범용성(General-Purpose)특정 기능이 정해져 있지 않으며, 프로그래밍을 통해 입력(Input) 또는 출력(Output)으로 설정할 수 있음.입력(Input) 모드버튼, 센서 등에서 신호를 받아들이는 용도로 사용됨.예: 스위치를 눌렀을 때 HIGH(1) 또는 LOW(0) 감지출력(Output) 모드LED, 모터, 부저 등 외부 장치를 제어하는 데 사용됨.예: LED를 켜고 끄거나 모터를 회전시키기디지털 신호 처리GPIO는 0V(LOW) 또는 3.3V/5V(HIGH)와 같은 디지털 신호를 사용함.🔹 GPIO가 사용되는 대.. 2025. 3. 14. [HTML] img, iframe 태그 / 디자인 협업 figma, summernote 개발자를 위한 피그마(Figma) 사용 방법과 활용 팁 | 요즘IT 개발자를 위한 피그마(Figma) 사용 방법과 활용 팁 | 요즘IT개발자는 소프트웨어 개발 프로젝트에서 디자이너와 협업할 일이 많습니다. 피그마(Figma)는 이러한 협업을 원활하게 해주는 툴로서 현재 다양한 UI/UX 디자인에 사용되고 있는데요. 개발자가 피yozm.wishket.com [JAVA, SPRING, SUMMERNOTE] 서머노트 사용법 ① [JAVA, SPRING, SUMMERNOTE] 서머노트 사용법 ①기존에 서머노트 외에 많이 쓰는 CKEditor 같은 경우는 file에 대해서는 부분 유료라는 단점으로 괜찮은 에디터를 찾다가 효율적인 서머노트를 찾았습니다. 서머노트란? 서머노트란 오픈소스 '이지tyrannocoding.. 2025. 3. 3. [Q] Frontend / Backend 컴파일러 언어는 기계 친화적이고 인터프리터 언어는 사용자 친화적이다. 인터프리터 언어로 개발을 하면 상대적으로 속도감있게 개발할 수 있지만, 프로그램 실행 속도가 빠른건 아니다. codesandbox.io/templates https://codesandbox.io/templates codesandbox.io 2025. 3. 3. [OS] 운영체제를 알아야 하는 이유 모든 프로그램은 실행을 위해 자원을 필요로 한다.운영체제는 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램.운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요가 없다. 자원/시스템 자원: 프로그램 실행에 있어 마땅히 필요한 요소* 마땅히 필요한 요소: 컴퓨터의 4가지 핵심 부품 포함! Q) 운영체제를 알아야하는 이유는?: 운영체제는 프로그램을 위한 프로그램이다. 그렇기에 프로그램을 만드는 개발자는 운영체제를 알아야 한다.=> 개발자가 만드는 프로그램은 결과적으로 운영체제한테 도움을 받으면서 실행된다. 만약에 개발자가 만든 프로그램이 어떤 문제가 발생한다면 그 문제는 운영체제가 가장 먼저 알아챈다. 하드웨어와 가장 밀접하게 맞닿아 있는 .. 2025. 2. 21. [컴퓨터구조] 다양한 입출력 방법 세 가지 입출력 방식1) 프로그램 입출력: 프로그램 속 명령어로 입출력장치를 제어하는 방법 = 입출력 명령어로써 장치 컨트롤러와 상호작용함. 메모리에 저장된 정보를 하드 디스크에 백업 = 하드디스크에 새로운 정보 쓰기즉, CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다. Q) CPU가 많은 장치 컨트롤러들 중 원하는 장치 컨트롤러를 하나 찾고 또 그 안에 레지스터들 중에서 주소 정보를 가진 레지스터를 어떻게 알 수 있는걸까? 인식하는 방법(프로그램 입출력 방식): 메모리 맵 입출력 / 고립형 입출력- 메모리 맵 입출력- 고립형 입출력2) 인터럽트 기반 입출력 인터럽트: 이벤트가 발생할 때만 CPU가 작업을 처리하도록 하는 방식 (효율적, 실시간 응답성)폴링: CPU가 주기적으로 장치나 .. 2025. 2. 21. [컴퓨터구조] 장치 컨트롤러 / 장치 드라이버 입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 까다롭다. 1) 입출력장치에는 종류가 너무나도 많다.: 장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하다. 따라서 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다. 2) 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.* 전송률(transfer rate): 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표 장치 컨트롤러의 역할- CPU와 입출력장치 간의 통신 중개 (번역가 역할)- 오류 검출 (장치 컨트롤러와 연결된 입출력 장치에 오류가 있는건 아닌지 확인하는 역할) - 데이터 버퍼링* 버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고 받는 데이터를 '버퍼'라는 임시 저장 공간에.. 2025. 2. 20. [컴퓨터구조] RAID의 정의와 종류 RAID 레벨: RAID를 구성하는 기술 - 스트라입(stripe): 마치 줄무늬처럼 분산되어 저장된 데이터- 스트라이핑(striping): 분산하여 저장하는 것 장점: 백업과 복구가 쉽다. (안전하게 데이터 저장) 2025. 2. 19. [컴퓨터구조] 다양한 보조기억장치(하드 디스크, 플래시 메모리) Hard Drive HDD working in slow motion 플래시 메모리 종류: NAND 플래시 메모리 / NOR 플래시 메모리오늘 정리할 플래시 메모리는 " NAND 플래시 메모리"임. * 플래시 메모리 (USB, SSD, SD카드)와 하드 디스크에는 수명이 있다. 일정 횟수 이상 썼다 지웠다하면 수명이 닳음.ex) 종이에 연필로 썼다 지웠다하면 종이가 나중에는 흐물흐물해지는 현상과 동일. * 같은 플래시 메모리라도 타입에 따라 수명, 가격, 성능이 다르다. - 레거시(legacy): "구식의, 오래된" 기술이나 시스템을 가리키는 말. 사용되지만 시대에 뒤떨어진 것.- 가비지(garbage): "사용되지 않는, 불필요한" 데이터나 자원을 의미, 주로 메모리나 저장 공간 관리에서 중요하게.. 2025. 2. 19. [컴퓨터구조] 캐시 메모리 CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 압도적으로 느리다. - CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.- 속도가 빠른 저장장치는 저장 용량이 작고, 가격이 비싸다. 레지스터 / 캐시 메모리 / 메모리(RAM) / USB or SSD or HDD- CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 용량이 작지만 빠른 SRAM 기반의 저장 장치- CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생 "CPU가 매번 메모리에 왔다갔다 하는 건 시간이 오래 걸리니,메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 쓰자" 메모리 접근 = 물건을 사러 가는 것메모리 = 물건은 많지만 집과는 멀리 떨어져있.. 2025. 2. 19. [컴퓨터구조] 메모리의 주소 공간 Q) CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있을까? : 메모리 몇 번지에 무엇이 저장되어 있는지 알지 못함. Q) 논리 주소와 물리 주소로 주소 공간을 나눈 이유?: CPU가 프로그램의 각각의 주소인 논리주소를 통해서 실제 메모리의 주소인 물리주소와 상호작용하여 메모리 관리함. = CPU가 메모리와 상호작용하기 위해! Q) 논리 주소를 물리 주소로 변환하는 방법?: MMU(메모리 관리 장치)라는 하드웨어에 의해 변환됨. * MMU는 논리 주소와 베이스 레지스터(프로그램의 기준주소) 값을 더하여 논리 주소를 물리 주소로 변환함.CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사함.실행 중인 프로그램의 독립적인 실행.. 2025. 2. 19. 이전 1 2 3 4 5 다음