01 / WEB DEVELOPMENT

웹 개발

프론트엔드·백엔드·웹디자인·홍보

크릴리오네의 네 영역을 혼자 맡았습니다. Codex로 차트·커뮤니티를 구현하고, 디자인을 다듬으며, 데이터 갱신과 Instagram 발행을 운영했습니다.

ROLE
1인 기획·개발·운영
PERIOD
2026년 ~ 현재
STATUS
공개 서비스 운영
TOOLS
Python · FastAPI · JavaScript

개발 과정

왜 만들었는가

투자사의 공개 정보를 누구나 읽고 비교할 수 있게 만들고 싶었습니다.
ARK 보유 변화에 시장·뉴스를 연결하고, 점수와 근거를 함께 보여줍니다.

자세히 보기접기

투자사의 보유 정보는 매일 공개됩니다. 하지만 일반 투자자가 원문을 찾아 전날과 비교하고, 시장의 변화까지 읽기에는 시간과 해석의 부담이 큽니다.

저는 ARK의 공개 보유 내역을 중심으로 수량·비중의 변화에 가격·뉴스를 연결했습니다. 사용자가 ‘오늘 어떤 정보를 알아야 하는가’를 판단할 수 있는 서비스를 만들고자 했습니다.

많은 시장 정보와 시계열의 종가 관계를 AI로 분석하고자 했습니다. 0~100점의 요약값에 해석과 기준일을 붙여, 사용자가 근거를 꼼꼼히 살펴 투자에 도움이 될 수 있게 했습니다.

시장 보기

지수·섹터·심리·유동성으로 시장 전체를 보여줍니다.
자료의 기준일을 표시하고 실시간 차트와 원문을 연결했습니다.

자세히 보기접기

개별 종목을 보기 전에 시장 전체를 읽도록 지수·변동성·원자재·가상자산을 배치했습니다. 25개 섹터 점수와 공포·탐욕 지수로 분야별 흐름도 비교합니다.

TradingView P2P 계약으로 나스닥100 선물 차트를 도입했습니다. 나스닥100 선물 차트에 직접 그림을 그리거나 여러 지표를 추가할 수 있으며 로그인을 통해 저장됩니다. FinancialJuice P2P 계약으로 실시간 거시 경제 뉴스를 도입했습니다. 따로 뉴스를 확인할 필요 없이 실시간으로 업데이트 되는 거시 경제 뉴스를 확인할 수 있습니다.

투자사 보유 변화·뉴스·실적 일정·예측 시장·FINRA ATS 거래량과 옵션 만기일의 거래량·미결제약정의 정보를 제공합니다.

전체 종목과 AI 점수

보유 종목을 검색·정렬하고 수량 변화를 비교합니다.
AI 점수에서 종목별 분석과 근거로 이어집니다.

자세히 보기접기

ARK·Gerber Kawasaki의 공개 보유 종목을 검색·정렬하도록 만들었습니다. 보유 증가·관찰·비중 감소 필터로 관심 대상을 좁힙니다.

가격·차트·보유 비중·수량 변화를 함께 배치했습니다. 가격 상승으로 비중만 커진 경우와 실제 수량이 늘어난 경우를 구분하기 위해서입니다.

기본 AI 점수에서 상세 분석으로 연결하고, 로그인 후 제공하는 예측 후보는 따로 관리했습니다. 금액 환산값은 공개 수량 변화와 기준 가격으로 계산한 값입니다.

AI 점수 계산

보유·가격·뉴스를 0~100점의 비교 지표로 묶었습니다.
위험과 자료 부족을 보정하고 판단 근거를 붙였습니다.

자세히 보기접기

보유 흐름·가격·뉴스·애널리스트·섹터 정보를 0~100점으로 묶었습니다. 점수는 더 살펴볼 종목을 고르는 지표이며, 좋은 신호가 많을수록 점수가 추가되는 방식입니다.

기관 점수에는 최근 5거래일 수량 변화와 20거래일 지속성, 가속·반전·여러 ETF의 흐름을 반영했습니다. 보유 감소와 자료 부족에는 감점·상한·중립 보정을 적용했습니다.

