Resume

다만, 사랑하고 살아가는 프론트엔드 개발자

profile

I'm Logan Gwak, a frontend developer who listens to customers while planning products that solve customer inconveniences, solves business problems, and shares the knowledge gained during product development with others to think about the reason for the existence of technology.

Work Experience (1년 8개월, 2025.04.26 기준)

Education

NameDetailPeriodNote
Chung-Ang Univ.BCompSc
(MAGNA CUM LAUDE)
Mar. 2017 - Feb. 2022Total GPA: 4.05 / 4.5
Major GPA: 4.04 / 4.5
Honam High SchoolNatural SciencesMar. 2014 - Feb. 2017Grade Average: 1.45
Hwasan Middle SchoolBoarding, AutonomousMar. 2011 - Feb. 2014Graduation Rank: 4th

기술

Language

JavaScript BadgeTypeScript BadgeCSS3 BadgePython BadgeSQL Badge

Frontend

Next.js BadgeReact Badgetailwind BadgeZustand BadgePlaywright BadgePWA BadgeReact Badge

Backend

Node.js BadgeWebSocket BadgeDrizzle BadgeDocker BadgePostgreSQL BadgeRedis Badgeelasticsearch Badge

Cloud

Vercel BadgeSupabase BadgeGCP BadgeAWS Badge

Operation Tool

GrowthBook BadgeJest BadgeSentryArgo BadgeGA BadgeAmplitude Badge

AI

Stable Diffusion BadgeLoRA BadgeRunPod Badge

자격증

이름내용주관일시
TOPCIT 제15회627점 (전국 4등)과학기술정보통신부2021.05.22
G-TELP (Level 2)82점국제테스트 연구원2020.05.03
대한검정회준1급대한민국한자교육연구회2009.11.28

개발 경험 (급여 O, 4대보험 X)

개발 활동 (급여 X)

수상

소개

직접 만든 기프트링크 동아리의 소프트웨어 개발자로 시작해, (주)페스타 인턴, 신디(Sindy) 창업팀, 토스뱅크(주) 계약직, 리디(주) 정규직 등에서 다양한 프로젝트를 수행하며 서비스가 세상에 나오기 위한 전체 개발 주기를 경험했습니다. 이 과정에서 서비스의 성공은 동료와의 협업과 서로의 성장에 기반한다는 사실을 느꼈습니다.

문제 해결 경험 약 950자

제가 난관에 부딪혔을 때 해결했던 사례로 토스뱅크에서의 경험을 말씀드릴 수 있습니다. 토스뱅크에서 Admin Developer로 근무하며 여신 심사·관리·운영 시스템의 화면 설계와 개발을 담당하던 중, 금융 분야에 특화된 지식과 여신 도메인에 대한 이해 부족이라는 문제에 직면했습니다. 단순한 개발 지식만으로는 장님이 코끼리 다리 만지는 방식과 비슷하여, 금융 도메인 지식을 알지 못하면 복잡한 금융 시스템을 효율적으로 구축할 수 없다는 것을 깨달았습니다.

이 문제를 해결하기 위해 먼저 금융 관련 규제와 법률을 조사했습니다. 개인정보보호법과 은행법의 관련 조항을 검토하여 시스템이 준수해야 할 요건과 제한 사항을 파악했습니다. 특히 어떤 정보가 필수적으로 마스킹되어야 하는지 확인하기 위해 금융 업계 출신의 팀원들과 협업하여 실무적인 지식을 습득했습니다. 이 과정에서 주민등록번호와 핸드폰 번호 등 그 자체만으로 고객을 특정할 수 있는 민감한 정보는 암호화하여 저장하고, 화면에 표시될 때는 마스킹되어 보여지도록 구현했습니다.

또한 전월세보증금의 자금 흐름을 명확히 파악하기 위해 대출 프로세스에서 각 주체--임대인, 임차인, 보증 기관, 금융 기관--간의 역할과 거래 구조를 분석했습니다. 이를 통해 자금이 어떤 경로로 이동하며, 어떤 주체가 대출금을 어떻게 보증하고, 각 단계에서 필요한 법적 요건과 컴플라이언스 사항이 무엇인지 이해했습니다. 그 후 전월세보증금 대출의 승인 과정에서 필요한 문서와 정보를 효율적으로 처리할 수 있도록 루모스(내부 여신 시스템) 워크플로우를 개선하고, 관련 법률에 따른 보고 및 감사 요구사항을 충족하도록 데이터 관리 방안을 수립하여, 시스템 설계와 개발 과정에서 서비스의 보안성과 규제 준수성을 높였습니다.

