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

전체 글

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을 이용한 방법이 있다. Itertools itertools를 이용한 방법은 두 가지가 있다. *(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개만 생성하여 사용하는 패턴을 의미한다. 생성자를 여러 번 호출하더라도 실제 생성되는 객체는 하나이며 최초로 생..

Computer Science/Software Engineering

[QA 전략] PoC(Proof of Concept)

PoC(Proof of Concept) PoC(Proof of Concept)란 개념 실증이라는 과정인데 새로운 프로젝트가 실제로 실현 가능성이 있는가, 효과와 효용, 기술적인 관점에서부터 검증을 하는 과정을 의미한다. 이는 IT계에서 가장 중시되는 이유는 기업에서 IT 활용이 업무효율화를 위한 '기업 IT'에서 비즈니스의 성장이나 수입 향상에 직접 기여하는 '비지니스 IT'로의 영역 확장이 이루어졌기 때문이라 한다. 하지만 최근 PoC는 IT 한정 용어가 아닌, 의료계에서 신약 유효성 검증이나, 영화계에서 스토리가 CG로 재연 가능한 것을 검증하는 것을 일컫는 용어로도 사용된다. 예를 들어 AI관련 프로젝트가 진행되면 검증된 기술이 아니라 새로운 기술을 사용할 수 있다. 이 때문에 예상한 대로 결과가 ..

AlienCoder
외부 저장소
loading