기준 점수에 데이터 기반 AI 판단을 연결했습니다. GPT-6.1 Terra·Sol은 뉴스 분석·설명을 맡습니다. 진입·핵심 보유·방어에 따라 비중을 조정하고, 상승 전용 예측 모델은 별도로 연구를 진행하고 있습니다.

로컬 기본 점수 프로필의 구성
근거기본 비중함께 확인하는 내용
가격·타이밍30%가격 흐름과 기술적·시장 조건
종목·뉴스20%종목별 정보와 뉴스 근거
ARK 보유 흐름35%수량 변화·지속성·여러 ETF의 흐름
애널리스트10%분석 기준가 등 보조 정보
섹터5%관련 분야의 상대적인 환경
웹 점수의 흐름
  1. 자료
    공개 보유

    수량·비중·변화

    시장·종목

    가격·뉴스·섹터

  2. 계산
    기준 점수

    맥락별 가중치

    위험 보정

    감점·상한·결측

  3. 표시
    AI 설명

    뉴스 분석·근거

    0~100점

    점수·기준일·원문

운영 점수와 EventMemoryModel 연구는 별개입니다.

투자사 리포트

기관 전체에서 ETF·개별 종목까지 읽도록 구성했습니다.
ARK 보유 변화·AI 보고서에 원문과 기준일을 연결했습니다.

자세히 보기접기

같은 종목도 한 투자사의 포트폴리오 안에서 보면 맥락이 달라집니다. ARK·Gerber Kawasaki의 기준일과 최근 변화를 보여주고 기관별 리포트로 연결했습니다.

ARK는 전체 보유, 추가·제거 종목, 수량 변화의 금액 환산, AI 보고서와 6개 ETF의 변화를 묶었습니다. 공식 글과 원문도 확인할 수 있습니다.

공개 보유 변화만으로 주문 시각·체결 가격·기관의 의도를 알 수는 없습니다. 수량과 비중, 점수와 출처를 함께 보도록 구성했습니다.

커뮤니티와 차트 공유

분석 글·생각 한 줄·개인 기록을 만들었습니다.
공개 범위를 나누고 게시 당시의 차트와 가격을 보존합니다.

자세히 보기접기

서비스의 해석을 읽은 뒤 자신의 생각도 남길 수 있게 커뮤니티를 만들었습니다. 종목별·종합 게시판에 검색·정렬·댓글·반응·북마크를 연결했습니다.

프로필과 개인 글에 전체 공개·팔로워 공개·비공개를 적용했습니다. 첨부 이미지와 차트에도 같은 접근 규칙을 적용합니다.

게시물에는 당시 차트의 레이아웃·선·가격 시계열을 복사했습니다. 원본 차트가 바뀌어도 게시한 근거와 작성자 표시가 남도록 했습니다.

문제 해결

문제 사례와 해결과정

검색 지연, 후보 누락, 반복 조회 등 실제 개발·운영 문제 10건을 다룹니다.
각 사례에서 제가 정한 기준, Codex로 수정한 과정, 확인 결과를 볼 수 있습니다.

자세히 보기접기

프론트엔드