이러한 경험을 통해 난관에 부딪혔을 때 문제의 근본 원인을 분석하고, 필요한 지식을 습득하며, 팀원들과의 협업을 통해 해결책을 모색하는 것이 중요하다는 것을 배웠습니다.

직무 성취 경험 약 900자

제가 가장 큰 성취감을 느낄 때는 제가 참여한 프로젝트가 회사와 사용자 모두에게 실질적인 가치를 제공하고, 그 결과가 명확한 지표로 나타날 때입니다. 저는 사용자와 비즈니스에 긍정적인 영향을 미치는 결과를 만들어낼 때, 그리고 어려운 문제를 해결하여 팀의 목표 달성에 기여할 때 가장 큰 성취감을 느낍니다.

예를 들어, 리디에서 만화 e북 웹 뷰어를 출시한 경험이 있습니다. 이 프로젝트에서는 사용자가 웹에서 직접 만화를 감상할 수 있도록 기존 뷰어를 개선했습니다. 출시 후 만화 e북 판매 매출이 전월 대비 3.61% 증가했고, 만화 e북 신규 고객의 웹 뷰어 사용률이 5%로 상승했습니다. 구체적으로 모바일과 PC 웹 뷰어의 전환율은 각각 8.5%p와 99%p 증가했으며, 뷰어 이탈률은 5%p와 99%p 감소했습니다. 또한 뷰어 오픈 시간도 각각 91%와 99% 단축되었습니다. 이러한 성과를 통해 제가 기여한 기술적 개선이 사용자 경험과 비즈니스 성과에 직접적인 영향을 미쳤음을 확인할 수 있었고, 이는 큰 보람으로 다가왔습니다.

또한, 난관을 극복하고 새로운 지식을 습득하여 문제를 해결했을 때 성취감을 느낍니다. 토스뱅크에서 여신 심사·관리·운영 시스템을 개발할 당시, 금융 분야의 전문 지식이 부족하여 어려움이 있었습니다. 이를 해결하기 위해 금융 관련 규제와 법률을 적극적으로 학습하고, 금융 업계 출신 팀원들과 협업하여 도메인 지식을 습득했습니다. 전월세보증금 대출 프로세스에서 자금의 흐름과 각 주체의 역할을 명확히 이해한 후, 시스템에 이를 정확하게 반영했습니다. 그 결과, 전월세보증금대출 관련 프로세스를 자동화하고 시스템 효율성을 높여 개인 담보대출 부문에서 약 2,000억 원의 대출 잔액 증가에 기여할 수 있었습니다. 금융 산업의 문제를 분석하고 해결하여 팀의 목표 달성에 이바지했다는 점에서 큰 만족감을 얻었습니다.

가치관 및 신조 약 900자

저는 개인적인 성장과 팀의 목표 달성을 중시하는 프론트엔드 개발자입니다. 프론트엔드 개발의 핵심은 사용자 경험 최적화와 고객 간 신뢰 구축에 있다고 믿습니다. 이는 화면에 콘텐츠를 처음으로 표시하는 시점(First Contentful Paint, FCP)의 최적화와 같은 기술적 세부사항부터 시작됩니다. 제가 신디 창업팀의 일원으로 '카페 특색을 담은 SNS형 디저트 정보 공유 서비스' 프로젝트에 참여한 경험은 이러한 신념을 실현하는 과정이었습니다.

