11import type { AboutProps } from "@/@types/AboutProps" ;
22
3+ import React from "react" ; // React 임포트 (필요할 수 있음)
4+
5+ import styled from "styled-components" ; // styled-components 임포트
6+
37import Content from "@/Component/About/Content" ;
48import ProfileImageWrapper from "@/Component/About/ProfileImgWrapper" ;
59import Title from "@/Component/About/Title" ;
610import Flex from "@/Component/Common/Flex/Flex" ;
11+
12+ // AboutContent 객체 오타 수정! 닫는 중괄호 추가!
713const AboutContent : AboutProps = {
814 title : "안녕하세요! 항상 팀에 기여하고 싶은 개발자 김효중입니다" ,
915 imgurl : "/images/Profile.jpg" ,
@@ -13,71 +19,104 @@ const AboutContent: AboutProps = {
1319 "기록하면서 공부할 때 가장 성취감을 느낍니다.항상 제가 배운 내용을 기록하고자 합니다." ,
1420 "항상 소속된 팀에서 작은 것들이라도 기여하는 사람이 되고 싶습니다" ,
1521 ] ,
16- } ;
22+ } ; // <<< 여기 중괄호 추가!
23+
24+ // styled-components로 메인 컨테이너 스타일 정의
25+ const StyledMain = styled . main `
26+ display: flex;
27+ flex-direction: column;
28+ max-width: 80%;
29+ margin: 0 auto; /* 중앙 정렬 추가 */
30+ width: 100%; /* 너비 100%로 설정하여 max-width와 함께 반응형에 유리 */
31+ ` ;
32+
33+ // styled-components로 Article 컨테이너 스타일 정의
34+ const StyledArticle = styled . article `
35+ display: flex;
36+ justify-content: space-around; /* 요소들 사이에 공간 균등 분배 */
37+ width: 100%; /* 부모(StyledMain)의 너비에 맞추도록 100% */
38+ gap: 20px; /* 자식 요소들 사이의 간격 (더 크게 줘봄) */
39+ padding: 0;
40+ margin: 20px auto; /* 상하 여백 및 중앙 정렬 */
41+ flex-wrap: wrap; /* 화면이 좁아지면 요소들이 아래로 내려가도록 */
42+ /* 자식 요소인 ProfileImageWrapper와 Content의 너비를 잘 조절해야 반응형 레이아웃이 예뻐짐 */
43+ ` ;
44+
45+ // 경험 목록 (Experiences) 부분 스타일드 컴포넌트 (ul 태그 사용)
46+ const ExperiencesList = styled . ul `
47+ list-style: none; /* 기본 목록 점/숫자 없애기 */
48+ padding: 0; /* 기본 패딩 없애기 */
49+ margin: 0; /* 기본 마진 없애기 */
50+ display: flex;
51+ flex-direction: column;
52+ gap: 5px; /* 각 경험 항목 사이 간격 */
53+ align-items: flex-start; /* 왼쪽 정렬 */
54+ ` ;
55+
56+ // 경험 목록 항목 (li 태그 사용)
57+ const ExperienceItem = styled . li `
58+ font-weight: 500;
59+ font-size: 14px;
60+ /* 필요한 추가 스타일 */
61+ ` ;
1762
18- export default async function About ( ) {
63+ // async 키워드 제거
64+ export default function About ( ) {
1965 return (
20- < main
21- style = { {
22- display : "flex" ,
23- flexDirection : "column" ,
24- maxWidth : "80%" ,
25- } }
26- >
66+ // styled-components로 만든 StyledMain 사용
67+ < StyledMain >
2768 < Title
2869 title = { AboutContent . title }
2970 style = { {
71+ // Title 컴포넌트 자체 스타일은 그대로 유지
3072 display : "flex" ,
3173 justifyContent : "center" ,
3274 } }
3375 />
34- < article
35- style = { {
36- display : "flex" ,
37- justifyContent : "space-around" ,
38- width : "70%" ,
39- gap : "5px" ,
40- padding : "0" ,
41- margin : "0 auto" ,
42- flexWrap : "wrap" ,
43- } }
44- >
76+ { /* styled-components로 만든 StyledArticle 사용 */ }
77+ < StyledArticle >
78+ { /* ProfileImageWrapper와 Content는 기존 컴포넌트 사용 */ }
4579 < ProfileImageWrapper imgurl = { AboutContent . imgurl } />
4680 < Content content = { AboutContent . content } />
47- < br />
48- < Flex
49- flexDirection = "column"
50- alignItems = "flex-start"
51- margin = { "0 auto" }
52- width = { "100%" }
53- >
54- < h2 > Skill</ h2 >
55- < p
56- style = { {
57- fontWeight : "bold" ,
58- } }
59- >
60- React,Next.js,Typescript
61- </ p >
62- < h2 > Experiences</ h2 >
63- < Flex
64- flexDirection = "column"
65- gap = "5px"
66- alignItems = "flex-start"
67- justifyContent = "flex-start"
68- style = { {
69- fontWeight : "500" ,
70- fontSize : "14px" ,
71- } }
72- >
73- < span > 💙 토스증권 프론트엔드 어시스턴트 Product Stability Team (2025.03.10 ~ )</ span >
74- < span > 💙 주식회사 업사이트 프론트엔드 인턴 (2024.08 ~ 2024.11)</ span >
75- < span > 💙 프로그래머스 프론트엔드 데브코스 (2023.06 ~ 2023.11)
76- < span > 2024.01 ~ 멋쟁이사자처럼 SKHU 프론트엔드 운영진</ span >
77- < span > 2022.08~2023.06 GDSC SKHU 프론트엔드 파트</ span >
78- </ Flex >
79- </ Flex >
80- </ article >
81- </ main >
81+ { /* 불필요한 <br /> 태그 제거 */ }
82+ </ StyledArticle >
83+
84+ { /* Flex 컴포넌트를 스킬/경험 섹션 감싸는 용도로 사용 */ }
85+ < Flex
86+ flexDirection = "column"
87+ alignItems = "flex-start"
88+ margin = { "20px auto 0 auto" } // 상단 마진 추가 및 중앙 정렬
89+ width = { "100%" } // StyledMain 안에서 100% 너비 사용
90+ >
91+ < h2 > Skill</ h2 >
92+ < p style = { { fontWeight : "bold" } } >
93+ { " " }
94+ { /* 인라인 스타일 유지 */ }
95+ React,Next.js,Typescript
96+ </ p >
97+ < h2 > Experiences</ h2 >
98+ { /* ExperiencesList (ul) styled component 사용 */ }
99+ < ExperiencesList >
100+ { /* 각 경험 항목을 ExperienceItem (li) styled component로 감쌈 */ }
101+ < ExperienceItem >
102+ 💙 토스증권 프론트엔드 어시스턴트 Product Stability Team (2025.03.10
103+ ~ )
104+ </ ExperienceItem >
105+ < ExperienceItem >
106+ 💙 주식회사 업사이트 프론트엔드 인턴 (2024.08 ~ 2024.11)
107+ </ ExperienceItem >
108+ < ExperienceItem >
109+ 💙 프로그래머스 프론트엔드 데브코스 (2023.06 ~ 2023.11)
110+ </ ExperienceItem > { " " }
111+ { /* span 중첩 오류 수정 */ }
112+ < ExperienceItem >
113+ 2024.01 ~ 멋쟁이사자처럼 SKHU 프론트엔드 운영진
114+ </ ExperienceItem >
115+ < ExperienceItem >
116+ 2022.08~2023.06 GDSC SKHU 프론트엔드 파트
117+ </ ExperienceItem >
118+ </ ExperiencesList >
119+ </ Flex >
120+ </ StyledMain >
82121 ) ;
83122}
0 commit comments