4건
  1. 종목마다 흩어져 있던 커뮤니티를 한곳에 모았습니다

    커뮤니티가 종목 상세 화면 안에 나뉘어 있어 글을 둘러보려면 종목을 먼저 골라야 했습니다.

    해결 기준
    커뮤니티를 독립 메뉴로 두고 종목은 필터로 고르게 했습니다. 종목과 무관한 글은 종합에서 읽을 수 있도록 했습니다.
    바이브코딩으로 해결한 과정
    Codex가 통합 목록과 종목 필터를 만들었습니다. 기존 종목 커뮤니티 링크도 통합 화면으로 연결해 해당 종목 필터가 바로 선택되도록 했습니다.
    확인한 결과
    로컬 한국어·영어 화면에서 데스크톱과 모바일을 확인했습니다. 임시 계정으로 익명 글과 댓글을 작성했고, 당시 통합 자동 검사 65건이 통과했습니다.

    2026.09.12 · 「커뮤니티 기능 보완점 분석」 통합 화면 검수

  2. 글쓰기와 게시물 관리 순서를 다시 잡았습니다

    글쓰기와 글 관리에 버튼·검색·정렬이 흩어져 있었고, 본문에서 글자 굵기나 크기를 바꿀 수 없었습니다.

    해결 기준
    검색과 정렬을 묶고, 공개 범위와 삭제는 각 글에서 찾도록 정했습니다. 글을 쓰는 동안 기본 서식을 바꿀 수 있게 요청했습니다.
    바이브코딩으로 해결한 과정
    Codex로 게시 위치·제목·본문·설정·게시 순서를 정리했습니다. 굵기·크기·목록·인용과 실행 취소·다시 실행을 추가하고, 글 관리의 동작을 글별 메뉴로 옮겼습니다.
    확인한 결과
    로컬 한·영 화면에서 서식을 넣어 저장한 뒤 다시 열어 편집했습니다. 관련 자동 검사 45건이 통과했습니다.

    2026.09.13 · 「커뮤니티 기능 보완점 분석」 편집기 검수

  3. 공유 차트를 가져와도 내 분석이 덮이지 않게 했습니다

    글에 공유된 차트를 내 종목 작업공간에 가져오면 기존 분석을 덮어쓸 수 있었습니다.

    해결 기준
    가져온 차트는 별도 사본으로 저장하고, 게시 당시의 선·설정·가격과 원작자 표시를 남기도록 정했습니다.
    바이브코딩으로 해결한 과정
    Codex가 공유 차트의 첨부·복제 기능을 구현했습니다. 미리보기를 본 뒤, 최신 가격은 버튼을 누르는 동안만 보이고 손을 떼면 게시 당시 차트로 돌아오도록 조건을 추가했습니다.
    확인한 결과
    로컬에서 차트를 저장하고 글에 첨부한 뒤 다시 열었습니다. 게시 당시 시세와 원작자 표시가 남는 것을 확인했습니다.

    「커뮤니티 기능 보완점 분석」 · 차트 저장·첨부·재열람 검수

웹디자인

1건
  1. 작은 화면에서도 검색창과 필터가 잘리지 않게 했습니다

    좁은 화면에서 홈의 갱신 문구와 종목 필터 일부가 잘렸습니다.

    해결 기준
    기존 색상과 아이콘, 메뉴 기능을 유지하면서 작은 화면에서도 모든 항목을 읽고 누를 수 있어야 했습니다.
    바이브코딩으로 해결한 과정
    Codex로 390px에서 넘치는 지점을 확인했습니다. 검색은 한 줄 전체를 쓰고 필터는 두 줄로 나눴습니다. 적용안을 보고 상하단 메뉴의 높이와 여백을 한 번 더 줄였습니다.
    확인한 결과
    360·390·430px 브라우저에서 가로 넘침과 메뉴·검색·필터 동작을 확인했습니다.

    모바일 화면 수정 · 브라우저 너비별 검수 기록

데이터·점수

1건
  1. 새 후보가 되는 조건과 남아 있는 조건을 분리했습니다

    일일 갱신 뒤 화면에서 후보가 모두 사라졌습니다. 기존 후보도 신규 진입 기준을 다시 통과해야 했습니다.

    해결 기준
    상태가 ‘강세’에서 ‘회복’으로 바뀌어도 수급과 위험 조건을 충족하면 기존 후보로 남도록 정했습니다.
    바이브코딩으로 해결한 과정
    Codex가 직접 동기화 과정에서 직전 정상 후보 이력이 끊긴 원인을 찾았습니다. 이전 이력을 연결하고 진입과 유지 검사를 분리했습니다. 유지된 후보는 최초 날짜·가격을 그대로 쓰도록 했습니다.
    확인한 결과
    로컬에서 당시 입력 147행을 다시 계산했습니다. 신규 0건, 기존 후보 6건 유지를 확인했고 관련 검사 271건이 통과했습니다.

    2026.09.10 · 「확인 단기 급상승 후보」 및 후보 유지 규칙 검수

AI 리포트