대학에서 컴퓨터공학을 전공하며 팀 프로젝트와 서비스 개발 실무 경험을 쌓기 위해, 신디 창업팀의 'SNS형 디저트 정보 공유 서비스' 개발에 참여하여 카페와 디저트에 관한 다양한 아이디어를 모아 초기 MVP(Minimum Viable Product)을 제작했습니다. 하지만 이 MVP는 추후 설문조사 및 인터뷰를 통해 얻은 고객의 요구사항과 다소 차이가 있었고 추가적인 성능 개선도 필요했습니다. 이에 신디 개발팀장으로서 팀원의 강점에 맞는 역할을 할당하고 프로젝트 방향을 설정했습니다. 저는 프론트엔드 개발에서 디자이너에게 사용자 인터페이스에 대한 세밀한 피드백을 제공했습니다. 또한 백엔드 개발에서 서비스의 사용자 경험을 개선하기 위해 필요한 데이터만 주고 받도록 해서 데이터 처리의 효율성을 높였고, 프론트엔드에 최적화된 백엔드 API 설계에 기여했습니다. 이 프로젝트는 성공적으로 출시되어 월간 사용자 수(Monthly Active User, MAU) 5천 명을 달성하는 성과를 이루었습니다.

개발자는 개인의 파트뿐만 아니라 프로젝트 전체적인 운영에 시야를 갖춰야 합니다. 개발 일정과 코드 유지보수, 기획 요소를 녹일 수 있는 부분까지 고려하여 최적화된 기능을 구현하여야 만족도 높은 결과물을 산출할 수 있기에, 이 부분에서 책임감을 나타낼 것을 약속드립니다.

이루고 싶은 것 약 850자

개발자로서 이루고자 하는 것은 기술을 통해 일상생활에서 사람들이 겪는 불편함을 해결하고, 실질적인 가치를 제공하는 것입니다. 리디와 토스뱅크에서의 웹 프론트엔드 개발 경험을 바탕으로, 사용자에게 이익이 되면서 비즈니스 매출을 증대시키고 낭비되는 비용을 줄일 수 있는 솔루션을 개발하는 데 집중하고자 합니다.

예를 들어, 의료 분야에서 병원 간 데이터 공유가 원활하지 않아 환자들이 다른 병원을 방문하거나 상급 병원으로 전원할 때 동일한 진료를 여러 번 받아야 하는 문제가 있습니다. 또한, 진료 데이터를 공유하기 위해 환자가 직접 개별 병원에 자신의 진료 기록을 수동으로 전달해야 하는 번거로움도 존재합니다. 이러한 문제를 해결하기 위해 의료 데이터의 표준화와, 개인정보보호법과 의료법을 준수하는 안전한 공유 시스템을 구축하여 환자들의 불필요한 불편을 줄이고자 합니다.

또한, 최근 빠르게 성장하고 있는 무인 매장 시장에서, 무인 매장을 운영하면서 빈번하게 발생하는 도난 문제는 운영 효율성과 신뢰성에 큰 영향을 미칩니다. 이를 해결하기 위해 영상 인식 기술과 센서 데이터를 활용한 실시간 모니터링 시스템을 개발하여 도난을 예방하고, 점주들이 수동으로 CCTV 화면을 주 52시간 이상 모니터링하지 않고도, 청소 및 매대 정리 등 하루에 1시간만으로도 운영할 수 있는 솔루션을 구현하여 무인 매장의 운영 효율성을 높이고 싶습니다.

그밖에도 높은 공실률로 인해 빌딩 자산이 효율적으로 활용되지 못하고 가치가 낭비되는 현상이 있습니다. 이에 대한 해결책으로, 빌딩의 사용 데이터를 분석하고 수요와 공급을 매칭하는 플랫폼을 개발하여, 빈 공간을 커뮤니티 시설로 전환하는 등 자산의 가치를 극대화할 수 있는 방안을 모색하고 싶습니다.

성격의 장단점 약 300자

저는 업무에 깊이 몰입하며 뛰어난 집중력을 발휘합니다. 이는 3개월 동안 토스뱅크(주)라는 금융 기업에서 계약직으로 근무하면서 경험했습니다. 반면, 한 가지에 집중하는 경우 부분적으로 놓치는 요소가 있었습니다. 하지만 다양한 프로젝트와 인턴 실무를 경험하며 프로젝트의 전체적인 흐름과 업무 분배의 중요성을 깨달았습니다.

현재는 업무 분석에 우선순위를 두고, 자체적인 데드라인 설정을 통해 시간 관리에 집중하고 있습니다. 또한, 해당 도메인의 전문적인 지식을 가지고 있는 팀원에게 지속적으로 업무에 대한 피드백을 요청해 서비스에 대한 시야를 넓히고 있으며, 프로젝트 전체를 이해하는 개발자로 성장하고 있습니다.

