LCD vs LED vs OLED

옥외 디지털 광고 집행을 위한 필수 구성 요소 디스플레이의 차이에 대해 정리했습니다. 출처는 삼성 디스플레이 뉴스룸. https://news.samsungdisplay.com/ LCD = Liquid Crystal Display LCD에도 여러 타입이 있지만 아래 설명은 기본 타입으로 설명하고 '전압을 가하지 않은 상태에서 빛을 투과시키'는 타입이다. 디스플레이에 출력되는 영상은 " 밝기 "와 " 색 "으로 표현된다. Liquid Crystal, 이하 액정은 액체처럼 유동성을 가지면서 고체처럼 규칙적인 배열을 가진 물질이다. 액정 은 - 빛을 통과시킨다. - 전기 자극을 주면 상태가 변한다. 액정은 " 빛의 투과 정도 "를 조절해서 "액정 표시 장치"라고 불린다. BLU , 이하 백라이트 유닛에서 나가는 빛을 액정의 배열 방식에 따라 통과시키고 그 양을 조절해 디스플레이의 "밝기"와 "색"을 표현한다. LCD는 다음과 같은 계층으로 이루어져있다. ( BLU > 편광판 > TFT > 액정&컬러필터 > 편광판 > 윈도우 ) LCD는 LED와 달리 "스스로 빛을 발하지 않는다." BLU의 백색빛을 이용한다. 백라이트 빛이 편광필름을 통과하면 빛에 방향성 이 부여된다. 액정은 이 방향성이 있는 빛으로 필요한 만큼만 픽셀에 도달할 수 있게  투과되는 빛의 양을 조절한다. 투과된 빛은 컬러필터를 지나면서 색을 표현한다. TFT로 액정을 비트면 빛도 비틀어진다. <TFT> TFT는 박막 트랜지스터 이며 반도체로 이뤄진 전자회로 다. 전류의 흐름을 조절하는 역할을 하며 1.기판 위 전류가 흐를 수 있게 액티브 층 형성 2. 게이트 전압 조절을 통해 source -> drain 으로 전자를 이동시킨다. TFT를 통과한 전류는 LCD의 경우 "액정을 회전시킨다". 즉...

옥외 광고 vs DOOH vs PDOOH

광고 업계 용어 간단 정리. 옥외 광고  옥외 = 건물 밖 광고가 이동하든 고정되어있든 상관없이 건물 밖에 설치하여 많은 사람들에게 노출시키는 광고물. 풍선, 전신주에 붙는 판촉물, 네온 사인 전광판, 미디어 월 등 형태는 다양하다. DOOH = Digital out of home 옥외의 광고이지만 디지털 디스플레이를 활용한 광고가 해당됨. 옥외 광고보다 범위가 좁다. PDOOH = Programmatic Digital out of home 옥외 디지털 디스플레이 광고인데 프로그래밍 로직이 결합된 형태. 단순히 영상을 송출하는 것이 아니라 스케줄링, 추천, 상호작용을 하기도 하고 광고 송출 통계를 기록하기도하고  심지어 광고 등록, 집행까지 할 수 있게 만든 형태. 

Python httpx readtimeout 사례 & 해결법

파이썬의 비동기 http 클라이언트 라이브러리 Httpx에서 발생하는 readtimeout은 HTTPError > TransportError > TimeoutException의 하위 Timeout Exception이다. httpx.TimeoutException은 timeout 에러의 Base class이며 시간 내에 작업이 수행되지 않았을 때 발생한다. Timeout에 해당하는 예외처리 중에 보다 세부적인 케이스로 ConnectTimeout : host에 연결하는 도중 Timeout ReadTimeout      : host로부터 데이터를 받는 도중 Timeout WriteTimeout      : host로 데이터를 보내는 도중 Timeout PoolTimeout       : pool로부터 connection을 얻으려고 대기하는 도중 Timeout 가 있다. Agent를 개발하면서 LLM API를 호출할 때 ReadTimeout을 많이 겪게 된다. host인 LLM API 서버로부터 응답을 기다리다가 발생하는 것인데 host와 client ( https client ) 둘 다 튜닝이 필요하다. host에서는 응답 데이터를 압축한다던가 응답 토큰 수에 제약을 두는 방법을 적용하고 client에서는 https client의 readtimeout 스레시홀드를 늘리는 방법이 유효하다. 다만 client의 readtimeout을 무한정 늘리면 양측에 열린 connection이 계속해서 자원을 점유하기 때문에 LLM API의 응답 데이터를 제한시키는 것이 좋다.  

Python bcrypt를 활용해 비밀번호 hashing 할 때 발생하는 에러.

bcrypt 라이브러리는 패스워드 해싱을 위한 라이브러리다. https://pypi.org/project/bcrypt/ 그런데 프로젝트 설명을 보면 argon2id나 scrypt를 사용하라고 권장하고 있다. 왜 인지는 모른다. 4.3.0 버전에서는 해싱함수가 정상적으로 작동했으나 최신버전은 5.0.0에서는 다음과 같은 ValueError가 발생한다. ValueError: password cannot be longer than 72 bytes, truncate manually if necessary 프로젝트 Changelog를 보면 다음과 같이 나와있다. hashpw에 전달되는 패스워드가 72바이트보다 길면 ValueError를 일으키도록 되어있다. 이전까지는 Error를 Raise하지 않고 라이브러리 내에서 truncate해서 return했다고 한다. (OpenBSD의 bcrypt 구현) Python 3.14 환경을 사용해야하는 제약이 없다면 4.3.0으로 다운그레이드하거나 직접 ValueError를 핸들링해주는 방법이 있겠다. ====================================================== 여담으로 본래 고속 연산 작업을 하기 위해 C로 작성된 소스코드가 컴파일된 .so 형태로 존재했고 CFFI ( C Foreign Function Interface )가 python <-> c간의 인터페이스 변환 역할을 했다. 그러나 현대에 이 라이브러리는 최신버전 4.0.0 이후 보안성과 메모리 안전성을 위해 Rust로 작성하였고 (.rs) src/lib.rs에서 그 흔적을 찾아볼 수 있다. PyO3라는 라이브러리를 통해 Rust와 Python 소스코드를 바인딩하고 Rust 컴파일러인 rustc가 기계어 파일로 컴파일 한다. 본문에서 말한 hashpw 함수는 lib.rs 소스코드의  68 ~ 138에 해당한다. 해당 소스코드에서는 let hashed = py .detach(|| bcrypt::ha...

