EN
SuIn, Roh

Hi, I'm SuIn, Roh

Django Backend Developer

๐Ÿ‡ฐ๐Ÿ‡ท ์ˆ˜์›, ๋Œ€ํ•œ๋ฏผ๊ตญ

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋„˜์–ด, ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์•„๊ฐ€ '์šด์˜์„ ์•„๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋” ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค'๋Š” ๋ฏฟ์Œ์œผ๋กœ, ํ™ˆ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ๋ฐฐํฌยท๊ด€์ธกยท์ž๋™ํ™”(DevOps) ๊ธฐ์ˆ ์„ ์ง์ ‘ ์‹คํ—˜ํ•˜๋ฉฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ๋ถ€ํ„ฐ ์šด์˜ ํšจ์œจ์„ฑ์„ ๊ณ ๋ คํ•˜๋Š” ์—ญ๋Ÿ‰์„ ํ‚ค์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ

์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ๋“ค์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์ธ ํ”„๋กœ์ ํŠธ

LIMS โ€” ๊ฒ€์ฒด ๋ถ„์„ ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ
Insilicogen Inc Insilicogen Inc

LIMS โ€” ๊ฒ€์ฒด ๋ถ„์„ ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ

๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋””์ปคํ”Œ๋งยท๊ฒ€์ฒด lifecycle ๋™์‹œ์„ฑ ์•ˆ์ „ยท์žฅ์‹œ๊ฐ„ ์ž‘์—…์˜ ์‹œ๊ฐ„ ๊ฒฝ๊ณ„ ์ •์ฑ…์„ ๋™์‹œ์— ๋งŒ์กฑ์‹œํ‚ค๋„๋ก ์šด์˜ ์ค‘์—๋„ ๋‹จ๊ณ„์ ์œผ๋กœ ์ •๋ ฌํ•ด ์˜จ LIMS ๋ฐฑ์—”๋“œ

PythonDjangoDRFPostgreSQLCeleryRedisNGINXDocker
๋‰ด์Šค๋ ˆํ„ฐ ์„œ๋น„์Šค
Insilicogen Inc Insilicogen Inc

๋‰ด์Šค๋ ˆํ„ฐ ์„œ๋น„์Šค

๋ฐœ์†ก ๋™์‹œ์„ฑยท์šด์˜ ์ค‘ hot ํ…Œ์ด๋ธ”์˜ ์˜จ๋ผ์ธ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝยท์™ธ๋ถ€์— ๋–  ์žˆ๋Š” ์‹๋ณ„์ž์˜ ํ˜ธํ™˜์„ฑ์„ ๋™์‹œ์— ๋งŒ์กฑ์‹œํ‚ค๋„๋ก ์„ค๊ณ„ํ•œ ์‚ฌ๋‚ด ๋‰ด์Šค๋ ˆํ„ฐ ์„œ๋น„์Šค

PythonDjangoCeleryRedisPostgreSQLNGINXDockerNCP
์•„์นด์ด๋น™ ์„œ๋น„์Šค
Insilicogen Inc Insilicogen Inc

์•„์นด์ด๋น™ ์„œ๋น„์Šค

ํ•œ๊ตญ์–ด ๊ฒ€์ƒ‰ ํ’ˆ์งˆยท๊ถŒํ•œ ์ •ํ•ฉ์„ฑยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ํ•œ ๋ฌถ์Œ์˜ ์„ค๊ณ„๋กœ ์žก์€ ์‚ฌ๋‚ด ํ†ตํ•ฉ ์•„์นด์ด๋น™ ์„œ๋น„์Šค

PythonDjangoCeleryElasticsearchPostgreSQLRedisNGINXDockerNCP
๊ทผํƒœ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
Insilicogen Inc Insilicogen Inc

๊ทผํƒœ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

๋ ˆ๊ฑฐ์‹œ ๋ณด์•ˆ ์‹œ์Šคํ…œ๊ณผ์˜ boundary ๋ถ„๋ฆฌ, explicit handler ๊ธฐ๋ฐ˜ ๋„๋ฉ”์ธ ์ž๋™ํ™”, ๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ ์œ„์—์„œ์˜ idempotency๋ฅผ ๊ฒฐ์ • ๊ธฐ์ค€์œผ๋กœ ์žก์€ ์‚ฌ๋‚ด ๊ทผํƒœ๊ด€๋ฆฌ v1