작성일: Apr 26th, 2025
작성자: 곽태욱

포트폴리오

프로젝트

OFFICE AI

4명
2023년 11월 7일 ~ 11월 26일 (3주)
github
homi-ai-client
github
app.planby.us
인테리어 디자인 AI 자동화 솔루션 - 인공지능이 꾸며주는 사무 공간
next.jstailwindSWR BadgeVercel Badge
  1. 검색 순위 향상을 위해 Search Engine Optimization 관련 HTML 메타데이터를 설정함
  2. 네트워크 응답 시간이 긴 AI 서비스 특성에 맞게 SWR 등을 활용해 데이터 불러오기 UI를 구현함
2023-11-homi-ai-22023-11-homi-ai-12023-11-homi-ai-12023-11-homi-ai-22023-11-homi-ai-32023-11-homi-ai-3

HOMI AI

4명
2023년 7월 24일 ~ 8월 6일 (2주)
github
tomorrow-house
github
tomorrow-house-backend
github
tomorrow-house.vercel.app
백엔드 비활성화됨
AI가 만드는 내일의 우리집 인테리어를 경험해보세요
next.jstailwindFastify BadgeServer Push BadgeRecoil.jsVercel Badge
  1. Figma UI 디자인을 참조해 프로토타입 개발 및 Vercel 클라우드에 자동 배포
  2. React Query로 AI 서버 응답 관리 및 Recoil.js로 클라이언트 전역 상태 관리
jayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecture

코리아톡

1명 (본인)
2023년 7월 15일 (9시간)
github
korea-talk
github
korea-talk.vercel.app
코리아톡은 고객의 문의를 관리자 화면에서 통합하여 응대할 수 있음. 여기서 고객에게 문의가 들어올 때 문의에 대한 내용을 답변하기 위해서 클라이언트 화면에 여러 기능을 추가함.
React Badgestyled BadgeWebSocket BadgeRecoil.js
  1. 디자인: 페이지 왼쪽엔 자신의 대화방 목록을 불러오고 각 대화방을 클릭 시 해당 대화방 id를 참조하여 대화 내용을 오른쪽에 보여줌. 대화 목록은 마지막 대화 시각 기준 내림차순으로 이메일은 생성일 기준 오름차순으로 클라이언트 측에서 정렬해서 표시해 줌
  2. 메시지 전송: 특정 대화방에서 대화 입력 중 Shift+Enter를 눌렀을 땐 전송 가능하지만 아무 내용이 없을 경우에는 전송이 불가능함. 대화를 전송하면 카카오톡과 비슷하게 응답이 올 때까지 로딩 상태의 말풍선을 보여줌. 그 후 서버 응답이 오면 서버 응답 내용으로 대체됨. 메시지를 2개 이상 동시에 전송해도 일관성 있는 UI를 보여줌.
  3. 메시지 응답: 메시지를 전송하면 임의의 시간 이후에 답장이 소켓으로 옴. 이를
    Socket.io
    를 이용해 대화 목록에 실시간으로 추가시킴. 서버 응답을 소켓으로 받기 때문에, 여러 브라우저 창에서 코리아톡 사이트를 열었을 때 한 창에서 메시지를 전송하더라도 서버 응답이 다른 창에서도 보임. 소켓으로 다른 대화방 대화 내용이 오면 대화방 목록의 마지막 대화 시각을 갱신하고 정렬해줌.
  4. SWR: 각 대화방의 대화 내용을
    Recoil.js
    로 캐싱해서 해당 대화방의 마지막 대화 시각이 변경되지 않으면 서버에 추가로 요청하지 않고 이전에 불러왔던 데이터를 보여줌
jayudam architecture

지키다

