곽철용 짤 생성기 개발 후기 (Vue + HTML Canvas)
Source
Evernote/Inbox/『곽철용 짤 생성기』, 이렇게 만들어졌습니다 - 재그지그의 개발 블로그.md
Summary
본문은 영화 ‘타짜’의 캐릭터 곽철용을 소재로 한 짤 생성기를 HTML Canvas API와 Vue.js를 사용하여 구현한 개발 과정을 설명합니다. DOM 캡처 라이브러리 대신 Canvas를 직접 조작하여 배경 이미지에 텍스트를 합성하는 방식을 선택했으며, Vue의 라이프사이클(mounted)과 ref를 활용하여 Canvas 컨텍스트를 획득하고 이미지를 렌더링하는 구체적인 코드 예시를 제시합니다.
Key Points
프로젝트 목적: 곽철용 밈 기반 짤 생성기 제작을 통한 HTML Canvas API 학습
기술 스택: Vue.js (상태 관리), HTML5 Canvas API (이미지 합성)
구현 방식: dom-to-image 등 라이브러리 대신 Canvas.getContext(‘2d’)를 사용하여 직접 그리기
데이터 구조: 이미지 경로, 원본 대사, 표시 이름 등을 포함하는 객체 배열 관리
렌더링 로직: Vue mounted 훅에서 Canvas ref 접근 후, Image 객체의 onload 이벤트에서 drawImage 실행
Puppeteer를 활용한 로컬 개발 서버 대체 방안 (web.dev 사례)
HTML5 기반 프리젠테이션 도구 소개
리액트(React) 및 리액트 네이티브 개요 (2015)
재미로 만든 버블채팅 (KTH H3 컨퍼런스)
TRECVID 기반 콘텐츠 기반 비디오 복사 탐지 벤치마킹
jQuery 애플리케이션 아키텍처 도구 (Addy Osmani)
Three.js 시작 가이드 (Aerotwist)
Weavly: Tumblr GIF 및 YouTube 영상 매시업 도구
Play Framework 2.2 기반 Facebook Canvas 게임 개발 일지
WanderWorld Parallax Scroll 랜딩페이지 개발 후기
Popular convention 개발기 참관 후기
하나 타자 연습 개발 후기
React vs Vue 비교 (2019 Edition, React Hooks 기준)
React vs Vue: 동일 앱 구현을 통한 차이점 비교 (번역)
HTML에서 Javascript와 CSS 기반으로 애니메이션을 구현하는 방법
카카오페이지 웹 React 포팅 후기
Angular 2 대신 Vue.js 선택 및 React 배제 이유
Yeoman: 도구를 활용한 더 나은 웹 개발
HTML5 Developer Conference 후기 1
Godot 엔진을 활용한 Spine(SD) 애니메이션 실행 가이드
JBEE.io 블로그 마이그레이션 및 구축 후기 (Gatsby)
FRENDS Meetup 제1회 후기 및 발표 자료
AngularJS 와 RequireJS 를 활용한 대규모 웹 어플리케이션 개발
Gittip-links Chrome Extension 개발 기록
API 산업 초기 단계 및 Daum DNA API Meetup 후기
서티대비 집중학습 후기
FRENDS Meetup 제1회 후기 및 발표 자료
실시간 투표 애플리케이션 구축 (Node.js, Express, AngularJS, MongoDB)
Thinking in React (리액트스럽게 생각하기)
PayPal의 Kraken.js 프레임워크 리뷰 및 평가
React vs AngularJS 비교 (Quora)
2012 만화 서비스 오픈 후기: 인프라 및 기술 스택
Play Framework 개요
Didact: 리액트 원리 학습을 위한 DIY 가이드 시리즈 소개
Angular.js 의 핵심 개념 및 장점 요약
AngularJS 기초편 (번역서) 리뷰
2011년 KTH H3 개발자 컨퍼런스 Git 발표 자료
PayPal 의 Node.js 전환 사례 요약
운영 분투기
페이스북 스파르탄 프로젝트의 비밀병기 Bolt.JS
Popular Convention on Github 프로젝트 회고
한국 웹20주년 국제 콘퍼런스 Node.js 발표 회고
2013년 자바스크립트 프레임워크 인기 동향 (Caliper Blog)
Progressive React
Thymeleaf 사용 후기 및 한계점 분석
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 출간 후기 및 책 소개
다음 캘린더 서비스 개발 비하인드 스토리
Thinking in React: React 컴포넌트 설계 방법론
GNOME Korea 커뮤니티 활성화 및 GNOME Asia Summit 유치 (2012-2013)
Meteor.js 시작하기 및 아키텍처 개요
React Navigation V1 출시 준비 및 프로젝트 관리 방향성 (2017)
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
harp.js: 전처리 기능을 갖춘 정적 웹서버
WebAssembly (WASM) 개요 및 설계 목표
Node.js 세션 관리 (Session Management)
2018 년 회고 및 2019 년 계획 (utilForever)
리팩토링 개요 및 기법 요약
오픈소스 제대로 활동하기 세미나 후기
동방 프로젝트 기반 3D 게임 개발 중간 보고
GitHub의 jQuery 제거 사례
Create React Native App (CRNA) 소개
ECMAScript 6 Generator 개요 및 Node.js 활용
Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
NDC 2019 발표 및 Unity 툴 최적화 업데이트 기록
math.js 원격 코드 실행(RCE) 취약점 발견 및 악용 기법
Web Fundamentals 및 Web Starter Kit 리소스
Velocity 2014: PageSpeed 인사이트 및 QuickBooks Online 클라이언트 사이드 아키텍처
Fluent 2016: Node.js 기반 하이퍼미디어 마이크로서비스 구현 튜토리얼
HTML5 Canvas 실시간 드로잉 성능 최적화 가이드
Node.js 네이티브 애드온의 인자 검증 개선 (NanCheck)
대학생을 위한 웹 개발 공부 체크리스트
Node.js 유지 사용의 이유 (Mimul’s Developer World)
WebSocket과 Node.js를 이용한 동시 영상 동기화 데모
크롬 개발자 도구 101
proxyquire: Node.js require 의존성 오버라이드 라이브러리
VueJS 프로젝트에 Prettier + ES6 Lint 적용
NDC 2012 강연 자료 링크 모음
Node.js 란? (IBM developerWorks)
Web Framework Benchmark Inspired
Nock: Node.js HTTP 모킹 라이브러리
CSS 최신 동향 파악을 위한 Adobe Web Platform 블로그
웹 개발 레시피 (책 소개)
게임 개발팀 A의 정기 회의 매뉴얼
Node.js on Android (2013)
Node.js 의 핵심 관점 (Core Perspective to NodeJS)
Undead Overlord 모바일 RTS 개발 논의 (Experimental Game Dev Podcast)
The “When Can I Use” Web Widget
Assemble: Handlebars 기반 정적 사이트 생성 도구
자바스크립트 아키텍처 v0.4
Facebook Paper 개발 철학 및 도구 (Origami, Tweaks)
Key-based cache expiry: A developer’s primer
JavaScript 학습 자료 (2013)
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
2017 웹 개발 트렌드: PWA, 프레임워크 안정화, GraphQL, AI
리눅스 환경 HLS 스트리밍 참조 링크 모음
The Web Ahead: Jen Simmons 인터뷰 요약
오프라인 웹 애플리케이션 만들기 (Mozilla 웹 기술 블로그)
실시간 웹 협업도구 만들기 (홍영택)
웹 컴포넌트(1): Keep calm and usetheplatform
JavaScript 의 현대적 활용 분야 (2019)
Web Animations API: element.animate() (Chrome 36)
Chromecast 에서 Game Boy 에뮬레이터 실행 방법 (개념 증명)
야구9단 아키텍처 (NHN, 2011)
카카오 블라인드 공채 플랫폼 취약점 분석 (2017)
Prototype용 선택 상자 플러그인
Roll It: 브라우저 기반 크로스 디바이스 게임 구현 사례
io.js 프로젝트의 탄생 배경과 Node.js 포크 과정
Google, Web Components 를 웹 개발의 미래로 제시 (2013)
PC 게임 실행 가능 여부 확인 방법
Hiding Native HTML5 Video Controls in Full-Screen Mode