1건
  1. 한국어와 영어 보고서에서 같은 판단을 유지했습니다

    영어 화면에 한국어가 남았고, 보고서를 따로 생성하면 언어에 따라 수치와 판단 근거가 달라질 수 있었습니다.

    해결 기준
    화면 문구는 언어별로 관리하되, 보고서는 한국어판과 같은 모델로 영어판을 작성하고 수치·출처·구성은 보존하도록 했습니다.
    바이브코딩으로 해결한 과정
    Codex가 페이지에 남은 문구를 바꿔 끼우는 방식에서 언어별 문구집으로 전환했습니다. 보고서는 영어로 다시 쓴 뒤 수치·출처·항목 순서가 달라지면 저장하지 않도록 검사를 붙였습니다.
    확인한 결과
    당시 로컬 보고서 119건에서 한·영 API의 모델·제공자·점수와 한국어 원문 식별값이 일치하는 것을 확인했습니다.

    2026.09.10 · 「영어 모드 잔존 한국어 수정」 및 한·영 보고서 검수

백엔드

2건
  1. 게시물마다 반복하던 DB 조회를 묶었습니다

    커뮤니티 목록에서 글을 하나 읽을 때마다 공감·팔로우·북마크 상태를 다시 조회했습니다.

    해결 기준
    공개 이후 데이터베이스 조회를 점검하도록 요청했습니다. 조회 개선 전후에도 로그인 사용자가 보는 상태와 글의 공개 범위를 지켜야 했습니다.
    바이브코딩으로 해결한 과정
    Codex가 글별로 반복되던 상태와 차트 정보를 페이지 단위로 묶었습니다. 읽기 요청에서 쓰기 잠금을 미리 잡는 동작과 차트 목록의 불필요한 본문 읽기도 걷어냈습니다.
    확인한 결과
    로그인 상태의 로컬 회귀 검사에서 글 1개와 20개 모두 SQL 호출 7회였습니다. 커뮤니티 관련 자동 검사 28건이 통과했습니다.

    2026.09.13 · 커뮤니티 운영 점검 및 조회 횟수 회귀 검사

  2. 예약은 실행됐지만 화면이 갱신되지 않는 문제를 고쳤습니다

    예약이 실행된 날에도 원천 자료가 멈추거나 상세 차트가 서버에 올라가지 않아 화면이 이전 상태에 머물렀습니다.

    해결 기준
    예약 성공 여부만 보지 않고 자료가 준비됐는지, 분석했는지, 웹에 반영됐는지를 각각 확인하도록 했습니다. PC 로그인 후에는 누락 작업부터 복구하도록 정했습니다.
    바이브코딩으로 해결한 과정
    Codex에 예약 로그·원천 자료·게시 상태의 대조를 맡겼습니다. 갱신이 멈춘 ARKW 자료를 공식 경로로 교체하고 상세 차트 전송을 보완했습니다. 지난 회차의 전송과 당일 분석을 따로 실행하게 했습니다.
    확인한 결과
    10월 9일 14:24에 전날 전송이 복구됐습니다. 당일 자료는 두 차례 대기한 뒤 15:47에 갱신과 서버 반영을 마쳤습니다. 미처리 작업은 0건이었습니다.

    2026.10.09 · 「일일 업데이트 누락 보완 및 배포」 및 운영 이력(KST)

    10월 9일 갱신 복구 실제 기록 (TXT)

홍보·운영

1건
  1. 후보별 게시물을 스토리와 주간 묶음으로 나눴습니다

    처음에는 새 후보가 나올 때마다 피드에 별도 게시물이 올라갔습니다. 한 주에 어떤 종목이 나왔는지 한 번에 보기 어려웠습니다.

    해결 기준
    새 후보는 스토리로 알리고 주간 후보는 한국어·영어 캐러셀 하나씩에 묶기로 했습니다. 날짜와 가격은 추천이 처음 나온 시점을 쓰도록 정했습니다.
    바이브코딩으로 해결한 과정
    Codex로 웹 후보 갱신과 카드 생성·발행을 연결했습니다. 신규 스토리와 주간 캐러셀의 실행 조건을 나누고, 최초 추천값과 게시 결과를 남겨 재실행 시 중복을 막도록 했습니다.
    확인한 결과
    10월 30일 운영 기록에서 한·영 신규 스토리 4건이 하이라이트에 보관된 것을 확인했습니다.

    2026.10.30 · Instagram 발행 이력 및 하이라이트 확인