1명 (본인)
2023년 1월 24일 ~ 8월 6일 (6개월)
github
lofin
github
lofin-backend
github
jikida.vercel.app
백엔드 비활성화됨
대한민국 한 해 예산이 약 600조이고 이걸 중앙 정부와 지자체가 나눠서 가져간다. 하지만 현재 해마다 집행되는 예산이 선출직 공직자의 공약대로 쓰여졌는지 판단할 수 있는 방법이 부족하다. 그래서 편성된 예산이 국민의 감시 하에 원래 목적대로 사용될 수 있도록 해당 프로젝트를 기획했다. 나아가 집행된 예산이 타당하게 쓰였는지 검증하기 위해 집행일, 지자체, 분야별로 평가할 수 있는 시스템을 구축해, 정부 정책이 국민을 위한 방향으로 수립되는 것을 목표로 한다.
next.jstailwindReact Query BadgeVercel BadgePostgreSQL BadgeGCP BadgeGCP Badge
  1. SQL 개선: 약 2억 개의 예산 데이터 검색에 50초 걸리는 응답시간을 B+Tree 인덱스를 설계해 5초로 개선함
  2. UPSERT: 기존 데이터의 업데이트와 새로운 데이터의 삽입이 반복적으로 발생하는 상황에서, SQL의 UPSERT 개념을 적용하여 데이터가 이미 존재할 경우 해당 데이터를 업데이트하고 그렇지 않을 경우 새로운 데이터를 삽입해, 불필요한 중복 삽입을 방지하고 데이터베이스의 무결성을 유지하면서 데이터 관리를 효율적으로 수행함
  3. 렌더링 개선: 페이지 렌더링에 필요한 리소스 용량을 줄이기 위해 Next.js 13을 이용해 특정 URL의 HTML 파일을 캐싱함. Dynamic import를 사용해 클라이언트 JS 번들 크기를 줄임.
  4. 크롤링: OpenAPI를 이용해 중앙정부 세출 지방자치단체 세출 데이터를 데이터베이스에 주기적으로 저장함
jayudam architecturejayudam architecture

이력서

1명 (본인)
2022년 12월 12일 ~ 수시
github
resume
github
gwak2837.vercel.app
Notion, Confluence, Google Docs 등 온라인 기반 문서 편집기는 PDF 변환 기능이 미흡해, 깔끔한 문서 인쇄 및 PDF 변환을 목적으로 프로젝트를 시작함. 이력서를 작성하는데 품이 들지만, 특정 형식에 얽메이지 않고 작성할 수 있어서 좋음
next.jstailwindVercel Badge
  1. 빠른 개발을 위해 Next.js와 TailwindCSS, Vercel을 이용함

쿠팡 가격 알리미

1명 (본인)
2022년 11월 22일 ~ 2023년 1월 19일 (2개월)
github
yeou
github
yeou-backend
github
yeou.vercel.app
백엔드 비활성화됨
시시각각 변하는 쿠팡의 가격을 추적하여 알림을 받기 위해 프로젝트를 시작함
next.jstailwindreact-queryfastifyPWA BadgeWeb Push Badge
  1. 사이트를 크롤링 후 특정 조건을 만족하면 모바일로 알림을 보내는 알고리즘을 구현함
  2. 특정 사용자의 최근 N개 알림 목록과 같이, one-to-many 관계의 테이블일 때 many 쪽 테이블에서 모든 레코드가 아닌 특정 레코드 N개만 선택해 JOIN 해야하는 상황이 발생했는데, Greatest-N-Per-Group 알고리즘을 사용하여 해결함
  3. 프로젝트의 규모가 커질 수록 Styled components는 CSS 번들 크기의 선형적 증가라는 단점이 있어 Tailwind를 도입함. Tailwind는 사용 시 별도 CSS 문법을 익혀야한다는 단점이 있지만, Styled component와 달리 Tailwind에서는 별도로 변수를 설정할 필요 없이 바로 className만을 작성하면 되는 점이 편리하다고 느낌.
  4. 서버리스 서비스인 Cloud Run에서 웹사이트 크롤링 용도로 설치한 puppeteer가 작동하지 않는 문제가 발생함. root 사용자 대신 권한이 특정 폴더로 제한된 새로운 사용자를 만들어 puppeteer 접근 범위를 제한하고, puppeteer가 컨테이너 위에서 실행되기 때문에 sandbox 보안 설정을 해제하여 해결함
jayudam architecturejayudam architecture

자유담