PythonDjangoPostgreSQLMSSQLNGINXDockerNCP

์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ

Homelab โ€” ํ™ˆ์„œ๋ฒ„ + OCI IaC

Homelab โ€” ํ™ˆ์„œ๋ฒ„ + OCI IaC

์ธ๋ฐ”์šด๋“œ ํฌํŠธ 0๊ณผ VPN-only ๊ด€๋ฆฌ, ์ฝ”๋“œ๋กœ ์ •์˜๋œ ์ธํ”„๋ผ๋ฅผ ๋™์‹œ์— ๋งŒ์กฑ์‹œํ‚ค๋„๋ก ์„ค๊ณ„ํ•œ 1์ธ ์ธํ”„๋ผ

TerraformOCIAnsibleWireGuardDockerGitHub ActionsCloudflare TunnelProxmoxpfSense
BrainStream

BrainStream

์ถ”์ฒœ ๋‹ค์–‘์„ฑยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •ํ™•์„ฑยท1์ธ ์šด์˜ ๊ฐ€๋Šฅํ•œ ๋‹จ์ˆœ์„ฑ์„ ๋™์‹œ์— ๋งŒ์กฑ์‹œํ‚ค๋„๋ก ์„ค๊ณ„ํ•œ ๊ฐœ์ธ ์Œ์•… ์ˆ˜์ง‘ยท์ •๊ทœํ™” ํŒŒ์ดํ”„๋ผ์ธ

PythonFastAPISQLiteMutagenDockerDocker ComposeGHCRListenBrainzMusicBrainzNavidrome

์ตœ๊ทผ ๋ธ”๋กœ๊ทธ ๊ธ€

๊ฐœ๋ฐœ, ๋””์ž์ธ, ๊ธฐ์ˆ ์— ๊ด€ํ•œ ์ƒ๊ฐ๊ณผ ์ด์•ผ๊ธฐ.

VPN ๋™์ž‘ ์›๋ฆฌ์˜ ์ดํ•ด [with WireGuard, Tailscale]

VPN ๋™์ž‘ ์›๋ฆฌ์˜ ์ดํ•ด [with WireGuard, Tailscale]

์„œ๋ก  ํ•„์ž์˜ ํ™ˆ์„œ๋ฒ„๋Š” ์ผ๋ถ€ ์„œ๋น„์Šค(ํฌํŠธํด๋ฆฌ์˜ค, ๋ธ”๋กœ๊ทธ)๋ฅผ ์ œ์™ธํ•˜๊ณค ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” VPN์„ ํ™œ์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค. ๊ตฌ์ฒด์ ์ธ ๊ตฌ์„ฑ์€ ์ง€๋‚œ ๊ธ€์— ์ •๋ฆฌํ•ด ๋‘์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ™ˆ์„œ๋ฒ„๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธ€๋“ค์„ ๋ณด๋ฉด ํ•˜๋‚˜๊ฐ™์ด ์„ค์น˜ํ•˜๊ณ  ๋กœ๊ทธ์ธ๋งŒ ํ•˜๋ฉด ๋์ด๋ผ๋ฉฐ Tailscale์„ ๊ถŒํ•œ๋‹ค. ์ •์ž‘ ํ•„์ž์˜ ํ™ˆ์„œ๋ฒ„์—๋Š” ๊ทธ๊ฒŒ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๊ณ , ๊ฒฐ๊ตญ ์†์ด ํ›จ์”ฌ ๋งŽ์ด ๊ฐ€๋Š” ์ˆœ์ˆ˜ WireGuard๋กœ ๋ถ™์—ฌ์•ผ ํ–ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ทธ๊ฐ„ ๋ง‰์—ฐํžˆ ์•Œ๊ณ  ์žˆ๋˜ VPN์˜ ๋™์ž‘ ์›๋ฆฌ๋ถ€ํ„ฐ ์ œ์•ฝ๊นŒ์ง€ ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ณธ๋ก  ๋Œ€ํ™ฉํด๋กœ๋“œ ๋‹˜๊ป˜ VPN์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ๊ฐํžˆ ์—ฌ์ญˆ์–ด๋ณด์•˜๋‹ค. VPN์€ Virtual Private Network(๊ฐ€์ƒ ์‚ฌ์„ค๋ง)์˜ ์•ฝ์ž๋กœ, ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์„ ์•”ํ˜ธํ™”๋œ ํ„ฐ๋„๋กœ ๊ฐ์‹ธ์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์›๋ฆฌ ํ‰์†Œ ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด ๊ธฐ๊ธฐ์—์„œ ๋‚˜๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ†ต์‹ ์‚ฌ(ISP)๋ฅผ ๊ฑฐ์ณ ๋ชฉ์ ์ง€ ์„œ๋ฒ„๋กœ ๊ฐ‘๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ํ†ต์‹ ์‚ฌ๋‚˜ ์ค‘๊ฐ„์— ์žˆ๋Š” ๋ˆ„๊ตฐ

