KBG DevOps

work services about contactkbg / input// key → glyphfunction drawKey(c, k) { c.save(); c.clearRect(0,0,64,32); c.font="12px monospace"; c.textAlign="left"; c.textBaseline="top"; c.fillText(k,8,8); c.restore();}// Canvas text outputfunction drawGlyph(c, k) { c.save(); c.clearRect(0,0,64,32); c.font="12px monospace"; c.textAlign="left"; c.textBaseline="top"; c.fillText(k,8,8); c.restore();}// Canvas text outputfunction drawKey(c, k) { c.save(); c.clearRect(0,0,64,32); c.font="12px monospace"; c.textAlign="left"; c.textBaseline="top"; c.fillText(k,8,8); c.restore();}// Canvas text outputfunction drawGlyph(c, k) { c.save(); c.clearRect(0,0,64,32); c.font="12px monospace"; c.textAlign="left"; c.textBaseline="top"; c.fillText(k,8,8); c.restore();}// Canvas text outputfunction drawGlyph(c, k) { c.save(); c.clearRect(0,0,64,32); c.font="12px monospace"; c.textAlign="left";00000001020312345esctabqwertctrlasdfgshiftzxcvb0001020306789-=yuiop[]hjkl;'returnnm,./spacespace+####::+*#:*:##+#######::##*++#:#:*###:###+#*#+*####+###:+:*#:*##*::*#*###::#:+**#++#:###*###:#:##:#+##:*::****#**####*##:#::#:*++#:##:::##:* ++.++** +**..*...:+**+*#*:*** .# +:.:::+.:#*::::*+ :* :.+. +::+:** +*.**+* ::* .:* * +*.*::+::.+* #*** .+* : :::++++ #* .*.*.. # .++++#+.* :+*+++#*#+ + .#.+..:::.:+*.*:+. : ::++:..+ ..:*:#.+*:# **. .:..:# .::*:#+** * +* :.#.:++ + :..# ++#+:** **.: .*:* .+****## **+ ..++ .+.+ .* : :+*+: :#+ .+..# :..:+...+* *.+*. .+ .:. *. :::+:::+* + ** #: + :..* ++**:+* .+:+ .+ * *:*..* . :+*+ *#*..:+ .* : :+ .:*+*:+. . + :+:* .: .::+* # +*:+:**.. .:::#.#:+* *#** * #:*#:+::#:*:++*#######:*#+#:++**:*#+#:####+##:+########:+*::++*+**:##*###::++:+*##+++##:##*#:*:##+#*##++::***#+#:*#+#+##::+:#:*:*#*##+*:##:+#++:#+** +++ .*.:..+** ##*+*:+ . :...::++ +#+*::#* +*:#*+ .: +::+*.:.+* ****.:.::::# :::*+: +# .::*:++** ..+: :*:* ++#+++* .#:* .. :..++* *#.* :+*+++#*#+ + .* .:+:++.+* *.*. .::+:.:.+*+ .:*:: +*+#:** ++ .:+**.+*+++** .. : : #*.++.+ :+.# +++*:#* #:*..*...:+**++*#:**+ .* ...:** .*:+ :+.* .+* **+. *.+ .+ :* +*::.** +++ :: :*.: :::+.*.+** .:* # .: :..* ++ +:#* +.#* .+:*.**.+..# . :+++ *** +.+ .* : .+++ .:#+*:*. +:+::::+. * ::++:# +*.*:+* :.: ::+:*:+*++ :# . * :###:*::#:*:***##**:##:+#**:+*+*:+###*#####*#:+####+#*#:+#:++*###*:##*###::++:+*##+#:##:#+##:+:##*#+##++*+:***++**#:##*#:#+:*:*#+:+*#*####:+##+**:+* *+.+ ..:*..++++##* *.+ .+ +.:+ .:*+*:+++.:+*.*.+. ** :::....+*::*+* : ::*..::*:*.**.# +* +.+* . +: : ** ++ ++#* .++*..* *..+**+*#** :++* +*#.*#+ .**...+:+..+*#:**..*. ::+*.:.+*...:*:* +* +.** ..::::.#.+*::.** *+ : :*.*:++++ :* *.+++*:+* .#:: . .*.:+:* +*#++#* .:.+..::# . : .:+++ :# *** .: ::+*.* +* #.** +++ :: :* : .:::*:.:+*:+ +# .. + : .*.+++*.+* ##:..+ *..***..:*. :+*++*##+#.+ . : ..+**+ :#.**+. *+.::+*+ . +:.:*:: +*.**:# : ::::+ :.+*.# +# #.+* :#1122334455key : —1122334455key : —canvas.js0102030405060708091011// /workatkbg.comconst key = "KBG";const glyphs = [...key];// I'm a cult of meritocracyscroll / work ↓atkbg.comKBG

프로젝트

work / KBG
work.ts / 선택
work.ts / selected
01const selected = {
02  title: "quvy.kr",
03  description: "실시간 타임라인형 SNS & 메신저",
04  video: "quvy",
05  link: "https://quvy.kr"
06};
quvy.kr01/ 02
const selectedWork = {
title:

quvy.kr

description:

실시간 타임라인형 SNS & 메신저

};
둘러보기 ↗
description / 범위
timeline
  └─ SNS
message
  └─ 메신저

서비스

services / KBG
services / 범위 선택
services / web
const service = { title: "WEB",
  scope: [ "설계", "개발", "배포" ],
  description:
    "설계부터 배포까지"
};
const serviceSummary = {
type:

WEB

description:

설계부터 배포까지

};
서비스 범위

소개

about / KBG
profile.ts
const profile = {
  name: "KBG",
  role: ["개발", "운영"],
  work: ["소규모 앱 및 웹",
         "윈도우 어플리케이션"]
};
const introduction = {
greeting:

KBG입니다.

description:

소규모 앱 및 웹, 윈도우 어플리케이션에 대한 개발 및 운영을 담당하고 있습니다.

};

왜 KBG여야 하는가?

const perspective = {
title:

트렌드와 최신 기술

description:

AI를 비롯한 최신 기술을 이해하고, 프로젝트에 맞게 적용합니다.

};

문의

contact / KBG
inquiry / 필수 입력
type Inquiry = {
  name: string;
  email: string;
  message: string;
  budget?: string;
  timeline?: string;
};

? = 선택 항목

20자 이상 입력해 주세요.

개인정보 처리 안내

draft / 현재 입력

name: ""

reply_to: ""

body: ""

name.length 0email.length 0message.length 0
const contact = {
response:

영업일 기준 3일 내 회신

status:문의 대기중
};

개인정보 처리 안내

privacy / KBG
const collection = {
title:

수집하는 항목

content: [

문의 폼 또는 이메일로 보내 주신 이름, 이메일 주소, 문의 내용입니다. 문의 폼의 예산 범위와 희망 일정은 선택 항목입니다.

],
};

페이지를 찾을 수 없습니다.

missing / KBG
router / 경로 확인
const route = resolve(path);

if (!route) {
  notFound();
}
const errorPage = {
status:404
message:

일치하는 페이지가 없습니다.

};
첫 화면으로 돌아가기 ↗