1명 (본인)
2022년 6월 1일 ~ 10월 31일 (5개월)
github
jayudam
github
jayudam-backend
github
jayudam.vercel.app
백엔드 비활성화됨
공공보건 증진을 위한 개인간 보건기록 QR코드 익명 인증 서비스
react-queryRecoil.jsfastifyEvent Source BadgeServer Push BadgeWebRTC Badge
  1. 상태 관리: 네트워크 요청 및 응답 데이터는 Apollo client로 관리하고, input 입력값 데이터는 React form으로 관리하고, 클라이언트 전역 상태는 Recoil.js로 관리함
  2. 페이지네이션: Offset Pagination, Keyset Pagination 개념을 활용한 SQL 쿼리를 작성함
  3. 실시간 통신: 웹소켓보다 가벼운 HTTP2 Server push를 사용해 채팅 기능을 구현함. 본 프로젝트에선 바이너리 데이터를 서버에서 클라이언트로 먼저 보내는 경우가 없어 Server push로도 적당하다고 판단함. 브라우저의 EventSource 기능을 활용하면 HTTP2 서버에서 브라우저로 먼저 요청할 수 있음
  4. WebRTC: 브라우저 카메라를 이용해 QR 코드 스캔 기능을 구현함
jayudam architecturejayudam architecturejayudam architecturejayudam architecture
jayudam architecture

비마이시즌

2명
2022년 2월 14일 ~ 3월 13일 (1개월)
github
be-my-season
www.bemyseason.co.kr
경력보유여성을 위해 교육, 문화컨텐츠, 커뮤니티를 만들어가는 다시 일하고 싶은 여성의 상호성장 플랫폼
next.jsnext.jsMySQL Badge
  1. Nginx를 사용해 동일 호스트 내 멀티 도메인 및 멀티 서버 구축
  2. 가비아 클라우드 내 g클라우드 서버 임대 후 도메인 및 네트워크 설정
  3. Certbot을 사용해 HTTPS 적용 및 Crontab으로 인증서 자동 갱신
  4. TOAST UI 및 채널톡 적용
jayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecture

알파카살롱

1명 (본인)
2021년 12월 21일 ~ 2022년 1월 10일 (3주)
github
alpacasalon
github
alpacasalon-backend
next.jsreact-queryPostgreSQL BadgeGCP BadgeGCP Badge
  1. 게시글·댓글·답글 CRUD, 회원·그룹 CRUD, 댓글 좋아요 기능 구현
  2. 순수 CSS와 React portal을 이용해 Drawer·Modal 직접 구현
  3. Google Cloud Build를 활용해 CI·CD 설정, Google Cloud Storage에 이미지 자동 업로드
  4. 카카오 OAuth 및 자동 로그인
  5. 카카오 비즈 채널로 카카오 알림톡·친구톡 연동해서 새 댓글 및 답글 등 알림 기능
jayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecture

게시판

4명
2021년 10월 21일 ~ 11월 5일 (2주)
github
frontend
github
backend
github
kubernetes-cloud.vercel.app
백엔드 비활성화됨
쿠버네티스 기반 클라우드 시스템 엔지니어 양성 과정 교육에서 Google Kubernetes Engine(GKE) 상 게시글 CRUD 및 로그인 회원가입 서비스 구현
Next.js Badgeantd Badgejsonwebtokens BadgeKoaPostgreSQL BadgeGCP Badge
  1. display: grid
    ,
    @media
    쿼리를 사용해 반응형 디자인을 구현함
  2. GKE를 사용하여 클러스터, 노드, 팟을 설정하고, 컨테이너의 자동 스케일링과 로드 밸런싱을 구현함
  3. GCP 상의 IP, 포트 방화벽 등 네트워크 환경을 설정함
k8sk8sk8sk8sk8sk8sk8s

업비트 자동 매매

1명 (본인)
2021년 9월 25일 ~ 수시
github
upbit-trading
업비트 API를 활용한 코인 자동 매매 프로그램 개발
TypeScript BadgeNode.js BadgeDocker BadgeOracle Badge
  1. 웹소켓을 활용해 실시간으로 코인 시세를 획득함
  2. 이동평균선, RSI, MFI 등 차트 보조 지표를 구현해 매매 알고리즘에 활용함
  3. Docker를 활용해 오류 등으로 컨테이너가 종료됐을 때 자동으로 재실행됨
