내가 까먹을까봐 만든 블로그

전체 글

Computer Science/IoT

[시리얼 통신] SPI(Serial Peripheral Interface)통신이란?

주요 개념SPI(Serial Peripheral Interface) 통신시리얼 통신 SPI(Serial Peripheral Interface) 통신이란 직역하면 직렬 주변 기기 인터페이스이다. 2C, CAN, UART와 같은 시리얼 통신(직렬 통신) 방식 중 한 가지로 마이크로컨트롤러, 시프트 레지스터 , SD카드 등의 소형 주변 장치 사이에 데이터를 전송하기 위한 기능이다. 쉽게 말해 SPI 통신은 칩(IC)과 칩 간에 데이터를 주고받기 위한 통신방법 중 한 가지이다. SPI를 이해해두면 추후 ADC 관련 IC분석이나 Phase제어 등의 IC분석을 할 때 좀 더 쉽게 접근할 수 있다고 한다. SPI 통신 방식의 특징은 1 대 다수(1:N)의 통신을 지원하는 동기식 통신 방식이라는 것이다. 다만 다수의..

Computer Science/IoT

[Arduino] 펄스폭 변조(Pulse Width Modulation, PWM)란?

PWM PWM은 Pulse Width Modulation의 약자로 펄스 폭 변조를 뜻한다. 다시 말해 디지털 신호를 아날로그 신호처럼 흉내 내는 것이라고 볼 수 있다. 디지털/아날로그 신호 아날로그 신호와 디지털 신호의 특징은 아래와 같다. 아날로그 - sin과 같이 곡선으로 연속된 형태의 신호 - 다양한 값을 표현 => 연속적 디지털 - 0(Low)과 1(High)만을 이용해 데이터를 표현 - 0과 1 사이의 중간값이 존재하지 않음 => 불연속적 위와 같은 특성으로 인해 디지털 신호를 LED에 연결하면 LED가 On/Off 동작만 하게 되고, 아날로그 신호에 LED를 연결하게 되면 LED가 On/Off도 되지만 LED의 불빛 밝기도 조절이 된다. 하지만 사실상 마이크로 프로세서 등을 사용하는 컴퓨터의 ..

Data Science/Computer Vision

[OpenCV] [Python] 이미지 크기 변환(Image Resize)

서버를 운용하거나 영상 처리를 수행할 때 저장공간 또는 수행 속도를 위해 이미지 크기를 변환하기도 한다. 또는 이미지 데이터를 학습 데이터로 만드는 전처리(Preprocessing) 과정이나 학습된 모델에 정해진 사이즈에 맞추기 위해서도 이미지 크기를 변환할 수 있다. 우리는 평소 이미지 파일을 켜놓고 늘렸다 줄였다 손쉽게 이미지 모서리를 드래그하여 변형을 시킬 수 있었다. 이 과정을 위해 예를 들어본다. 우선 새 옷을 구매하였다고 가정해보자. 만약 새로 산 바지가 좀 작다고 양 끝을 잡고 당겨 제멋대로 늘려버리면 이 바지의 형태가 제대로 잡혀있을까? 그렇지 않을 것이다. 또는 큰 스웨터를 세탁기에 그대로 돌려버리면 옷이 작아질 것이다. 즉, 원본 상태에서 변형이 가해졌고 이로 인해 원형의 모습을 잃게 ..

Languages/Python

[Python] 2D 리스트를 1D로 Flatten하게 변환하기

Python으로 데이터들을 재조합하고 파싱 할 때 차원을 변경해야 하는 일이 종종 생긴다. 2차원 리스트를 1차원으로 변경시키는 방법은 대표적으로 itertools라는 라이브러리를 사용하는 방식, list comprehension, 좀 독특한 방법이지만 sum을 이용한 방법이 있다. Itertoolsitertools를 이용한 방법은 두 가지가 있다. *(Asterisk)을 이용한 방법과 from_iterable 메소드를 사용하는 방법이다.우선 *(Asterisk)을 이용한 방법이다. Asterisk는 조금 생소할 수 있지만 Pythonic한 코드를 작성하도록 도와줄 수 있다. Asterisk의 사용은 아래와 같은 상황에서 사용할 수 있다.곱셈 및 거듭제곱 연산으로 사용리스트형 컨테이너 타입의 데이터를 반..

Computer Science/Software Engineering

[Server] 웹 서비스 메소드(PUT, DELETE 등) 취약점

웹 서비스 메소드는 HTTP METHOD와 같은 말로 이해해도 무방하다. API 서버를 구현하며 Request를 보낼 때 GET과 POST를 이용하는 것이 가장 널리 알려져 있지만 최근 RESTful 형태를 많이 사용하여 PUT, DELETE 등도 생소한 개념은 아닐 것이다. 아래는 기본적인 웹 서비스 메소드의 종류 및 특징이다. 웹 메소드 특징 GET: 요청하는 내용이 URL에 노출되는 형태이며, Request-URI 뒤에 붙는 query string에는 길이 제한이 있다. 요청을 보내고 응답을 받는 형태로 검색 등에 사용된다. HEAD: GET과 유사하지만, Response로 BODY를 반환하지 않고 응답 코드만 있다. 응답 내용 없이 정상 호출 여부를 확인할 때 사용하는 Health-Check 페이..

Computer Science/Software Engineering

[Design Pattern] 싱글톤 패턴(Singleton Pattern)

소프트웨어 엔지니어링에서 의존성 주입(Dependency Injection, DI)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. "의존성"은 예를 들어 서비스로 사용할 수 있는 객체이다. 또한 공유 변수를 이용한 구성이 필요할 때 추후 유지보수와 메모리 효율 등을 위해 상태 관리(State Management)가 필요하다. 이와 관련된 수단으로 Singleton, Provider 등이 있다. 이 중 싱글톤 패턴(Singleton Pattern)을 알아보려 한다. 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴(Singleton Pattern)은 객체의 인스턴스가 오직 1개만 생성하여 사용하는 패턴을 의미한다. 생성자를 여러 번 호출하더라도 실제 생성되는 객체는 하나이며 최초로 생..

AlienCoder
외부 저장소
loading