diff --git a/components/UserProfile.tsx b/components/UserProfile.tsx
index a0e4087..b49e432 100644
--- a/components/UserProfile.tsx
+++ b/components/UserProfile.tsx
@@ -8,10 +8,10 @@ import Spinner from './Spinner';
/**
* UserProfile 컴포넌트
* 사용자의 프로필 정보를 표시하고 편집하는 컴포넌트
- * PC와 모바일/태블릿 환경에서 각각 다른 레이아웃으로 표시됨
+ * PC, 태블릿, 모바일 환경에 따라 레이아웃이 반응형으로 변경
*
- * @param data - 사용자 프로필 데이터
- * @param isEditing - 편집 모드 여부 (기본값: false)
+ * @param data - 사용자 프로필 데이터 객체
+ * @param isEditing - 편집 모드 여부
* @param onDataChange - 데이터 변경 시 호출되는 콜백 함수
*/
function UserProfile({
@@ -19,16 +19,16 @@ function UserProfile({
isEditing = false,
onDataChange,
}: UserProfileProps) {
- // 추가 정보 영역의 펼침/접힘 상태 관리
+ // 추가 정보 영역의 펼침/접힘 상태 관리 훅
const { isExpanded, toggleExpand } = useExpandedState();
- // 프로필 이미지 관련 상태와 핸들러
+ // 프로필 이미지 관련 상태와 이벤트 핸들러 훅
const {
- isLoading,
- previewImage,
- fileInputRef,
- handleImageClick,
- handleFileChange,
+ isLoading, // 이미지 로딩 상태
+ previewImage, // 이미지 미리보기 URL
+ fileInputRef, // 파일 입력 요소 참조
+ handleImageClick, // 이미지 클릭 핸들러
+ handleFileChange, // 파일 변경 핸들러
} = useProfileImage((url) => onDataChange('image', url));
/**
@@ -36,7 +36,7 @@ function UserProfile({
* 편집 모드에서는 입력 필드로, 조회 모드에서는 텍스트로 표시
*
* @param label - 필드 레이블
- * @param field - 데이터 객체의 키
+ * @param field - data 객체의 키값
* @returns 렌더링된 필드 컴포넌트
*/
const renderField = (label: string, field: keyof typeof data) => {
@@ -77,32 +77,35 @@ function UserProfile({
type="button"
disabled={isLoading}
>
- {/* 프로필 이미지 표시 */}
-