jayudam architecturejayudam architecture

소복

2명
2021년 8월 10일 ~ 10월 31일 (2개월 20일)
github
sobok
github
sobok-backend
github
sobok.vercel.app
백엔드 비활성화됨
소한 행 :) 카페 및 디저트 매장 검색이 불편하니 검색을 편리하게 만들자!
Next.js BadgePWA BadgeGA BadgeVercel Badgeapollographql BadgeGraphQL BadgeDocker BadgeGCP BadgeGCP Badge
  1. GCP 백엔드 아키텍처 설계 및 클라우드 CI·CD 구성
  2. PostgreSQL 쿼리 빌더를 간단하게 구현하고 PL/pgSQL을 사용하여 SQL 요청 횟수 줄임
  3. Webpack을 활용해 JavaScript 코드를 압축하여 Docker 이미지 크기 최적화 (140MB → 40MB)
  4. 디자이너와 Figma 및 Zeplin을 통해 페이지 디자인 및 SVG 벡터 이미지 공유
  5. Intersection Observer API를 사용해 무한스크롤 페이지네이션을 구현함
jayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecture
jayudam architecturejayudam architecture

수능 모의고사 웹사이트

4명
2021년 7월 16일 ~ 7월 18일 (3일)
github
moigosa
github
moigosa-backend
github
moigosa.vercel.app
코로나19로 어려워진 대면 시험.. 수능 성적을 올리고 싶다면? 나는 타고난 수능 만점자인 것인가? 당신의 숨겨진 성적을 깨닫고 싶다면?
Next.js BadgeExpress BadgePostgreSQL BadgeVercel BadgeVercel Badge
  1. Virtual Box VM 인스턴스를 활용해 웹 서버, API 서버, DB 서버 구축
  2. 사설 IP를 활용해 3가지 서버 연결 및 각 서버별 방화벽 설정
  3. 배포 자동화를 위해 리눅스 crontab을 활용하여
    git pull
    자동화
previewpreviewpreviewpreviewpreviewpreviewpreviewpreview

심리 테스트

4명
Frontend: 2021년 6월 14일 ~ 16일 (3일)
Backend: 2021년 7월 1일 ~ 3일 (3일)
github
simli-test
github
simli-test-backend
github
simli.vercel.app
쟤도 날 좋아할까? 그/그녀의 심리를 알고 싶다면? 나는 타고난 어그로 꾼인가? 당신의 숨겨진 정체를 깨닫고 싶다면? 이 말을 가짜라고 생각하고 무시한다면 정말 안 좋은 사고가 꼭 일어납니다. 지금 당장 시작하세요.
Next.js BadgePWA BadgeExpress Badgemariadb BadgeVercel BadgeGCP Badge
  1. Vercel에 프론트엔드 자동 배포, Cloud Run에 백엔드 자동 배포
  2. Slack에 프론트엔드·백엔드 배포 알림 설정 및 GitHub, Slack을 사용해서 협업
  3. Google Analytics를 적용해 방문하는 사용자 분석
  4. PWA를 적용해 모바일 환경의 사용자 경험 및 접근성 향상
jayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecturejayudam architecture

이메일 블록체인 검증

2명
2021년 6월 1일 ~ 8월 31일 (3개월)
github
email-blockchain
이메일 수발신을 블록체인 상의 하나의 트랜잭션 및 블록으로 관리하면 이메일을 주고 받을 때마다 블록이 생성되어 블록체인 형태가 되는데, 추후에 이메일 내용 관련으로 분쟁이 발생하면 각 블록 및 트랜잭션의 검증된 해시값을 사용하여 이메일 내용의 무결성을 증명할 수 있음
Next.js Badgestyled Badgestyled BadgeVercel Badge
  1. Next.js API Routes 기능을 이용해 비공개 블록체인의 개별 노드와 통신
  2. @emailjs/browser
    라이브러리를 사용해 다른 서버로 이메일 전송 및
    imap
    라이브러리를 사용해 다른 IMAP 이메일 서버 내용을 가져옴

이전 프로젝트 목록

Notion에서 보기

기술