ํ™ˆ์„œ๋ฒ„ IaC ์ „ํ™˜๊ธฐ (2) [with Infisical]

์„œ๋ก  ์ด์ „ ๊ธ€์—์„œ OCI์— Semaphore๋ฅผ ์…‹์—… ํ•œ ๋’ค ์‹ค์ œ ์ธํ”„๋ผ ์ „ํ™˜์„ ์‹œ์ž‘ํ•˜๋ ค ํ•˜์˜€๋‹ค. ์ƒˆ ๋„๊ตฌ์˜ ํ•™์Šต๊ณก์„ ์ด์•ผ ๊ฐ์ˆ˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ด์ง€๋งŒ, ๋ถˆํ˜„๋“ฏ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜์‹ฌ์ด ์ƒ๊ฒผ๋‹ค. IaC๋ฅผ ํ•œ๋‹ต์‹œ๊ณ  ์ •์ž‘ GUI์—์„œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ์žˆ๋Š”๋ฐ, ์ด๊ฒŒ ๋งž๋Š” ๊ฑด๊ฐ€? ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ถˆํ˜„๋“ฏ ์Šค์ณ ์ง€๋‚˜๊ฐ€์ง€ ๋ชปํ•œ ๊ทธ ์˜๋ฌธ์ด ์ผ์œผํ‚จ ๋‚˜๋น„ํšจ๊ณผ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค. ๋ณธ๋ก  OCI + Semaphore ํ๊ธฐ Semaphore๋ฅผ ๋งŒ์ง€๋ฉฐ ๊ฐ€์žฅ ๋จผ์ € ๋А๋‚€ ๊ฒƒ์€ ํ•™์Šต๊ณก์„ ์ด์—ˆ๋‹ค. Project, Repository, Inventory, Environment, Template ๊ฐ™์€ ๊ฐœ๋…์ด ๊ฐ๊ธฐ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ํ•˜๋‚˜์˜ Playbook์„ ๋Œ๋ฆฌ๋ ค๋ฉด GUI๋ฅผ ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ์˜ค๊ฐ€๋ฉฐ ํด๋ฆญํ•ด์•ผ ํ–ˆ๋‹ค. ์ต์ˆ™ํ•ด์ง€๋ฉด ๊ทธ๋Ÿฌ๋ ค๋‹ˆ ํ•  ์ผ์ด์ง€๋งŒ, ๊ตณ์ด ์ต์ˆ™ํ•ด์ง€๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅ์„ ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜๋‹ค. ์—ฌ๊ธฐ์— ๋”ํ•ด ๊ฐ€์žฅ ๊ฒฐ์ •ํƒ€๊ฐ€ ๋œ ๊ฑด ๋„๊ตฌ์˜ ๋ณธ์งˆ์ ์ธ ๋ชจ์ˆœ์„ ์ž๊ฐํ–ˆ์„ ๋•Œ์ด๋‹ค. ์™œ ์„ค๊ณ„ํ•  ๋•Œ ์ž๊ฐํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ง์ ‘ ํ•ด๋ณด๊ณ  ๋‚˜๋‹ˆ ์ž