방송/영상 표준 해상도

모니터 디스플레이 (16:9) HD         1280 x 720         1k=1000 FHD       1920 x 1080       2k QHD      2560 x 1440         3k UHD      3840 x 2160       4k DCI 규격 영화 스크린 Digital Cinema Initiatives 할리우드 스튜디오들이 디지털 영화 상영을 위해 정의한 기술 규격 2048 x 1080     DCI 2K FULL 4096 x 2160      DCI 4K Full . . . . .

Before coding in Spring framework

오래된 Spring framework 코드를 유지보수 할 일이 생겼다. 여타 웹 애플리케이션 프레임워크가 그렇듯, http request-response를 다루니까 크게 코드를 읽는 데 불편하지는 않았다. 그러나 애플리케이션 로직이 java 문법으로 작성된 만큼  java 개발 생태계를 익혀야 할 필요성을 느껴 간략하게 상기하는 차원에서 특별한 순서 없이 작성하였음. =============================================================== JAVA  JAVA'S Editions  java에는 여러가지 에디션이 있는데 1. java SE (J2SE) : 표준 에디션 2. jakarta EE(J2EE , 구 java EE) : 서버 페이지에 특화 3. java ME (J2ME) : 임베디드 환경에 특화 / 경량 등이 있다. 프로그램을 제작할 때, 사용 환경에 따라 적합한 유형의 java를 선택하여 개발할 수 있다. JSP HTML 페이지를 동적으로 생성하기 위한 파일. JSP Template은 Java Servlet 코드로 변환된다. HTML page에 Java 코드가 포함된 꼴을 띄고 있다. 최근엔 JS, JS 프레임워크에 비해 밀리는 추세. 동적 HTML page 생성 vs  AJAX 서버 사이트 스크립트 언어를 사용해서 HTML Page를 동적으로 만드는 것이 줄고 있음. 왜냐하면 현대에는 API를 사용하여 서버 자원에 접근을 하고(DB, File) 화면에 보여주는 UI는 HTML/CSS/JS를 사용한다. 따라서 client <-> server 간 통신이 필요하고 XHR, XML HttpRequest를 사용한다. 이런 프로그래밍 기법을 AJAX라함. .java 소스코드의 컴파일  프로그래머가 작성한 .java 소스 코드는 Javac 컴파일러에 의해 .class코드로 변환되고 windows / linux / mac 환경에 각각 깔린 jvm에 의해 해당 시스템의 기계어...

미술 작품 촬영과 Tiff 확장자 파일

이미지
미술 작품의 디지털화, 아카이빙 사물들은 어떤 조명을 받는 지에 따라서 반사해내는 빛의 다르다. 미술관, 전시관에 가면 작품에 조사하는 조명이 중요한데 조명에 따라 보이는 색이 다르기 때문이다. 조명에 따라 관객이 다르게 받아들일 수 있다. 작품 본연의 색깔이라고하면은 보통 백색광을 조사했을 때 반사되는 빛을 말한다. 미술 작품들을 촬영 후 디지털화 하여 저장할 때 바로 TIFF 확장자 파일이 등장한다. - 촬영 미술 작품을 촬영할 때는  국제 표준 인증을 충족하는 촬영 환경이 전제되어야 높은 색채 정확도와 원본에 가깝게 재현력을 확보할 수 있다. - 저장 디지털화 된 파일은 원본에 가깝게 유지해야하므로 손실 압축 방식인 JPG보다는 PNG가 선호된다. TIFF는 여기서 한 발 더 나아가 채널 당 저장할 수 있는 색상 깊이가 PNG에 비해 더 높다. (PNG: 1채널에 16비트, TIFF : 1채널에 32비트) 보편적인 이미지-뷰어 프로그램들은 대부분 JPG, PNG, GIF 등의 이미지를 지원하지만 전문가용 카메라로부터 추출된 RAW 파일, TIFF 파일등은 전문 사진 편집용 프로그램에서만 열 수 있는 경우가 많다. 디지털화 된 미술 작품의 출력 이제 아카이빙 된 파일을 복합기, 인쇄기를 통해 출력한다고 가정하자. PNG로 저장된 작품을 인쇄할 때와 TIFF로 저장된 작품을 인쇄할 때의 질이 확연히 다르다. 주로 웹 상에서 DID, 모니터 장치에 RGB로 출력되는 JPG의 경우 중복된 영역을 탐지하여 일부 정보 손실을 감안하고 압축하여 저장한다. PNG의 경우 무손실 압축방식이지만 CMYK가 지원되지 않으며 색상 정보가 상대적으로 TIFF보다 적다. TIFF는 RGB, CMYK모두 지원되며 색상정보가 풍부한 무손실 포맷이다.

이 블로그의 인기 게시물

Blogger 커스터마이징 : CSS 수정 (sticky-header)

노마드코더 개발자북클럽 Clean code 완주, 독후감

노마드코더 개발자북클럽 Clean code TIL 7 : 7장. 오류 처리