React.js (Next.js)

  • React Query, Apollo client, useSWR 등 네트워크 요청 및 응답 데이터를 관리함
  • PWA를 적용해 모바일 접근성을 높이고, 브라우저 Notification/Push API로 사용자 재방문율을 향상함
  • Virtual DOM의 존재 의의와 언제 Reconciliation이 발생하는지 고민함
  • 함수 컴포넌트와 클래스 컴포넌트를 비교하며 여러 useEffect가 어떤 순서로 실행되는지 고민함
  • 함수형 프로그래밍에서 나오는 클로저 개념을 활용해 useState를 간단하게 직접 구현함
  • 메모이제이션 개념을 이용한 useMemo, useCallback을 활용해 컴포넌트 렌더링을 최적화함
  • HTML · CSS

  • W3C 웹 표준과 웹 접근성(a11y)을 지키려 노력하며 크로스 브라우징에 대응할 수 있음 (IE11 제외)
  • Semantic HTML, SCSS 문법에 익숙함
  • keyframe, transition 등을 활용한 애니메이션 구현 가능함
  • 마우스 Drag&Drop 기능과 스크롤 이벤트를 활용한 애니메이션 구현 가능함
  • 순수 CSS를 이용해 Drawer, Modal, Carousel을 직접 구현 가능함
  • JavaScript

  • ES2022 까지의 문법 및 JavaScript 엔진에서 사용되는 비동기 개념에 익숙함
  • TypeScript와 type 자동 생성 라이브러리를 사용해 개발 생산성을 높임
  • esbuild, Webpack 번들러를 사용해 Docker 이미지 크기를 줄임
  • 브라우저의 Geolocation APINotification APIWebRTC APIPush API 기능을 사용할 수 있음
  • 웹소켓 또는 HTTP/2 Push 기능을 활용해 일대일 채팅 기능을 구현함
  • Backend

  • Fastify, Next.js, Express.js, Koa.js 라이브러리로 REST API 서버를 개발함
  • Apollo Server를 사용해 GraphQL API 서버를 개발함
  • Jest를 사용한 유닛 테스트 자동화(CI) 경험이 있음
  • Dockerfile, compose.yaml 파일을 사용해 서버 인프라 설정, 컨테이너 관리를 자동화함
  • 간단한 PostgreSQL 쿼리 빌더 및 ORM을 직접 구현함
  • BFF 개념을 활용해 프론트엔드 개별 페이지에 최적화된 엔드포인트를 설계 · 구현할 수 있음
  • PostgreSQL

  • 외래키와 junction 테이블을 사용해 테이블 간 일대일, 일대다, 다대다 관계를 설정할 수 있음
  • JOIN 키워드를 활용해 여러 테이블에서 데이터를 가져올 수 있음
  • COPY 키워드를 사용해 데이터베이스 데이터를 CSV 파일로 관리할 수 있음
  • 트랜잭션으로 여러 SQL문을 하나의 논리적 단위로 관리할 수 있음
  • 함수, 프로시저, 트리거, PL/pgSQL을 사용해 SQL 요청 횟수를 줄일 수 있음
  • SQL 간 경쟁조건이 있을 때 의도된 결과를 얻기 위해 특정 테이블 또는 레코드를 잠글 수 있음
  • Cloud

  • 클라우드 가상 머신에 Docker 기반 SSL 전용 PostgreSQL 서버와 Redis 서버를 구축함
  • Cloud Build와 Cloud Run을 활용해 Docker 이미지 빌드 · 배포를 자동화(CI · CD)함
  • GCP VPC 네트워크에서 방화벽 규칙을 설정해 요청 IP 또는 포트 범위를 제한함
  • Cloud Storage에 이미지 파일을 동적으로 업로드하고 서비스 했음
  • Cloud SQL 및 AWS RDS에 클라우드 DB 서버를 구축했음
  • AWS RDS, AWS EC2, AWS S3, Oracle Instance, 가비아 클라우드를 사용한 경험이 있음
  • 외부 API

  • OAuth 2.0 스펙을 따르는 소셜 로그인 기능을 연동할 수 있음
  • 카카오페이, 토스페이를 사용해 결제 시스템을 자동화할 수 있음
  • Google Analytics를 활용한 사이트 통계 분석 경험이 있음
  • 작성일: Apr 26th, 2025
    작성자: 곽태욱