ํ™ˆ์„œ๋ฒ„ IaC ์ „ํ™˜๊ธฐ (1) [with OCI & Terraform]

ํ™ˆ์„œ๋ฒ„ IaC ์ „ํ™˜๊ธฐ (1) [with OCI & Terraform]

์„œ๋ก  ํ™ˆ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋ฉฐ LXC์™€ VM์ด ์ ์  ๋Š˜์–ด๊ฐ์— ๋”ฐ๋ผ ๊ฐ๊ฐ์˜ ์ƒ์„ธ ์ŠคํŽ™ ๋ฐ ์„ค์ •์„ ๋‹ค ๊ธฐ์–ตํ•˜๊ธฐ์—” ํ•œ๊ณ„๊ฐ€ ์™”๋‹ค. ์–ด๋–ค ์„œ๋น„์Šค๋Š” systemctl ์„ ํ†ตํ•ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ฐ๋ชฌ์œผ๋กœ ๋Œ๊ณ  ์žˆ๊ณ , ์–ด๋–ค ์„œ๋น„์Šค๋Š” Docker ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ๊ณ  ์žˆ๊ณ . ์ด๊ฑธ ๊ณ„์† ์žŠ์–ด๋ฒ„๋ ค ๋งค๋ฒˆ ๋“ค์–ด๊ฐ€์„œ ์ด ๋ช…๋ น์–ด๊ฐ€ ์™œ ์—†์ง€ ๊ณ ๋ฏผํ•˜๊ณค ํ•œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์„œํ™”๋ฅผ ํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ด๋Š” ์ง€์†์ ์œผ๋กœ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ํ”ผ๋กœ๊ฐ์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ณ ์ถฉ์„ ๋ชจ๋‘ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”, Terraform + Ansible ๊ธฐ๋ฐ˜์œผ๋กœ ํ™ˆ์„œ๋ฒ„ ์ธํ”„๋ผ๋ฅผ IaC๋กœ ์ „ํ™˜ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ณด๋‹ค ์ •ํ™•ํžˆ๋Š” ์ธํ”„๋ผ ์ „ํ™˜์„ ์œ„ํ•œ ์‚ฌ์ „ ์ค€๋น„๋ฅผ ํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋ณธ๋ก  Gemini ๊ฐ€๋ผ์‚ฌ๋Œ€, IaC(Infrastructure as Code, ์ฝ”๋“œํ˜• ์ธํ”„๋ผ)์˜ ์ •์˜ IaC๋Š” ๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ์ด๋‚˜ ๋Œ€ํ™”ํ˜• ๊ตฌ์„ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ ์ˆ˜๋™ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ, ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ •์˜ ํŒŒ

Work Experience

  • Insilicogen Inc

    Insilicogen Inc

    Backend Developer



  • Insilicogen Inc

    Insilicogen Inc

    Intern, Backend Developer

    Django/DRF๋ฅผ ํ™œ์šฉํ•ด ์‚ฌ๋‚ด ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๊ด€๋ฆฌ, ๊ทผํƒœ๊ด€๋ฆฌ ๋ฐ SSO ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Redis์™€ PostgreSQL์„ ์—ฐ๊ณ„ํ•œ ์ธ์ฆ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ–ˆ์œผ๋ฉฐ, Elasticsearch์™€ S3 ๋„์ž…์„ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐ Docker Compose ๊ธฐ๋ฐ˜์˜ ๋ฐฐํฌ ํ™˜๊ฒฝ ๊ตฌ์ถ•์œผ๋กœ ์„œ๋น„์Šค ์šด์˜ ํšจ์œจ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

Education

  • Ajou University

    Ajou University

    Bachelor of Software Engineering

    Mar 2019 - Feb 2025

    ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์šด์˜์ฒด์ œ, ๋„คํŠธ์›Œํฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ์ปดํ“จํ„ฐ ๊ณตํ•™(CS) ํ•ต์‹ฌ ์ด๋ก ๊ณผ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๊ณผ์ • ์ด์ˆ˜

Close โœ•