From ed4ca31c5e3c5156f714cf01c45355c89da2307d Mon Sep 17 00:00:00 2001 From: tolelom <98kimsungmin@naver.com> Date: Mon, 23 Mar 2026 00:19:12 +0900 Subject: [PATCH] feat: add profile photo, enhance content and design - Add cropped profile photo in hero section - Expand About section with development philosophy and infrastructure details - Enhance Experience descriptions with specific activities - Improve project descriptions with roles and technical details - Redesign section titles to uppercase label style with accent color - Increase hero and section spacing for better visual rhythm Co-Authored-By: Claude Opus 4.6 --- css/style.css | 38 ++++++++++++++++++++++++++++++-------- data/projects.js | 10 +++++----- images/profile.jpg | Bin 0 -> 28020 bytes index.html | 19 ++++++++++++------- 4 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 images/profile.jpg diff --git a/css/style.css b/css/style.css index 96bdadb..6721559 100644 --- a/css/style.css +++ b/css/style.css @@ -22,19 +22,24 @@ img { max-width: 100%; display: block; } .container { max-width: 960px; margin: 0 auto; padding: 0 40px; } .section { - padding: 72px 0; + padding: 80px 0; border-bottom: 1px solid #eee; } .section:last-child { border-bottom: none; } .section-title { - font-size: 1.35rem; + font-size: 0.8rem; font-weight: 700; - margin-bottom: 28px; - color: #111; - letter-spacing: -0.02em; + text-transform: uppercase; + letter-spacing: 1.5px; + margin-bottom: 32px; + color: #0055cc; } +/* === About === */ +.about-content { display: flex; flex-direction: column; gap: 14px; } +.about-content p { color: #444; font-size: 1rem; line-height: 1.8; } + /* === Nav === */ .nav { position: sticky; @@ -75,10 +80,19 @@ img { max-width: 100%; display: block; } /* === Hero === */ .hero { - padding: 100px 0 72px; + padding: 120px 0 80px; text-align: center; } +.hero-photo { + width: 150px; + border-radius: 50%; + object-fit: cover; + aspect-ratio: 1; + object-position: center 20%; + margin: 0 auto 24px; +} + .hero-name { font-size: 3rem; font-weight: 800; @@ -94,6 +108,14 @@ img { max-width: 100%; display: block; } font-weight: 400; } +.hero-tagline { + font-size: 1.05rem; + color: #777; + margin-top: 16px; + font-weight: 400; + line-height: 1.6; +} + .hero-tags { display: flex; gap: 10px; @@ -357,10 +379,10 @@ img { max-width: 100%; display: block; } .nav { padding: 0 20px; } .nav-inner { gap: 16px; } .nav-link { font-size: 0.8rem; } - .hero { padding: 60px 0 48px; } + .hero { padding: 80px 0 56px; } .hero-name { font-size: 2rem; } .hero-role { font-size: 1rem; } - .section { padding: 48px 0; } + .section { padding: 56px 0; } .card-grid { grid-template-columns: 1fr; } .infra-grid { grid-template-columns: 1fr 1fr; } } diff --git a/data/projects.js b/data/projects.js index 2977168..8b6d10c 100644 --- a/data/projects.js +++ b/data/projects.js @@ -1,7 +1,7 @@ const projects = [ { name: "One of the Plans (A301)", - description: "Unity 기반 MMORPG 게임 프로젝트. 멀티플레이어 서버는 Go로 구현.", + description: "Unity 기반 MMORPG 게임 프로젝트. Go로 멀티플레이어 게임 서버를 설계·구현하고, Unity C#으로 클라이언트를 개발. 실시간 동기화, 전투 시스템, 캐릭터 관리 등 핵심 게임 로직을 담당.", tags: ["Unity", "C#", "Go"], links: [ { label: "a301.tolelom.xyz", url: "https://a301.tolelom.xyz" }, @@ -11,7 +11,7 @@ const projects = [ }, { name: "No-Ill", - description: "노인 낙상 감지 및 외로움 방지를 위한 IoT 장치와 보호자 앱. 센서 기반 낙상 감지 시스템과 보호자용 모니터링 웹/앱을 개발.", + description: "노인 낙상 감지 및 외로움 방지를 위한 IoT 프로젝트. 센서 기반 낙상 감지 장치, 디스플레이 인터페이스, 보호자용 모니터링 웹과 앱을 개발. Go(Fiber) 백엔드와 React 프론트엔드로 구성.", tags: ["React", "Go", "IoT"], links: [ { label: "no-ill.tolelom.xyz", url: "https://no-ill.tolelom.xyz" }, @@ -21,14 +21,14 @@ const projects = [ }, { name: "TOL", - description: "한글 프로그래밍 언어 개발 프로젝트. 3인 팀으로 진행하며 프로그래밍 언어 분야에 흥미를 가지게 된 계기. 순수 C++로 언어를 설계하고 구현.", + description: "한글 프로그래밍 언어 개발 프로젝트. 3인 팀으로 렉서, 파서, 인터프리터를 순수 C++로 설계·구현. 프로그래밍 언어론에 관심을 가지게 된 계기가 된 프로젝트. 웹 기반 온라인 에디터도 함께 개발.", tags: ["C++", "Express.js", "MongoDB"], links: [], category: "언어 개발" }, { name: "SION", - description: "Jetson 키트를 활용한 자율주행 및 모니터링 웹 페이지.", + description: "Jetson 키트를 활용한 자율주행 RC카 프로젝트. Python으로 차선 인식 및 주행 제어를 구현하고, 실시간 카메라 피드와 주행 상태를 모니터링하는 웹 대시보드를 개발.", tags: ["Python", "Jetson", "Web"], links: [ { label: "sion.tolelom.xyz", url: "https://sion.tolelom.xyz" } @@ -37,7 +37,7 @@ const projects = [ }, { name: "Neo-Slasher", - description: "게임 개발 동아리 ExP에서 8인 팀으로 진행한 액션 게임. 프로그래밍 디렉터로 데이터 관리, 인터페이스 개발 및 전체 프로그래밍 과정을 담당.", + description: "게임 개발 동아리 ExP에서 8인 팀으로 제작한 3D 액션 게임. 프로그래밍 디렉터로서 데이터 관리 시스템, UI/인터페이스 설계, 전투 로직 등 전체 프로그래밍 아키텍처를 주도.", tags: ["Unity", "C#"], links: [], category: "게임" diff --git a/images/profile.jpg b/images/profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a8b107c2099d8b435129aa6fadd23f11020e5a7 GIT binary patch literal 28020 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 1ed982e..0f9265b 100644 --- a/index.html +++ b/index.html @@ -28,8 +28,10 @@
+ 김성민

김성민

풀스택 & 게임 개발자

+

게임 서버부터 프로그래밍 언어까지, 만들고 싶은 건 직접 만듭니다.

C++ Go @@ -44,8 +46,11 @@

About

-

새로운 기술을 배우는 것을 좋아하며, 특히 언어 개발과 게임 제작에 관심이 많습니다. 효율적인 코드 작성법, 읽기 쉬운 코드에 대해 고민하는 것을 좋아합니다.

-

홍익대학교 알고리즘 학회 HI-ARC 학회장을 역임했으며, ICPC 신촌 초급 강사와 멘토로 활동했습니다. 현재는 게임 서버 개발과 웹 풀스택 개발을 중심으로 다양한 프로젝트를 진행하고 있습니다.

+
+

프로그래밍 언어의 설계와 구현에 깊은 관심을 가지고 있으며, 순수 C++로 한글 프로그래밍 언어를 만든 경험이 있습니다. 게임 개발에서는 Unity와 C#으로 클라이언트를, Go로 멀티플레이어 서버를 구축합니다.

+

효율적이고 읽기 쉬운 코드를 지향하며, 알고리즘 문제 해결 능력을 기반으로 성능을 고려한 설계를 합니다. 홍익대학교 알고리즘 학회 HI-ARC 학회장을 역임하고, ICPC 신촌에서 초급 강사와 멘토로 활동하며 지식 공유에도 힘써왔습니다.

+

현재는 Mac Mini 서버에 Docker와 Caddy 기반의 셀프호스팅 인프라를 운영하며, 개인 프로젝트들을 직접 배포하고 관리하고 있습니다.

+
@@ -103,35 +108,35 @@ HI-ARC 학회장 2019
-

홍익대학교 알고리즘 학회 HI-ARC 학회장

+

홍익대학교 알고리즘 학회 HI-ARC 학회장. 학회 운영 체계를 정비하고 정기 스터디·세미나를 기획하여 학회 활성화를 이끔.

HI-ARC 운영진 2022.01 ~ 2024.02
-

학회 운영 및 스터디 관리

+

학회 운영 및 스터디 관리. 신입 부원 교육 커리큘럼을 설계하고, 알고리즘 스터디 멘토링을 진행.

ICPC 신촌 초급 강사 / 멘토 2020, 2022
-

ICPC 신촌 Winter 초급 강사(2020) 및 멘토(2022) 활동

+

ICPC 신촌 연합 캠프에서 알고리즘 초급 강의(2020 Winter)와 멘토링(2022) 담당. 기초 자료구조부터 그래프 탐색까지 강의.

제 1회 하이콘 출제 및 총괄 2019
-

프로그래밍 대회 문제 출제 및 대회 운영 총괄

+

HI-ARC 주관 프로그래밍 대회의 첫 회를 기획. 문제 출제, 검수, 대회 운영 전반을 총괄.

SUAPC 2024 Winter 2024
-

12등 (팀명: 하이아크 최고죠)

+

신촌 연합 프로그래밍 대회 12등 (팀: 하이아크 최고죠). 3인 팀으로 참가.