핵심 변경 사항

게시 당시의 차트를 보존하고, 누락된 갱신을 따로 복구하도록 바꿨습니다.
게시 이력을 남겨 다시 실행할 때 같은 콘텐츠가 중복되지 않도록 했습니다.

자세히 보기접기
  • 게시 시점 보존 — 공유 차트에는 게시 당시 시세를 저장합니다. 최신 가격은 버튼을 누르는 동안만 보여주고, 버튼을 놓으면 게시 당시 차트로 돌아갑니다.
  • 갱신 복구 분리 — 원천 확인·분석·서버 전송을 나눴습니다. 전송이 빠진 경우 분석을 다시 돌리지 않고 해당 자료만 올립니다. 갱신에 실패하면 마지막 성공본을 유지합니다.
  • 발행 이력 저장 — 추천 당시 날짜와 가격을 기준으로 콘텐츠를 만듭니다. 발행 결과를 기록해 같은 작업을 다시 실행해도 중복 게시를 피합니다.

웹 운영

서버 공개와 갱신 자동화

자료 수집·분석과 웹 조회를 분리했습니다.
실패하면 마지막 완료본을 유지하고 누락된 작업부터 재개합니다.

자세히 보기접기

Python·FastAPI로 수집·분석 API를 만들고 JavaScript 화면과 연결했습니다. 로컬에서 분석을 마친 결과를 서버로 보내고 도메인으로 공개했습니다.

웹 요청마다 분석을 반복하지 않고 검증된 스냅샷을 읽도록 했습니다. 수집·분석·전송이 실패하면 마지막 성공 결과를 유지합니다.

PC 종료나 미로그인으로 놓친 갱신도 복구하도록 정했습니다. 로그인과 예약 실행 때 원천 자료·누락 작업을 확인하고 입력이 바뀐 부분부터 분석을 재개합니다.

자동 갱신
  1. 점검
    예약·로그인

    자료·누락 작업 확인

  2. 생성
    수집·분석

    보유·시장·뉴스 → 점수·리포트

  3. 게시
    완료본 검증

    필수 자료·게시 상태

    서버 동기화

    API·화면에 전달

실패하면 마지막 완료본을 유지합니다.

사업자 등록과 TradingView 계약

사업자를 등록하고 TradingView P2P 계약을 체결했습니다.
차트 도입의 협의부터 서비스 적용까지 직접 진행했습니다.

자세히 보기접기

크릴리오네 운영을 위해 사업자를 등록하고 TradingView와 P2P 계약을 체결했습니다. 외부 기술 도입에 필요한 협의와 계약을 직접 진행했습니다.

도입한 차트를 종목 탐색·공개 보유 내역·AI 분석에 연결했습니다. 개발한 기능이 실제 서비스에서 제공되기까지의 절차를 함께 맡았습니다.

Instagram 발행 자동화

웹의 신규 후보를 한국어·영어 스토리로 전달합니다.
주간 캐러셀을 묶고 중복 발행을 막았습니다.

자세히 보기접기

웹에서 게시를 마친 후보 기록으로 @krillione 콘텐츠를 만듭니다. 새 후보는 한국어·영어 스토리로, 한 주의 신규 후보는 다음 주 첫 성공 갱신 때 캐러셀로 묶습니다.

가격·점수만 바뀐 경우에는 신규 알림을 보내지 않습니다. 카드에는 최초 날짜·당시 가격·근거를 남기고, 필수 자료가 빠지면 발행을 기다립니다.

웹·서버 동기화가 성공한 뒤 Meta API로 게시합니다. 식별자·주차·게시 영수증으로 중복을 막고, 결과가 불확실하면 검토 대기로 남깁니다. 하이라이트 추가 여부는 별도로 확인합니다.

Instagram 발행
  1. 원천
    웹 후보 기록

    최초 날짜·가격·근거

  2. 생성
    새 후보

    한·영 스토리

    주간 묶음

    한·영 캐러셀

  3. 발행
    이미지 검수

    자료·문구 확인

    Meta API

    게시·중복 방지·영수증

웹과 서버의 게시 성공 후 실행합니다.

OTHER FIELD모델 개발