기술과 그 이유
이 카테고리에서는 제가 사용하는 기술과 그 선택의 이유를 설명합니다.
저는 무분별한 라이브러리 사용을 지양하지만, 그렇다고 모든 기능을 바닐라 코드로 구현하려고 하지는 않습니다. 기술은 그 목적을 명확히 이해한 후에 활용하는 것이 중요하다고 생각합니다. 명확한 이유를 가지고 기술을 선택한다면, 새로운 기술을 배우더라도 쉽게 적응할 수 있다고 믿습니다.
Frontend
진행하는 작업에 대해 명확히 분야를 나누지는 않지만, 주로 프론트엔드 개발을 담당하고 있습니다.
아래는 제가 프론트엔드 개발을 진행할 때 사용하는 기술들입니다.
Skills
JavaScript
프론트엔드 개발에 필수적인 언어 자바스크립트입니다. 저는 자바스크립트를 사용하여 프론트엔드 개발을 진행하며, 이를 통해 빠른 개발을 진행할 수 있는 점이 장점이라고 생각합니다.
TypeScript
프로젝트에 안정성이 필요하다고 생각되면 TypeScript를 사용하고 있습니다. 타입 안정성을 통해 더 나은 코드 퀄리티를 유지할 수 있습니다.
React
저는 주로 React를 사용하여 프론트엔드 개발을 진행합니다. 리액트의 개발 철학에 따라 컴포넌트 단위로 개발을 진행하여 재사용성을 높이고 유지보수를 쉽게 하려는 노력을 하고 있습니다.
Next.js
서버 사이드 랜더링이 필요하다고 생각되면 Next.js를 사용하고 있습니다. 저는 Next.js와 Vercel 사의 철학을 좋아합니다. Vercel의 개발자 경험을 위한 노력에 감탄하여 언젠가는 Next.js에 기여를 하는 것을 목표로 가지고 있습니다.
Vite
서버 사이드 랜더링이 필요하지 않은 SPA 개발이 필요하다고 생각되면 Vite를 사용하고 있습니다. 빠른 번들링 속도와 빠른 개발 속도를 자랑하는 Vite는 저에게 많은 도움을 주고 있습니다.
Tailwind CSS
스타일링에는 Tailwind CSS와 shadcn/ui를 사용하고 있습니다. SSR 환경에서의 호환성, 빠른 개발 속도가 장점이라고 생각합니다. 가끔 Naitive CSS가 필요한 상황에서는 CSS Modules를 사용하기도 합니다.
Three.js
제가 상상하는 것들을 웹에서 구현하기 위한 최고의 라이브러리입니다. 주로 Three.js를 React의 컴포넌트 흐름에 통합한 Poimandres 개발자 그룹의 react-three-fiber와 drei를 사용하여 개발하고 있습니다.
Zustand
저는 Poimandres 개발자 그룹의 라이브러리들을 좋아합니다. 그 중 하나인 Zustand를 사용하여 상태 관리를 진행하고 있습니다. Zustand는 가볍고 빠르고 귀엽습니다!
Backend
주로 프론트엔드 개발을 진행하고 있지만 백엔드에서도 간단한 작업을 진행할 수 있습니다.
아래는 제가 백엔드 개발을 진행할 때 사용하는 기술들 입니다.
Skills
Node.js
저는 주로 JavaScript를 사용하여 프론트엔드 개발을 진행하고 있기 때문에 백엔드 관련 작업을 진행할 때도 JavaScript를 사용할 수 있는 Node.js를 선호합니다.
Java
Java로는 간단한 알고리즘을 풀 수 있는 정도입니다.
Spring
Java를 사용하여 백엔드 개발을 진행할 때는 Spring을 사용합니다. 간단한 Rest API를 설계하고 구현할 수 있습니다. 주로 Spring Boot를 사용하여 개발을 진행하고 있습니다.
Rust
Rust를 잘 다루지는 못하지만 관심이 있는 언어입니다. 알고리즘 문제를 풀때 가끔 사용합니다.
Deployment
개발을 끝내고 배포를 시작하는 작업은 언제나 설레는 순간입니다. 저는 제가 개발한 부분은 제가 직접 배포하는 것을 좋아합니다.
아래는 제가 배포를 진행할 때 사용하는 기술들 입니다.
Skills
Github
제가 작성하는 모든 소스코드는 전부 GitHub에 업로드되고 있습니다. 따라서 모든 배포도 GitHub에서 시작됩니다. 항상 Git을 사용하는 더 나은 방법에 대해 고민하고 있습니다.
AWS
전세계적으로 가장 많이 사용하는 클라우드 서비스입니다. 글로벌한 서비스를 제공하고 싶다면 가장 먼저 AWS를 고려합니다.
NCP
네이버 클라우드 관련 교육을 들을 때 사용해보게 되었습니다. 좋은 한글화, 알아보기 쉬운 UI, AWS보다 저렴한 가격으로 사용할 수 있습니다.

docker
Docker는 쉬우면서도 어려운 기술이라고 생각합니다. 하지만 Docker가 없던 VM을 사용하던 시절을 떠올려보면 Docker에게 감사한 마음이 들게 됩니다.
TeamCity
CI/CD 파이프라인을 구성할 때에는 많은 선택지가 있습니다. 제가 TeamCity를 선택한 이유는 다른 CI/CD 툴들에 비해 쉬운 사용법 그리고 개발사가 JetBrains이기 때문입니다. 저는 주로 WebStorm을 사용하고 있기 때문에 익숙한 느낌이 듭니다.

Cloudflare
도메인 관련 서비스를 이용할 때는 Cloudflare를 사용합니다. 이 분야에서 Cloudflare는 최고의 서비스를 제공합니다. 간편한 DDoS 보호 서비스도 제공하지만 아직까지는 DDoS 공격을 당해본 적은 없습니다. Cloudflare가 제공하는 다른 서비스들도 AWS보다 확실히 저렴하기 때문에 관심을 가지고 있습니다.
개발자 경험을 향상시키는 생산성 도구는 여러가지 사용해 보았습니다.
이 부분은 팀에서 사용하는 도구에 맞춰 따라갈 예정입니다.




