74 lines
2.5 KiB
JavaScript
74 lines
2.5 KiB
JavaScript
// views/about.js — 소개 화면
|
|
// 라우트: #/about
|
|
// 본문은 아래 ABOUT_MD 상수 하나만 고치면 된다.
|
|
|
|
import { renderMarkdown } from '../markdown.js';
|
|
|
|
/* 여기 내용을 자유롭게 수정하세요 */
|
|
const ABOUT_MD = `
|
|
## 안녕하세요, 게임 서버를 만드는 개발자입니다.
|
|
|
|
Unity 클라이언트가 기대는 **서버**를 설계하고 만듭니다.
|
|
게임이 재미있으려면 그 아래가 조용히 잘 돌아가야 한다고 생각합니다.
|
|
지금은 개인 프로젝트 **Genesis**의 서버를 혼자 만들면서,
|
|
캐릭터 데이터 구조부터 API 설계, 배포까지 전부 직접 다루고 있습니다.
|
|
|
|
---
|
|
|
|
### 지금 하고 있는 것
|
|
|
|
- **Genesis 게임 서버** — Unity 게임용 REST API 서버.
|
|
캐릭터 생성과 성장, 유저별 보유 캐릭터 관리를 담당합니다.
|
|
- **이 포트폴리오 사이트** — 같은 서버 위에서 함께 돌아갑니다.
|
|
게임 API와 한 프로세스를 쓰면서 정적 SPA로 화면을 그립니다.
|
|
|
|
### 쓰는 기술
|
|
|
|
- **서버** — C# / .NET 9, ASP.NET Core, Entity Framework Core
|
|
- **데이터베이스** — MariaDB (Pomelo EF Core 프로바이더)
|
|
- **클라이언트** — Unity, C#
|
|
- **프론트엔드** — 프레임워크 없는 순수 ES 모듈, CSS 디자인 시스템
|
|
|
|
### 일하는 방식
|
|
|
|
> 돌아가게 만든 다음, 왜 돌아가는지 설명할 수 있을 때까지 다듬습니다.
|
|
|
|
빌드 한 번으로 끝나는 배포를 좋아하고,
|
|
남이 읽을 코드라고 생각하고 씁니다.
|
|
문제가 생겼을 때 로그만 보고 원인을 짚을 수 있는 구조를 지향합니다.
|
|
|
|
---
|
|
|
|
### 연락
|
|
|
|
작업 문의나 협업 제안은 언제든 환영합니다.
|
|
왼쪽 위 **작업** 탭에서 만든 것들을 먼저 봐 주세요.
|
|
`;
|
|
|
|
/**
|
|
* 소개 뷰.
|
|
* @param {Object} params 사용하지 않음
|
|
* @param {HTMLElement} outlet
|
|
* @returns {Function} cleanup
|
|
*/
|
|
export async function view(params, outlet) {
|
|
outlet.innerHTML =
|
|
'<section class="section">' +
|
|
'<div class="section__head">' +
|
|
'<h2 class="section__title">소개</h2>' +
|
|
'<p class="section__sub">무엇을 만들고, 어떻게 일하는지.</p>' +
|
|
'</div>' +
|
|
'<div class="glass post">' +
|
|
'<div class="post__body">' + renderMarkdown(ABOUT_MD) + '</div>' +
|
|
'</div>' +
|
|
'</section>';
|
|
|
|
document.title = '김낙준 · 소개';
|
|
|
|
return () => {
|
|
// 붙인 리스너가 없어 따로 정리할 것이 없다.
|
|
};
|
|
}
|
|
|
|
export default view;
|