본문 바로가기

개발

[Udemy 수강후기] React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발 기술블로그로 알아보는 테크니컬 라이팅에 이어 'React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발' 강의를 수강하였다. 회사에서 차트를 개발하는 일을 하며 Canvas를 다룰 일이 많았고, 자연스럽게 Webgl등에 관심을 가지게 되었다. 그러면서 Webgl을 활용해서 웹에서 3D를 구현하는 Three.js라는 기술에도 관심을 가지게 되었는데, 라이브러리만을 학습하기에는 뭔가 체계나 개념이 잡혀있지 않아 막막함이 있었다. 그러던 중, 글또를 통해 해당 강의를 수강할 수 있는 기회를 얻게 되었다.강의 소개해당 강의는 약 10시간 정도로 구성되어 있다. 설치/환경 설정부터 시작해서 웹 3D 렌더링에 필요한 여러 개념들을 체계적으로 설명한다. React와 Three.js, R3F 등..
poetry와 github actions를 활용한 파이썬 라이브러리 배포 자동화 파이썬 개발을 하다 보면 필요한 라이브러리를 pip install 커맨드를 통해 쉽게 다운받아서 활용합니다. pandas, pydantic, fastapi 등 유명한 라이브러리가 많습니다. 이렇게 라이브러리를 설치해 사용하기도 하지만, 때로는 직접 라이브러리를 만들어서 배포하고 싶을 때가 있습니다. 파이썬에서는 어떻게 다른 사람들이 사용할 수 있는 라이브러리를 만들어 배포할까요? 오늘은 실습을 통해 직접 파이썬 라이브러리를 만들고, Github Actions를 이용해 라이브러리의 버전이 변경될 때마다 자동으로 배포하는 시스템을 만들어보겠습니다. poetry 소개 poetry는 의존성 관리 및 패키지 배포를 손쉽게 잘할 수 있도록 도와주는 도구입니다. poetry를 사용하지 않더라도 requirements..
SEO를 위한 sitemapr 라이브러리 소개: 구글에 서비스 페이지를 알려주자. 안녕하세요, 오늘은 제가 최근에 진행한 작은 사이드 프로젝트 'sitemapr'에 대해서 소개해 볼까 합니다. 프로젝트를 시작한 계기 광고비를 쓰지 않고도 (줄이고도) 서비스를 효과적으로 노출시키고 싶었습니다. 여러 가지 방법이 있겠지만, 저는 SEO를 잘하는 것이 무엇보다 중요하다고 생각했습니다. SEO란 '검색엔진 최적화'라는 의미로 검색엔진(e.g. Google)이 웹사이트의 내용을 효과적으로 파악하도록 웹페이지를 구조화하는 작업을 의미합니다. 최적화를 수행하기 위한 다양한 방법이 있지만, 검색엔진에 우리 서비스 페이지를 잘 알리는 것이 우선이라고 생각했습니다. 보통 검색엔진은 각 사이트에서 제공하는 사이트맵을 활용해서 페이지를 색인합니다. 블로그를 운영하고 있다면 보통..
파이썬 asyncio로 생산자/소비자 (Producer/Consumer) 패턴 구현하기 오늘은 파이썬에서 공식적으로 지원하는 비동기 라이브러리인 asyncio로 생산자/소비자 (Producer/Consumber) 패턴을 구현하는 방법에 대해서 다뤄보겠습니다. 해당 포스트에서 사용하는 모든 예시는 파이썬 3.11 버전 이상을 가정하고 있습니다. 비동기 프로그래밍과 생산자/소비자 (Producer/Consumer) 패턴 비동기 프로그래밍이란 비동기 프로그래밍은 모든 코드가 순차적으로 실행되는 동기식 프로그래밍과 달리, 작업에 대기가 발생했을 때 (e.g., 네트워크 요청 후 응답) 해당 작업이 끝나기 전까지 다른 작업을 수행하는 프로그램 방식을 의미합니다. 이를 통해 네트워크 입출력(I/O)와 같이 대기가 발생하는 일을 처리할 때 성능을 높일 수 있다는 장점이 있습니다. 보다 자세한 내용은 이..
Rust 버전의 노마드 코인 nomadcoin-rs 안녕하세요, 오늘은 제가 2년 전에 했던 사이드 프로젝트 'nomadcoin-rs' 경험을 소개해 볼까 합니다. 작업한 지 2년도 더 된 프로젝트이지만 블로그에서 한 번도 다뤄본 적이 없어 다루어 보려고 합니다. 해당 프로젝트는 '노마드 코인: Go로 암호화폐 만들기'라는 노마드 코더의 온라인 강의를 Rust로 클론 코딩하는 프로젝트였습니다. 해당 프로젝트의 메인 언어는 golang이었지만 Rust에 대한 관심이 높았고, 막 공식 문서 공부를 끝낸 참이어서 언어에 좀 더 익숙해지기 위해 Rust로 프로젝트를 진행하기로 결심했습니다. 프로젝트 목표 해당 프로젝트를 진행함에 있어서 저는 크게 두 가지 목표가 있었습니다. 블록체인과 그것을 어떻게 만드는지 기술적으로 이해하기 Rus..
vscode에서 파이썬 개발환경 세팅하기 (가상환경, 개발도구) 안녕하세요, 이번 포스트에서는 vscode로 파이썬 개발을 시작하기 위해 개발 환경을 구성하는 방법에 대해서 다루어보겠습니다. 파이썬 관리 도구 및 가상환경, 패키지 매니저, 그리고 스타일 및 정적검사를 위한 개발 도구까지 소개해 보도록 하겠습니다. 파이썬으로 프로젝트를 구성하시는 분들에게 많은 도움이 되었으면 합니다. vscode 설치하기 우선 당연하게도 vscode를 설치해야 합니다. 아래 링크를 통해 본인의 환경에 맞는 vscode를 설치합니다. https://code.visualstudio.com/download 파이썬 설치 파이썬을 공식 홈페이지를 통해 설치할 수도 있지만, 저희는 pyenv라는 도구를 활용할 계획입니다. pyenv는 파이썬 버전을 쉽게 바꿀 수 있게 도와주는 툴입니다. 프로젝트..
웹 컴포넌트 Svelte로 만들고 배포까지 (feat. 사이드 프로젝트) 12월 사이드 프로젝트로 카카오톡 광고에 영감을 받아 Adsense-Popover라는 프로젝트를 진행했습니다. Adsense Popover는 페이지의 우측 하단(또는 원하는 위치)에 구글 애드 센스 광고가 슬라이드 하며 나타나는 프로젝트입니다. 오늘은 해당 프로젝트를 진행하면서 사용한 기술인 웹 컴포넌트에 대한 소개와, Svelte를 통해 직접 웹 컴포넌트를 만들어 배포하는 과정을 다뤄보겠습니다. 웹 컴포넌트란? 웹 컴포넌트는 브라우저 상에서 커스텀 태그 (Custom Elements)를 만들 수 있게 해주는 기술입니다. 브라우저의 div, span과 같은 표준 태그 외에 본인이 만든 커스텀 태그를 사용할 수 있습니다. 웹 컴포넌트를 왜 사용하나요? 웹 컴포넌트를 사용하면 외부 개발자들에게 쉽게 컴포넌트..
테스트 코드가 어색한가요? 테스트 코드와 친해지기 테스트 코드가 어색하신가요? 개발자라면 누구나 한 번쯤 테스트 코드나 TDD에 대한 이야기를 들어봤을 것입니다. 그리고, 대부분 이 중요성에 대해서 알을 거라고 생각합니다. 하지만 실제로 테스트 코드를 작성하고 팀에 이를 도입하는 것은 쉽지 않습니다. 저 또한 스타트업 개발자로 근무하면서 사내에 테스트 코드를 도입하고자 했으나 많은 어려움에 부딪혔습니다. 어찌저찌 팀에서 테스트 코드를 작성하기 시작했지만, 마음 한 켠에는 답답함이 남아 있었습니다. '테스트 코드를 이렇게 짜는게 맞는건가...?' 이러한 답답함을 극복하기 위해 많은 강의나 콘텐츠들을 스터디하면서 적용해 나갔고, 점점 팀에는 테스트 코드 작성의 노하우가 쌓이기 시작했습니다. 그리고 현재는 테스트 코드 작성이 어색하지 않은 조직..