[



  
  {
    "title": "Blog",
    "url": "/projects/blog.html",
    "content": "좋아하는 것들을 모아두거나 기록하는 공간\n\n시작일시: 2025-07-01T04:42:20Z\n\n상태: 진행 중\n\n주소: https://hansanhha.github.io\n\n\n\n블로그 메뉴에 대하여:\n\n검색\n\n제목, 내용 또는 키워드를 기반으로 블로그 내의 게시글들을 검색할 수 있는 기능이다. Jekyll의 Liquid 템플릿과 빌드 과정을 이용하여 search.json 파일을 만든 후 자바스크립트로 페치하고 필터링한 결과를 표시한다. search.json\n\n프로젝트\n\n주기적으로 반복하는 공통된 행동을 하나의 프로젝트로 정의하고 운영한다. 단순한 생각이나 행동에 이름과 목적을 덧붙이고 실행과 기록을 통해 하나의 의미 있는 단위로 만들어간다. 프로젝트는 단순한 생각에서 시작하여 실행으로 이어지고, 그 과정과 결과가 축적되는 선형적인 흐름을 가지며 흩어진 행위에 견고한 의미를 부여한다.\n\n프로젝트를 설명하는 양식은 다음과 같다.\n\n시작일시는 ISO-8601 UTC 형식으로 표시하고, 상태는 진행 중/일시 중단/종료 중 하나로 표시한다. 일시 중단과 종료 상태인 경우엔 그 시작 시점을 명시한다.\n\n주소는 인터넷 웹 주소 또는 실제 공간 주소를 입력한다.\n\n간단한 소개\n\n시작일시\n\n상태\n\n주소\n\n---\n\n프로젝트에 대한 내용\n\n\n프로그래밍\n\n프로그래밍과 컴퓨터 과학에 대해 학습한 개념이나 직접 경험한 내용을 작성한다. 단순한 사용법부터 특정 도구에 대한 원리와 동작 방식까지 폭넓게 다루며, 구현한 것과 실험한 내용을 남기고자 한다.\n\n일상\n\n일상 속에서 경험한 것들과 떠오르는 생각들을 기록하는 공간이다. 주로 월초 또는 월말에 업로드한다.\n\n아카이브\n\n시간이 지나며 모아온 관심사와 자료들을 한 곳에 담아둔 곳으로 기억에 남기고 싶은 것들을 자료의 형태와 주제별로 구성해놓았다.\n\n해맞이\n\n매월 초, 새로운 한 달의 시작을 맞이하기 위해 해를 보러 가는 작은 프로젝트다. 지난 시간을 돌아보며 앞으로의 시간을 생각한다. 해맞이에 대한 설명\n\n\n\n블로그 디자인에 관하여:\n\n기본 화면 구성\n\n홈 버튼과 검색창\n\n유틸리티: 블로그에 대한 정보와 기능을 담은 구역 (접속일, 접속 환경, 글꼴 크기, 배경 색상, 선호하는 언어 등)\n\n메뉴: 블로그 메뉴를 표시하는 구역 (프로젝트, 프로그래밍, 일상, 아카이브, 해맞이)\n\n---\n\n콘텐츠\n├─ 홈페이지: 가장 최근에 작성한 글 10개를 표시하는 페이지\n├─ 인덱스: 특정 카테고리에 속한 글들을 작성일 기준 내림차순으로 정렬하는 페이지. '/카테고리/' 형태로 페이지의 계층을 표시하며 계층의 링크를 클릭하여 이동할 수 있다. 선택적으로 제목이 나타난다.\n└─ 게시글: 선택한 글의 내용을 나타내는 페이지. 현재 페이지의 계층이 '/카테고리/페이지 | 작성일' 형태로 표시하며 페이지의 이름과 작성일은 일반 문자열로 취급된다. 선택적으로 제목이 나타난다.\n\n---\n\n기타 정보: 블로그에 표시할 공통된 정보나 외부 링크\n\n\n시맨틱 태그 미사용, 8px 간격 시스템 사용\n\n글꼴: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, Helvetica, Arial, sans-serif\n\n기본 글꼴 크기: 16px\n\n영감받은 페이지\n\ncatern 위에서 아래로 자연스럽게 이어지는 수직적인 흐름과 불필요한 장식을 덜어낸 투박하고 직관적인 인터페이스를 참고하였다.\n\n\n\nblainsmith 상단 메뉴 나열 방법과 게시글의 ‘일자 - 제목’ 표시 형태를 참고하였다.\n\n\n\nKhakis  아카이브 이미지들을 가로로 나열하는 표시 방식을 참고하였다.\n\n\n\n로드맵:\n\n✓ 다크/라이트 모드\n\n✓ 이미지 설명\n\n✓ 검색 기능\n\n✓ 디자인 전면 개편\n\n✓ 게시글 한글/영문 전환\n\n아카이브 메뉴 개편\n\n기본 레이아웃의 디자인 시스템 설정\n\n소스 코드 정리\n",
    "pagename": "Blog",
    "pagenameKo": "블로그",
    "createDate": "2026-08-09",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "projects",
    "tags": []
  }
  

  ,
  {
    "title": "Blog",
    "url": "/projects/en/blog.html",
    "content": "A space to collect the things I love and record my thoughts.\n\nStart Date: 2025-07-01T04:42:20Z\n\nStatus: In Progress\n\nAddress: https://hansanhha.github.io\n\n\n\nThe menu I categorized\n\nSearch\n\n제목, 내용 또는 키워드를 기반으로 블로그 내의 게시글들을 검색할 수 있는 기능이다. Jekyll의 Liquid 템플릿과 빌드 과정을 이용하여 search.json 파일을 만든 후 자바스크립트로 페치하고 필터링한 결과를 표시한다. search.json\n\nProjects\n\n주기적으로 반복하는 공통된 행동을 하나의 프로젝트로 정의하고 운영한다. 단순한 생각이나 행동에 이름과 목적을 덧붙이고 실행과 기록을 통해 하나의 의미 있는 단위로 만들어간다. 프로젝트는 단순한 생각에서 시작하여 실행으로 이어지고, 그 과정과 결과가 축적되는 선형적인 흐름을 가지며 흩어진 행위에 견고한 의미를 부여한다.\n\n프로젝트를 설명하는 양식은 다음과 같다.\n\n시작일시는 ISO-8601 UTC 형식으로 표시하고, 상태는 진행 중/일시 중단/종료 중 하나로 표시한다. 일시 중단과 종료 상태인 경우엔 그 시작 시점을 명시한다.\n\n주소는 인터넷 웹 주소 또는 실제 공간 주소를 입력한다.\n\n간단한 소개\n\n시작일시\n\n상태\n\n주소\n\n---\n\n프로젝트에 대한 내용\n\n\nCode\n\n프로그래밍과 컴퓨터 과학에 대해 학습한 개념이나 직접 경험한 내용을 작성한다. 단순한 사용법부터 특정 도구에 대한 원리와 동작 방식까지 폭넓게 다루며, 구현한 것과 실험한 내용을 남기고자 한다.\n\nDaily\n\n일상 속에서 경험한 것들과 떠오르는 생각들을 기록하는 공간이다. 주로 월초 또는 월말에 업로드한다.\n\nArchives\n\n시간이 지나며 모아온 관심사와 자료들을 한 곳에 담아둔 곳으로 기억에 남기고 싶은 것들을 자료의 형태와 주제별로 구성해놓았다.\n\nSunrise\n\n매월 초, 새로운 한 달의 시작을 맞이하기 위해 해를 보러 가는 작은 프로젝트다. 지난 시간을 돌아보며 앞으로의 시간을 생각한다. 해맞이에 대한 설명\n\n\n\nBlog design concepts\n\nHow to organize default screen\n\nHome Button and Search Bar\n\nUtility: 블로그에 대한 정보와 기능을 담은 구역 (접속일, 접속 환경, 글꼴 크기, 배경 색상, 선호하는 언어 등)\n\nMenu: 블로그 메뉴를 표시하는 구역 (프로젝트, 프로그래밍, 일상, 아카이브, 해맞이)\n\n---\n\nContent\n├─ Home Page: 가장 최근에 작성한 글 10개를 표시하는 페이지\n├─ Index: 특정 카테고리에 속한 글들을 작성일 기준 내림차순으로 정렬하는 페이지. '/카테고리/' 형태로 페이지의 계층을 표시하며 계층의 링크를 클릭하여 이동할 수 있다. 선택적으로 제목이 나타난다.\n└─ Post: 선택한 글의 내용을 나타내는 페이지. 현재 페이지의 계층이 '/카테고리/페이지 | 작성일' 형태로 표시하며 페이지의 이름과 작성일은 일반 문자열로 취급된다. 선택적으로 제목이 나타난다.\n\n---\n\nMiscellaneous: 블로그에 표시할 공통된 정보나 외부 링크\n\n\nNot using semantic tags, 8px spacing system\n\nFonts: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, Helvetica, Arial, sans-serif\n\nDefault font size: 16px\n\n영감받은 페이지\n\ncatern 위에서 아래로 자연스럽게 이어지는 수직적인 흐름과 불필요한 장식을 덜어낸 투박하고 직관적인 인터페이스를 참고하였다.\n\n\n\nblainsmith 상단 메뉴 나열 방법과 게시글의 ‘일자 - 제목’ 표시 형태를 참고하였다.\n\n\n\nKhakis  아카이브 이미지들을 가로로 나열하는 표시 방식을 참고하였다.\n\n\n\nRoadmap:\n\n✓ Dark/Light mode\n\n✓ Image descriptions\n\n✓ Search Bar\n\n✓ Restructure the layout\n\n✓ Switch post language (Korean/English)\n\nRedesign archives menu\n\nOrganize default layout design system\n\nRefactor source code\n",
    "pagename": "Blog",
    "pagenameKo": "블로그",
    "createDate": "2026-08-09",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "projects",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/projects/en/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "projects",
    "tags": []
  }
  

  ,
  {
    "title": "Sunrise",
    "url": "/projects/en/sunrise.html",
    "content": "At the start of each month, I watch the rising sun and the sky to welcome a new beginning. I record these first moments and pause to reflect on the passage of time and the start of another month.\n\nStart Date: 2024-01-01T08:00:17Z\n\nStatus: In Progress\n\nAddress: https://hansanhha.github.io/sunrise\n\n\n\n23 Times, 18 Places\n\nSeoul Mongchontoseong Earthen Fortification January 2024 June 2026\n\nSeonyudo Park March 2024 November 2024\n\nGuksabong Peak April 2024\n\nYongmasan May 2024\n\nNodeul Island June 2024\n\nBoramae Park July 2024 May 2025 April 2026\n\nSky Park December 2024 March 2026\n\nSite Of Moaksan Moutain Beacon Fire East Station January 2025\n\nSamseong Haemaji Park February 2025\n\nSayukshin Park March 2025\n\nJamsil Hangang Park April 2025\n\nEungbongsan October 2025\n\nKorea Seoul National Cemetery November 2025\n\nYTN Seoul Tower December 2025\n\nYongbongsan Mountain Natural Recreation Forest January 2026\n\nMyeong-dong Cathedral February 2026\n\nYongyangbongjeojeong Park May 2026\n\nUmyeonsan July 2026\n\nGrass Garden August 2026\n\n\n",
    "pagename": "Hello, Sunrise",
    "pagenameKo": "Hello, Sunrise",
    "createDate": "2026-08-13",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "projects",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/projects/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "projects",
    "tags": []
  }
  

  ,
  {
    "title": "Sunrise",
    "url": "/projects/sunrise.html",
    "content": "매월 초 떠오르는 해와 하늘을 바라보며 새로운 한 달을 맞이한다. 이 달의 첫 순간을 기록하고 지켜보며 반복되는 시간 속에서 새로운 시작을 의식한다.\n\n시작일시: 2024-01-01T08:00:17Z\n\n상태: 진행 중\n\n주소: https://hansanhha.github.io/sunrise\n\n\n\n23차례, 18곳\n\n몽촌토성공원 2024년 1월 2026년 6월\n\n선유도공원 2024년 3월 2024년 11월\n\n국사봉 2024년 4월\n\n용마산 2024년 5월\n\n노들섬 2024년 6월\n\n보라매공원 2024년 7월 2025년 5월 2026년 4월\n\n하늘공원 2024년 12월 2026년 3월\n\n무악산 동봉수대 2025년 1월\n\n삼성 해맞이공원 2025년 2월\n\n사육신공원 2025년 3월\n\n잠실 한강공원 2025년 4월\n\n응봉산 2025년 10월\n\n국립서울현충원 2025년 11월\n\n남산서울타워 2025년 12월\n\n용봉산 자연휴양림 2026년 1월\n\n명동대성당 2026년 2월\n\n용양봉저정공원 2026년 5월\n\n우면산 2026년 7월\n\n그라스정원 2026년 8월\n\n\n",
    "pagename": "Hello, Sunrise",
    "pagenameKo": "Hello, Sunrise",
    "createDate": "2026-08-13",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "projects",
    "tags": []
  }
  



  ,
  {
    "title": "Java virtual machine",
    "url": "/code/Java%20Virtual%20Machine.html",
    "content": "\n  JVM 실행 과정\n  자바 빌드\n    \n      META-INF와 MANIFEST.MF\n      Fat JAR (JAR Inside JAR)\n    \n  \n  JVM 부팅 - 클래스로더와 클래스패스\n    \n      클래스로더의 로딩 과정\n    \n  \n  JVM 메모리 - 런타임 데이터 영역\n  JVM 실행엔진 - JIT Compiler, Interpreter\n  전체 흐름\n\n\nJVM 실행 과정\n\nJVM (Java Virtual Machine)은 자바 바이트코드를 실행하는 가상 머신으로 JRE에 포함되어 있다.\n\nJRE (Java Runtime Environment)는 JVM과 자바 표준 라이브러리를 포함한 자바의 실행 환경이다.\n\nC/C++은 컴파일러가 기계어로 번역하여 특정 운영체제와 CPU 아키텍처를 대상으로 실행 가능한 바이너리 파일(기계어)을 빌드한다.\n\n이 방식은 런타임에 실행을 빠르게 할 수 있지만 플랫폼마다 빌드를 해야하거나 플랫폼 종속적인 코드를 작성해야 하는 단점이 있다.\n\n자바는 플랫폼으로부터 독립되어 빌드를 한 번만 하면 여러 플랫폼에서 실행될 수 있도록 소스 코드와 기계어 사이의 중간 계층을 두었는데, 그게 바로 JVM이다.\n\n자바 및 JVM 언어(코틀린, 스칼라 등)를 컴파일하면 기계어 대신 JVM이 읽고 해석할 수 있는 바이트코드를 생성한다.\n\nJVM은 런타임에 바이트코드를 기계어로 번역하여 실행하는 역할을 한다.\n\n.java, kt, .scala… &lt;-&gt; JVM(.class) &lt;-&gt; machine code\n\n이 글은 자바 소스 코드가 컴파일되어 기계어로 실행되는 과정을 살펴본다.\n\n먼저 개발자가 작성한 소스 코드를 바이트코드로 변환하는 과정부터 보자.\n\n자바 빌드\n\n\n\n자바 애플리케이션은 소스코드(.java) 이외에도 빌드 설정 파일, 리소스 파일, 테스트 코드 등을 포함한다.\n\n개발자가 IDE 또는 CLI 명령어(./gradlew build, mvn package)를 입력하면 빌드 도구는 빌드 스크립트를 실행한다.\n\n빌드 스크립트를 통해 의존성 정보를 분석한 뒤 로컬 캐시를 확인하고 필요한 라이브러리가 없다면 Maven Repository와 같은 원격 저장소에서 아티팩트를 다운로드하여 캐시에 저장한다. (그레이들 로컬 캐시: ~/.gradle/caches/modules-2/files-2.1/)\n\n그리고 자바의 컴파일러 javac를 통해 소스코드(.java)를 바이트코드(.class)로 변환한다.\n\n소스 코드에 @Getter(Lombok), @Mapper(MapStruct)과 같이 컴파일 시점에 처리되어야 하는 어노테이션이 있으면 해당 어노테이션을 지원하는 라이브러리의 어노테이션 프로세서를 통해 추가 코드를 생성하거나 컴파일 대상 코드를 보완한 뒤 컴파일을 진행한다. (.java 파일 자체를 수정하지 않음)\n\n소스 코드가 컴파일되면 테스트 코드도 별도로 컴파일한 후 테스트를 실행한다. 일반적으로 테스트를 실패하면 빌드에 실패하게 된다.\n\n모든 테스트를 통과하면 컴파일된 클래스 파일(.class), 리소스 파일, 메타데이터(META-INF) 등을 하나의 아티팩트(app.jar)로 패키징한다.\n\n일반적인 자바 애플리케이션은 JAR 파일을 생성한다.\n\n웹 애플리케이션은 배포 환경에 따라 WAR을 생성할 수도 있으며, 스프링 부트 애플리케이션은 의존 라이브러리까지 포함한 실행 가능한 Fat JAR을 생성한다.\n\nMETA-INF와 MANIFEST.MF\n\nMETA-INF (META Information) 디렉토리는 아티팩트(JAR/WAR)에 대한 메타데이터를 저장한다.\n\n아티팩트에 대한 설명, 실행 방법, 실행에 필요한 요소 위치 등의 정보를 담는다.\n\napp.jar\n├── META-INF\n│   ├── MANIFEST.MF\n│   ├── NOTICE.txt\n│   ├── LICENSE.txt\n│   └── ...\n│\n├── com/example/Main.class\n├── com/example/UserService.class\n└── ...\n\n\nMENIFEST.MF는 프로그램이 실행될 때 JVM에게 꼭 필요한 중요한 정보를 알려주기 위해 사용된다.\n\nMain-Class: 프로그램의 시작점이 되는 main 메서드를 가진 클래스 이름을 지정한다.\n\nImplementation-Title, Implementation-Version: 프로그램의 이름과 버전을 명시한다.\n\nClass-Path: 프로그램이 실행될 때 필요한 다른 외부 JAR 파일들의 위치를 가리킨다.\n\n원래 자바 애플리케이션에서 다른 아티팩트를 의존할 때 프로그램을 실행하려면 java cp app.jar:lib/*처럼 의존성을 명시해야 한다.\n\n의존성 정보를 미리 MANIFEST에 적어두면 매번 명령어로 의존성 경로를 포함하지 않고 프로그램을 실행할 수 있다.\n\nManifest-Version: 1.0\nMain-Class: com.example.MyApp\nClass-Path: lib/dependency1.jar lib/dependency2.jar\n\n\n스프링 부트 애플리케이션을 빌드하면 아래와 같은 MANIFEST.MF 파일이 자동으로 생성된다.\n\nManifest-Version: 1.0\nMain-Class: org.springframework.boot.loader.launch.JarLauncher\nStart-Class: com.example.SpringBootExampleApplication\nSpring-Boot-Version: 4.0.6\nSpring-Boot-Classes: BOOT-INF/classes/\nSpring-Boot-Lib: BOOT-INF/lib/\nSpring-Boot-Classpath-Index: BOOT-INF/classpath.idx\nSpring-Boot-Layers-Index: BOOT-INF/layers.idx\nBuild-Jdk-Spec: 25\nImplementation-Title: demo\nImplementation-Version: 0.0.1-SNAPSHOT\n\n\n프로그램의 시작점인 Main-Class에 스프링 부트의 런처가 지정된다.\n\n스프링 부트 런처는 Fat JAR에 포함된 다른 JAR 파일, 클래스들을 클래스패스에 추가하고 Start-Class에 지정된 클래스를 실행한다.\n\nStart-Class에 지정된 클래스는 @SpringBootApplication 어노테이션이 선언되어 있으며 SpringApplication.run()을 호출하는 main 메서드를 가진다.\n\nFat JAR (JAR Inside JAR)\n\nFat JAR은 다른 JAR을 포함한 JAR 파일이다. (중첩 JAR)\n\n일반적인 JAR 파일은 JAR 파일을 포함하고 있지 않다.\n\n다양한 라이브러리를 의존하는 스프링 프로젝트가 있다고 해보자.\n\nMy Application\n ├── Spring Framework\n ├── Jackson\n ├── Logback\n └── MySQL Driver\n\n\n이 프로젝트를 빌드하면 app.jar이 생성되는데, 애플리케이션을 실행하기 위해서는 의존 라이브러리의 경로를 명시하여 클래스패스에 등록해야 한다.\n\napp.jar\nmysql.jar\nspring-core.jar\nspring-context.jar\njackson.jar\nlogback.jar\n...\n\n\n# 의존성 경로 명시\njava -cp \"app.jar:lib/*\" com.example.Main\n\n\n스프링 부트의 Fat JAR은 애플리케이션과 의존 라이브러리를 하나의 JAR 파일에 모두 포함하여 그 자체로 프로그램을 실행할 수 있다.\n\nJAR 파일 내부에 어떻게 포함되어 있는지 직접 확인해보자.\n\n# Spring Boot CLI 설치\n# https://start.spring.io에 접속하여 파일을 다운로드받을 수도 있다\n$ mise use -g spring-boot@4.0.6\n\n\n# 스프링 부트 애플리케이션 생성\n$ spring init --build=gradle --type=gradle-project-kotlin --dependencies=web,data-jpa,h2,mysql --java-version=25 --package-name=com.example spring-boot-example\n\nUsing service at https://start.spring.io\nProject extracted to '/Users/hansanhha/Workspace/Playground/spring-boot-example'\n\n\n# 빌드 및 스프링 부트 Fat JAR 압축 해제\n$ cd spring-boot-example &amp;&amp; ./gradlew build\n$ mkdir fat_jar &amp;&amp; jar xvf ./build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar &amp;&amp; cd fat_jar\n\n\n압축 해제된 Fat JAR 파일의 내부는 아래와 같다.\n\nfat_jar\n├── BOOT-INF\n│   ├── classes\n│   │   ├── application.properties\n│   │   ├── com\n│   │   │   └── example\n│   │   │       └── SpringBootExampleApplication.class\n│   │   ├── static\n│   │   └── templates\n│   ├── classpath.idx\n│   ├── layers.idx\n│   └── lib\n│       ├── jackson-core-3.1.2.jar\n│       ├── h2-2.4.240.jar\n│       ├── hibernate-core-7.2.12.Final.jar\n│       ├── HikariCP-7.0.2.jar\n│       ├── spring-boot-4.0.6.jar\n│       └── ...\n├── META-INF\n│   ├── MANIFEST.MF\n│   └── services\n│       └── java.nio.file.spi.FileSystemProvider\n└── org\n    └── springframework\n        └── boot\n            └── loader\n                └── launch\n                    └── JarLauncher.class\n\n\n크게 BOOT-INF와 META-INF, org/springframework/boot/loader 디렉토리가 있다.\n\nBOOT-INF/classes: 컴파일된 애플리케이션 코드와 리소스 파일들을 보관한다.\n\nBOOT-INF/lib: 스프링 부트 애플리케이션에서 의존하는 다른 JAR 파일들을 보관한다.\n\nBOOT-INF/clsspath.idx: 스프링 부트 애플리케이션 실행을 최적화하기 위해 BOOT-INF/lib 안에 있는 JAR들을 어떤 순서로 클래스패스에 추가할지 미리 정의한 인덱스 파일이다.\n\nBOOT-INF/layers.idx: Fat JAR 내부를 도커/OCI 레이어 단위로 분리하는데 사용된다.\n\nMETA-INF: JVM이 스프링 부트 애플리케이션을 실행할 수 있도록 자동 생성된 MANIFEST.MF 파일을 보관하고, FileSystemProvider을 통해 내장된 JAR 파일을 로드하는데 사용된다.\n\norg/springframework/loader/: 스프링 부트를 실행하고 내장된 JAR 파일을 JVM에 클래스패스에 추가하는 스프링 부트 런처/로더 디렉토리이다.\n\n자동 생성된 MANIFEST.MF 파일의 내용은 아래와 같다.\n\nJVM이 스프링 부트 애플리케이션을 실행하면 Main-Class에 적힌 JarLauncher를 실행한다.\n\nJarLauncher는 BOOT-INF/classes와 BOOT-INF/lib를 탐색하여 클래스로더를 생성한 뒤 Start-Class를 실행하여 스프링 부트 애플리케이션을 시작한다.\n\nManifest-Version: 1.0\nMain-Class: org.springframework.boot.loader.launch.JarLauncher\nStart-Class: com.example.SpringBootExampleApplication\nSpring-Boot-Version: 4.0.6\nSpring-Boot-Classes: BOOT-INF/classes/\nSpring-Boot-Lib: BOOT-INF/lib/\nSpring-Boot-Classpath-Index: BOOT-INF/classpath.idx\nSpring-Boot-Layers-Index: BOOT-INF/layers.idx\nBuild-Jdk-Spec: 25\nImplementation-Title: spring-boot-example\nImplementation-Version: 0.0.1-SNAPSHOT\n\n\nJVM 부팅 - 클래스로더와 클래스패스\n\n자바 빌드 과정을 통해 자바 애플리케이션을 JAR로 빌드하는데 성공했다면 이제 실행할 차례이다.\n\nJVM 프로세스가 시작되면 JVM은 클래스로더와 클래스패스를 구성한 뒤 전달받은 jar 파일 내에 있는 META-INF/MANIFEST.MF 파일을 읽어서 프로그램의 진입점인 Main-Class에 지정된 클래스를 로드하여 실행한다.\n\nJVM은 애플리케이션 내의 클래스와 의존 라이브러리를 모두 메모리에 로드하지 않고 실행에 필요한 클래스만 클래스로더와 클래스패스를 이용하여 JVM 메모리 영역에 로드한다.\n\n스프링 부트 애플리케이션은 Main-Class인 JarLauncher 클래스가 별도의 클래스로더를 구축한 후 @SpringBootApplication의 main()을 호출한다.\n\n이전에 빌드해놓은 스프링 부트 애플리케이션을 실행해보자.\n\n# 방법 1. java CLI 사용\n# 실행 흐름: OS -&gt; java -&gt; JVM -&gt; 스프링 부트 애플리케이션 jar 로드\n$ java -jar ./build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n\n# 방법 2. 빌드 도구 사용\n# 실행 흐름: OS -&gt; java -&gt; gradle wrapper -&gt; JVM -&gt; 스프링 부트 애플리케이션 jar 로드\n$ ./gradlew bootRun\n\n# 방법 3. IDE 내에서 실행\n# 실행 흐름: IDE 런처 -&gt; gradle daemon -&gt; JVM -&gt; 스프링 부트 애플리케이션 jar 로드\n\n\n아래의 명령어를 통해 시스템 내에서 실행 중인 JVM 프로세스들을 확인할 수 있다.\n\n# 방법 1\n$ jps -lv\n94897 ./build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n78626 org.gradle.launcher.daemon.bootstrap.GradleDaemon\n98340 jdk.jcmd/sun.tools.jps.Jps\n...\n\n# 방법 2\n$ jcmd\n94897 ./build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n78626 org.gradle.launcher.daemon.bootstrap.GradleDaemon 9.5.1\n...\n\n# 방법 3\n$ ps -ef | grep 'spring-boot-example-0.0.1-SNAPSHOT.jar'\n501 94897 80458   0  3:03PM ttys000    0:09.23 java -jar ./build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n\n\n\n\nJVM은 패키지 구조(디렉토리 구조)를 기반으로 로드할 클래스를 찾는데, 클래스패스가 패키지 디렉토리의 시작점(루트)이 어디인지 JVM에게 알려주는 역할을 한다.\n\n클래스패스를 기반으로 JVM 내(런타임 데이터 영역)에 .class 바이트코드를 동적으로 로드하는 역할을 클래스로더가 수행한다.\n\n클래스 로더는 자신만의 독립적인 클래스패스 리스트를 관리하는데, 클래스패스에 있는 경로를 순회하여 탐색한 뒤 클래스를 찾았다면 클래스를 검증하고 초기화하여 런타임 데이터 영역에 로드한다.\n\nJDK는 세 가지의 클래스 로더를 제공한다.\n\nBootstrap ClassLoader\n\n  최상위 로더로 java.lang, java.util 등의 JDK 핵심 클래스들을 로드한다.\n  클래스패스: $JAVA_HOME/lib/modules/\n\n\nPlatform ClassLoader\n\n  java.sql, java.xml 등 JDK 확장 모듈을 로드한다.\n  클래스패스: $JAVA_HOME/lib/jmod/\n\n\nApplication ClassLoader\n\n  개발자가 작성한 클래스, 애플리케이션(app.jar), 외부 라이브러리(mysql.jar 등)을 로드한다.\n  -cp 또는 애플리케이션의 java.class.path 환경변수, MANIFEST.MF의 Class-Path\n\n\n클래스 로딩은 상위 -&gt; 하위 클래스 로더 순으로 시도한다.\n\n부트스트랩 클래스로더의 캐시와 클래스패스에 없다면 하위로 내려가서 클래스패스에 있는지 확인한다.\n\n모든 클래스로더에서 찾지 못하면 ClassNotFoundException 예외가 발생한다.\n\nBootstrap ClassLoader (JDK core module)\n        ↓\nPlatform ClassLoader (JDK platform module)\n        ↓\nApplication ClassLoader (Java application classpath)\n        ↓\nLaunchedClassLoader (Spring Boot application classpath)\n\n\n자바는 JAR 파일에 JAR 파일을 중첩해서 넣는 구조를 자바 표준에서 지원하지 않는다.\n\n스프링 부트 애플리케이션은 중첩된 JAR을 JVM이 인식할 수 있도록 커스텀 클래스 로더를 구현한다.\n\nLaunchedClassLoader: 스프링 부트 Fat JAR의 BOOT-INF/classes, BOOT-INF/lib/ 디렉토리를 기반으로 새로운 클래스 패스를 구성하고 필요한 것들을 로드한다.\n\n클래스로더의 로딩 과정\n\n클래스로더는 .class 파일을 JVM 내의 메모리에 로드하기 위해 로딩, 링크, 초기화라는 3단계 과정을 거친다.\n\n로딩\n\n  클래스로더가 지정된 클래스패스에서 파일을 찾아 바이트코드를 읽는다.\n  읽어온 이진 데이터를 분석하여 클래스의 메서드, 변수, 상위 클래스 정보 등을 런타임 데이터 영역의 메서드 영역(Method Area)에 저장한다.\n  로딩이 끝나면 해당 클래스 타입의 java.lang.Class 객체를 생성하여 힙 영역에 등록한다. (이 객체를 통해 리플렉션을 사용함)\n\n\n링크\n\n  가져온 클래스 파일이 안전한지 검사하고, JVM이 실행할 수 있도록 준비한다.\n  링크는 다시 3단계 세부 과정으로 나뉜다.\n    \n      검증\n        \n          읽어온 바이트코드가 자바 언어 명세와 JVM 명세를 정확히 따르는지 확인한다.\n          파일이 손상되었거나 변조되었는지 검사한다. (실패 시 VerifyError 발생)\n        \n      \n      준비\n        \n          클래스나 인터페이스의 정적 변수(static 변수)를 위한 메모리 공간을 할당한다.\n          정적 변수의 값을 기본값으로 채워넣는다. (int-&gt; 0, boolean -&gt; false, 참조형 -&gt; null)\n        \n      \n      분석 (선택적으로 실행)\n        \n          클래스 파일 내의 기호 참조(Symbolic Reference)를 실제 메모리 주소를 가리키는 직접 참조(Direct Referene)로 변경한다.\n          코드에 쓰인 다른 클래스의 이름(텍스트)을 실제 메모리 상의 주소 값으로 연결해주는 작업이다. (런타임에 동적으로 일어나기도 함)\n        \n      \n    \n  \n\n\n초기화\n\n  링크의 ‘준비’ 단계에서 기본값으로 채워졌던 정적 변수들의 값을 소스 코드에 작성되어 있는 값으로 대입한다.\n  static 초기화 블록을 실행한다.\n  JVM은 해당 클래스가 실제로 사용이 되어야 초기화 단계를 실행한다. (User.class처럼 클래스 정보만 읽는 경우엔 클래스를 사용하는 코드가 아니므로 초기화가 수행되지 않음)\n\n\nJVM은 코드를 실행하는 데 필요한 클래스만 JVM 내의 메모리 영역에 로드한다.\n\n의존하거나 사용 중인 모든 jar 파일과 .class 파일들을 로드하지 않기 때문에 메모리를 효율적으로 사용할 수 있다.\n\n아래의 명령을 실행하여 스프링 부트 애플리케이션이 시작될 때 로딩되는 클래스들을 확인할 수 있다.\n\n# 1만줄이 넘는 로그가 쌓이므로 터미널 대신 텍스트 에디터로 확인해야 한다\n$ java -verbose:class -jar build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar &gt; c\nlass_load_log.txt\n\n\nJarLauncher 클래스부터 SpringApplication 클래스가 순차적으로 로딩되는 것을 확인할 수 있다.\n\n// JarLauncher.class 로딩\n[0.041s][info][class,load] org.springframework.boot.loader.launch.Launcher source: file:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n[0.041s][info][class,load] org.springframework.boot.loader.launch.ExecutableArchiveLauncher source: file:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n[0.041s][info][class,load] org.springframework.boot.loader.launch.JarLauncher source: file:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n\n// LaunchedClassLoader.class 로딩\n[0.042s][info][class,load] org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader source: file:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n[0.042s][info][class,load] org.springframework.boot.loader.launch.LaunchedClassLoader source: file:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar\n\n// SpringBootExampleApplication.class 로딩\n[0.095s][info][class,load] com.example.SpringBootExampleApplication source: jar:nested:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/\n\n// SpringApplication.class 로딩\n[0.120s][info][class,load] org.springframework.boot.SpringApplication source: jar:nested:/Users/hansanhha/Workspace/Playground/spring-boot-example/build/libs/spring-boot-example-0.0.1-SNAPSHOT.jar/!BOOT-INF/lib/spring-boot-4.0.6.jar!/\n\n\n스프링 부트 클래스 로더 LaunchedClassLoader의 조상인 자바의 URLClassLoader에 대해 알아보자.\n\nURLClassLoader는 URL 목록(URL Search Path)으로부터 클래스와 리소스를 JVM 메모리 영역에 로드하는 클래스 로더이다.\n\nURLClassPath를 통해 클래스패스를 관리하고 있으며 addURL()을 호출하여 런타임에 클래스패스를 확장할 수 있다.\n\n// 로컬 호스트뿐만 아니라 네트워크를 통해 클래스를 로딩할 수도 있다\nURL[] urls = {\n    new URL(\"file:/app/lib/mysql.jar\"),\n    new URL(\"jar:file:/app/app.jar!/BOOT-INF/classes/\"),\n    new URL(\"http://example.com/plugin.jar\")\n};\n\nURLClassLoader loader = new URLClassLoader(urls);\n\n\n클래스 로더에 등록된 클래스패스(URLClassPath)의 getResource()를 호출하여 리소스 파일을 가져온 뒤 해당 파일 내에 있는 클래스를 찾아서 byte[]를 읽는다.\n\n그리고 URLClassLoader의 부모인 ClassLoader의 defineClass() 네이티브 로직을 호출하여 바이트코드를 분석한 뒤 클래스의 데이터를 JVM 내에 로딩한다.\n\n스프링 부트의 LaunchedClassLoader는 중첩된 JAR 파일들(BOOT-INF/lib/*.jar)을 평탄화하여 URLClassLoader가 리소스 경로를 따라 파일을 로드할 수 있도록 한다.\n\nJVM 메모리 - 런타임 데이터 영역\n\n\n\n런타임 데이터 영역(Runtime Data Area)은 JVM의 메모리 영역이다.\n\n클래스로더가 .class 파일의 바이트코드를 해석해서 생성한 JVM의 내부 클래스 메타데이터가 이 영역에 로드된다.\n\n.class 파일 자체가 런타임 데이터 영역에 로드되는 것이 아님을 유의하자.\n\n개발자가 아래와 같은 코드를 작성한 뒤 컴파일하여 UserService.class 파일을 생성했다고 가정해보자.\n\npublic class UserService {\n    private String name;\n}\n\n// javac UserService.java -&gt; UserService.class\n\n\nUserService.class 파일 안에는 바이트코드가 저장되어 있다.\n\nCA FE BA BE\n...\n\n\n이 바이트코드는 여러 요소가 나열된 스트림 형태로 다음과 같은 정보로 이루어져 있다.\n\n\n  Magic Number: JVM이 해당 파일을 자바 클래스 파일로 인식하게 하는 식별자 (모든 클래스 파일의 매직넘버는 0xCAFEBABE임)\n  Version: 클래스 파일의 메이저/마이너 정보\n  ConstantPool: 클래스 내에서 사용되는 상수, 메서드 이름, 변수 이름, 클래스 이름 등의 정보(심볼릭 레퍼런스)를 모아둔 테이블\n  Access Flags: 클래스의 속성을 나타내는 정보 (public, abstract 등)\n  This Class/Super Class: 현재 클래스와 부모 클래스를 가리키는 정보\n  Interfaces: 구현하고 있는 인터페이스 정보\n  Fields: 클래스 내에 선언된 필드들의 정보\n  Methods: 메서드 이름, 시그니처, 접근제어자, 메서드의 실제 실행 코드(바이트코드)\n  Attributes: 클래스에 대한 부가 정보 (소스 파일명, 디버깅 정보 등)\n\n\n앞서 설명한대로 URLClassLoader가 리소스 파일을 byte[]로 읽고 네이티브 로직을 호출하면 스트림을 분석하여 메타데이터로 변환한 뒤 런타임 데이터 영역에 로드하는 것이다.\n\n구체적으로 런타임 데이터 영역 중 메서드 영역(Method Area)에 채워진다.\n\n메서드 영역은 자바 프로그램 실행에 필요한 메타데이터 정보와 공유 데이터를 보관하며 프로그램이 끝날 때까지 유지된다.\n\n모든 스레드들은 이 영역을 함께 사용한다.\n\n메서드 영역은 주로 3가지 상황에서 활용된다.\n\n  클래스가 처음 사용될 때: 소스 코드에서 클래스를 처음 언급하거나 사용할 때 클래스 로더가 .class 파일을 읽어 분석한 데이터를 메서드 영역에 저장한다. 이후에 동일한 클래스가 사용되면 메서드 영역의 데이터를 재사용한다.\n  객체를 생성할 때 (new 키워드): 객체를 새로 생성할 때 Heap 영역에 인스턴스가 생성되는데, 이 때 생성된 인스턴스는 메서드 영역에 있는 클래스를 참조한다.\n  메서드를 실행할 때: user.sayHello()와 같이 메서드를 호출하면 JVM의 실행 엔진이 메서드 영역으로 찾아가서 바이트코드 명령어와 스레드의 스택 영역을 활용하여 연산하고 실행한다.\n\n\n클래스로더가 메서드 영역에 클래스의 메타데이터를 로드하면 이를 참조할 수 있는 Class 객체를 힙 영역에 생성한다.\n\n이 객체가 자바 코드에서 String.class, obj.getClass()를 호출할 때 얻는 객체로 메서드 영역에 로드된 클래스의 메타데이터를 가리킨다.\n\n힙 영역은 객체와 배열이 저장되는 JVM의 동적 메모리 영역이다.\n\n자바 코드에서 new 연산자를 사용하면 메서드 영역을 참고하여 해당 클래스의 인스턴스를 힙 영역에 생성한다.\n\n// name, user, arr 인스턴스는 모두 힙 영역에 생성된다.\nString name = new String(\"hansanhha\");\nUser user = new User();\nint[] arr = new int[100];\n\n\n이 공간에 생성된 객체는 특정 스레드의 스택 프레임에서 참조된다.\n\n위의 name, user, arr 변수는 힙 영역에 생성된 String, User, int[] 인스턴스를 가리킨다.\n\n객체를 스택에 저장하지 않고 힙 영역에 두는 이유는 뭘까?\n\n아래와 같이 힙 영역없이 객체를 스택에 저장하면 메서드가 끝나는 순간 객체도 함께 제거된다.\n\npublic User createUser() {\n    User user = new User();\n    return user;\n}\n\n\n객체의 생명주기가 메서드 호출의 생명주기보다 훨씬 길 수 있기 때문에 힙에 객체를 두고 스택 프레임에서 이를 참조하는 것이다.\n\n메서드 종료가 종료되어 스택 프레임이 제거되어도 객체는 유지되어 재사용할 수 있게 된다.\n\n힙 영역은 동적 메모리 영역이지만 무한히 커지지 않는다.\n\nJVM은 필요에 따라 힙을 확장하거나 축소할 수 있지만 최대 크기는 정해져 있다.\n\nJVM 시작 시 일정 크기로 할당되며 옵션으로 힙의 크기를 지정할 수 있다.\n\n# -Xms: 초기 힙 크기 (512MB)\n# -Xmx: 최대 힙 크기 (2GB)\njava -Xms512m -Xmx2g app.jar\n\n\n실제 메모리 상태를 한 번 살펴보자.\n\n# 스프링 부트 애플리케이션 실행\n$ ./gradlew bootRun\n\n# 실행된 스프링 부트 애플리케이션 PID 확인\n$ jps\n60611 Jps\n60597 SpringBootExampleApplication\n...\n\n# 힙 메모리 상태 확인\n$ jcmd 60597 GC.heap_info\n60597:\ngarbage-first heap   total reserved 4194304K, committed 69632K, used 50229K [0x00000003c0000000, 0x00000004c0000000)\n region size 2048K, 13 young (26624K), 1 survivors (2048K)\n\n\n메서드 영역과 마찬가지로 모든 스레드에서 공통적으로 사용되는 공간이다.\n\n만약 힙의 최대 크기를 넘어서서 메모리를 사용하려고 하면 OutOfMemoryError가 발생하게 된다.\n\n이를 방지하고자 JVM은 가비지 컬렉터로 사용되지 않는 인스턴스를 정리한다.\n\n\n\n스택과 PC 레지스터, 네이티브 스택은 각 스레드별마다 독립적으로 사용하며 스레드가 시작될 때 생성된다.\n\n스레드에서 메서드를 호출할 때마다 해당 메서드의 상태 정보(매개변수, 지역변수, 반환 값 등)를 보관하는 스택 프레임이 생성되어 스택에 쌓인다.\n\nUser user = new User();\n\n\n위와 같이 객체를 생성하면 User 인스턴스는 힙 영역에 만들어지고 user 변수는 해당 스레드의 스택 프레임에 저장되어 생성된 인스턴스를 참조한다.\n\n메서드 호출이 종료되면 스택 프레임은 스택에서 제거된다.\n\n스택의 크기는 크기를 조절할 수 있는 힙과 달리 고정되어 있다.\n\n스레드의 스택 크기를 넘어서게 되면 StackOverFlowError가 발생한다.\n\nPC 레지스터는 메서드 영역에 저장된 바이트코드를 가리킨다.\n\nJVM 실행 엔진은 스레드의 PC 레지스터가 가리키는 바이트코드와 스택 프레임에 저장된 상태 정보를 참고하여 코드를 실행한다.\n\n네이티브 메서드 스택은 네이티브 코드를 실행할 때 사용하는 스택이다.\n\n네이티브 코드는 JVM의 실행 엔진을 거치지 않고 OS와 CPU가 직접 실행하는 코드를 말한다. (C/C++, Rust, 어셈블리어 등으로 작성된 코드)\n\n// 자바 코드\n.java\n ↓\n.class (Bytecode)\n ↓\nJVM\n ↓\nMachine Code (JIT)\n\n// 네이티브 코드 (C)\n.c\n ↓\nMachine Code\n ↓\nCPU 직접 실행\n\n\nJVM은 플랫폼 독립적이지만 운영체제 기능을 사용하려면 OS API를 호출해야 한다.\n\n자바만으로는 현재 CPU 시간 읽기, 파일 열기, 소켓 생성 등의 작업을 직접 할 수 없기 때문에 네이티브 코드를 사용한다.\n\npublic class System {\n\n    // native 키워드를 붙여 네이티브 코드를 호출한다\n    // 이런 메서드를 네이티브 메서드라고 한다\n    @IntrinsicCandidate\n    public static native long currentTimeMillis();\n}\n\n\n자바 메서드의 바이트코드를 실행하기 위해 스택이 있는 것처럼 네이티브 코드도 함수 호출 스택이 필요하다.\n\n이 때 사용되는 것이 네이티브 메서드 스택이다.\n\n자바는 바이트코드가 네이티브 코드를 호출하거나 변환될 수 있도록 JNI(Java Native Interface)라는 계층을 이용한다.\n\nJVM 실행엔진 - JIT Compiler, Interpreter\n\n\n\n클래스로더가 런타임 데이터 영역에 클래스의 메타데이터를 적재하면 실행 엔진은 바이트코드를 읽어서 실행하는 역할을 한다.\n\n자바가 플랫폼 독립적인 특징을 가질 수 있는 건 소스 코드를 곧바로 기계어로 번역하지 않고 중간 언어를 둔 다음, 이를 런타임에 코드를 실행할 OS와 CPU 아키텍처에 맞게 변환해주는 계층이 있기 때문이다.\n\n이 계층이 JVM의 실행 엔진이며 JIT 컴파일러와 인터프리터를 이용하여 바이트코드를 기계어로 바꾼 뒤 실행한다.\n\nJVM 내에는 각각의 바이트코드 opcode에 대응하는 네이티브 코드 조각이 미리 준비되어 있다.\n\n인터프리터는 바이트코드를 한 줄씩 읽은 다음 JVM 내부에 미리 준비된 네이티브 코드를 찾아서 실행한다.\n\n전체 코드를 한 번에 기계어로 컴파일하지 않고 하나씩 매핑하며 기계어 코드를 CPU에게 실행시킨다.\n\nJIT 컴파일러는 자주 실행되는 바이트코드 덩어리(메서드, 반복문)를 발견하면 그 부분을 한 번에 네이티브 기계어로 컴파일한다.\n\n컴파일된 기계어는 메모리에 저장되고, 이후 인터프리터를 거치지 않고 곧바로 CPU가 직접 실행한다.\n\n기계어로 바꿀 뿐만 아니라 코드를 더 빠르게 실행할 수 있는 최적화 방법을 찾아서 적용한다.\n\n인라이닝 최적화\n\nJIT 컴파일러는 단순한 메서드의 호출문이 자주 반복되면 메서드 호출을 없애고 호출되는 메서드의 코드를 직접 복사해서 넣는다.\n\n메서드 호출 오버헤드를 완전히 제거한다.\n\nlong sum = 0;\nfor (int i = 0; i &lt; 10_000; i++) {  // 동일한 메서드 반복\n    sum += calculate(i);\n}\n\n// 인라이닝이 잘 일어나는 작은 메서드\nprivate static int calculate(int x) {\n    return x * 2;\n}\n\n\n전체 흐름\n\n지금까지 살펴본 자바 소스 코드의 빌드부터 실행 과정을 담은 다이어그램이다.\n\n\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-06-08",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "code",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/code/en/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "code",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/code/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "code",
    "tags": []
  }
  



  ,
  {
    "title": "2025 회고",
    "url": "/daily/2025%20%ED%9A%8C%EA%B3%A0.html",
    "content": "2025년…\n\n상반기, 하반기 초중반은 2024년과 별반 다르지 않았다\n\n막연한 생각, 소극적인 취업 활동, 그러다가…\n\n여자친구와 헤어졌다\n\n사람이 바뀔 때는 큰 충격이 필요하다던데 그 말이 맞는 거 같기도 하고\n\n평소에나 잘하지 꼭 데여봐야 안다니께\n\n익숙함에 속아 소중함을 잃지 말자라는 말을 잊어먹어서 그런가\n\n아마도 내가 너무 오만했었던 거 같다\n\n가끔 생각날 때 좋기도 하면서 후회도 되고 미안하거나 하는 복잡 미묘한 감정이 든다\n\n별 것 아닌 순간들이, 돌이켜보면 그 때 행복했었구나 싶기도 하고\n\n동시에 상대방을 대했던 태도나 마음가짐 중 고쳐야 될 것들이 보이기도 했다\n\n아무래도 그냥도 아니고 다양한 감정으로 여러 번 곱씹어보게 되니까 아쉬운 것들이 보이는거지\n\n오히려 헤어짐으로써 더 많은 것들을 배우게 되고 존재의 소중함을 알게 됐다\n\n다행히도 그 전보다 더 나은 사람이 되려는 신호이지 않을까 싶네\n\n올해가 작년과 비슷하게 흘러가기도 했지만 이별이 워낙 임팩트가 커서 사실 이거 말고는 다른 일이 기억나지 않는다\n\n아 스타벅스에서 일하기 시작했지\n\n직원 할인 하나는 좋다\n\n올해 1월에 2025년에는 취업하고 이사할거라고 목표를 세웠지만 이룬 건 하나도 없구만\n\n오히려 계획에 없던 이별을 해버렸고..\n\n아쉬운 건 아쉬운거지만 죄책감까지 가질 필요는 없지\n\n정신 똑띠 차리고 살아가보자. 뒤돌아봤을 때 후회하지 않고 싶다 더이상\n\n내년 회고가 벌써 기대된다 달라진게 있을까?\n\n\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-01-03",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "2026년 첫 스타뜨",
    "url": "/daily/2026%EB%85%84%20%EC%B2%AB%20%EC%8A%A4%ED%83%80%EB%9C%A8.html",
    "content": "대박\n\n취업에 성공하다니\n\n기쁘다\n\n사실 기쁘기도 하면서 아쉽다\n\n이렇게 적극적으로 하면 금방 일을 시작할 수 있던 거 였는데 …\n\n스스로에게 요구하는 수준을 너무 높게 잡다보니 자신감이 떨어졌고 취직이라는 걸 막연하게만 생각했었다\n\n오히려 되든 안되든 부딪혀보려고 하니까 무엇이든 할 수 있을 거 같았다\n\n타이밍이 좋은건지, 운이 좋은건지 어쨌든 회사에 들어갔다\n\n진작에 이렇게 할 걸이라는 생각이 머릿속에 맴돈다\n\n이번 달은 쏜살같이 지나갔다\n\n월초에는 계속 면접보면서 개인 프로젝트 진행하고\n\n이후 합격한 뒤에는 회사 생활 적응하면서 주말에는 스타벅스에서 근무했다\n\n사람이 이렇게 바뀔 수 있나 싶을 정도로 한량이었던 내가 바쁘게 살았다\n\n회고를 작성하는 마지막 주 토요일이 되서야 오랜만에 휴일을 맛보고 있다 (주말이 자유로운게 어색하다 - 이제 직원 할인을 받을 수 없다 ㅜㅜ)\n\n날씨가 조금 따뜻해졌고 햇살도 따스한 김에 전시회에 갔다왔다\n\n예술에 대해 제대로 아는게 하나도 없지만 나름대로 작품이나 작가에 대해 알아보려고 한다\n\n보통 작가마다 아이코닉한 스타일이 있어서 몇 개의 작품을 보다보면 작품에 어떻게 접근해야 되는지 느낌이 온다\n\n어떤 작가는 의도나 구도를 해석해야 하거나 붓 터치 등 기술적인 것들을 보아야 한다면, 어떤 작가는 그 자체로 아름다움을 느끼게 해준다\n\n나는 몽환적이고 서정적인 작품들을 좋아하는데 오늘 보러 간 장 미셸 바스키아의 작품은 완전히 정반대에 놓인 것들이었다\n\n상당히 삐죽삐죽하고 기괴하면서 강하고 날카롭기도 하고 자유분방한 색깔이었다\n\n특히 그림안에 단어들이 빼곡히 적혀있는 것이나 컴포지션 공책에 남긴 문장들이 전시회 액자에 걸려있는게 센세이션했다\n\n훈민정음 해례본을 가지고 있는 것을 보고 정말 특이하다 싶었다\n\n60년대 미국사람인데 …\n\n한 번도 생각하지 못했던 것들을 구경하면서 재밌게 시간을 보냈다\n\n내일은 2월이니까 해를 맞이할 날이다\n\n용양봉저장공원\n\n저번에 응봉산으로 해맞이하러 버스타고 가는 길에 어떤 사람들이 이 근처에 내리길래 냅다 찾아봤다\n\n노들섬 근처라 해가 잘 보일 거 같아서 가보려한다\n\n해가 활짝 올라왔으면 좋겠다\n\n이번 달에 힘차게 올라오는 해를 바라보면서 열심히 살아야겠다는 다짐을 한 뒤에 회사에 들어오게 됐는데\n\n다음 달에도 강렬한 태양을 바라보고 나서 좋은 일이 있기를 바란다\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-01-30",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "Deadbeat",
    "url": "/daily/Deadbeat.html",
    "content": "월초에 사당역 근처에 있는 서울시립 남서울미술관에 방문했다.\n\n이 건물은 맨 처음 회현동에서 벨기에 영사관으로 사용되다가 1980년대에 현재의 관악구 위치로 이전되며 서울시의 미술관이 되었다.\n\n1층에는 권진규 작가의 상설전시를, 2층에는 서울미디어시티 프리비엔날레 ‘포란’을 전시하고 있었다.\n\n\n\n비엔날레는 2년마다 열리는 대규모 국제 미술 전시회를 말한다. 이탈리아의 베네치아 비엔날레 행사가 최초이며 이후 전세계 여러 도시로 확산되었다고 한다.\n\n고정된 형식이 있다기보다는 각 국가/도시가 가진 특징을 살려서 예술을 소개하거나 예술을 통해 다양한 질문과 메시지를 던지는 플랫폼으로서 기능한다.\n\n국내에는 서울, 부산, 광주 비엔날레가 있다. 원래는 모두 짝수년도에 진행했는데 코로나 때 서울과 광주는 한 번 미루는 바람에 부산만 짝수년도, 서울과 광주는 홀수년도에 개최한다고 한다.\n\n그래서 다가오는 내년 전시에 앞서 지난 비엔날레 활동을 돌아보고 다가올 비엔날레를 준비하는 프리비엔날레 프로그램(포란)을 진행하는 것이다.\n\n서울미디어시티비엔날레는 국내에서 유일하게 미술관(서울시립미술관)이 주최한다고 하며 (부산과 광주는 지자체와 법인·조직위원회가 운영한다) 서울과 미디어에 관련한 사유와 경험을 공유하는 장으로써 진행되어왔다.\n\n프로그램의 제목인 포란은 알을 품는 행위를 의미한다.\n\n리플렛의 내용에 따르면 ‘알’은 무엇이 태어날지 예측할 수 없는, 불확실한 새로운 가능성을 의미한다.\n\n알의 불확실성이 미래에 대한 질문으로 작용하고, 알을 품는 행위인 포란이 그러한 질문을 담는 비엔날레를 비유한다.\n\n이 전시를 보고 기억으로 남겨놓고 싶었던 것은 리플렛에 소개된 질문들로 지금까지 서울미디어시티비엔날레가 진행해온 것들을 몇 가지 개념으로 압축해놓은 것이다.\n\n질문들은 명확한 답을 원하기보다 이 비엔날레에서 진행된 전시들의 중심 주제가 무엇인지 보여주며 동시에 도시, 미디어, 기술의 관계를 주로 탐색하는 곳에서 작품으로 하여금 예술로써 어떻게 승화했을지 기대감을 갖게 해주었다.\n\n그리고 각 질문들을 직·간접적으로 이용하여 우리의 일상을 생각하는데 도움이 되지 않을까 싶었다.\n\n\n  기술과 미디어는 인간의 감각과 경험을 어떻게 재구성하는가?\n  연결된 세계 속에서 형성되는 관계의 조건은 무엇인가?\n  언어는 어떻게 세계를 구성하는 동시에 소통의 불가능성을 드러내는가?\n  보이지 않는 구조와 권력은 어떤 방식으로 작동하며, 그 속에서 저항은 어떻게 조직될 수 있는가?\n  경계는 어떻게 재구성되며, 우리는 어떤 방식으로 세계를 다시 사유할 수 있는가?\n\n\n산책\n\n동네를 걷다 보면 재밌는 친구들을 만날 수 있다.\n\n그 중 내가 가장 좋아하는 친구인 춘장이. 이 녀석은 무던하고 애교많은 성격을 가지고 있어서 여러 사람들에게 인기가 많다.\n\n사료를 주는 분들이 몇몇 있는 거 같던데 자기가 알아서 식단을 관리하는건지 건강한 체형을 유지하고 있다.\n\n\n\n두 번째는 거북이. 카공족 당곡사거리점 입구 반대편에 엉금책방이라고 하는 독립서점이 있는데 이 곳에 거북이가 산다.\n\n덩치가 꽤나 크다. 예전에 한 번 들어봤는데 조금 무거웠던 것 같았다. 아마도 춘장이가 이 거북이를 보면 잠깐은 관심을 가져주지 않을까 싶다.\n\n주인분이 가끔 길가에 내놓아 산책을 시키는 것 같은데 엉금엉금 기어가는게 귀엽다.\n\n\n\n마지막은 닭이다. 낮이나 저녁쯤 도림천에 가면 가끔 누군가가 키우는 닭을 볼 수 있다.\n\n엉금책방의 거북이처럼 이 닭도 크다. 사실 이렇게 큰 닭은 처음 본다.\n\n빨간 닭 벼슬, 황금빛 털, 곧고 단단한 발을 가지고 있어서 이 친구한테서는 치킨보다 공룡이 떠오른다.\n\n춘장이가 은근 겁이 있는 편인데 아마 이 닭을 보면 놀래서 부리나케 도망갈 것 같다.\n\n\n\n산책을 하면 이렇게 재밌는 친구들을 만날 수 있다. 사람을 관찰할 수도 있고 동네를 구경할 수도 있다.\n\n여름이 지나 날이 선선해지면 각 자치구의 대표 동네를 걸어보려고 한다. 서울에는 25곳의 자치구가 있는데 하나씩 알아가는 재미가 있지 않을까 싶다.\n\n애니메이션과 영화\n\n체인소맨이라는 애니메이션을 봤다.\n\n귀멸의 칼날에 번번이 실망하고 나서 간간히 지브리 애니만 보다가 진격의 거인 이후로 오랜만에 몰입하면서 본 작품이다.\n\n소년만화이긴 하지만 주인공이 다사다난한 경험을 하며 점점 강해지는 일반적인 애니와는 조금 다르게, 웬만한 클리셰는 부숴버리고 빠른 속도로 이야기를 전개한다.\n\n작중 가장 임팩트 있던 여우의 악마 등장씬. 멋있어서 나도 괜히 똑같이 손동작을 하고 콩이라고 불러봤다.\n\n안타깝게도 이 장면 이후로 여우의 악마는 다른 악마에게 밀리는 모습만 보여줘서 실망하게 되었다.\n\n\n\n그 다음은 극장판 체인소맨 레제편. 레제는 덴지와 마찬가지로 무기 인간이며, 덴지의 심장(체인소맨의 심장)을 탈취하기 위해 소련에서 파견된 자객이다.\n\n둘은 공중전화 부스에서 처음 맞닥뜨리는데 이 때 레제는 덴지를 곧바로 죽이지 않고 오히려 호감을 갖게 된다.\n\n덴지는 레제가 일하는 카페를 매일같이 찾아가며 같이 논다. 아래의 사진은 레제가 덴지에게 수영을 알려주겠다고 말하며 수영장 안으로 들어오라고 하는 장면이다.\n\n레제는 폭탄의 악마이기 때문에 물 속에서 가장 취약함에도 불구하고 가식없이 덴지에게 자신의 모습을 모두 보여준다.\n\n이후에 어느 낭만적인 불꽃놀이 축제날 레제가 덴지에게 좋아한다고 고백하고 둘이 멀리 떠나자고 제안하지만 덴지가 거절하면서 비극적인 연출이 시작된다.\n\n덴지는 체인소맨으로 변하고 동료들의 도움을 받아 버티고 버텨 끝끝내 레제로부터 살아남는다.\n\n영화 거의 끝부분에서 덴지는 레제에게 같이 떠나자고 하고, 그 카페에서 기다리겠다고 한다.\n\n레제는 거절하는 듯 했지만 기차를 타고 떠나려다가 덴지를 만나기 위해 카페로 발걸음을 돌렸다.\n\n카페에 거의 다 와갈 즘에 항상 지나던 골목길에서 마키마를 맞닥뜨리고 천사의 악마에게 공격받으며 결국 둘은 이별하게 된다.\n\n사실 레제도 덴지처럼 학교를 가본 적이 없는, 덴지처럼 이용당하며 살아온 아이로서 둘의 순수하고 풋풋한 사랑이 이어지지 못하여 여운이 더 남았다.\n\n\n\n8편의 영화를 봤다.\n\n프렌치 셰프, 시애틀의 잠 못 이루는 밤, 미드나잇 인 파리, 중경상림, 아메리칸 셰프, 헤어질 결심, 누구의 딸도 아닌 해원, 모노노케 히메\n\n누군가가 영화 한 편 추천해달라고 하면 모두 거론할 수 있을 정도인데, 딱 하나만 고르자면 시애틀의 잠 못 이루는 밤이다.\n\n이 영화는 로맨틱 코미디 장르인데, 다른 로맨스 영화와 다르게 남녀 주인공들이 만나는 시간은 러닝 타임 중 10분도 채 안될거다.\n\n그런데 어떻게 로맨스가 될 수 있냐고? 직접 보면 알게 된다. 보다 보면 어느새 둘의 만남을 응원하고 있을지도 모른다.\n\n맥 라이언, 톰 행크스의 연기와 스타일링, 90년대 아늑한 분위기를 느끼기에도 좋다.\n\n\n\nDeadbeat\n\nDeadbeat는 The Slow Rush 앨범 발매 이후 5년만에 발매되는 테임 임팔라의 앨범으로 작년 7월인가 10월 경에 공개된 걸로 알고 있다.\n\n이 앨범의 No Reply 곡 마지막 피아노 아웃트로가 그리움, 아련한 감정을 불러일으키면서도 약간의 날 것의 느낌이 있어 마음에 들었다.\n\n그래서 가장 맨 마지막 부분만 잘라내어 블로그에 업로드 해두어 놓았다. No Reply\n\nDeadbeat는 Dead beat - 망하거나 아마추어적인 비트 - 또는 일을 하려 하지 않고 책임감 없이 사회에 적응하지 못하는 사람. 게으름뱅이, 즉 백수를 의미한다고 한다.\n\n첫 번째 트랙인 My Old Ways에서 아마도 케빈 파커 자신 또는 어떤 가상의 인물이 반복되는 유혹에 빠져 같은 실수를 반복하여 한탄하고 체념하는 내용을 다룬다.\n\n일정한 직업없이 놀고먹는 사람을 말하는 한량. 그러면서도 나름대로 살아보겠다고 이것저것 해보려고 하지만 원래의 제자리로 돌아오는 내 일상을 말해주는 것 같았다.\n\n가끔 전시를 보거나, 영화를 보거나, 책을 읽거나, 궁금한 것을 알아보는 등 문화생활, 사유하는 행동이 모두 부질없고 무가치하게 느껴질 때가 있다.\n\n지금 내가 해야 할 일은 외면한 채 도피하기 위해 이런 것들을 하는 게 아닐까하는 의문이 들기 때문이다.\n\n그러면서 난 왜 매번 반복되는 실수를 할까, 달라질 수 있을까, 어떻게 변화하고 싶은가 하는 고민이 끝없이 들다가도 이번에는 잘 될 것 같다, 그 전보다 좀 나아졌네, 이런 것도 알게 됐다 하는 긍정적인 생각들로 가득 찰 때도 있다.\n\n이 앨범과 관련하여 다른 사람들의 의견이 궁금해서 레딧을 찾아보다가 나름 위안이 되는 댓글이 있었다.\n\nWhich is quite relatable, bc sometimes you’re the dickhead and sometimes you’re getting shit on.\n\nAnd somewhere inside this rat race of a deadbeat fest are a few moments where there is some real connection. And those moments wouldn’t have come if you hadn’t been what you were.\n\nSo what even is bad, if it brings you to something good. Like a new perspective on regret, those things you spend time regretting actually brought you where you are today and made you who you are.\n\n\n좋은 결과를 가져다준다면 그 과정에서 있었던 일들은 나쁜 게 아니라 그 결과를 내게끔 만들어준 것들이라니.\n\n호사다마인건가\n\n사실 결과가 좋든 안좋든 나는 결국 도돌이표 쳇바퀴를 반복하면서도 앞으로 나아갈려고 하는 사람이란 걸 안다.\n\n이러한 고민들은 포란의 질문들처럼 정답보다 다음을 향한 메시지로써 동작하기에 주기적으로 나를 찾아올거란 것도 안다.\n\n내일은 또 해를 맞이하러 간다.\n\n\n    \n        \n    \n\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-07-31",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/daily/en/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/daily/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "리부트",
    "url": "/daily/%EB%A6%AC%EB%B6%80%ED%8A%B8.html",
    "content": "\n\n리부트(Reboot)는 컴퓨터를 껐다 켜서 시스템을 초기화하고 다시 시작한다는 컴퓨터 용어다.\n\n이전의 맥락이나 상태를 모두 지우고 처음부터 완전히 새롭게 시작한다는 의미로 사용되기도 한다.\n\n퇴사했다.\n\n전체적인 업무와 개발 환경이 생각했던 바와 너무 다르다보니 앞으로 몇 년 버티고 참으면 될 게 아니라고 판단했다.\n\n그래서 리부트를 선택했다.\n\n새롭게 시작하려고.\n\n불확실하고 불안한 마음을 즐길려고 한다.\n\n어떻게 흘러갈지 알 수 없으니까 살아가는 게 더 재밌게 느껴진다.\n\n마치 방랑자같다랄까.\n\n무엇이든 될 수 있고 할 수 있을 느낌이 들면서도 괜스레 주눅들기도 한다.\n\n그래도 하고 싶은 것들을 지금 해봐야 나중에 후회하지 않을 거 같다.\n\n보통 하고 나서 후회하는 것보다 하지 않아서 후회하는 게 더 큰 미련을 남기는 법이니까.\n\n당분간 좋은 자리를 찾을 때까지 이리 저리 떠돌아다닐 예정이다.\n\n마지막으로 걷는 근처 안양천 산책길, 벚꽃들이 모두 새파란 잎으로 바뀌었다.\n\n\n\n장소\n\n국립현대미술관 서울에 방문하여 데미안 허스트 전시회를 관람했다.\n\n\n\n이전에 소멸의 시학 전시회를 관람하러 왔었을 때 전시 준비 중인 걸 보고 보러 올 생각이었다.\n\n퇴사하는 날 회사 동료분들과 대표님에게 마지막 인사를 드리고 나온 뒤 양평역에서 5호선을 타고 광화문역에 내려서 국립현대미술관까지 걸어갔다.\n\n운이 좋게도 방문한 날이 수요일 문화의 날이어서 무료로 관람할 수 있었다.\n\n2018년 대학교 1학년 때 문화/예술과 관련된 교양 수업을 들었는데 그 수업에서 한 명의 작가를 조사하여 발표해야 하는 과제를 받았다.\n\n같이 수업을 듣는 친구도 없었고 예술을 알지도 못하는데 (사실 지금도 잘 모른다) 예술 작가를 발표하라니 난감했었다.\n\n그 때 어떤 경로로 알게 됐는지는 모르겠지만 데미안 허스트라는 작가를 알게 되었고 그의 대표적인 작품들을 발표했었다.\n\n약 8년이 지나 당시에 조사해본 작품을 실제로 보니 말로 설명할 수 없는 오묘한 기분이 들었다.\n\n그 중 가장 기억에 남는 작품은 삶과 죽음의 순환을 보여주는 ‘천년’이다\n\n\n\n목이 잘린 소머리와 수많은 파리가 놓여있고 그 위에는 전기 살충기가 있다.\n\n새로 태어난 파리는 죽은 소머리를 먹으며 자라고 번식한다. 그리고 날아가다가 살충기에 맞아 죽음을 맞이한다.\n\n이 과정은 적나라하게 계속해서 반복한다.\n\n피가 흥건한 소머리와 징그러운 파리들이 잔뜩 있어서 불쾌하게 느껴지지만 작품이 보여주는 사실은 우리의 삶과 크게 다를 바가 없다고 느껴져서 아직도 기억에 남아있다.\n\n전시를 보고 난 뒤 가회동 동네를 걸어다녔다.\n\n북촌으로 유명해서 길거리에 관광객이 많고 언덕도 있지만 멋있는 주택들을 볼 수 있었다.\n\n\n\n나도 언젠가 이런 주택에서 정원을 꾸미고 여유롭게 하루를 보내면서 살아야지\n\n그 다음 날에는 서울숲에 찾아갔다.\n\n작년에 보라매공원에서 진행한 서울국제박람회를 서울숲에서 한다는 소식을 듣고 이 곳은 어떻게 했을지 궁금해서 들렸다.\n\n예쁜 나비가 있더라\n\n\n\n사실 부지가 너무 넓어서 돌아다니다가 지쳤다.\n\n아마 근처 식당에서 돈까스 시켜먹고 카공족에 가서 코딩하며 하루를 보냈던 것 같다.\n\n5월달은 이걸로 끝\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-06-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "봄이 오긴 오는구나",
    "url": "/daily/%EB%B4%84%EC%9D%B4%20%EC%98%A4%EA%B8%B4%20%EC%98%A4%EB%8A%94%EA%B5%AC%EB%82%98.html",
    "content": "회사 점심 시간마다 가끔 들리는 산책 길이 있는데 이번 주에 가보니까 벚꽃이 활짝 폈다\n\n\n\n뭉개뭉개 구름 속에 들어가서 걷는듯한 기분이 든다\n\n산책은 뭐랄까\n\n머리를 맑게 해주고 마음을 평온하게 해준다\n\n날씨가 맑으면 맑은대로, 비오면 비오는대로 그 분위기를 느낄 수 있다\n\n그래서 돌아다닌 걸 좋아한다\n\n새로운 동네를 가거나, 아는 동네라도 조금 변한 모습을 지켜볼 수 있으니까\n\n관찰하는 맛\n\n그래서 그림을 보는 것도 좋아한다\n\n작가가 만든 작품을 주관적인 시선으로 해석하는 게 나름 재미있다\n\n3월달에 클림트와 리치오디의 기적이라는 전시회를 갔엇는데 이런 그림이 있었다\n\n\n\n언뜻 보기엔 어린 아이와 아빠나 할아버지가 같이 있는 것 같지만\n\n한 남자의 어린 모습과 늙은 모습을 동시에 보여주는 듯 했다\n\n어린 아이는 이제 바구니를 만들기 시작하고 있고, 옷을 얇게 입고 있으며 새빨간 짧은 모자를 쓰고 있다\n\n반면 오른쪽 남자는 많은 바구니를 만들어왔고 옷도 조금 더 두툼하게, 모자의 색깔은 탁해졌으며 길게 늘어졌다\n\n그래서 어떤 소년이 일평생 바구니를 만들며 늙어간 모습을 보여준 것 같은 느낌이 들었다\n\n물론 아마도 작가는 소년과 할아버지가 바구니를 짜는 모습을 그린 것이겠지만\n\n국립현대미술관에서 하는 소멸의 시학이라는 전시회에도 갔었다\n\n들어가자마자 흙 밭이 있고 땅을 일구는 분이 있었다\n\n\n\n이 전시회는 이름 그대로 소멸에 대해 주제를 삼고 있었다\n\n“언젠가 썩어갈 운명을 시인하는 작품, 차라리 무엇도 남기지 않기로 마음먹은 작품, 자신의 분해를 공연히 상연하는 작품을 ‘삭는 미술’이라는 이름으로 묶어 소개한다”\n\n시간의 흐름에 따라 사라지고, 또 새롭게 나타날 자연과 생명의 원리를 예술적으로 표현한 듯 했다\n\n보라매공원 산책을 자주 하다보니 계절의 오고감을 잘 느낄 수 있다\n\n새싹이 올라오고, 푸르른 잎들이 바람을 따라 흔들리다가\n\n점점 낙엽이 떨어지고 겨울이 되면 황량해진다\n\n그리고 다시 봄이 찾아오면 생기를 되찾는다\n\n우리의 삶도 이 흐름과 유사하다\n\n시작과 끝이 정해져 있다는 것\n\n조금 다른 건 봄은 다시 찾아오지만 인생의 봄은 두 번 다시 돌아오지 않는다는 점이 아닐까\n\n그리고 언제가 봄이었는지 그 때 자기 자신은 모른다는 점도 말이다\n\n3월 초에 춘장이 보러 갔었는데 당연한듯이 자리를 트고 자는 춘장이\n\n요새는 찾아가도 도통 보이질 않는다\n\n얘도 봄이 오니까 데이트하러 갔나보다\n\n\n\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-04-04",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "서울 나들이",
    "url": "/daily/%EC%84%9C%EC%9A%B8%20%EB%82%98%EB%93%A4%EC%9D%B4.html",
    "content": "오랜만에 보는 춘장이\n\n아는 채를 해주는 것만으로도 고마울 따름이다.\n\n내가 혼잣말로 뭐라고 하면 무슨 말이라도 대답해야 될 거 같은지 냐옹이라고 말해준다.\n\n\n\n\n\n최근에 춘장이에게 친구가 생긴 거 같다.\n\n둘이 같이 하천에 가서 물도 마신다.\n\n\n\n\n\n목을 축인 다음 춘장이랑 마주보고 앉아있는데 묘한 신경전이 오가는 거 같더니\n\n\n\n이 녀석들끼리 장난친다.\n\n\n\n춘장이가 늘 얌전히 있어서 몰랐는데, 녀석 생각보다 움직임이 날렵하다;;\n\n\n    \n\n\n이번 달은 다양한 곳에 방문했다.\n\n친구가 서울역 근처에서 면접을 보게 되어서 하룻밤 우리 집에서 묵었는데, 면접 끝나고 안국역에 가서 간단하게 빵을 먹었다.\n\n한 때 인기가 정말 많았던 런던 베이글 뮤지엄\n\n가격이 사악한 만큼 이런저런 재밌는 요소들이 많았다.\n\n설탕을 원하는 만큼 커피에 넣어 먹을 수 있는 점이 가장 마음에 든다.\n\n난 달달한 음식은 별로 안좋아하지만 설탕 자체는 꽤 좋아한다.\n\n어렸을 때 원숭이마냥 싱크대에 올라가서 찬장에 놓인 설탕을 손가락으로 찍어먹었던 기억도 있다.\n\n설탕이 듬뿍들어간 아메리카노를 사진으로 담지 못해 아쉽다.\n\n\n\n그리고 데미안 허스트 전시회를 다시 한 번 관람했다.\n\n작품 하나하나 직관적이고 독특하다보니 강렬한 인상을 남겨서 또 봐도 보는 즐거움이 있었다.\n\n\n\n전시회를 관람한 뒤 근처를 지나가다가 오늘의 집 북촌점 가게가 있길래 들렸는데 너무 마음에 드는 테이블과 의자가 놓여 있었다.\n\nHAY라는 덴마크 라이프스타일 브랜드의 팔리사드라는 제품인데 ‘죽기 전 언젠가 사지 않을까 싶은 위시리스트’에 추가했다.\n\n‘죽기 전 언젠가 사지 않을까 싶은 또 다른 위시리스트’인 전원 주택의 마당에 놓고 아침을 여유롭게 만끽하고 싶다. 둘 중 하나라도 사들이면 좋으련만\n\n이 날은 아마 창덕궁까지 보고 나서 친구와 헤어졌던 거 같다.\n\n\n\n오랜만에 서소문의 서울시립미술관에도 갔었다.\n\n유영국 화가의 ‘산은 내 안에 있다’ 라는 전시를 하고 있었다.\n\n\n\n우리나라의 산을 주제로 그린 추상화들을 빛과 그림자, 배경을 활용한 공간에 적절히 배치해놓았다.\n\n‘추상’이라는 것은 어떤 사물의 공통된 특성만을 나타내는 개념이다. 복잡성을 줄이는 점에서 일반화와 비슷하다.\n\n프로그래밍에서의 추상화는 현실 세계의 객체에 대한 공통점, 본질적인 성질을 추리는 과정을 말한다.\n\n자동차를 예로 들면, 자동차는 이동 수단에 속한다.\n\n자동차가 가지는 전진, 후진, 좌회전, 우회전, 시동을 켜고 끄는 특징은 기차, 지하철, 자전거, 보트 등 대부분의 이동 수단에 일반적으로 적용된다.\n\n따라서 이러한 공통점을 한데 묶어 이동 수단이라는 객체로 추상화시킬 수 있다.\n\n예술에서의 추상화도 이와 유사하다. 작가가 바라보았을 때 산들의 공통된 점이나 산이 가지는 아이코닉한 특징을 그림으로써 표현한다.\n\n조금 다른 점은 사실적이기보다 주관적인 표현을 할 수 있다는 것이다.\n\n자연 세계에 대한 표현, 개인적인 심상에 대한 추상적인 표현을 작품에 녹이기 때문에 심오하거나 한 번 보고는 이해하기 어려워질 수 밖에 없다.\n\n그래서 추상이라는 카테고리가 재미있기도 하면서 이해하기 쉽지 않아 몇 개의 작품을 보다 보면 피로해지기도 한다.\n\n작품을 모두 관람하고 나오면서 재미있는 장면을 촬영했다.\n\n\n    \n\n\n우연히 대한제국의 길이라는 테마 코스를 알게 되어 다른 날에 이 코스를 걸었다.\n\n시청역에 내려서 정동길, 덕수궁 근처, 성공회 성당, 고종의 길, 광화문을 차례대로 들렸다.\n\n\n\n간만에 보는 덕수궁의 석조전과 정원\n\n바로 옆에 있는 국립현대미술관 덕수궁은 공사중이어서 방문하지 못했다.\n\n\n\n덕수궁을 나와 근처에 있는 국립정동극장 세실에 가면 엘레베이터가 있다.\n\n그 엘레베이터를 타고 옥상을 가면 세실극장 옥상전망대를 갈 수 있다.\n\n전망대 앞에 대한성공회 성당이 있어서 서울 한복판에서 꽤나 이국적인 모습을 볼 수 있다.\n\n\n\n코스를 따라서 이곳저곳 거닐다가 광화문으로 나왔다.\n\n예전에 한 번 갔던 카페\n\n이후에 다시 갈려했다가 어디에 있는지 기억이 안나서 못갔었는데 이제야 찾았네.\n\n언젠가 다시 가는 날이 오면 좋겠다.\n\n\n\n광화문 국밥도 오랜만에 본다.\n\n저녁 준비 중이어서 아무도 없었지만 여전히 장사가 잘 되고 있지 않을까 싶다.\n\n\n\n월말에는 외할머니와 함께 본가에 내려갔다.\n\n부산에서 살고 계신데 서울에 볼 일이 있으시다고 올라오셨다.\n\n부산 가시기 전에 우리 집에 들리신다고 하셔서 같이 가기로 했다.\n\n두 모녀가 예산시장에서 함께 잔치국수를 먹고 있는 모습\n\n너무 도둑같이 찍었나\n\n\n\n어린이대공원, 아르코미술관, 낙산공원, 카공족 본점, 서울시청 내친구 서울에도 갔었는데 글이 너무 길어지면 재미없으니까 여기까지만 해야겠다.\n\n도림천에 능소화가 폈다. 능소화의 꽃말이 마음에 든다.\n\n\n\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-07-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  

  ,
  {
    "title": "월화수목금퇼",
    "url": "/daily/%EC%9B%94%ED%99%94%EC%88%98%EB%AA%A9%EA%B8%88%ED%87%BC.html",
    "content": "예전엔 나이 먹는게 싫었는데 요새는 빨리 나이들고 싶어졌다\n\n은퇴할 나이쯤 되서 연금이나 투자로 수입을 채우고 여유롭게 알바나 하면서 하루를 보내고 싶은 생각이 든다\n\n직장 다니다보니 시간이 훌쩍 지나가서 아마 눈 깜짝할 사이에 그 나이가 되어있을지도 모르겠다\n\n배워야 할 것들이 산더미고 처리할 업무들이 조금씩 늘어가면서 시간에 점점 쫒기는 듯한 기분이 든다\n\n실무는 내 생각과 많이 달랐다\n\n개발은 전체 업무 중 일부일 뿐이고 문서 작성, 업무 계획, 결과 보고, 사업소 관리, 문의전화 대응 등 개발 외적인 부분들이 훨씬 크다\n\n아직 어설프지만 이러한 부분들을 감내해야 될 수 밖에 없다는 걸 안다\n\n언젠가 능수능란하게 일을 처리하고 칼퇴근한 뒤 다른 재밌는 것들을 하면서 시간을 보내고 싶다\n\n생각보다 나를 위한 자기계발하는게 쉽지 않다\n\n퇴근하고 저녁 먹으면 눈이 저절로 감기고 주말에는 좀 여유롭게 시간을 보내면 금방 월요일이 된다\n\n백수일 때 많은 것들을 해보지 않아서 아쉬운 마음일 뿐이다\n\n이사한 집에서 가족들과 함께 첫 명절을 보냈다\n\n외할머니, 삼촌, 이모도 올라왔는데 사진 좀 찍어둘 걸 한장도 안남겼네\n\n외가댁이랑 있으면 항상 고스톱을 친다\n\n화투에 대해서 하나도 모르지만 구경만 해도 재밌다. 피박이 어쩌구 똥을 쌌네 마네\n\n자취방에만 있다가 오랜만에 넓은 집을 가니까 너무 만족스러워서 그냥 내려가서 살까 생각도 잠깐 했다\n\n이번 달에는 두 개의 전시회를 참관했다\n\n하나는 세종문화회관에서 진행한 르네상스부터 인상주의까지 유명한 화가들의 작품을 보여주는 전시회였고\n\n다른 하나는 알폰스 무하라는 체코인의 단독 전시회였다\n\n그동안 클로드 모네나 르누아르 같이 인상주의 작품만 보다가 르네상스, 바로크, 로코코 시대의 작품을 보니 사뭇 다른 그림체와 성스러움에 경이로웠다\n\n그냥 직접 보고 느껴봐야 된다\n\n나도 그 시대에 유럽에서 살았다면 지금과 달리 신을 믿지 않을 수가 없었을 듯\n\n한 가지 아쉬운 점은 내가 유럽 역사에 대해 잘 알지 못한다는 점이다\n\n예술은 역사와 떼어놓을 수 없는 분야 중 하나인데 배경지식이 없으니 작품을 온전히 즐기지 못하는 느낌이 든다\n\n가끔 밤에 머리도 식힐 겸 도림천에서 산책할 때마다 춘장이가 반겨준다\n\n귀여운 녀석이다\n\n이전에는 모르는 척 할 때도 있었는데 요새는 갈 때마다 꼭 곁으로 온다\n\n옆으로 다가와 앉아있는 춘장이의 모습\n\n\n\n심지어 이번에는 내 다리 위로 올라와서 식빵도 구웠다\n\n은근슬쩍 젤리도 만져봤는데 쫀득쫀득했다\n\n\n\n이 자식 자세를 조금 바꾸더니 잠까지 잔다 ;;\n\n혹시나 깰까봐 한시간 가까이 움직이지도 못했다\n\n\n\n이 날 기분이 좋아서 그랬나 싶어가지고 그 다음 주에도 한 번 찾아갔는데\n\n당연한 듯이 또 다가와서 자리를 트고 잠을 자는 춘장이\n\n공교롭게도 같은 옷을 입고 가서 그런지 나를 금방 알아본 것 같다\n\n\n\n책임없는 쾌락이 이런 걸까…\n\n춘장이 같은 고양이를 키우고 싶어졌다\n\n언젠가 한마리 키우는게 꿈이다\n\n아 생각해보니까 이번 달에 용양봉저장공원 대신에 명동대성당을 갔었지\n\n성당을 갔을 때 해를 못봐서 그런가. 이번 달은 약간 꾸리꾸리했다\n\n내일은 하늘공원을 갈 예정이다\n\n일기예보상 흐리다고 나와있어 해를 보지 못할 거 같다\n\n다음 달도 꾸리꾸리할려나\n\n이번 달 노래\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-02-28",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "daily",
    "tags": []
  }
  



  ,
  {
    "title": "Index",
    "url": "/archives/digital/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/archives/images/index.html",
    "content": "<div style=\"display: flex; flex-direction: column; gap: 10px;\">\n\n    <div id=\"images-objects\"></div>\n\n    <div id=\"images-objects-list\" class=\"images-list\">\n        <img src=\"./data/self-made-map.jpeg\" alt=\"self-made-map.jpeg\" />\n\n        <img src=\"./data/notes.jpeg\" alt=\"notes.jpeg\" />\n        \n        <img src=\"./data/o2.jpg\" />\n        \n        <img src=\"./data/clock.jpg\" alt=\"clock.jpg\" />\n        \n        <img src=\"./data/o1.jpg\" />\n        \n        <img src=\"./data/public-telephone.jpeg\" alt=\"public-telephone.jpeg\" />\n        \n        <img src=\"./data/ports.jpeg\" alt=\"ports.jpeg\" />\n        \n        <img src=\"./data/cigarette.jpeg\" alt=\"cigarette.jpeg\" />\n    </div>\n\n    <div id=\"images-season\"></div>\n    \n    <div id=\"images-season-list\" class=\"images-list\">\n        <img src=\"./data/spring.JPG\" alt=\"\" />\n        \n        <img src=\"./data/summer.jpg\" alt=\"\" />\n        \n        <img src=\"./data/autumn.jpeg\" alt=\"\" />\n        \n        <img src=\"./data/winter.JPG\" alt=\"\" />\n    </div>\n\n    <div id=\"images-room\"></div>\n    \n    <div id=\"images-room-list\" class=\"images-list\">\n        <img src=\"./data/Adam Kubert.jpg\" alt=\"Adam Kubert.jpg\" data-desc=\"THINK LESS DRAW MORE ! \\n it looks like he's drawing a picture of someone men's faces \\n a stand and chair for comfortable drawing, freely movable lightning \\n a desk that looks messy but still has the space to display your resources and store the thing you need, even the sculptures were placed to enhance the understanding of movement in order to naturally melt the human form \\n fetched by pinterest\" data-desc-ko=\"THINK LESS DRAW MORE ! \\n 어떤 남자들의 얼굴이 담겨있는 사진을 그리는 모양이다 \\n 그림을 편히 그릴 수 있는 받침대와 의자, 자유롭게 이동할 수 있는 조명 \\n 너저분해보이면서도 자료들을 보기 좋게 두고 필요한 것들을 비치할 수 있는 책상, 사람의 형상을 자연스럽게 녹여내기 위해 움직임에 대한 이해도를 높이고자 둔 조형물까지 \\n\" />\n        \n        <img src=\"./data/r2.jpg\" />\n        \n        <img src=\"./data/r3.jpg\" />\n        \n        <img src=\"./data/kitchen.jpg\" />\n        \n        <img src=\"./data/r4.jpg\" />\n    </div>\n\n    <div id=\"images-film\"></div>\n    \n    <div id=\"images-film-list\" class=\"images-list\">\n        <img src=\"./data/Papillon.jpg\" alt=\"Papillon.jpg\" data-desc=\"Title: Papillon \\n Genre: Drama \\n Director: Franklin J. Schaffner \\n Starring: Steve McQueen, Dustin Hoffman \\n Release Date: December 16, 1973 \\n Running Time: 150 minutes\" data-desc-ko=\"제목: 빠삐용 \\n 장르: 드라마 \\n 감독: 프랭클린 J. 샤프너 \\n 주연: 스티브 맥퀸, 더스틴 호프먼 \\n 개봉일: 1973년 12월 16일  \\n 상영 시간: 150분\" />\n        \n        <img src=\"./data/Léon.jpg\" alt=\"Leon.jpg\" data-desc=\"Title: Léon \\n Genre: Noir \\n Director: Luc Besson \\n Starring: Jean Reno, Natalie Portman, Sir Gary Oldman \\n Release Date: November 18, 1994 \\n Running Time: 133 minutes\" data-desc-ko=\"제목: 레옹 \\n 장르: 느와르 \\n 감독: 뤽 베송 \\n 주연: 장 르노, 나탈리 포트만, 개리 올드만 \\n 개봉일: 1994년 11월 18일 \\n 상영 시간: 133분\" />\n        \n        <img src=\"./data/pulp fiction.jpg\" alt=\"pulp fiction.jpg\" data-desc=\"Title: Pulp Fiction \\n Genre: Crime \\n Director: Quentin Tarantino \\n Starring: John Travolta, Samuel Leroy Jackson, Uma Thurman \\n Release Date: October 14, 1994 \\n Running Time: 154 minutes\" data-desc-ko=\"제목: 펄프픽션 \\n 장르: 범죄 \\n 감독: 쿠엔틴 타란티노 \\n 주연: 존 트라볼타, 새뮤얼 L. 잭슨, 우마 서먼 \\n 개봉일: 1994년 10월 14일 \\n 상영 시간: 154분\" />\n        \n        <img src=\"./data/the shawshank redemption.jpg\" alt=\"The Shawshank Redemption.jpg\" data-desc=\"Title: The Shawshank Redemption \\n Genre: Drama \\n Director: Frank Darabont \\n Starring: Tim Robbins, Morgan Freeman \\n Release Date: September 23, 1994 \\n Running Time: 142 minutes\" data-desc-ko=\"제목: 쇼생크 탈출 \\n 장르: 드라마 \\n 감독: 프랭크 다라본트 \\n 주연: 팀 로빈스, 모건 프리먼 \\n 개봉일: 1994년 9월 23일 \\n 상영 시간: 142분\" />\n        \n        <img src=\"./data/Princess Mononoke.jpg\" alt=\"Princess Mononoke.jpg\" data-desc=\"Title: Princess Mononoke \\n Genre: Adventure \\n Director: Hayao Miyazaki \\n Starring: Ashitaka, San \\n Release Date: July 12, 1997 \\n Running Time: 133 minutes\" data-desc-ko=\"제목: 모노노케 히메 \\n 장르: 어드벤처 \\n 감독: 미야자키 하야오 \\n 주연: 아시타카, 산 \\n 개봉일: 1997년 7월 12일 \\n 상영 시간: 133분\" />\n    </div>\n\n    <div id=\"images-weeknd\"></div>\n    \n    <div id=\"images-weeknd-list\" class=\"images-list\">\n        <img src=\"./data/where%20are%20you%20now%20when%20i%20need%20you%20most.png\" alt=\"where are you now when i need you most.png\" data-desc=\"Thought I almost died in my dream again (Baby, almost died) \\n Fightin' for my life, I couldn't breathe again \\n I'm fallin' in too deep (Oh, oh) \\n Without you, I can't sleep (Fallin' in) \\n 'Cause my heart belongs to you \\n I'll risk it all for you \\n I want you next to me \\n This time, I'll never leave \\n I wanna share babies \\n Protection, we won't need \\n Your body next to me \\n Is just a memory \\n I'm fallin' in too deep, oh \\n Without you, I can't sleep \\n Insomnia relieve, oh \\n Talk to me, without you, I can't breathe \\n \\n My darkest hours \\n Girl, I felt so alone inside of this crowded room \\n Different girls on the floor, distractin' my thoughts of you \\n I turned into the man I used to be, to be \\n Put myself to sleep \\n Just so I can get closer to you inside my dreams \\n Didn't wanna wake up 'less you were beside me \\n I just wanted to call you and say, and say \\n \\n Oh, baby \\n Where are you now when I need you most? \\n I'd give it all just to hold you close \\n Sorry that I broke your heart, your heart \\n \\n Never comin' down, uh \\n I was running away from facin' reality, uh \\n Wastin' all of my time out living my fantasies \\n Spendin' money to compensate, compensate \\n 'Cause I want you, baby, uh \\n I be livin' in heaven when I'm inside of you \\n It was simply a blessing wakin' beside you \\n I'll never let you down again, again \\n \\n Oh, baby \\n Where are you now when I need you most? \\n I'd give it all just to hold you close \\n Sorry that I broke your heart, your heart \\n I said, baby \\n I'll treat you better than I did before \\n I'll hold you down and not let you go \\n This time, I won't break your heart, your heart, yeah \\n \\n I know it's all my fault \\n Made you put down your guard \\n I know I made you fall \\n Then said you were wrong for me \\n I lied to you, I lied to you, I lied to you (To you) \\n Can't hide the truth, I'd stay with her in spite of you \\n You did some things that you regret, still ride for you \\n 'Cause this house is not a home \\n \\n Without my baby \\n Where are you now when I need you most? \\n I gave it all just to hold you close \\n Sorry that I broke your heart, your heart \\n And I said, baby \\n I'll treat you better than I did before \\n I'll hold you down and not let you go \\n This time, I won't break your heart, your heart, no\" />\n        \n        <img src=\"./data/hurry_up_tomorrow.jpeg\" alt=\"hurry up tomorrow.jpeg\" data-desc=\"Wake Me Up (feat. Justice) \\n Cry For Me \\n I Can't Fucking Sing \\n São Paulo (feat. Anitta) \\n Until We're Skin &amp; Bones \\n Baptized In Fear \\n Open Hearts \\n Opening Night \\n Reflections Laughing (feat. Trasiv Scott, Floerence + The Machine) \\n Enjoy The Show (feat. Future) \\n Given Up On Me \\n I Can't Wait To Get There \\n Timeless (feat. Playboi Carti) \\n Niagara Falls \\n Take Me Back To LA \\n Big Sleep (feat. Giorgio Moroder) \\n Give Me Mercy \\n Drive \\n The Abyss (feat. Lana Del Rey) \\n Red Terror \\n Without a Warning \\n Hurry Up Tomorrow\" />\n        \n        <img src=\"./data/dawn_fm.jpeg\" alt=\"dawn fm.jpeg\" data-desc=\"Dawn FM \\n Gasoline \\n How Do I Make You Love Me? \\n Take My Breath \\n Sacrifice \\n A Tale By Quincy \\n Out of Time \\n Here We Go...Again (feat. Tyler, the Creator) \\n Best Friends \\n Is There Someone Else? \\n Starry Eyes \\n Every Angel is Terrifying \\n Don't Break My Heart \\n I Heart You're Married (feat. Lil Wayne) \\n Less Than Zero \\n Phantom Regret by Jim\" />\n        \n        <img src=\"./data/after_hours.jpeg\" alt=\"after hours.jpeg\" data-desc=\"Alone Again \\n Too Late \\n Hardest To Love \\n Scared To Live \\n Snowchild \\n Escape From LA \\n Heartless \\n Faith \\n Blinding Lights \\n In Your Eyes \\n Save Your Tears \\n Repeat After Me (Interlude) \\n After Hours \\n Until I Bleed Out\" />\n        \n        <img src=\"./data/my_dear_melancholy.jpeg\" alt=\"my dear melancholy.jpeg\" data-desc=\"Call Out My Name \\n Try Me \\n Wasted Times \\n I Was Never There \\n Hurt You \\n Privilege \\n Call Out My Name - A Cappella\" />\n        \n        <img src=\"./data/starboy.jpeg\" alt=\"starboy.jpeg\" data-desc=\"Starboy \\n Party Monster \\n False Alarm \\n Reminder \\n Rockin' \\n Secrets \\n True Colors \\n Stargial Interlude \\n Sidewalks \\n Six Feet Under \\n Love To Lay \\n A Lonely Night \\n Attention \\n Ordinary Life \\n Nothing Without You \\n All I Know \\n Die For You \\n I Feel It Coming\" />\n        \n        <img src=\"./data/beauty_behind_the_madness.jpeg\" alt=\"beauty behind the madness.jpeg\" data-desc=\"Real Life \\n Losers \\n Tell Your Friends \\n Often \\n The Hills \\n Acquainted \\n Can't Feel My Face \\n Shameless \\n Earned It (Fifty Shades Of Grey) \\n In The Night \\n As You Are \\n Dark Times \\n Prisoner \\n Angel\" />\n        \n        <img src=\"./data/kiss_land.jpeg\" alt=\"kiss land.jpeg\" data-desc=\"Professional \\n The Town \\n Adaptation \\n Love In The Sky \\n Belong To The World \\n Live For \\n Wanderlust \\n Kiss Land \\n Pretty \\n Tears In The Rain\" />\n        \n        <img src=\"./data/trilogy.jpeg\" alt=\"trilogy.jpeg\" data-desc=\"High For This \\n What You Need \\n House Of Balloons \\n Glass Table Girls \\n The Morning \\n Wicked Gams \\n The Party &amp; The After Party \\n Coming Down \\n Loft Music \\n The Knowing \\n Twenty Eight \\n Lonely Star \\n Life Of The Party \\n Thursday \\n The Zone \\n The Birds Pt.1 \\n The Birds Pt.2 \\n Gone \\n Rolling Stone \\n Heaven or Las Vegas \\n Valerie \\n D.D. \\n Montreal \\n Outside \\n XO / The Host \\n Initiation \\n Same Old Song \\n The Fall \\n Next \\n Echoes Of Silence \\n Till Dawn (Hear Comes The Sun)\" />\n        \n        <img src=\"./data/echoes_of_silence.jpeg\" alt=\"echoes of silence.jpeg\" data-desc=\"D.D. \\n Montreal \\n Outside \\n XO / The Host \\n Initiation \\n Same Old Song \\n The Fall \\n Next \\n Echoes Of Silence\" />\n        \n        <img src=\"./data/thursday.jpeg\" alt=\"thursday.jpeg\" data-desc=\"Lonely Star \\n Life Of The Party \\n Thursday \\n The Zone \\n The Birds Pt.1 \\n The Birds Pt.2 \\n Gone \\n Rolling Stone \\n Heaven Or Las Vegas\" />\n        \n        <img src=\"./data/house_of_balloons.jpeg\" alt=\"house of balloons.jpeg\" data-desc=\"High For This \\n What You Need \\n House Of Balloons \\n Glass Table Girls \\n The Morning \\n Wicked Gams \\n The Party &amp; The After Party \\n Coming Down \\n Loft Music \\n The Knowing\" />\n    </div>\n\n    <div id=\"images-paintings\"></div>\n    \n    <div id=\"images-paintings-list\" class=\"images-list\">\n        <img src=\"./data/bouquet-in-a-theater-box.jpg\" alt=\"bouquet-in-a-theater-box.jpg\" data-desc=\"Title: Bouquet in a theater box \\n Artist: Pierre-Auguste Renoir \\n Period: Association with Impressionists \\n Genre: still life \\n Date: c.1871 \\n \" data-desc-ko=\"제목: 극장 관람석의 꽃다발 \\n 예술가: 피에르 오귀스트 르누아르 \\n 시대: 인상주의 \\n 장르: 정물화 \\n 제작 시기: 1871년 \\n \" />\n        \n        <img src=\"./data/still-life-with-carafe-1892.jpg\" alt=\"still-life-with-carafe-1892.jpg\" data-desc=\"Title: Still Life with Carafe \\n Artist: Pierre-Auguste Renoir \\n Period: Later Years \\n Genre: still life \\n Date: c.1892  \\n \" data-desc-ko=\"제목: 유리 물병이 있는 정물 \\n 예술가: 피에르 오귀스트 르누아르 \\n 시대: 인상주의 \\n 장르: 정물화 \\n 제작 시기: 1892년  \\n \" />\n        \n        <img src=\"./data/Entrance-to-the-Kasbah-1912.jpg\" alt=\"Entrance-to-the-Kasbah-1912.jpg\" data-desc=\"Title: Entrance to the Kasbah \\n Artist: Henri Matisse \\n Period: Modern Art \\n Genre: Still Life \\n Date: c.1912  \\n \" data-desc-ko=\"제목: 카스바 입구 \\n 예술가: 앙리 에밀 브누아 마티스 \\n 시대: 현대미술 \\n 장르: 인테리어 \\n 제작 시기: 1912년  \\n \" />\n        \n        <img src=\"./data/Bather-1909.jpg\" alt=\"Bather-1909.jpg\" data-desc=\"Title: Bather \\n Artist: Henri Matisse \\n Period: Modern Art \\n Genre: Fauvism \\n Date: c.1909  \\n \" data-desc-ko=\"제목: 목욕하는 사람 \\n 예술가: 앙리 에밀 브누아 마티스 \\n 시대: 현대미술 \\n 장르: 포비즘 \\n 제작 시기: 1909년  \\n \" />\n\n        <img src=\"./data/Plum-Park-in-Kameido.jpeg\" alt=\"Plum-Park-in-Kameido.jpeg\" data-desc=\"Title: Plum Park in Kameido \\n Artist: Utagawa Hiroshige \\n Period: Ukiyo-e \\n Genre: Landscape \\n Date: 1857 \\n \" data-desc-ko=\"제목: 가메이도의 매화 정원 \\n 예술가: 우타가와 히로시게 \\n 시대: 우키요에 \\n 장르: 풍경화 \\n 제작 시기: 1857년  \\n \" />\n\n        <img src=\"./data/Kozuke-Province-Mount-Haruna-Under-Snow.jpeg\" alt=\"Kozuke-Province-Mount-Haruna-Under-Snow.jpeg\" data-desc=\"Title: Kozuke Province: Mount Haruna Under Snow \\n Artist: Utagawa Hiroshige \\n Period: Ukiyo-e \\n Genre: Landscape \\n Date: 1853 \\n \" data-desc-ko=\"제목: 고즈케 국: 눈 아래 하루나 산 \\n 예술가: 우타가와 히로시게 \\n 시대: 우키요에 \\n 장르: 풍경화 \\n 제작 시기: 1853년  \\n \" />\n    </div>\n\n</div>\n",
    "pagename": "Images",
    "pagenameKo": "이미지",
    "createDate": "2023-12-20",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": ["objects","film","room","season","weeknd","paintings","henry","matisse","utagawa","ando","hiroshige","impressionism","ukiyoe","after","hours","사물","영화","계절","그림","공간","위켄드","앙리","마티스","우키요에","우타가와","안도","히로시게","인상주의"]
  }
  

  ,
  {
    "title": "Film",
    "url": "/archives/images/legacy/Film.html",
    "content": "<p><img src=\"./data/Papillon.jpg\" alt=\"Papillon.jpg\" data-desc=\"Title: Papillon \\n Genre: Drama \\n Director: Franklin J. Schaffner \\n Starring: Steve McQueen, Dustin Hoffman \\n Release Date: December 16, 1973 \\n Running Time: 150 minutes\" data-desc-ko=\"제목: 빠삐용 \\n 장르: 드라마 \\n 감독: 프랭클린 J. 샤프너 \\n 주연: 스티브 맥퀸, 더스틴 호프먼 \\n 개봉일: 1973년 12월 16일  \\n 상영 시간: 150분\" /></p>\n\n<p><img src=\"./data/Léon.jpg\" alt=\"Leon.jpg\" data-desc=\"Title: Léon \\n Genre: Noir \\n Director: Luc Besson \\n Starring: Jean Reno, Natalie Portman, Sir Gary Oldman \\n Release Date: November 18, 1994 \\n Running Time: 133 minutes\" data-desc-ko=\"제목: 레옹 \\n 장르: 느와르 \\n 감독: 뤽 베송 \\n 주연: 장 르노, 나탈리 포트만, 개리 올드만 \\n 개봉일: 1994년 11월 18일 \\n 상영 시간: 133분\" /></p>\n\n<p><img src=\"./data/pulp fiction.jpg\" alt=\"pulp fiction.jpg\" data-desc=\"Title: Pulp Fiction \\n Genre: Crime \\n Director: Quentin Tarantino \\n Starring: John Travolta, Samuel Leroy Jackson, Uma Thurman \\n Release Date: October 14, 1994 \\n Running Time: 154 minutes\" data-desc-ko=\"제목: 펄프픽션 \\n 장르: 범죄 \\n 감독: 쿠엔틴 타란티노 \\n 주연: 존 트라볼타, 새뮤얼 L. 잭슨, 우마 서먼 \\n 개봉일: 1994년 10월 14일 \\n 상영 시간: 154분\" /></p>\n\n<p><img src=\"./data/the shawshank redemption.jpg\" alt=\"The Shawshank Redemption.jpg\" data-desc=\"Title: The Shawshank Redemption \\n Genre: Drama \\n Director: Frank Darabont \\n Starring: Tim Robbins, Morgan Freeman \\n Release Date: September 23, 1994 \\n Running Time: 142 minutes\" data-desc-ko=\"제목: 쇼생크 탈출 \\n 장르: 드라마 \\n 감독: 프랭크 다라본트 \\n 주연: 팀 로빈스, 모건 프리먼 \\n 개봉일: 1994년 9월 23일 \\n 상영 시간: 142분\" /></p>\n\n<p><img src=\"./data/Princess Mononoke.jpg\" alt=\"Princess Mononoke.jpg\" data-desc=\"Title: Princess Mononoke \\n Genre: Adventure \\n Director: Hayao Miyazaki \\n Starring: Ashitaka, San \\n Release Date: July 12, 1997 \\n Running Time: 133 minutes\" data-desc-ko=\"제목: 모노노케 히메 \\n 장르: 어드벤처 \\n 감독: 미야자키 하야오 \\n 주연: 아시타카, 산 \\n 개봉일: 1997년 7월 12일 \\n 상영 시간: 133분\" /></p>\n",
    "pagename": null,
    "pagenameKo": "영화",
    "createDate": "2026-04-27",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "The weeknd",
    "url": "/archives/images/legacy/The%20Weeknd.html",
    "content": "<p><img src=\"./data/where%20are%20you%20now%20when%20i%20need%20you%20most.png\" alt=\"where are you now when i need you most.png\" data-desc=\"Thought I almost died in my dream again (Baby, almost died) \\n Fightin' for my life, I couldn't breathe again \\n I'm fallin' in too deep (Oh, oh) \\n Without you, I can't sleep (Fallin' in) \\n 'Cause my heart belongs to you \\n I'll risk it all for you \\n I want you next to me \\n This time, I'll never leave \\n I wanna share babies \\n Protection, we won't need \\n Your body next to me \\n Is just a memory \\n I'm fallin' in too deep, oh \\n Without you, I can't sleep \\n Insomnia relieve, oh \\n Talk to me, without you, I can't breathe \\n \\n My darkest hours \\n Girl, I felt so alone inside of this crowded room \\n Different girls on the floor, distractin' my thoughts of you \\n I turned into the man I used to be, to be \\n Put myself to sleep \\n Just so I can get closer to you inside my dreams \\n Didn't wanna wake up 'less you were beside me \\n I just wanted to call you and say, and say \\n \\n Oh, baby \\n Where are you now when I need you most? \\n I'd give it all just to hold you close \\n Sorry that I broke your heart, your heart \\n \\n Never comin' down, uh \\n I was running away from facin' reality, uh \\n Wastin' all of my time out living my fantasies \\n Spendin' money to compensate, compensate \\n 'Cause I want you, baby, uh \\n I be livin' in heaven when I'm inside of you \\n It was simply a blessing wakin' beside you \\n I'll never let you down again, again \\n \\n Oh, baby \\n Where are you now when I need you most? \\n I'd give it all just to hold you close \\n Sorry that I broke your heart, your heart \\n I said, baby \\n I'll treat you better than I did before \\n I'll hold you down and not let you go \\n This time, I won't break your heart, your heart, yeah \\n \\n I know it's all my fault \\n Made you put down your guard \\n I know I made you fall \\n Then said you were wrong for me \\n I lied to you, I lied to you, I lied to you (To you) \\n Can't hide the truth, I'd stay with her in spite of you \\n You did some things that you regret, still ride for you \\n 'Cause this house is not a home \\n \\n Without my baby \\n Where are you now when I need you most? \\n I gave it all just to hold you close \\n Sorry that I broke your heart, your heart \\n And I said, baby \\n I'll treat you better than I did before \\n I'll hold you down and not let you go \\n This time, I won't break your heart, your heart, no\" /></p>\n\n<p><img src=\"./data/hurry_up_tomorrow.jpeg\" alt=\"hurry up tomorrow.jpeg\" data-desc=\"Wake Me Up (feat. Justice) \\n Cry For Me \\n I Can't Fucking Sing \\n São Paulo (feat. Anitta) \\n Until We're Skin &amp; Bones \\n Baptized In Fear \\n Open Hearts \\n Opening Night \\n Reflections Laughing (feat. Trasiv Scott, Floerence + The Machine) \\n Enjoy The Show (feat. Future) \\n Given Up On Me \\n I Can't Wait To Get There \\n Timeless (feat. Playboi Carti) \\n Niagara Falls \\n Take Me Back To LA \\n Big Sleep (feat. Giorgio Moroder) \\n Give Me Mercy \\n Drive \\n The Abyss (feat. Lana Del Rey) \\n Red Terror \\n Without a Warning \\n Hurry Up Tomorrow\" /></p>\n\n<p><img src=\"./data/dawn_fm.jpeg\" alt=\"dawn fm.jpeg\" data-desc=\"Dawn FM \\n Gasoline \\n How Do I Make You Love Me? \\n Take My Breath \\n Sacrifice \\n A Tale By Quincy \\n Out of Time \\n Here We Go...Again (feat. Tyler, the Creator) \\n Best Friends \\n Is There Someone Else? \\n Starry Eyes \\n Every Angel is Terrifying \\n Don't Break My Heart \\n I Heart You're Married (feat. Lil Wayne) \\n Less Than Zero \\n Phantom Regret by Jim\" /></p>\n\n<p><img src=\"./data/after_hours.jpeg\" alt=\"after hours.jpeg\" data-desc=\"Alone Again \\n Too Late \\n Hardest To Love \\n Scared To Live \\n Snowchild \\n Escape From LA \\n Heartless \\n Faith \\n Blinding Lights \\n In Your Eyes \\n Save Your Tears \\n Repeat After Me (Interlude) \\n After Hours \\n Until I Bleed Out\" /></p>\n\n<p><img src=\"./data/my_dear_melancholy.jpeg\" alt=\"my dear melancholy.jpeg\" data-desc=\"Call Out My Name \\n Try Me \\n Wasted Times \\n I Was Never There \\n Hurt You \\n Privilege \\n Call Out My Name - A Cappella\" /></p>\n\n<p><img src=\"./data/starboy.jpeg\" alt=\"starboy.jpeg\" data-desc=\"Starboy \\n Party Monster \\n False Alarm \\n Reminder \\n Rockin' \\n Secrets \\n True Colors \\n Stargial Interlude \\n Sidewalks \\n Six Feet Under \\n Love To Lay \\n A Lonely Night \\n Attention \\n Ordinary Life \\n Nothing Without You \\n All I Know \\n Die For You \\n I Feel It Coming\" /></p>\n\n<p><img src=\"./data/beauty_behind_the_madness.jpeg\" alt=\"beauty behind the madness.jpeg\" data-desc=\"Real Life \\n Losers \\n Tell Your Friends \\n Often \\n The Hills \\n Acquainted \\n Can't Feel My Face \\n Shameless \\n Earned It (Fifty Shades Of Grey) \\n In The Night \\n As You Are \\n Dark Times \\n Prisoner \\n Angel\" /></p>\n\n<p><img src=\"./data/kiss_land.jpeg\" alt=\"kiss land.jpeg\" data-desc=\"Professional \\n The Town \\n Adaptation \\n Love In The Sky \\n Belong To The World \\n Live For \\n Wanderlust \\n Kiss Land \\n Pretty \\n Tears In The Rain\" /></p>\n\n<p><img src=\"./data/trilogy.jpeg\" alt=\"trilogy.jpeg\" data-desc=\"High For This \\n What You Need \\n House Of Balloons \\n Glass Table Girls \\n The Morning \\n Wicked Gams \\n The Party &amp; The After Party \\n Coming Down \\n Loft Music \\n The Knowing \\n Twenty Eight \\n Lonely Star \\n Life Of The Party \\n Thursday \\n The Zone \\n The Birds Pt.1 \\n The Birds Pt.2 \\n Gone \\n Rolling Stone \\n Heaven Or Las Vegas \\n Valerie \\n D.D. \\n Montreal \\n Outside \\n XO / The Host \\n Initiation \\n Same Old Song \\n The Fall \\n Next \\n Echoes Of Silence \\n Till Dawn (Hear Comes The Sun)\" /></p>\n\n<p><img src=\"./data/echoes_of_silence.jpeg\" alt=\"echoes of silence.jpeg\" data-desc=\"D.D. \\n Montreal \\n Outside \\n XO / The Host \\n Initiation \\n Same Old Song \\n The Fall \\n Next \\n Echoes Of Silence\" /></p>\n\n<p><img src=\"./data/thursday.jpeg\" alt=\"thursday.jpeg\" data-desc=\"Lonely Star \\n Life Of The Party \\n Thursday \\n The Zone \\n The Birds Pt.1 \\n The Birds Pt.2 \\n Gone \\n Rolling Stone \\n Heaven Or Las Vegas\" /></p>\n\n<p><img src=\"./data/house_of_balloons.jpeg\" alt=\"house of balloons.jpeg\" data-desc=\"High For This \\n What You Need \\n House Of Balloons \\n Glass Table Girls \\n The Morning \\n Wicked Gams \\n The Party &amp; The After Party \\n Coming Down \\n Loft Music \\n The Knowing\" /></p>\n",
    "pagename": null,
    "pagenameKo": "위켄드",
    "createDate": "2025-10-31",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/archives/images/legacy/index.html",
    "content": "<p><a href=\"./objects\" data-display-ko=\"사물\">Objects</a></p>\n\n<p><a href=\"./season\" data-display-ko=\"계절\">Season</a></p>\n\n<p><a href=\"./room\" data-display-ko=\"공간\">Room</a></p>\n\n<p><a href=\"./Film\" data-display-ko=\"영화\">Film</a></p>\n\n<p><a href=\"./The%20Weeknd\" data-display-ko=\"위켄드\">The Weeknd</a></p>\n\n<p><a href=\"./paintings\" data-display-ko=\"그림\">Paintings</a></p>\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Objects",
    "url": "/archives/images/legacy/objects.html",
    "content": "<p><img src=\"./data/self-made-map.jpeg\" alt=\"self-made-map.jpeg\" /></p>\n\n<p><img src=\"./data/notes.jpeg\" alt=\"notes.jpeg\" /></p>\n\n<p><img src=\"./data/o2.jpg\" /></p>\n\n<p><img src=\"./data/clock.jpg\" alt=\"clock.jpg\" /></p>\n\n<p><img src=\"./data/o1.jpg\" /></p>\n\n<p><img src=\"./data/public-telephone.jpeg\" alt=\"public-telephone.jpeg\" /></p>\n\n<p><img src=\"./data/ports.jpeg\" alt=\"ports.jpeg\" /></p>\n\n<p><img src=\"./data/cigarette.jpeg\" alt=\"cigarette.jpeg\" /></p>\n",
    "pagename": null,
    "pagenameKo": "사물",
    "createDate": "2026-05-31",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Paintings",
    "url": "/archives/images/legacy/paintings.html",
    "content": "<p><img src=\"./data/bouquet-in-a-theater-box.jpg\" alt=\"bouquet-in-a-theater-box.jpg\" data-desc=\"Title: Bouquet in a theater box \\n Artist: Pierre-Auguste Renoir \\n Period: Association with Impressionists \\n Genre: still life \\n Date: c.1871 \\n \" data-desc-ko=\"제목: 극장 관람석의 꽃다발 \\n 예술가: 피에르 오귀스트 르누아르 \\n 시대: 인상주의 \\n 장르: 정물화 \\n 제작 시기: 1871년 \\n \" /></p>\n\n<p><img src=\"./data/still-life-with-carafe-1892.jpg\" alt=\"still-life-with-carafe-1892.jpg\" data-desc=\"Title: Still Life with Carafe \\n Artist: Pierre-Auguste Renoir \\n Period: Later Years \\n Genre: still life \\n Date: c.1892  \\n \" data-desc-ko=\"제목: 유리 물병이 있는 정물 \\n 예술가: 피에르 오귀스트 르누아르 \\n 시대: 인상주의 \\n 장르: 정물화 \\n 제작 시기: 1892년  \\n \" /></p>\n\n<p><img src=\"./data/Entrance-to-the-Kasbah-1912.jpg\" alt=\"Entrance-to-the-Kasbah-1912.jpg\" data-desc=\"Title: Entrance to the Kasbah \\n Artist: Henri Matisse \\n Period: Post-Impressionism \\n Genre: still life \\n Date: c.1912  \\n \" data-desc-ko=\"제목: 카스바 입구 \\n 예술가: 앙리 에밀 브누아 마티스 \\n 시대: 후기 인상주의 \\n 장르: 인테리어 \\n 제작 시기: 1912년  \\n \" /></p>\n\n<p><img src=\"./data/Bather-1909.jpg\" alt=\"Bather-1909.jpg\" data-desc=\"Title: Bather \\n Artist: Henri Matisse \\n Period: Post-Impressionism \\n Genre: Fauvism \\n Date: c.1909  \\n \" data-desc-ko=\"제목: 목욕하는 사람 \\n 예술가: 앙리 에밀 브누아 마티스 \\n 시대: 후기 인상주의 \\n 장르: 포비즘 \\n 제작 시기: 1909년  \\n \" /></p>\n",
    "pagename": "Painting",
    "pagenameKo": "그림",
    "createDate": "2026-05-03",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Room",
    "url": "/archives/images/legacy/room.html",
    "content": "<p><img src=\"./data/Adam Kubert.jpg\" alt=\"Adam Kubert.jpg\" data-desc=\"THINK LESS DRAW MORE !! \\n it looks like he's drawing a picture of someone men's faces \\n a stand and chair for comfortable drawing, freely movable lightning \\n a desk that looks messy but still has the space to display your resources and store the thing you need, even the sculptures were placed to enhance the understanding of movement in order to naturally melt the human form \\n fetched by pinterest\" data-desc-ko=\"THINK LESS DRAW MORE !! \\n 어떤 남자들의 얼굴이 담겨있는 사진을 그리는 모양이다 \\n 그림을 편히 그릴 수 있는 받침대와 의자, 자유롭게 이동할 수 있는 조명 \\n 너저분해보이면서도 자료들을 보기 좋게 두고 필요한 것들을 비치할 수 있는 책상, 사람의 형상을 자연스럽게 녹여내기 위해 움직임에 대한 이해도를 높이고자 둔 조형물까지 \\n\" /></p>\n\n<p><img src=\"./data/r2.jpg\" /></p>\n\n<p><img src=\"./data/r3.jpg\" /></p>\n\n<p><img src=\"./data/kitchen.jpg\" /></p>\n\n<p><img src=\"./data/r4.jpg\" /></p>\n",
    "pagename": null,
    "pagenameKo": "공간",
    "createDate": "2026-05-31",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Season",
    "url": "/archives/images/legacy/season.html",
    "content": "<p><img src=\"./data/spring.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./data/summer.jpg\" alt=\"\" /></p>\n\n<p><img src=\"./data/autumn.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/winter.JPG\" alt=\"\" /></p>\n",
    "pagename": null,
    "pagenameKo": "계절",
    "createDate": "2023-12-20",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/archives/index.html",
    "content": "<p><a href=\"./text\" data-display-ko=\"글 귀\">Text</a></p>\n\n<p><a href=\"./images\" data-display-ko=\"이미지\">Images</a></p>\n\n<p><a href=\"./videos\" data-display-ko=\"동영상\">Videos</a></p>\n\n<p><a href=\"./web%20pages\" data-display-ko=\"웹 페이지\">Web Pages</a></p>\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/archives/text/index.html",
    "content": "<p>一場春夢越王城.</p>\n\n<p>La douleur passe la beaute reste.</p>\n\n<p>會者定離 去者必返.</p>\n\n<p>Io fui già quel che voi siete e quel ch’io sono voi anco sarete.</p>\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Forest",
    "url": "/archives/videos/forest.html",
    "content": "<video controls=\"\">\n    <source src=\"./data/forest.mov\" />\n</video>\n\n<video controls=\"\">\n    <source src=\"./data/forest_2.mov\" />\n</video>\n",
    "pagename": "Forest",
    "pagenameKo": "숲 속",
    "createDate": "2024-09-13",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/archives/videos/index.html",
    "content": "<p><a href=\"./sky\" data-display-ko=\"하늘\">Sky</a></p>\n\n<p><a href=\"./wave\" data-display-ko=\"물결\">Wave</a></p>\n\n<p><a href=\"./forest\" data-display-ko=\"숲 속\">Forest</a></p>\n\n<p><a href=\"./objects\" data-display-ko=\"사물\">Objects</a></p>\n\n<p><a href=\"./piano\" data-display-ko=\"피아노\">Piano</a></p>\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Objects",
    "url": "/archives/videos/objects.html",
    "content": "<video controls=\"\">\n    <source src=\"./data/chairs.mov\" />\n</video>\n\n<video controls=\"\">\n    <source src=\"./data/vending_machine.mov\" />\n</video>\n",
    "pagename": "Objects",
    "pagenameKo": "사물",
    "createDate": "2024-12-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Piano",
    "url": "/archives/videos/piano.html",
    "content": "<video controls=\"\">\n    <source src=\"./data/noreply.mov\" />\n</video>\n",
    "pagename": "Piano",
    "pagenameKo": "피아노",
    "createDate": "2026-04-12",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Sky",
    "url": "/archives/videos/sky.html",
    "content": "<video controls=\"\">\n    <source src=\"./data/blue%20sky.mov\" />\n</video>\n\n<video controls=\"\">\n    <source src=\"./data/hazy%20sky.mov\" />\n</video>\n\n<video controls=\"\">\n    <source src=\"./data/pink%20sky.mov\" />\n</video>\n",
    "pagename": "Sky",
    "pagenameKo": "하늘",
    "createDate": "2024-12-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Wave",
    "url": "/archives/videos/wave.html",
    "content": "<video controls=\"\">\n    <source src=\"./data/wave.mov\" />\n</video>\n\n<video controls=\"\">\n    <source src=\"./data/stream.mov\" />\n</video>\n",
    "pagename": "Wave",
    "pagenameKo": "물결",
    "createDate": "2025-10-09",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/archives/web%20pages/index.html",
    "content": "<p><a href=\"https://ikeamuseum.com/en/explore/ikea-catalogue/\" data-display-ko=\"이케아 카탈로그\" target=\"_blank\" rel=\"noopener noreferrer\">IKEA catalogue</a></p>\n\n<p><a href=\"https://www.webdesignmuseum.org/\" data-display-ko=\"웹 디자인 뮤지엄\" target=\"_blank\" rel=\"noopener noreferrer\">Web Design Meseum</a></p>\n\n<p><a href=\"https://www.mmcaresearch.kr/\" data-display-ko=\"MMCA 리서치랩\" target=\"_blank\" rel=\"noopener noreferrer\">MMCA Research Lab</a></p>\n\n<p><a href=\"https://infinitemac.org/\" data-display-ko=\"Infinite Mac\" target=\"_blank\" rel=\"noopener noreferrer\">Infinite Mac</a></p>\n\n<p><a href=\"https://eclecticlight.co\" data-display-ko=\"THE ECLECTIC LIGHT COMPANY\" target=\"_blank\" rel=\"noopener noreferrer\">THE ECLECTIC LIGHT COMPANY</a></p>\n",
    "pagename": null,
    "pagenameKo": null,
    "createDate": "2026-05-31",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "archives",
    "tags": []
  }
  



  ,
  {
    "title": "April",
    "url": "/sunrise/2024/April.html",
    "content": "<p><img src=\"2404-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"2404-2.JPG\" alt=\"\" /></p>\n\n<p><img src=\"2404-3.JPG\" alt=\"\" /></p>\n",
    "pagename": "April - Guksabong Peak",
    "pagenameKo": "4월 - 국사봉",
    "nomiation": "Guksabong Peak",
    "address": "Sangdo-dong, Dongjak-gu, Seoul",
    "nomiationKo": "국사봉",
    "addressKo": "서울 동작구 국사봉",
    "createDate": "2024-04-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "December",
    "url": "/sunrise/2024/December.html",
    "content": "<p><img src=\"2412-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2412-2.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2412-3.JPG\" alt=\"\" /></p>\n",
    "pagename": "December - Sky Park",
    "pagenameKo": "12월 - 하늘공원",
    "nomiation": "Sky Park",
    "address": "95, Haneulgongwon-ro, Mapo-gu, Seoul",
    "nomiationKo": "하늘공원",
    "addressKo": "서울 마포구 하늘공원로 95",
    "createDate": "2024-12-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "January",
    "url": "/sunrise/2024/January.html",
    "content": "<p><img src=\"./2401-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./2401-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./2401-3.jpeg\" alt=\"\" /></p>\n",
    "pagename": "January - Seoul Mongchontoseong Earthen Fortification",
    "pagenameKo": "1월 - 몽촌토성공원",
    "nomiation": "Seoul Mongchontoseong Earthen Fortification",
    "address": "424, Olympic-ro, Songpa-gu, Seoul",
    "nomiationKo": "서울 몽촌토성",
    "addressKo": "서울 송파구 올림픽로 424",
    "createDate": "2024-01-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "July",
    "url": "/sunrise/2024/July.html",
    "content": "<p><img src=\"./2407-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2407-2.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2407-3.JPG\" alt=\"\" /></p>\n",
    "pagename": "July - Boramae Park",
    "pagenameKo": "7월 - 보라매공원",
    "nomiation": "Boramae Park",
    "address": "33, Yeouidaebang-ro 20-gil, Dongjak-gu, Seoul",
    "nomiationKo": "보라매공원",
    "addressKo": "서울 동작구 여의대방로 20길 33",
    "createDate": "2024-07-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "June",
    "url": "/sunrise/2024/June.html",
    "content": "<p><img src=\"./2406-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2406-2.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2406-3.JPG\" alt=\"\" /></p>\n",
    "pagename": "June - Nodeul Island",
    "pagenameKo": "6월 - 노들섬",
    "nomiation": "Nodeul Island",
    "address": "445, Yangnyeong-ro, Yongsan-gu, Seoul",
    "nomiationKo": "노들섬",
    "addressKo": "서울 용산구 양녕로 445",
    "createDate": "2024-06-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "March",
    "url": "/sunrise/2024/March.html",
    "content": "<p><img src=\"./2403-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2403-2.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2403-3.JPG\" alt=\"\" /></p>\n",
    "pagename": "March - Han River-Seonyudo Park",
    "pagenameKo": "3월 - 선유도공원",
    "nomiation": "Han River-Seonyudo Park",
    "address": "343, Seonyu-ro, Yeongdeungpo-gu, Seoul",
    "nomiationKo": "한강 선유도공원",
    "addressKo": "서울 영등포구 선유로 343",
    "createDate": "2024-03-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "May",
    "url": "/sunrise/2024/May.html",
    "content": "<p><img src=\"2405-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"2405-2.JPG\" alt=\"\" /></p>\n",
    "pagename": "May - Yongmasan",
    "pagenameKo": "5월 - 용마산",
    "nomiation": "Yongmasan",
    "address": "Daebang-dong, Dongjak-gu, Seoul",
    "nomiationKo": "용마산",
    "addressKo": "서울 동작구 대방동",
    "createDate": "2024-05-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "November",
    "url": "/sunrise/2024/November.html",
    "content": "<p><img src=\"2411-1.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2411-2.JPG\" alt=\"\" /></p>\n\n<p><img src=\"./2411-3.JPG\" alt=\"\" /></p>\n",
    "pagename": "November - Han River-Seonyudo Park",
    "pagenameKo": "11월 - 선유도공원",
    "nomiation": "Han River-Seonyudo Park",
    "address": "343, Seonyu-ro, Yeongdeungpo-gu, Seoul",
    "nomiationKo": "한강 선유도공원",
    "addressKo": "서울 영등포구 선유로 343",
    "createDate": "2024-11-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/sunrise/2024/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "nomiation": null,
    "address": null,
    "nomiationKo": null,
    "addressKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "April",
    "url": "/sunrise/2025/April.html",
    "content": "<p><img src=\"./data/4/1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/4/2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/4/3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/4/4.jpeg\" alt=\"\" /></p>\n",
    "pagename": "April - Jamsil Hangang Park",
    "pagenameKo": "4월 - 잠실 한강공원",
    "nomiation": "Jamsil Hangang Park",
    "address": "65, Hangaram-ro, Songpa-gu, Seoul",
    "nomiationKo": "잠실 한강공원",
    "addressKo": "서울 송파구 한가람로 65",
    "createDate": "2025-04-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "December",
    "url": "/sunrise/2025/December.html",
    "content": "<p><img src=\"./data/12/1.jpeg\" alt=\"1\" /></p>\n\n<p><img src=\"./data/12/2.jpeg\" alt=\"2\" /></p>\n\n<p><img src=\"./data/12/3.jpeg\" alt=\"3\" /></p>\n\n<p><img src=\"./data/12/4.jpeg\" alt=\"4\" /></p>\n",
    "pagename": "December - YTN Seoul Tower",
    "pagenameKo": "12월 - 남산서울타워",
    "nomiation": "YTN Seoul Tower",
    "address": "105 Namsangongwon-gil, Yongsan-gu, Seoul",
    "nomiationKo": "남산서울타워",
    "addressKo": "서울 용산구 남산공원길 105",
    "createDate": "2025-12-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "February",
    "url": "/sunrise/2025/February.html",
    "content": "<p><img src=\"./data/2502-01.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/2502-02.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/2502-03.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/2502-04.jpeg\" alt=\"\" /></p>\n",
    "pagename": "February - Samseong Haemaji Park",
    "pagenameKo": "2월 - 삼성 해맞이공원",
    "nomiation": "Samseong Haemaji Park",
    "address": "39, Yeongdong-daero 128-gil, Gangnam-gu, Seoul",
    "nomiationKo": "삼성 해맞이공원",
    "addressKo": "서울 강남구 영동대로 128길 39",
    "createDate": "2025-02-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "January",
    "url": "/sunrise/2025/January.html",
    "content": "<p><img src=\"./data/2501-01.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/2501-02.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/2501-03.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/2501-04.jpeg\" alt=\"\" /></p>\n",
    "pagename": "January - Site of Moaksan Moutain Beacon Fire East Station",
    "pagenameKo": "1월 - 무악산 동봉수대",
    "nomiation": "Site of Moaksan Moutain Beacon Fire East Station",
    "address": "Bongwon-dong, Seodaemun-gu, Seoul",
    "nomiationKo": "무악산 동봉수대",
    "addressKo": "서울 서대문구 봉원동",
    "createDate": "2025-01-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "March",
    "url": "/sunrise/2025/March.html",
    "content": "<p><img src=\"./data/3/1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/3/2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/3/3.jpeg\" alt=\"\" /></p>\n",
    "pagename": "March - Sayukshin Park",
    "pagenameKo": "3월 - 사육신공원",
    "nomiation": "Sayukshin Park",
    "address": "191, Noryangjin-ro, Dongjak-gu, Seoul",
    "nomiationKo": "사육신공원",
    "addressKo": "서울 동작구 노량진로 191",
    "createDate": "2025-03-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "May",
    "url": "/sunrise/2025/May.html",
    "content": "<p><img src=\"./data/5/1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/5/2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./data/5/3.jpeg\" alt=\"\" /></p>\n",
    "pagename": "May - Boramae Park",
    "pagenameKo": "5월 - 보라매공원",
    "nomiation": "Boramae Park",
    "address": "33, Yeouidaebang-ro 20-gil, Dongjak-gu, Seoul",
    "nomiationKo": "보라매공원",
    "addressKo": "서울 동작구 여의대방로 20길 33",
    "createDate": "2025-05-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "November",
    "url": "/sunrise/2025/November.html",
    "content": "<p><img src=\"./data/11/1.jpeg\" alt=\"1\" /></p>\n\n<p><img src=\"./data/11/2.jpeg\" alt=\"2\" /></p>\n\n<p><img src=\"./data/11/3.jpeg\" alt=\"3\" /></p>\n\n<p><img src=\"./data/11/4.jpeg\" alt=\"4\" /></p>\n",
    "pagename": "November - Korea Seoul National Cemetery",
    "pagenameKo": "11월 - 국립서울현충원",
    "nomiation": "Korea Seoul National Cemetery",
    "address": "210 Hyeonchung-ro, Dongjak-gu, Seoul",
    "nomiationKo": "국립서울현충원",
    "addressKo": "서울 동작구 현충로 210",
    "createDate": "2025-11-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "October",
    "url": "/sunrise/2025/October.html",
    "content": "<p><img src=\"./data/10/1.jpg\" alt=\"1\" /></p>\n\n<p><img src=\"./data/10/2.jpg\" alt=\"2\" /></p>\n\n<p><img src=\"./data/10/3.jpg\" alt=\"3\" /></p>\n\n<p><img src=\"./data/10/4.jpg\" alt=\"4\" /></p>\n",
    "pagename": "October - Eungbongsan",
    "pagenameKo": "10월 - 응봉산",
    "nomiation": "Eungbongsan",
    "address": "1540, Geumho-dong 4(sa)-ga, Seongdong-gu, Seoul",
    "nomiationKo": "응봉산",
    "addressKo": "서울 성동구 금호동4가 1540",
    "createDate": "2025-10-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/sunrise/2025/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "nomiation": null,
    "address": null,
    "nomiationKo": null,
    "addressKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "April",
    "url": "/sunrise/2026/April.html",
    "content": "<p><img src=\"./images/2604-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2604-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2604-3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2604-4.jpeg\" alt=\"\" /></p>\n",
    "pagename": "April - Boramae Park",
    "pagenameKo": "4월 - 보라매공원",
    "nomiation": "Boramae Park",
    "address": "33, Yeouidaebang-ro 20-gil, Dongjak-gu, Seoul",
    "nomiationKo": "보라매공원",
    "addressKo": "서울 동작구 여의대방로 20길 33",
    "createDate": "2026-04-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "August",
    "url": "/sunrise/2026/August.html",
    "content": "<p><img src=\"./images/2608-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2608-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2608-3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2608-4.jpeg\" alt=\"\" /></p>\n",
    "pagename": "August - Grass Garden",
    "pagenameKo": "8월 - 그라스정원",
    "nomiation": "Grass Garden",
    "address": "221-124, Jamwon-ro, Seocho-gu, Seoul",
    "nomiationKo": "그라스정원",
    "addressKo": "서울 서초구 잠원로 221-124",
    "createDate": "2026-08-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "February",
    "url": "/sunrise/2026/February.html",
    "content": "<p><img src=\"./images/2602-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2602-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2602-3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2602-4.jpeg\" alt=\"\" /></p>\n",
    "pagename": "February - Myeong-dong Cathedral",
    "pagenameKo": "2월 - 명동대성당",
    "nomiation": "Myeong-dong Cathedral",
    "address": "74, Myeongdong-gil, Jung-gu, Seoul",
    "nomiationKo": "명동대성당",
    "addressKo": "서울 중구 명동길 74",
    "createDate": "2026-02-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "January",
    "url": "/sunrise/2026/January.html",
    "content": "<p><img src=\"./images/2601-1.jpg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2601-2.jpg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2601-3.jpg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2601-4.jpg\" alt=\"\" /></p>\n",
    "pagename": "January - Yongbongsan Mountain Natural Recreation Forest",
    "pagenameKo": "1월 - 용봉산 자연휴양림",
    "nomiation": "Yongbongsan Mountain Natural Recreation Forest",
    "address": "87, Yongbongsan 2-gil, Hongbuk-eup, Hongseong-gun, Chungcheongnam-do",
    "nomiationKo": "용봉산 자연휴양림",
    "addressKo": "충남 홍성군 홍북읍 용봉산2길 87",
    "createDate": "2026-01-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "July",
    "url": "/sunrise/2026/July.html",
    "content": "<p><img src=\"./images/2607-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2607-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2607-3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2607-4.jpeg\" alt=\"\" /></p>\n",
    "pagename": "July - Umyeonsan",
    "pagenameKo": "7월 - 우면산",
    "nomiation": "Umyeonsan",
    "address": "San34-1, Umyeon-dong, Seocho-gu, Seoul",
    "nomiationKo": "우면산",
    "addressKo": "서울 서초구 우면동 산34-1",
    "createDate": "2026-07-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "June",
    "url": "/sunrise/2026/June.html",
    "content": "<p><img src=\"./images/2606-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2606-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2606-3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2606-4.jpeg\" alt=\"\" /></p>\n",
    "pagename": "June - Seoul Mongchontoseong Earthen Fortification",
    "pagenameKo": "6월 - 올림픽공원",
    "nomiation": "Seoul Mongchontoseong Earthen Fortification",
    "address": "424, Olympic-ro, Songpa-gu, Seoul",
    "nomiationKo": "올림픽공원",
    "addressKo": "서울 송파구 올림픽로 424",
    "createDate": "2026-06-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "March",
    "url": "/sunrise/2026/March.html",
    "content": "<p><img src=\"./images/2603-1.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2603-2.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2603-3.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2603-4.jpeg\" alt=\"\" /></p>\n\n<p><img src=\"./images/2603-5.jpeg\" alt=\"\" /></p>\n",
    "pagename": "March - Sky Park",
    "pagenameKo": "3월 - 하늘공원",
    "nomiation": "Sky Park",
    "address": "95, Haneulgongwon-ro, Mapo-gu, Seoul",
    "nomiationKo": "하늘공원",
    "addressKo": "서울 마포구 하늘공원로 95",
    "createDate": "2026-03-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "May",
    "url": "/sunrise/2026/May.html",
    "content": "<p><img src=\"./images/2605-1.png\" alt=\"\" /></p>\n\n<p><img src=\"./images/2605-2.png\" alt=\"\" /></p>\n\n<p><img src=\"./images/2605-3.png\" alt=\"\" /></p>\n\n<p><img src=\"./images/2605-4.png\" alt=\"\" /></p>\n\n",
    "pagename": "May - Yongyangbongjeojeong Park",
    "pagenameKo": "5월 - 용양봉저정공원",
    "nomiation": "Yongyangbongjeojeong Park",
    "address": "San3-9, Bon-dong, Dongjak-gu, Seoul",
    "nomiationKo": "용양봉저정공원",
    "addressKo": "서울 동작구 본동 산3-9",
    "createDate": "2026-05-01",
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/sunrise/2026/index.html",
    "content": "\n",
    "pagename": null,
    "pagenameKo": null,
    "nomiation": null,
    "address": null,
    "nomiationKo": null,
    "addressKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

  ,
  {
    "title": "Index",
    "url": "/sunrise/index.html",
    "content": "<p><a href=\"./2024\">2024</a></p>\n\n<p><a href=\"./2025\">2025</a></p>\n\n<p><a href=\"./2026\">2026</a></p>\n",
    "pagename": null,
    "pagenameKo": null,
    "nomiation": null,
    "address": null,
    "nomiationKo": null,
    "addressKo": null,
    "createDate": null,
    "date": "2026-08-13 18:13:28 +0000",
    "category": "sunrise",
    "tags": []
  }
  

]
