ⓒ Lee Sang Beom

데이터베이스를 품은 자바스크립트

데이터베이스라고 하면 SQL 같은 서버 데이터베이스를 떠올릴텐데 그렇지는 않다. 클라이언트에 저장되는 로컬 미니 데이터베이스라 생각하면 된다. 제목에서 상상한 것과 달라 실망스러운가? 설마  localStorage를 데이터베이스라고 부르는 것은 아닐테고. 하지만 실망하기에는 이르다. 당당히 트랜잭션(transaction)을 지원하는 데이터베이스를 품었다.

아직은 편집 단계에 머물러 있는 레퍼런스이지만 관심을 갖기를 바라는 의미에서 IndexedDB를 소개하려고 한다. 인사 정도는 할 수 있는 수준의 편집은 마무리되었다. 알다시피 오늘날 웹은 콘텐츠를 표현하고 정보를 전달하는 매개체로써 역할만 하지 않는다. 다양한 디지털 산출물을 만들어 낼 수 있는 무설치 소프트웨어를 배포하는 수단으로써 이미 증명되고 있다. 데이터베이스의 등장은 자연스러운 수순이 아닐까 생각한다. 쉬운 활용으로 예를 든다면 IndexdDB를 이용해 네트워크가 불가능한 지역인 경우 작업 데이터를 로컬에 저장해 두고 네트워크가 연결되면 서버로 데이터를 보내는 전천후 프로그래밍이 더 쉬워졌다. 혹시 몰랐다면 관심을 가져보도록 하자.

(덧붙임)
표준화가 완료된 IndexedDB API의 출시는 2011년에 크롬(Chrome)과 파이어폭스(Firefox)에서 먼저 지원하면서 시작되었다. 역사를 좀 더 살펴보자면 IndexedDB 이전에 애플(Apple)에서 제안한 Web SQL Database가 논의 대상이었다. 하지만 특정 SQL 기술에 종속되고 표준화가 어렵다는 이유 등을 들어 모질라(Mozilla)와 일부 벤더에서 반대가 있었다. 이후 2009년 오라클(Oracle)이 처음 제안한 지금의 IndexedDB 논의가 시작되었다. 역사를 살펴보면 IndexedDB는 현재 10년을 넘긴 API인 것을 알 수 있다. 다이제스트에서 소개하는 이유는 최신 API가 아니라 관심을 갖기를 바라는 의미이므로 오해가 없도록 하기 바란다.

CSS 선택자 유형

초기에 CSS 선택자를 배우는 일은 그리 어렵지 않았다. 요소의 idclass 애트리뷰트의 값을 사용하여 '#'을 앞에 붙이거나 '.'를 앞에 붙여 선택자를 만들었다. 조상과 자손, 부모와 자식이라는 종속 관계를 이해하는 데 다소 어려움은 있었겠지만 그런대로 익숙해지면 소위 껌이었다. 초기에 선택자 유형이라는 말은 듣지 못했다. 그 정도로 단순했기 때문이었다.

그러나 지금도 그럴까? :is(), :has(), :where()이 등장하면서 CSS는 논리적인 조건을 코드에 담기 시작했다. 이게 끝인가? 앞으로 끝판왕인 if()라는 함수도 정식 데뷔를 앞두고 있다. 자바스크립트의 if() 조건식 이야기를 꺼내면 비명을 지르는 친구들이 입버릇처럼 하던 말이 기억난다. '쌤, 이거 CSS만으로 하면 안돼요?' 이제는 자바스크립트만큼이나 긴장을 해야 할 듯. 그 시작이 CSS 선택자 유형이지 않을까 싶다.

이미지 확장자에 대한 흥미로운 소식

웹에서 사용되는 이미지의 확장자는 대표적으로 gif, jpg, png 등이 있다는 것은 이미 모두 알고 있는 사실이다. 그리고 관심을 가지고 있었다면 최근에 몇 가지 새로운 확장자가 등장을 했다는 것도 알고 있을 것이다. 2010년 구글에서 개발한 WebP와 2021년 JPEG(Join Photographic Exparts Group) 그룹에서 개발한 JPEG XL이라는 포맷이다. 그런데 WepP와 JPEG XL 간의 묘한 기술 주도권 싸움이 있는 모양이다. 그리고 웹브라우저 시장 지배력이 매우 강한 크롬을 보유한 구글(Google)로 곱지 않은 시선이 모아지는 분위기이다. 웹 프론트엔드 기술 작가겸 개발자인 '데글런 치들로(Declan Chidlow)'씨가 블로그에 포스팅한 'JPEG XL과 구글의 전쟁(영어: JPEG XL and Google's War Against It)'을 한 번 읽어 보기를 바란다. 웹의 이미지 포맷에 대한 간단한 역사도 엿볼 수 있다.

AI는 웹의 일부일 뿐 대체가 아니다

얼마전 구글의 제미나이 기사를 읽고 속으로 쾌재를 불렀다. 내심 MS와 오픈AI의 급진적인 AI 서비스 개발 행보에 걱정이 있던 참이었다. 적어도 구글은 지금의 판을 흔들고 싶지 않을 것이다. 우리 같은 웹 분야 종사자들도 역시 지금의 판이 요동치는 것을 원치 않을 것이다. AI 시장에서 그 동안 두각을 드러내지 못했던 구글이 잭팟을 터뜨렸다. 왜 MS는 그것을 지켜만 봤을까? 문득 두 기업의 AI 전략을 이야기해 보고 싶었다.

데브딕 동정

12월, 이제 한달도 못 남은 2025년도입니다. 데브딕 개편 작업으로 쉼없이 달려온 시간이다 보니 1년이라는 시간이 이렇게 빨리 지나갈 수 있나라는 생각을 합니다.

현재 데브딕은 이미 작성된 레퍼런스에 대한 모니터링을 하고 있습니다. 지금 HTML에서 CSS까지 진행중입니다. 작년까지만 해도 교육기관의 입문생들을 대상으로 레퍼런스가 활용되었기에 보조 자료라는 컨셉트가 알게 모르게 작용되었습니다. 그렇다보니 완성도에서 부족한 자료들이 눈에 띄더군요. 일부 오류, 오타, 매끄럽지 못한 문맥적인 흐름도 발견되기도 합니다. 한편으로 오래된 자료를 다시 열어 보면 창피한 필력이 느껴져서 한심스럽기도 하더라구요. 아직 새롭게 등록할 자료가 산더미인데 더 급한 것은 기존 자료의 검토인 것 같습니다. 책임감이라는 게 무겁게 작용을 합니다. 

반가운 소식은 데브딕호의 외로운 항해에 새로운 크루가 등장했습니다. 너무나 큰 힘을 얻고 있습니다. 곧 새로운 콘텐츠로 인사드릴 예정입니다. 앞으로도 데브딕호의 원활한 항해를 위해서 몇 분의 크루를 더 모실 예정입니다.

매년 그렇듯이 올해 12월도 아쉬움, 설레임, 모임이라는 키워드로 설명될테죠. 개발자님은 어떠세요?