readme:art.leetekwoo.com

leetekwoo @leetekwoo@hackers.pub
목적
- 제 웹사이트의 readme를 공유합니다.
- Github의 Private으로 올라가 있어,
readme
라도 공유하고 싶었습니다. - 현역 개발자 여러분에게 보여드리는 것이 사실 좀 많이 부끄럽습니다😅
- Github의 Private으로 올라가 있어,
readme : art.leetekwoo.com
© ALL RIGHTS RESERVED. LEE TEKWOO
Artwork Unique ID preferences
Versions
V0.0.0
: 2025.07.02 첫 버전 작성
Artwork System 작품 고유 번호 체계:
코드 파일과는 별개의 파일명과 작품 고유번호의 생성체계를 가리킴.
Artwork ID - 개별 작품 고유 번호
[type]-[year]-[location]-[series_id]-[unique_id]-[sequence].[extension]
type
: 약어 사용. 포트폴리오, 전시, 커미션, 스냅사진으로 분류.
작품의 대분류.Series 연작
이란 여러 사진 작품이 동일한 맥락에서 개별 작품군을 가리킴./src/lib/types
의ContentType
참조
PF
:"portfolio"
EX
:"exhibition"
CM
:"commission"
SN
:"snapshot"
series_id
(required
): 연작의 ID. 고유한 값 Unique ID 사용unique_id
(nullable
): 개별 작품의 추가 ID. 고유 값 사용. 작품의 제목, 개별 인덱싱이 부여된 작품에 사용year
(required
): 제작 연도.YY
형식으로 작성.location
(nullable
): 촬영 장소. 약어 사용 (ex:SEL
).sequence
(nullable
):Series
: 작품이 연작인 경우, 시리즈 내에서의 순서를 가리킴- 개별 작품인 경우: 순서에 특별한 의미는 없이 임의로 순서가 결정될 수 있음. 파일 정렬을 위해 추가 가능. (ex: snapshot 카테고리의 경우)
Data Management
상기의 이미지 파일명 기반으로, art.leetekwoo.com
에 올라간 작품을 JSON
데이터로 생성
- 목적:
public/img/
디렉토리의 이미지 파일명을 파싱하여artworks.json
과series.json
자동 생성 - 입력: 이미지 파일명 (Artwork ID 체계 준수)
- 출력: 구조화된 JSON 데이터 파일
public/img/
├── [type]/
├── [series_id]/
│ ├── [artwork_id].[ext] → artworks.json
│ └── [artwork_id].[ext] → artworks.json
└── [series_id]/
└── [artwork_id].[ext] → artworks.json
-
artworks.json: 개별 작품 메타데이터
id
,type
,seriesId
,src
,ratio
,createdAt
등
-
series.json: 시리즈별 그룹 정보
id
,type
,title
,artworks[]
등
-
파일명 파싱을 통한 자동 메타데이터 추출
-
이미지 비율 자동 감지 (width > height: landscape, width < height: portrait)
-
시리즈별 자동 그룹핑
-
중복 데이터 방지 및 유효성 검증
Web Application
- Typescript + Vite + React (SPA - CSR only)
- Cloudflare Pages
- CDN 활용 및 배포 환경 자동화를 위해 사용
- 로컬에서 생성한 빌드(
dist
)를 cdn으로 배포- 빌드 과정에서 이미지 압축 및 워터마크 삽입
LCP
지연이 될 수 있는 이미지 파일은s-maxage
장기 설정- 이외의 번들 파일은
no-cache
적용
robots.txt
의Disallow *
및 Cloudflare AI 크롤링 방지 사용shadcn
,tailwindCSS
이외의 외부 패키지 사용 최소화- 레이아웃 및 컴포넌트 UI/UX는 별도의 설계 및 계획 과정없이 심미성을 우선적으로 고려.
PS
readme에는 포함되지 않은 간략한 개발 후기입니다.
사적인 얘기이니 넘기셔도 됩니다.
- 해커스펍에 여러 번 단문으로 공유한 뒤 삭제했습니다. 조금 더 정리하여 공유해야겠다는 생각이었습니다만, 역시 완벽한 준비는 없는 것 같습니다.
- 개발할 시간이 부족해 틈틈이 시간을 썼습니다.
- 특별한 기능은 없는 평범한 개인 웹사이트지만, 작품을 분류하고 정리하면서 시간이 걸렸습니다.
- 그 과정에서 제가 제 권리를 제대로 보호하지 않아 생긴 문제를 발견했습니다. ex) 작품 유실, 표절, 판매 및 유통 추적 불가 (과장된 이야기라고 여겨주셔도 됩니다 😅)
- 현재는 저도 그저 평범한 사회인이고, 하루하루 열심히 살아갈 뿐입니다.
- 사진은 정말 좋아하지만 저는 그저 게으른 아마추어이고 보는 것이 더 좋습니다.
- 이 웹사이트는 인터넷상에 과거를 돌아보기 위한 작은 집을 짓는다-고 생각하며 개발했습니다.
긴 글 읽어주셔서 감사합니다.
오늘도 좋은 하루되시길 바라며..