From 794d66ea3d52af218d7c51e45b623fd8e42bba54 Mon Sep 17 00:00:00 2001 From: alreadynyeong Date: Fri, 1 Sep 2023 18:59:27 +0900 Subject: [PATCH] Updates --- 404.html | 2 +- .../_buildManifest.js | 2 +- .../_ssgManifest.js | 0 .../chunks/pages/activity-bc0d71a063ea7185.js | 1 - .../chunks/pages/activity-e617e3a3561fbc73.js | 1 + ...710a32e9.js => project-5d935617022e4388.js} | 2 +- ...d8c0bb8.js => projects-60e7b37f3ff83692.js} | 2 +- about.html | 2 +- activity.html | 2 +- index.html | 2 +- project.html | 2 +- projects.html | 2 +- projects/8.png | Bin 0 -> 132508 bytes projects/9.png | Bin 0 -> 30367 bytes 14 files changed, 10 insertions(+), 10 deletions(-) rename _next/static/{KbXx515Sq0YFY4JRBXh1j => OgkLLIzXAa4FvmhgDBexv}/_buildManifest.js (66%) rename _next/static/{KbXx515Sq0YFY4JRBXh1j => OgkLLIzXAa4FvmhgDBexv}/_ssgManifest.js (100%) delete mode 100644 _next/static/chunks/pages/activity-bc0d71a063ea7185.js create mode 100644 _next/static/chunks/pages/activity-e617e3a3561fbc73.js rename _next/static/chunks/pages/{project-f78d6d84710a32e9.js => project-5d935617022e4388.js} (57%) rename _next/static/chunks/pages/{projects-2922cc28dd8c0bb8.js => projects-60e7b37f3ff83692.js} (66%) create mode 100644 projects/8.png create mode 100644 projects/9.png diff --git a/404.html b/404.html index 0acd24a..19dc231 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -404: This page could not be found
Home
About
Activity
Projects
Lee Min Hyeong
+

404

This page could not be found.

\ No newline at end of file +404: This page could not be found
Home
About
Activity
Projects
Lee Min Hyeong
+

404

This page could not be found.

\ No newline at end of file diff --git a/_next/static/KbXx515Sq0YFY4JRBXh1j/_buildManifest.js b/_next/static/OgkLLIzXAa4FvmhgDBexv/_buildManifest.js similarity index 66% rename from _next/static/KbXx515Sq0YFY4JRBXh1j/_buildManifest.js rename to _next/static/OgkLLIzXAa4FvmhgDBexv/_buildManifest.js index 96c154b..9b735bc 100644 --- a/_next/static/KbXx515Sq0YFY4JRBXh1j/_buildManifest.js +++ b/_next/static/OgkLLIzXAa4FvmhgDBexv/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST={__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/pages/index-4dcd280570196b31.js"],"/_error":["static/chunks/pages/_error-54de1933a164a1ff.js"],"/about":["static/chunks/pages/about-e9908cd35bdbf60e.js"],"/activity":["static/chunks/pages/activity-bc0d71a063ea7185.js"],"/project":["static/chunks/pages/project-f78d6d84710a32e9.js"],"/projects":["static/chunks/pages/projects-2922cc28dd8c0bb8.js"],sortedPages:["/","/_app","/_error","/about","/activity","/project","/projects"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST={__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/pages/index-4dcd280570196b31.js"],"/_error":["static/chunks/pages/_error-54de1933a164a1ff.js"],"/about":["static/chunks/pages/about-e9908cd35bdbf60e.js"],"/activity":["static/chunks/pages/activity-e617e3a3561fbc73.js"],"/project":["static/chunks/pages/project-5d935617022e4388.js"],"/projects":["static/chunks/pages/projects-60e7b37f3ff83692.js"],sortedPages:["/","/_app","/_error","/about","/activity","/project","/projects"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/KbXx515Sq0YFY4JRBXh1j/_ssgManifest.js b/_next/static/OgkLLIzXAa4FvmhgDBexv/_ssgManifest.js similarity index 100% rename from _next/static/KbXx515Sq0YFY4JRBXh1j/_ssgManifest.js rename to _next/static/OgkLLIzXAa4FvmhgDBexv/_ssgManifest.js diff --git a/_next/static/chunks/pages/activity-bc0d71a063ea7185.js b/_next/static/chunks/pages/activity-bc0d71a063ea7185.js deleted file mode 100644 index 9dbdc75..0000000 --- a/_next/static/chunks/pages/activity-bc0d71a063ea7185.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[839],{9674:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/activity",function(){return e(9373)}])},9373:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return I}});var o=e(2729),i=e(5893),r=e(5675),c=e.n(r),d=e(1686);let u=[{id:0,title:"GDSC SSWU 4th",date:"2022.09~2023.06",role:"교육팀 팀장",content:[{id:0,text:"GDSC SSWU 4기 홈페이지 제작",project:"GDSC SSWU",projectNum:4},{id:1,text:"Google Solution Challenge 참가",project:"withParents",projectNum:2}]},{id:1,title:"Pycon Korea 2023",date:"2023.01~2023.07",role:"FE 개발 자원봉사자",content:[{id:0,project:"Pycon Korea 2023",projectNum:3}]},{id:2,title:"수정광산 SaltyLab 1기",date:"2022.10~2023.10",role:"Frontend 개발팀",content:[{id:0,project:"수정광산",projectNum:5}]},{id:3,title:"UMC 4th SSWU",date:"2023.03~",role:"Member",content:[{id:0,text:"4회 NE(O)RDINARY 해커톤 우수상",project:"Re:MEMORY",projectNum:6},{id:1,text:"4회 UMC 해커톤 우수상",project:"Green Quest",projectNum:7}]}];function l(){let n=(0,o._)(["\n width: 100%;\n margin-top: 70px;\n margin-bottom: 150px;\n"]);return l=function(){return n},n}function p(){let n=(0,o._)(["\n width: 80%;\n justify-content: center;\n margin: 0 auto;\n"]);return p=function(){return n},n}function f(){let n=(0,o._)(["\n font-size: 1.5rem;\n font-weight: bold;\n padding: 30px;\n border-bottom: 2px solid black;\n"]);return f=function(){return n},n}function s(){let n=(0,o._)(["\n font-size: 1.2rem;\n padding: 30px;\n padding-bottom: 50px;\n border-bottom: 1px solid lightgray;\n"]);return s=function(){return n},n}function a(){let n=(0,o._)(["\n font-size: 0.8rem;\n color: gray;\n margin-left: 10px;\n"]);return a=function(){return n},n}function h(){let n=(0,o._)(["\n font-size: 1rem;\n margin-top: 30px;\n"]);return h=function(){return n},n}function m(){let n=(0,o._)(["\n border-left: 3px solid black;\n"]);return m=function(){return n},n}function g(){let n=(0,o._)(["\n font-size: 1rem;\n margin-top: 20px;\n margin-left: 20px;\n"]);return g=function(){return n},n}function x(){let n=(0,o._)(["\n font-size: 0.9rem;\n margin-right: 7px;\n color: green;\n"]);return x=function(){return n},n}let j=d.ZP.div.withConfig({componentId:"sc-8e417d34-0"})(l()),w=d.ZP.div.withConfig({componentId:"sc-8e417d34-1"})(p()),_=d.ZP.div.withConfig({componentId:"sc-8e417d34-2"})(f()),C=d.ZP.div.withConfig({componentId:"sc-8e417d34-3"})(s()),P=d.ZP.span.withConfig({componentId:"sc-8e417d34-4"})(a()),b=d.ZP.div.withConfig({componentId:"sc-8e417d34-5"})(h()),N=d.ZP.div.withConfig({componentId:"sc-8e417d34-6"})(m()),S=d.ZP.div.withConfig({componentId:"sc-8e417d34-7"})(g()),v=d.ZP.span.withConfig({componentId:"sc-8e417d34-8"})(x());var I=()=>(0,i.jsx)(j,{children:(0,i.jsxs)(w,{children:[(0,i.jsx)(_,{children:"활동"}),u.slice().reverse().map(n=>(0,i.jsxs)(C,{children:["[ ",n.title," ] ",(0,i.jsx)(P,{children:n.date}),(0,i.jsx)(b,{children:n.role}),(0,i.jsx)(N,{children:n.content.map(n=>(0,i.jsxs)(S,{children:[n.text,(0,i.jsxs)("div",{children:[(0,i.jsx)(v,{children:n.project}),(0,i.jsx)("a",{href:"/Portfolio/project?id=".concat(n.projectNum),children:(0,i.jsx)(c(),{src:"https://alreadynyeong.github.io/Portfolio/ArrowRight.png",width:13,height:13,alt:">"})})]})]},n.id))})]},n.id))]})})}},function(n){n.O(0,[774,888,179],function(){return n(n.s=9674)}),_N_E=n.O()}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/activity-e617e3a3561fbc73.js b/_next/static/chunks/pages/activity-e617e3a3561fbc73.js new file mode 100644 index 0000000..efff563 --- /dev/null +++ b/_next/static/chunks/pages/activity-e617e3a3561fbc73.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[839],{9674:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/activity",function(){return e(9373)}])},9373:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return I}});var o=e(2729),i=e(5893),r=e(5675),c=e.n(r),d=e(1686);let u=[{id:0,title:"GDSC SSWU 4th",date:"2022.09~2023.06",role:"교육팀 팀장",content:[{id:0,text:"GDSC SSWU 4기 홈페이지 제작",project:"GDSC SSWU",projectNum:4},{id:1,text:"Google Solution Challenge 참가",project:"withParents",projectNum:2}]},{id:2,title:"수정광산 SaltyLab 1기",date:"2022.10~2023.10",role:"Frontend 개발팀",content:[{id:0,project:"수정광산",projectNum:5}]},{id:3,title:"UMC 4th SSWU",date:"2023.03~",role:"Member",content:[{id:0,text:"4회 NE(O)RDINARY 해커톤 우수상",project:"Re:MEMORY",projectNum:6},{id:1,text:"4회 UMC 해커톤 우수상",project:"Green Quest",projectNum:7},{id:2,text:"프로젝트 참여",project:"Todis",projectNum:8}]},{id:4,title:"DLenc 층간소음 프로젝트",date:"2023.08~2023.09",role:"Frontend 개발자",content:[{id:0,text:"대전 연구소 층간 소음 견학"},{id:1,text:"NE(O)RDINARY 데모데이 부스 참여"},{id:2,text:"KPRA 컨텐츠 기반 랜딩페이지 제작",project:"Landing Page",projectNum:9}]}];function l(){let n=(0,o._)(["\n width: 100%;\n margin-top: 70px;\n margin-bottom: 150px;\n"]);return l=function(){return n},n}function p(){let n=(0,o._)(["\n width: 80%;\n justify-content: center;\n margin: 0 auto;\n"]);return p=function(){return n},n}function s(){let n=(0,o._)(["\n font-size: 1.5rem;\n font-weight: bold;\n padding: 30px;\n border-bottom: 2px solid black;\n"]);return s=function(){return n},n}function f(){let n=(0,o._)(["\n font-size: 1.2rem;\n padding: 30px;\n padding-bottom: 50px;\n border-bottom: 1px solid lightgray;\n"]);return f=function(){return n},n}function a(){let n=(0,o._)(["\n font-size: 0.8rem;\n color: gray;\n margin-left: 10px;\n"]);return a=function(){return n},n}function h(){let n=(0,o._)(["\n font-size: 1rem;\n margin-top: 30px;\n"]);return h=function(){return n},n}function m(){let n=(0,o._)(["\n border-left: 3px solid black;\n"]);return m=function(){return n},n}function g(){let n=(0,o._)(["\n font-size: 1rem;\n margin-top: 20px;\n margin-left: 20px;\n"]);return g=function(){return n},n}function x(){let n=(0,o._)(["\n font-size: 0.9rem;\n margin-right: 7px;\n color: green;\n"]);return x=function(){return n},n}let j=d.ZP.div.withConfig({componentId:"sc-4ed79be-0"})(l()),b=d.ZP.div.withConfig({componentId:"sc-4ed79be-1"})(p()),w=d.ZP.div.withConfig({componentId:"sc-4ed79be-2"})(s()),_=d.ZP.div.withConfig({componentId:"sc-4ed79be-3"})(f()),N=d.ZP.span.withConfig({componentId:"sc-4ed79be-4"})(a()),C=d.ZP.div.withConfig({componentId:"sc-4ed79be-5"})(h()),P=d.ZP.div.withConfig({componentId:"sc-4ed79be-6"})(m()),S=d.ZP.div.withConfig({componentId:"sc-4ed79be-7"})(g()),v=d.ZP.span.withConfig({componentId:"sc-4ed79be-8"})(x());var I=()=>(0,i.jsx)(j,{children:(0,i.jsxs)(b,{children:[(0,i.jsx)(w,{children:"활동"}),u.slice().reverse().map(n=>(0,i.jsxs)(_,{children:["[ ",n.title," ] ",(0,i.jsx)(N,{children:n.date}),(0,i.jsx)(C,{children:n.role}),(0,i.jsx)(P,{children:n.content.map(n=>(0,i.jsxs)(S,{children:[n.text,(0,i.jsxs)("div",{children:[(0,i.jsx)(v,{children:n.project}),(0,i.jsx)("a",{href:"/Portfolio/project?id=".concat(n.projectNum),children:n.projectNum&&(0,i.jsx)(c(),{src:"https://alreadynyeong.github.io/Portfolio/ArrowRight.png",width:13,height:13,alt:">"})})]})]},n.id))})]},n.id))]})})}},function(n){n.O(0,[774,888,179],function(){return n(n.s=9674)}),_N_E=n.O()}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/project-f78d6d84710a32e9.js b/_next/static/chunks/pages/project-5d935617022e4388.js similarity index 57% rename from _next/static/chunks/pages/project-f78d6d84710a32e9.js rename to _next/static/chunks/pages/project-5d935617022e4388.js index 7a5dc9b..4d0e7e4 100644 --- a/_next/static/chunks/pages/project-f78d6d84710a32e9.js +++ b/_next/static/chunks/pages/project-5d935617022e4388.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[512],{6647:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/project",function(){return e(9329)}])},1765:function(n,t,e){"use strict";e.d(t,{l:function(){return i}});let i=[{id:0,title:"Hi Alcohol",skills:["Node.js","JavaScript","HTML","CSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2021.11.05~2022.01.24",part:["Frontend","Server","Plan"],role:'\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 배포 후 사용자를 모으기 위해 "나와 어울리는 술 테스트"를 만들었습니다.\n MBTI를 기반으로 술과 관련된 질문으로 각자 어울리는 칵테일을 추천해주는 서비스입니다.\n 해당 결과를 공유하면서 사용자를 모으고자 했습니다.\n '},{id:1,title:"Hi Alcohol v.2",skills:["React","JavaScript","SCSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2022.06.12~2022.09.25",part:["Frontend","Plan"],git:"https://github.com/HiAlcohol/HiAlcohol_react",role:"\n 기존에 만들어 운영했던 Hi Alcohol의 리뉴얼 버전입니다.\n 기존 프로젝트의 기능을 유지하면서, 기존 프로젝트의 단점을 보완하고, 사용자의 편의성을 높이기 위해 리뉴얼하였습니다.\n React를 도입하며 프론트와 서버를 구분하였습니다.\n 관리자 모드를 추가하여 운영이 편리하도록 했습니다.\n\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 건의 게시판을 통해 사용자의 의견을 받을 수 있습니다.\n\n 게시글/댓글 신고 기능을 통해 부적절한 게시글/댓글을 신고할 수 있습니다.\n 관리자는 신고된 게시글/댓글을 모아 볼 수 있으며, 신고된 게시글/댓글을 숨기거나 나타내게 할 수 있습니다.\n\n 관리자는 레시피를 수정하거나 추가할 수 있습니다.\n\n 수익을 위한 카카오 adfit 광고를 추가하였습니다.\n "},{id:2,title:"withParents",skills:["React-native cli","JavaScript","StyleSheet"],description:"고령층 부모의 헬스케어와 커뮤니케이션을 위한 서비스",duration:"2022.11.15~2023.03.30",part:["Frontend","Plan","Design","Lead"],git:"https://github.com/GDSC-sswu-A/WithParentsFront",role:"\n 홈에서 오늘 날짜, 가족 리스트, 오늘 복용할 약, 갤러리의 최신 사진을 조회할 수 있도록 했습니다.\n\n 홈의 설정에 들어가 새로운 가족 생성이 가능하며, 가족 id와 password를 이용해 가족 등록이 가능합니다.\n 설정 화면에서 본인의 가족 id, password 조회가 가능해, 다른 가족에게 공유할 수 있습니다.\n\n Google Maps를 이용해 부모님의 최근 위치를 조회하고자 했습니다.\n 또한 부모님의 마지막 접속 시간을 조회해 자녀의 걱정을 덜고자 했습니다.\n \n 가족이 함께 공유할 수 있는 공동 캘린더를 만들었습니다.\n react-native-calendars를 사용하여 달력을 조회하고, 가족 공동 일정을 모달창을 통해 조회, 삭제, 작성, 수정이 가능합니다.\n "},{id:3,title:"Pycon Korea 2023",skills:["React","Next","TypeScript","Stiches","Eslint+Prettier"],description:"세계 각국의 파이썬 프로그래밍 언어 커뮤니티에서 주관하는 비영리 컨퍼런스 “파이콘”의 2023 한국 홈페이지",duration:"2023.01.26~",part:["Frontend"],git:"https://github.com/pythonkr/pyconkr-2023-frontend",link:"https://2023.pycon.kr/",role:"\n FAQ에서 사용될 Toggle 컴포넌트를 구현했습니다.\n \n 파이콘에서 진행되는 세션을 조회할 수 있는 세션 목록 페이지를 구현했습니다.\n "},{id:4,title:"GDSC SSWU",skills:["React","Next","TypeScript","Styled-component","Eslint+Prettier"],description:"Google Developer Students Club의 성신여자대학교 4기 프로젝트 소개 홈페이지",duration:"2023.04.20~2023.05.15",part:["Frontend"],git:"https://github.com/alreadynyeong/GDSC-SSWU-PAGE",link:"https://alreadynyeong.github.io/GDSC-SSWU-PAGE/",role:"\n 효율적인 개발을 위해 버튼, 네비게이션 바, 하단의 동아리 정보 등의 컴포넌트를 만들어 사용했습니다.\n \n 1인 프로젝트로 진행되어 모든 화면을 구현했습니다.\n 이 서비스에서는 홈에서의 기본적인 정보와 동아리 소개, 프로젝트 목록, 팀 별 프로젝트 상세보기를 제공합니다.\n\n 사용자가 모바일 화면으로 볼 것을 고려하여 반응형으로 구현했습니다.\n 이때 window.innerWidth를 이용해 Mobile, PC 구분했습니다.\n\n 요즘 트렌드에 맞게 다크모드 역시 추가했습니다.\n 버튼을 통해 다크모드/라이트모드 설정이 가능하며, @/styles/Theme.ts 파일에 테마별 색을 설정했습니다.\n ThemeProvider를 사용하여 테마를 적용했습니다.\n "},{id:5,title:"수정광산",skills:["React-native cli","TypeScript","StyleSheet"],description:"성신여자대학교 학생들을 위한 자체 커뮤니티 어플",duration:"2022.10.13 ~",part:["Frontend"],link:"https://play.google.com/store/apps/details?id=com.crystalminefrontend&hl=ko&gl=US",role:"\n 푸시알림을 받기 위한 iOS 환경에서의 설정을 했습니다.\n\n 구글 AdMob을 사용하기 위해 AdMob 계정을 만들고, 광고를 추가했습니다.\n\n 졸업생의 학교 Gmail 계정이 사용 불가능해져서 졸업생이 재인증을 할 수 없는 문제가 있었습니다. \n 이를 해결하기 위해 졸업생이 second Email을 등록하고 삭제할 수 있도록 구현했습니다.\n\n 사용자들의 편의를 위한 채팅 기능을 추가했습니다.\n 채팅 리스트를 조회할 수 있고, 편집 및 정렬이 가능합니다.\n 채팅방에서는 채팅을 전송할 수 있고, 갤러리 및 촬영을 통해 이미지를 전송할 수 있도록 했습니다.\n 실시간으로 채팅이 가능하며, 상대방이 있었는지의 여부도 확인 가능합니다.\n 채팅방에서 상대를 차단하거나 나갈 수 있습니다.\n "},{id:6,title:"Re:MEMORY",skills:["React-native expo","TypeScript","StyleSheet"],description:"챗GPT가 되찾아준 나의 소중한 기억. 어린 시절 추억의 키워드를 입력해 내 추억을 이미지로 기록하고 기억을 공유하는 서비스",duration:"2023.06.11~2023.06.12",part:["Frontend"],git:"https://github.com/4th-Neordinary-HACKATHON-Team-A/Web",role:"\n expo-linear-gradient를 이용한 그라데이션 버튼과 input 테마를 만들었습니다.\n\n Stack Navigation을 사용해 화면 이동이 가능합니다.\n\n OnBoarding 화면에서는 닉네임을 입력받습니다.\n 이때 닉네임은 AsyncStorage에 저장했습니다\n\n 채팅 형식의 화면에서 추억을 만들기 위한 정보를 사용자에게 입력 받아 저장했습니다.\n 사용자가 입력한 정보는 리스트 형태로 서버에 전달됩니다.\n IOS 환경에서 input 창이 가려지는 문제를 해결하기 위해 Keyboard, KeyboardEvent를 사용했습니다.\n \n 추억 이미지 결과 페이지에서는 이미지 저장 기능이 존재합니다.\n 이때 react-native-easy-toast를 이용해 토스트 메시지를 생성했습니다.\n "},{id:7,title:"Green Quset",skills:["React","TypeScript","Styled-component","Eslint+Prettier","Recoil"],description:"여행지에서 미션을 찾아 수행하고 소통하며 나만의 식물을 키우는 서비스",duration:"2023.07.03~2023.07.04",part:["Frontend"],git:"https://github.com/UMCHackathon/Hackathon_client",role:"\n 찾은 미션을 확인하고 댓글을 통해 서로의 미션을 볼 수 있습니다.\n 해당 프로젝트는 해커톤에서 진행되어 시간이 부족했습니다.\n 그래서 Recoil을 사용해 데이터를 보여주는 형식으로 임시 구현했습니다.\n 사진과 텍스트가 업로드 가능하며, 사진은 미리보기 기능이 있습니다.\n\n input과 textarea를 이용해 만든 [미션 추가 페이지]에서 사용자가 직접 미션 추가가 가능합니다.\n\n 모바일 화면에 최적화시키기 위해 메뉴는 햄버거 바를 이용해 접을 수 있도록 구현했습니다.\n 해당 메뉴에서 화면 이동이 가능합니다.\n "}]},9329:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return N}});var i=e(2729),r=e(5893),o=e(5675),l=e.n(o),d=e(1163),c=e(1686);function a(){let n=(0,i._)(["\n display: inline-block;\n border: 1px solid gray;\n margin-bottom: 10px;\n margin-right: 10px;\n padding: 7px;\n border-radius: 12px;\n font-size: 0.8rem;\n color: darkgreen;\n"]);return a=function(){return n},n}let s=c.ZP.div.withConfig({componentId:"sc-9ff1667b-0"})(a());var p=n=>{let{part:t}=n;return(0,r.jsx)("div",{children:null==t?void 0:t.map(n=>(0,r.jsx)(s,{children:n},n))})};function u(){let n=(0,i._)(["\n display: inline-block;\n border: 1px solid gray;\n margin-bottom: 50px;\n margin-right: 10px;\n padding: 7px;\n border-radius: 12px;\n font-size: 0.8rem;\n color: green;\n"]);return u=function(){return n},n}let h=c.ZP.div.withConfig({componentId:"sc-2f9b5a96-0"})(u());var g=n=>{let{skills:t}=n;return(0,r.jsx)("div",{children:null==t?void 0:t.map(n=>(0,r.jsx)(h,{children:n},n))})},f=e(1765);function m(){let n=(0,i._)(["\n width: 100%;\n padding: 0 10%;\n margin-top: 70px;\n margin-bottom: 150px;\n"]);return m=function(){return n},n}function x(){let n=(0,i._)(["\n font-size: 1.5rem;\n font-weight: bold;\n padding: 30px;\n"]);return x=function(){return n},n}function v(){let n=(0,i._)(["\n width: 500px;\n height: 300px;\n overflow: hidden;\n border-radius: 10px;\n box-shadow: 5px 5px 5px 1px lightgray;\n border: 1px solid lightgray;\n margin: 0 auto;\n"]);return v=function(){return n},n}function b(){let n=(0,i._)(["\n margin: 0 auto;\n width: fit-content;\n margin-top: 13px;\n"]);return b=function(){return n},n}function y(){let n=(0,i._)(["\n font-size: 0.8rem;\n color: gray;\n margin-left: 10px;\n"]);return y=function(){return n},n}function S(){let n=(0,i._)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 2px solid black;\n margin-bottom: 30px;\n padding-right: 30px;\n"]);return S=function(){return n},n}function k(){let n=(0,i._)(["\n margin-top: 30px;\n align-items: center;\n > p {\n white-space: pre-line;\n line-height: 2;\n }\n"]);return k=function(){return n},n}function w(){let n=(0,i._)(["\n font-size: 1.2rem;\n font-weight: bold;\n margin-right: 10px;\n margin-top: 40px;\n padding-bottom: 40px;\n color: gray;\n border-bottom: 1px solid gray;\n"]);return w=function(){return n},n}let P=c.ZP.div.withConfig({componentId:"sc-c3ef246e-0"})(m()),_=c.ZP.div.withConfig({componentId:"sc-c3ef246e-1"})(x()),j=c.ZP.div.withConfig({componentId:"sc-c3ef246e-2"})(v()),C=c.ZP.div.withConfig({componentId:"sc-c3ef246e-3"})(b()),A=c.ZP.span.withConfig({componentId:"sc-c3ef246e-4"})(y()),I=c.ZP.div.withConfig({componentId:"sc-c3ef246e-5"})(S()),T=c.ZP.div.withConfig({componentId:"sc-c3ef246e-6"})(k()),E=c.ZP.div.withConfig({componentId:"sc-c3ef246e-7"})(w());var N=()=>{var n;let t=(0,d.useRouter)(),e=Number(t.query.id)||(null===(n=t.query)||void 0===n?void 0:n.id),i=f.l.find(n=>n.id==e);return i?(0,r.jsxs)(P,{children:[(0,r.jsxs)(I,{children:[(0,r.jsxs)(_,{children:[null==i?void 0:i.title," ",(0,r.jsx)(A,{children:null==i?void 0:i.duration})]}),(0,r.jsxs)("div",{children:[i.git&&(0,r.jsx)("a",{href:i.git,target:"_blank",rel:"noopener noreferrer",children:"GIT"}),i.git&&i.link&&(0,r.jsx)("span",{children:" | "}),i.link&&(0,r.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",children:"LINK"})]})]}),(0,r.jsx)(p,{part:null==i?void 0:i.part}),(0,r.jsx)(g,{skills:null==i?void 0:i.skills}),(0,r.jsx)(j,{children:(0,r.jsx)(l(),{src:"https://alreadynyeong.github.io/Portfolio/projects/".concat(null==i?void 0:i.id,".png"),width:500,height:300,alt:""})}),(0,r.jsxs)(C,{children:[(0,r.jsx)(E,{children:null==i?void 0:i.description}),(0,r.jsx)(T,{children:(0,r.jsx)("p",{children:null==i?void 0:i.role})})]})]}):(0,r.jsx)("div",{children:"프로젝트를 찾을 수 없습니다."})}}},function(n){n.O(0,[774,888,179],function(){return n(n.s=6647)}),_N_E=n.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[512],{6647:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/project",function(){return e(9329)}])},1765:function(n,t,e){"use strict";e.d(t,{l:function(){return i}});let i=[{id:0,title:"Hi Alcohol",skills:["Node.js","JavaScript","HTML","CSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2021.11.05~2022.01.24",part:["Frontend","Server","Plan"],role:'\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 배포 후 사용자를 모으기 위해 "나와 어울리는 술 테스트"를 만들었습니다.\n MBTI를 기반으로 술과 관련된 질문으로 각자 어울리는 칵테일을 추천해주는 서비스입니다.\n 해당 결과를 공유하면서 사용자를 모으고자 했습니다.\n '},{id:1,title:"Hi Alcohol v.2",skills:["React","JavaScript","SCSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2022.06.12~2022.09.25",part:["Frontend","Plan"],git:"https://github.com/HiAlcohol/HiAlcohol_react",role:"\n 기존에 만들어 운영했던 Hi Alcohol의 리뉴얼 버전입니다.\n 기존 프로젝트의 기능을 유지하면서, 기존 프로젝트의 단점을 보완하고, 사용자의 편의성을 높이기 위해 리뉴얼하였습니다.\n React를 도입하며 프론트와 서버를 구분하였습니다.\n 관리자 모드를 추가하여 운영이 편리하도록 했습니다.\n\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 건의 게시판을 통해 사용자의 의견을 받을 수 있습니다.\n\n 게시글/댓글 신고 기능을 통해 부적절한 게시글/댓글을 신고할 수 있습니다.\n 관리자는 신고된 게시글/댓글을 모아 볼 수 있으며, 신고된 게시글/댓글을 숨기거나 나타내게 할 수 있습니다.\n\n 관리자는 레시피를 수정하거나 추가할 수 있습니다.\n\n 수익을 위한 카카오 adfit 광고를 추가하였습니다.\n "},{id:2,title:"withParents",skills:["React-native cli","JavaScript","StyleSheet"],description:"고령층 부모의 헬스케어와 커뮤니케이션을 위한 서비스",duration:"2022.11.15~2023.03.30",part:["Frontend","Plan","Design","Lead"],git:"https://github.com/GDSC-sswu-A/WithParentsFront",role:"\n 홈에서 오늘 날짜, 가족 리스트, 오늘 복용할 약, 갤러리의 최신 사진을 조회할 수 있도록 했습니다.\n\n 홈의 설정에 들어가 새로운 가족 생성이 가능하며, 가족 id와 password를 이용해 가족 등록이 가능합니다.\n 설정 화면에서 본인의 가족 id, password 조회가 가능해, 다른 가족에게 공유할 수 있습니다.\n\n Google Maps를 이용해 부모님의 최근 위치를 조회하고자 했습니다.\n 또한 부모님의 마지막 접속 시간을 조회해 자녀의 걱정을 덜고자 했습니다.\n \n 가족이 함께 공유할 수 있는 공동 캘린더를 만들었습니다.\n react-native-calendars를 사용하여 달력을 조회하고, 가족 공동 일정을 모달창을 통해 조회, 삭제, 작성, 수정이 가능합니다.\n "},{id:3,title:"Pycon Korea 2023",skills:["React","Next","TypeScript","Stiches","Eslint+Prettier"],description:"세계 각국의 파이썬 프로그래밍 언어 커뮤니티에서 주관하는 비영리 컨퍼런스 “파이콘”의 2023 한국 홈페이지",duration:"2023.01.26~",part:["Frontend"],git:"https://github.com/pythonkr/pyconkr-2023-frontend",link:"https://2023.pycon.kr/",role:"\n FAQ에서 사용될 Toggle 컴포넌트를 구현했습니다.\n \n 파이콘에서 진행되는 세션을 조회할 수 있는 세션 목록 페이지를 구현했습니다.\n "},{id:4,title:"GDSC SSWU",skills:["React","Next","TypeScript","Styled-component","Eslint+Prettier"],description:"Google Developer Students Club의 성신여자대학교 4기 프로젝트 소개 홈페이지",duration:"2023.04.20~2023.05.15",part:["Frontend"],git:"https://github.com/alreadynyeong/GDSC-SSWU-PAGE",link:"https://alreadynyeong.github.io/GDSC-SSWU-PAGE/",role:"\n 효율적인 개발을 위해 버튼, 네비게이션 바, 하단의 동아리 정보 등의 컴포넌트를 만들어 사용했습니다.\n \n 1인 프로젝트로 진행되어 모든 화면을 구현했습니다.\n 이 서비스에서는 홈에서의 기본적인 정보와 동아리 소개, 프로젝트 목록, 팀 별 프로젝트 상세보기를 제공합니다.\n\n 사용자가 모바일 화면으로 볼 것을 고려하여 반응형으로 구현했습니다.\n 이때 window.innerWidth를 이용해 Mobile, PC 구분했습니다.\n\n 요즘 트렌드에 맞게 다크모드 역시 추가했습니다.\n 버튼을 통해 다크모드/라이트모드 설정이 가능하며, @/styles/Theme.ts 파일에 테마별 색을 설정했습니다.\n ThemeProvider를 사용하여 테마를 적용했습니다.\n "},{id:5,title:"수정광산",skills:["React-native cli","TypeScript","StyleSheet"],description:"성신여자대학교 학생들을 위한 자체 커뮤니티 어플",duration:"2022.10.13 ~",part:["Frontend"],link:"https://play.google.com/store/apps/details?id=com.crystalminefrontend&hl=ko&gl=US",role:"\n 푸시알림을 받기 위한 iOS 환경에서의 설정을 했습니다.\n\n 구글 AdMob을 사용하기 위해 AdMob 계정을 만들고, 광고를 추가했습니다.\n\n 졸업생의 학교 Gmail 계정이 사용 불가능해져서 졸업생이 재인증을 할 수 없는 문제가 있었습니다. \n 이를 해결하기 위해 졸업생이 second Email을 등록하고 삭제할 수 있도록 구현했습니다.\n\n 사용자들의 편의를 위한 채팅 기능을 추가했습니다.\n 채팅 리스트를 조회할 수 있고, 편집 및 정렬이 가능합니다.\n 채팅방에서는 채팅을 전송할 수 있고, 갤러리 및 촬영을 통해 이미지를 전송할 수 있도록 했습니다.\n 실시간으로 채팅이 가능하며, 상대방이 있었는지의 여부도 확인 가능합니다.\n 채팅방에서 상대를 차단하거나 나갈 수 있습니다.\n "},{id:6,title:"Re:MEMORY",skills:["React-native expo","TypeScript","StyleSheet"],description:"챗GPT가 되찾아준 나의 소중한 기억. 어린 시절 추억의 키워드를 입력해 내 추억을 이미지로 기록하고 기억을 공유하는 서비스",duration:"2023.06.11~2023.06.12",part:["Frontend"],git:"https://github.com/4th-Neordinary-HACKATHON-Team-A/Web",role:"\n expo-linear-gradient를 이용한 그라데이션 버튼과 input 테마를 만들었습니다.\n\n Stack Navigation을 사용해 화면 이동이 가능합니다.\n\n OnBoarding 화면에서는 닉네임을 입력받습니다.\n 이때 닉네임은 AsyncStorage에 저장했습니다\n\n 채팅 형식의 화면에서 추억을 만들기 위한 정보를 사용자에게 입력 받아 저장했습니다.\n 사용자가 입력한 정보는 리스트 형태로 서버에 전달됩니다.\n IOS 환경에서 input 창이 가려지는 문제를 해결하기 위해 Keyboard, KeyboardEvent를 사용했습니다.\n \n 추억 이미지 결과 페이지에서는 이미지 저장 기능이 존재합니다.\n 이때 react-native-easy-toast를 이용해 토스트 메시지를 생성했습니다.\n "},{id:7,title:"Green Quset",skills:["React","TypeScript","Styled-component","Eslint+Prettier","Recoil"],description:"여행지에서 미션을 찾아 수행하고 소통하며 나만의 식물을 키우는 서비스",duration:"2023.07.03~2023.07.04",part:["Frontend"],git:"https://github.com/UMCHackathon/Hackathon_client",role:"\n 찾은 미션을 확인하고 댓글을 통해 서로의 미션을 볼 수 있습니다.\n 해당 프로젝트는 해커톤에서 진행되어 시간이 부족했습니다.\n 그래서 Recoil을 사용해 데이터를 보여주는 형식으로 임시 구현했습니다.\n 사진과 텍스트가 업로드 가능하며, 사진은 미리보기 기능이 있습니다.\n\n input과 textarea를 이용해 만든 [미션 추가 페이지]에서 사용자가 직접 미션 추가가 가능합니다.\n\n 모바일 화면에 최적화시키기 위해 메뉴는 햄버거 바를 이용해 접을 수 있도록 구현했습니다.\n 해당 메뉴에서 화면 이동이 가능합니다.\n "},{id:8,title:"Todis",skills:["React","TypeScript","Styled-component","Eslint+Prettier"],description:"날씨에 맞는 코디 포인트 추천! 귀여운 아바타로 친구와 OOTD도 공유가 가능한 웹사이트",duration:"2023.07.12~2023.08.23",part:["Frontend","Part Leader"],git:"https://github.com/Todis-UMC/Todis_web",link:"http://todis.s3-website.ap-northeast-2.amazonaws.com/",role:"\n EsLint+Prettier를 사용해 코드 스타일을 일관성 있게 유지했습니다.\n Font를 편하게 사용하기 위해 CSSProperties를 사용해 스타일을 정의했습니다.\n\n Input 컴포넌트를 만들었습니다. 기본적인 text input으로 사용이 가능하며 type으로 password를 줄 경우에는 입력 값을 숨길 수 있는 버튼이 활성화됩니다.\n 로그인, 회원가입 등의 화면 구현을 위한 컴포넌트를 만들어 사용했습니다.\n\n 이메일과 비밀번호를 통해 로그인이 가능하며, 로그인 시에는 토큰을 발급받아 localStorage에 저장했습니다.\n 구글과 카카오를 통한 로그인도 가능합니다.\n\n 회원가입 시에는 이메일, 비밀번호, 닉네임을 입력받습니다.\n 닉네임과 비밀번호는 회원정보 수정 페이지에서 변경이 가능합니다.\n 비밀번호를 잊은 사용자를 위한 비밀번호 찾기 페이지도 구현했습니다. 사용자가 입력한 이메일로 임시 비밀번호가 발급됩니다.\n\n 모바일 상태의 사이드 메뉴를 구현했습니다.\n keyframes를 사용해 애니메이션을 추가했습니다.\n\n 모바일 사용자를 위한 반응형 웹을 구현했습니다.\n styled-component에서 @media를 사용해 화면 크기에 따라 스타일을 변경했습니다.\n 스타일의 변경이 많은 경우 window.innerWidth를 이용해 만든 컴포넌트를 활용해 화면 크기에 따라 컴포넌트를 렌더링했습니다.\n\n react-toastify를 사용해 토스트 메시지를 구현했습니다.\n react-spinners를 사용해 로딩 중임을 알려주는 컴포넌트를 구현했습니다.\n "},{id:9,title:"Landing Page",skills:["React","TypeScript","Styled-component","Eslint+Prettier"],description:"Landing Page",duration:"2023.08.08~2023.09.08",part:["Frontend"],git:"https://github.com/DLenc/Randing",role:"\n EsLint+Prettier를 사용해 코드 스타일을 일관성 있게 유지했습니다.\n Font를 편하게 사용하기 위해 CSSProperties를 사용해 스타일을 정의했습니다.\n Color를 편하게 사용하기 위해 Color를 정의한 파일을 만들어 사용했습니다.\n\n 랜딩 페이지의 최상단의 표지를 구현했습니다.\n 중간의 배너를 구현했습니다.\n\n 층간 소음이 발생할 정도의 소음이 생기면 알려주는 기능을 소개하는 섹션을 구현했습니다.\n\n 디자인 상 페이지에서 빠지게 되었지만,\n react-you-tube를 사용해 유튜브 영상을 불러오는 기능을 구현했습니다.\n &::-webkit-scrollbar를 이용해 스크롤바의 스타일을 변경했습니다.\n "}]},9329:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return R}});var i=e(2729),r=e(5893),o=e(5675),l=e.n(o),d=e(1163),a=e(1686);function c(){let n=(0,i._)(["\n display: inline-block;\n border: 1px solid gray;\n margin-bottom: 10px;\n margin-right: 10px;\n padding: 7px;\n border-radius: 12px;\n font-size: 0.8rem;\n color: darkgreen;\n"]);return c=function(){return n},n}let s=a.ZP.div.withConfig({componentId:"sc-9ff1667b-0"})(c());var p=n=>{let{part:t}=n;return(0,r.jsx)("div",{children:null==t?void 0:t.map(n=>(0,r.jsx)(s,{children:n},n))})};function u(){let n=(0,i._)(["\n display: inline-block;\n border: 1px solid gray;\n margin-bottom: 50px;\n margin-right: 10px;\n padding: 7px;\n border-radius: 12px;\n font-size: 0.8rem;\n color: green;\n"]);return u=function(){return n},n}let h=a.ZP.div.withConfig({componentId:"sc-2f9b5a96-0"})(u());var g=n=>{let{skills:t}=n;return(0,r.jsx)("div",{children:null==t?void 0:t.map(n=>(0,r.jsx)(h,{children:n},n))})},f=e(1765);function m(){let n=(0,i._)(["\n width: 100%;\n padding: 0 10%;\n margin-top: 70px;\n margin-bottom: 150px;\n"]);return m=function(){return n},n}function x(){let n=(0,i._)(["\n font-size: 1.5rem;\n font-weight: bold;\n padding: 30px;\n"]);return x=function(){return n},n}function b(){let n=(0,i._)(["\n width: 500px;\n height: 300px;\n overflow: hidden;\n border-radius: 10px;\n box-shadow: 5px 5px 5px 1px lightgray;\n border: 1px solid lightgray;\n margin: 0 auto;\n"]);return b=function(){return n},n}function y(){let n=(0,i._)(["\n margin: 0 auto;\n width: fit-content;\n margin-top: 13px;\n"]);return y=function(){return n},n}function S(){let n=(0,i._)(["\n font-size: 0.8rem;\n color: gray;\n margin-left: 10px;\n"]);return S=function(){return n},n}function v(){let n=(0,i._)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 2px solid black;\n margin-bottom: 30px;\n padding-right: 30px;\n"]);return v=function(){return n},n}function w(){let n=(0,i._)(["\n margin-top: 30px;\n align-items: center;\n > p {\n white-space: pre-line;\n line-height: 2;\n }\n"]);return w=function(){return n},n}function k(){let n=(0,i._)(["\n font-size: 1.2rem;\n font-weight: bold;\n margin-right: 10px;\n margin-top: 40px;\n padding-bottom: 40px;\n color: gray;\n border-bottom: 1px solid gray;\n"]);return k=function(){return n},n}let P=a.ZP.div.withConfig({componentId:"sc-c3ef246e-0"})(m()),C=a.ZP.div.withConfig({componentId:"sc-c3ef246e-1"})(x()),_=a.ZP.div.withConfig({componentId:"sc-c3ef246e-2"})(b()),j=a.ZP.div.withConfig({componentId:"sc-c3ef246e-3"})(y()),T=a.ZP.span.withConfig({componentId:"sc-c3ef246e-4"})(S()),A=a.ZP.div.withConfig({componentId:"sc-c3ef246e-5"})(v()),E=a.ZP.div.withConfig({componentId:"sc-c3ef246e-6"})(w()),I=a.ZP.div.withConfig({componentId:"sc-c3ef246e-7"})(k());var R=()=>{var n;let t=(0,d.useRouter)(),e=Number(t.query.id)||(null===(n=t.query)||void 0===n?void 0:n.id),i=f.l.find(n=>n.id==e);return i?(0,r.jsxs)(P,{children:[(0,r.jsxs)(A,{children:[(0,r.jsxs)(C,{children:[null==i?void 0:i.title," ",(0,r.jsx)(T,{children:null==i?void 0:i.duration})]}),(0,r.jsxs)("div",{children:[i.git&&(0,r.jsx)("a",{href:i.git,target:"_blank",rel:"noopener noreferrer",children:"GIT"}),i.git&&i.link&&(0,r.jsx)("span",{children:" | "}),i.link&&(0,r.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",children:"LINK"})]})]}),(0,r.jsx)(p,{part:null==i?void 0:i.part}),(0,r.jsx)(g,{skills:null==i?void 0:i.skills}),(0,r.jsx)(_,{children:(0,r.jsx)(l(),{src:"https://alreadynyeong.github.io/Portfolio/projects/".concat(null==i?void 0:i.id,".png"),width:500,height:300,alt:""})}),(0,r.jsxs)(j,{children:[(0,r.jsx)(I,{children:null==i?void 0:i.description}),(0,r.jsx)(E,{children:(0,r.jsx)("p",{children:null==i?void 0:i.role})})]})]}):(0,r.jsx)("div",{children:"프로젝트를 찾을 수 없습니다."})}}},function(n){n.O(0,[774,888,179],function(){return n(n.s=6647)}),_N_E=n.O()}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/projects-2922cc28dd8c0bb8.js b/_next/static/chunks/pages/projects-60e7b37f3ff83692.js similarity index 66% rename from _next/static/chunks/pages/projects-2922cc28dd8c0bb8.js rename to _next/static/chunks/pages/projects-60e7b37f3ff83692.js index f5ca76b..74cdd29 100644 --- a/_next/static/chunks/pages/projects-2922cc28dd8c0bb8.js +++ b/_next/static/chunks/pages/projects-60e7b37f3ff83692.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[327],{6192:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/projects",function(){return e(1825)}])},1765:function(n,t,e){"use strict";e.d(t,{l:function(){return i}});let i=[{id:0,title:"Hi Alcohol",skills:["Node.js","JavaScript","HTML","CSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2021.11.05~2022.01.24",part:["Frontend","Server","Plan"],role:'\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 배포 후 사용자를 모으기 위해 "나와 어울리는 술 테스트"를 만들었습니다.\n MBTI를 기반으로 술과 관련된 질문으로 각자 어울리는 칵테일을 추천해주는 서비스입니다.\n 해당 결과를 공유하면서 사용자를 모으고자 했습니다.\n '},{id:1,title:"Hi Alcohol v.2",skills:["React","JavaScript","SCSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2022.06.12~2022.09.25",part:["Frontend","Plan"],git:"https://github.com/HiAlcohol/HiAlcohol_react",role:"\n 기존에 만들어 운영했던 Hi Alcohol의 리뉴얼 버전입니다.\n 기존 프로젝트의 기능을 유지하면서, 기존 프로젝트의 단점을 보완하고, 사용자의 편의성을 높이기 위해 리뉴얼하였습니다.\n React를 도입하며 프론트와 서버를 구분하였습니다.\n 관리자 모드를 추가하여 운영이 편리하도록 했습니다.\n\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 건의 게시판을 통해 사용자의 의견을 받을 수 있습니다.\n\n 게시글/댓글 신고 기능을 통해 부적절한 게시글/댓글을 신고할 수 있습니다.\n 관리자는 신고된 게시글/댓글을 모아 볼 수 있으며, 신고된 게시글/댓글을 숨기거나 나타내게 할 수 있습니다.\n\n 관리자는 레시피를 수정하거나 추가할 수 있습니다.\n\n 수익을 위한 카카오 adfit 광고를 추가하였습니다.\n "},{id:2,title:"withParents",skills:["React-native cli","JavaScript","StyleSheet"],description:"고령층 부모의 헬스케어와 커뮤니케이션을 위한 서비스",duration:"2022.11.15~2023.03.30",part:["Frontend","Plan","Design","Lead"],git:"https://github.com/GDSC-sswu-A/WithParentsFront",role:"\n 홈에서 오늘 날짜, 가족 리스트, 오늘 복용할 약, 갤러리의 최신 사진을 조회할 수 있도록 했습니다.\n\n 홈의 설정에 들어가 새로운 가족 생성이 가능하며, 가족 id와 password를 이용해 가족 등록이 가능합니다.\n 설정 화면에서 본인의 가족 id, password 조회가 가능해, 다른 가족에게 공유할 수 있습니다.\n\n Google Maps를 이용해 부모님의 최근 위치를 조회하고자 했습니다.\n 또한 부모님의 마지막 접속 시간을 조회해 자녀의 걱정을 덜고자 했습니다.\n \n 가족이 함께 공유할 수 있는 공동 캘린더를 만들었습니다.\n react-native-calendars를 사용하여 달력을 조회하고, 가족 공동 일정을 모달창을 통해 조회, 삭제, 작성, 수정이 가능합니다.\n "},{id:3,title:"Pycon Korea 2023",skills:["React","Next","TypeScript","Stiches","Eslint+Prettier"],description:"세계 각국의 파이썬 프로그래밍 언어 커뮤니티에서 주관하는 비영리 컨퍼런스 “파이콘”의 2023 한국 홈페이지",duration:"2023.01.26~",part:["Frontend"],git:"https://github.com/pythonkr/pyconkr-2023-frontend",link:"https://2023.pycon.kr/",role:"\n FAQ에서 사용될 Toggle 컴포넌트를 구현했습니다.\n \n 파이콘에서 진행되는 세션을 조회할 수 있는 세션 목록 페이지를 구현했습니다.\n "},{id:4,title:"GDSC SSWU",skills:["React","Next","TypeScript","Styled-component","Eslint+Prettier"],description:"Google Developer Students Club의 성신여자대학교 4기 프로젝트 소개 홈페이지",duration:"2023.04.20~2023.05.15",part:["Frontend"],git:"https://github.com/alreadynyeong/GDSC-SSWU-PAGE",link:"https://alreadynyeong.github.io/GDSC-SSWU-PAGE/",role:"\n 효율적인 개발을 위해 버튼, 네비게이션 바, 하단의 동아리 정보 등의 컴포넌트를 만들어 사용했습니다.\n \n 1인 프로젝트로 진행되어 모든 화면을 구현했습니다.\n 이 서비스에서는 홈에서의 기본적인 정보와 동아리 소개, 프로젝트 목록, 팀 별 프로젝트 상세보기를 제공합니다.\n\n 사용자가 모바일 화면으로 볼 것을 고려하여 반응형으로 구현했습니다.\n 이때 window.innerWidth를 이용해 Mobile, PC 구분했습니다.\n\n 요즘 트렌드에 맞게 다크모드 역시 추가했습니다.\n 버튼을 통해 다크모드/라이트모드 설정이 가능하며, @/styles/Theme.ts 파일에 테마별 색을 설정했습니다.\n ThemeProvider를 사용하여 테마를 적용했습니다.\n "},{id:5,title:"수정광산",skills:["React-native cli","TypeScript","StyleSheet"],description:"성신여자대학교 학생들을 위한 자체 커뮤니티 어플",duration:"2022.10.13 ~",part:["Frontend"],link:"https://play.google.com/store/apps/details?id=com.crystalminefrontend&hl=ko&gl=US",role:"\n 푸시알림을 받기 위한 iOS 환경에서의 설정을 했습니다.\n\n 구글 AdMob을 사용하기 위해 AdMob 계정을 만들고, 광고를 추가했습니다.\n\n 졸업생의 학교 Gmail 계정이 사용 불가능해져서 졸업생이 재인증을 할 수 없는 문제가 있었습니다. \n 이를 해결하기 위해 졸업생이 second Email을 등록하고 삭제할 수 있도록 구현했습니다.\n\n 사용자들의 편의를 위한 채팅 기능을 추가했습니다.\n 채팅 리스트를 조회할 수 있고, 편집 및 정렬이 가능합니다.\n 채팅방에서는 채팅을 전송할 수 있고, 갤러리 및 촬영을 통해 이미지를 전송할 수 있도록 했습니다.\n 실시간으로 채팅이 가능하며, 상대방이 있었는지의 여부도 확인 가능합니다.\n 채팅방에서 상대를 차단하거나 나갈 수 있습니다.\n "},{id:6,title:"Re:MEMORY",skills:["React-native expo","TypeScript","StyleSheet"],description:"챗GPT가 되찾아준 나의 소중한 기억. 어린 시절 추억의 키워드를 입력해 내 추억을 이미지로 기록하고 기억을 공유하는 서비스",duration:"2023.06.11~2023.06.12",part:["Frontend"],git:"https://github.com/4th-Neordinary-HACKATHON-Team-A/Web",role:"\n expo-linear-gradient를 이용한 그라데이션 버튼과 input 테마를 만들었습니다.\n\n Stack Navigation을 사용해 화면 이동이 가능합니다.\n\n OnBoarding 화면에서는 닉네임을 입력받습니다.\n 이때 닉네임은 AsyncStorage에 저장했습니다\n\n 채팅 형식의 화면에서 추억을 만들기 위한 정보를 사용자에게 입력 받아 저장했습니다.\n 사용자가 입력한 정보는 리스트 형태로 서버에 전달됩니다.\n IOS 환경에서 input 창이 가려지는 문제를 해결하기 위해 Keyboard, KeyboardEvent를 사용했습니다.\n \n 추억 이미지 결과 페이지에서는 이미지 저장 기능이 존재합니다.\n 이때 react-native-easy-toast를 이용해 토스트 메시지를 생성했습니다.\n "},{id:7,title:"Green Quset",skills:["React","TypeScript","Styled-component","Eslint+Prettier","Recoil"],description:"여행지에서 미션을 찾아 수행하고 소통하며 나만의 식물을 키우는 서비스",duration:"2023.07.03~2023.07.04",part:["Frontend"],git:"https://github.com/UMCHackathon/Hackathon_client",role:"\n 찾은 미션을 확인하고 댓글을 통해 서로의 미션을 볼 수 있습니다.\n 해당 프로젝트는 해커톤에서 진행되어 시간이 부족했습니다.\n 그래서 Recoil을 사용해 데이터를 보여주는 형식으로 임시 구현했습니다.\n 사진과 텍스트가 업로드 가능하며, 사진은 미리보기 기능이 있습니다.\n\n input과 textarea를 이용해 만든 [미션 추가 페이지]에서 사용자가 직접 미션 추가가 가능합니다.\n\n 모바일 화면에 최적화시키기 위해 메뉴는 햄버거 바를 이용해 접을 수 있도록 구현했습니다.\n 해당 메뉴에서 화면 이동이 가능합니다.\n "}]},1825:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return y}});var i=e(2729),o=e(5893),r=e(1686),l=e(5675),c=e.n(l);function a(){let n=(0,i._)(["\n width: fit-content;\n margin: 50px;\n"]);return a=function(){return n},n}function s(){let n=(0,i._)(["\n width: 300px;\n height: 200px;\n overflow: hidden;\n border-radius: 10px;\n box-shadow: 5px 5px 5px 1px lightgray;\n cursor: pointer;\n border: 1px solid lightgray;\n"]);return s=function(){return n},n}function d(){let n=(0,i._)(["\n font-size: 1.2rem;\n font-weight: semi-bold;\n margin-top: 10px;\n text-align: center;\n"]);return d=function(){return n},n}let p=r.ZP.div.withConfig({componentId:"sc-c976abb1-0"})(a()),h=r.ZP.div.withConfig({componentId:"sc-c976abb1-1"})(s()),u=r.ZP.div.withConfig({componentId:"sc-c976abb1-2"})(d());var g=n=>{let{project:t}=n;return(0,o.jsxs)(p,{children:[(0,o.jsx)(h,{children:(0,o.jsx)(c(),{src:"https://alreadynyeong.github.io/Portfolio/projects/".concat(t.id,".png"),width:300,height:200,alt:""})}),(0,o.jsxs)(u,{children:["[ ",t.title," ]"]})]})},S=e(1765);function f(){let n=(0,i._)(["\n width: fit-content;\n margin: 0 auto;\n cursor: pointer;\n transition: transform 0.7s;\n &:hover {\n transform: scale(1.1);\n }\n"]);return f=function(){return n},n}let m=r.ZP.div.withConfig({componentId:"sc-1101fab3-0"})(f());var y=()=>(0,o.jsx)("div",{children:S.l.slice().reverse().map(n=>(0,o.jsx)(m,{children:(0,o.jsx)("a",{href:"/Portfolio/project?id=".concat(n.id),children:(0,o.jsx)(g,{project:n})})},n.id))})}},function(n){n.O(0,[774,888,179],function(){return n(n.s=6192)}),_N_E=n.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[327],{6192:function(n,t,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/projects",function(){return e(1825)}])},1765:function(n,t,e){"use strict";e.d(t,{l:function(){return i}});let i=[{id:0,title:"Hi Alcohol",skills:["Node.js","JavaScript","HTML","CSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2021.11.05~2022.01.24",part:["Frontend","Server","Plan"],role:'\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 배포 후 사용자를 모으기 위해 "나와 어울리는 술 테스트"를 만들었습니다.\n MBTI를 기반으로 술과 관련된 질문으로 각자 어울리는 칵테일을 추천해주는 서비스입니다.\n 해당 결과를 공유하면서 사용자를 모으고자 했습니다.\n '},{id:1,title:"Hi Alcohol v.2",skills:["React","JavaScript","SCSS"],description:"가진 재료로 만들 수 있는 칵테일의 레시피 제공 및 Alcohol lover들을 위한 커뮤니티",duration:"2022.06.12~2022.09.25",part:["Frontend","Plan"],git:"https://github.com/HiAlcohol/HiAlcohol_react",role:"\n 기존에 만들어 운영했던 Hi Alcohol의 리뉴얼 버전입니다.\n 기존 프로젝트의 기능을 유지하면서, 기존 프로젝트의 단점을 보완하고, 사용자의 편의성을 높이기 위해 리뉴얼하였습니다.\n React를 도입하며 프론트와 서버를 구분하였습니다.\n 관리자 모드를 추가하여 운영이 편리하도록 했습니다.\n\n 술 종류, 제품명, 재료 등을 검색해 해당 키워드가 포함되는 레시피를 조회할 수 있습니다.\n 해당 레시피는 모달창으로 상세 조회가 가능합니다.\n\n 홈에서는 결정을 어려워하는 사용자를 위한 랜덤 추천 기능을 제공합니다.\n\n 우리동네 주류매장 기능은 카카오 map API를 사용하여 사용자의 위치 주변의 주류매장을 조회할 수 있습니다.\n 위치를 공유하기 싫거나, 다른 위치를 조회하고 싶다면 검색 기능을 통해 원하는 위치를 조회할 수 있습니다.\n\n 건의 게시판을 통해 사용자의 의견을 받을 수 있습니다.\n\n 게시글/댓글 신고 기능을 통해 부적절한 게시글/댓글을 신고할 수 있습니다.\n 관리자는 신고된 게시글/댓글을 모아 볼 수 있으며, 신고된 게시글/댓글을 숨기거나 나타내게 할 수 있습니다.\n\n 관리자는 레시피를 수정하거나 추가할 수 있습니다.\n\n 수익을 위한 카카오 adfit 광고를 추가하였습니다.\n "},{id:2,title:"withParents",skills:["React-native cli","JavaScript","StyleSheet"],description:"고령층 부모의 헬스케어와 커뮤니케이션을 위한 서비스",duration:"2022.11.15~2023.03.30",part:["Frontend","Plan","Design","Lead"],git:"https://github.com/GDSC-sswu-A/WithParentsFront",role:"\n 홈에서 오늘 날짜, 가족 리스트, 오늘 복용할 약, 갤러리의 최신 사진을 조회할 수 있도록 했습니다.\n\n 홈의 설정에 들어가 새로운 가족 생성이 가능하며, 가족 id와 password를 이용해 가족 등록이 가능합니다.\n 설정 화면에서 본인의 가족 id, password 조회가 가능해, 다른 가족에게 공유할 수 있습니다.\n\n Google Maps를 이용해 부모님의 최근 위치를 조회하고자 했습니다.\n 또한 부모님의 마지막 접속 시간을 조회해 자녀의 걱정을 덜고자 했습니다.\n \n 가족이 함께 공유할 수 있는 공동 캘린더를 만들었습니다.\n react-native-calendars를 사용하여 달력을 조회하고, 가족 공동 일정을 모달창을 통해 조회, 삭제, 작성, 수정이 가능합니다.\n "},{id:3,title:"Pycon Korea 2023",skills:["React","Next","TypeScript","Stiches","Eslint+Prettier"],description:"세계 각국의 파이썬 프로그래밍 언어 커뮤니티에서 주관하는 비영리 컨퍼런스 “파이콘”의 2023 한국 홈페이지",duration:"2023.01.26~",part:["Frontend"],git:"https://github.com/pythonkr/pyconkr-2023-frontend",link:"https://2023.pycon.kr/",role:"\n FAQ에서 사용될 Toggle 컴포넌트를 구현했습니다.\n \n 파이콘에서 진행되는 세션을 조회할 수 있는 세션 목록 페이지를 구현했습니다.\n "},{id:4,title:"GDSC SSWU",skills:["React","Next","TypeScript","Styled-component","Eslint+Prettier"],description:"Google Developer Students Club의 성신여자대학교 4기 프로젝트 소개 홈페이지",duration:"2023.04.20~2023.05.15",part:["Frontend"],git:"https://github.com/alreadynyeong/GDSC-SSWU-PAGE",link:"https://alreadynyeong.github.io/GDSC-SSWU-PAGE/",role:"\n 효율적인 개발을 위해 버튼, 네비게이션 바, 하단의 동아리 정보 등의 컴포넌트를 만들어 사용했습니다.\n \n 1인 프로젝트로 진행되어 모든 화면을 구현했습니다.\n 이 서비스에서는 홈에서의 기본적인 정보와 동아리 소개, 프로젝트 목록, 팀 별 프로젝트 상세보기를 제공합니다.\n\n 사용자가 모바일 화면으로 볼 것을 고려하여 반응형으로 구현했습니다.\n 이때 window.innerWidth를 이용해 Mobile, PC 구분했습니다.\n\n 요즘 트렌드에 맞게 다크모드 역시 추가했습니다.\n 버튼을 통해 다크모드/라이트모드 설정이 가능하며, @/styles/Theme.ts 파일에 테마별 색을 설정했습니다.\n ThemeProvider를 사용하여 테마를 적용했습니다.\n "},{id:5,title:"수정광산",skills:["React-native cli","TypeScript","StyleSheet"],description:"성신여자대학교 학생들을 위한 자체 커뮤니티 어플",duration:"2022.10.13 ~",part:["Frontend"],link:"https://play.google.com/store/apps/details?id=com.crystalminefrontend&hl=ko&gl=US",role:"\n 푸시알림을 받기 위한 iOS 환경에서의 설정을 했습니다.\n\n 구글 AdMob을 사용하기 위해 AdMob 계정을 만들고, 광고를 추가했습니다.\n\n 졸업생의 학교 Gmail 계정이 사용 불가능해져서 졸업생이 재인증을 할 수 없는 문제가 있었습니다. \n 이를 해결하기 위해 졸업생이 second Email을 등록하고 삭제할 수 있도록 구현했습니다.\n\n 사용자들의 편의를 위한 채팅 기능을 추가했습니다.\n 채팅 리스트를 조회할 수 있고, 편집 및 정렬이 가능합니다.\n 채팅방에서는 채팅을 전송할 수 있고, 갤러리 및 촬영을 통해 이미지를 전송할 수 있도록 했습니다.\n 실시간으로 채팅이 가능하며, 상대방이 있었는지의 여부도 확인 가능합니다.\n 채팅방에서 상대를 차단하거나 나갈 수 있습니다.\n "},{id:6,title:"Re:MEMORY",skills:["React-native expo","TypeScript","StyleSheet"],description:"챗GPT가 되찾아준 나의 소중한 기억. 어린 시절 추억의 키워드를 입력해 내 추억을 이미지로 기록하고 기억을 공유하는 서비스",duration:"2023.06.11~2023.06.12",part:["Frontend"],git:"https://github.com/4th-Neordinary-HACKATHON-Team-A/Web",role:"\n expo-linear-gradient를 이용한 그라데이션 버튼과 input 테마를 만들었습니다.\n\n Stack Navigation을 사용해 화면 이동이 가능합니다.\n\n OnBoarding 화면에서는 닉네임을 입력받습니다.\n 이때 닉네임은 AsyncStorage에 저장했습니다\n\n 채팅 형식의 화면에서 추억을 만들기 위한 정보를 사용자에게 입력 받아 저장했습니다.\n 사용자가 입력한 정보는 리스트 형태로 서버에 전달됩니다.\n IOS 환경에서 input 창이 가려지는 문제를 해결하기 위해 Keyboard, KeyboardEvent를 사용했습니다.\n \n 추억 이미지 결과 페이지에서는 이미지 저장 기능이 존재합니다.\n 이때 react-native-easy-toast를 이용해 토스트 메시지를 생성했습니다.\n "},{id:7,title:"Green Quset",skills:["React","TypeScript","Styled-component","Eslint+Prettier","Recoil"],description:"여행지에서 미션을 찾아 수행하고 소통하며 나만의 식물을 키우는 서비스",duration:"2023.07.03~2023.07.04",part:["Frontend"],git:"https://github.com/UMCHackathon/Hackathon_client",role:"\n 찾은 미션을 확인하고 댓글을 통해 서로의 미션을 볼 수 있습니다.\n 해당 프로젝트는 해커톤에서 진행되어 시간이 부족했습니다.\n 그래서 Recoil을 사용해 데이터를 보여주는 형식으로 임시 구현했습니다.\n 사진과 텍스트가 업로드 가능하며, 사진은 미리보기 기능이 있습니다.\n\n input과 textarea를 이용해 만든 [미션 추가 페이지]에서 사용자가 직접 미션 추가가 가능합니다.\n\n 모바일 화면에 최적화시키기 위해 메뉴는 햄버거 바를 이용해 접을 수 있도록 구현했습니다.\n 해당 메뉴에서 화면 이동이 가능합니다.\n "},{id:8,title:"Todis",skills:["React","TypeScript","Styled-component","Eslint+Prettier"],description:"날씨에 맞는 코디 포인트 추천! 귀여운 아바타로 친구와 OOTD도 공유가 가능한 웹사이트",duration:"2023.07.12~2023.08.23",part:["Frontend","Part Leader"],git:"https://github.com/Todis-UMC/Todis_web",link:"http://todis.s3-website.ap-northeast-2.amazonaws.com/",role:"\n EsLint+Prettier를 사용해 코드 스타일을 일관성 있게 유지했습니다.\n Font를 편하게 사용하기 위해 CSSProperties를 사용해 스타일을 정의했습니다.\n\n Input 컴포넌트를 만들었습니다. 기본적인 text input으로 사용이 가능하며 type으로 password를 줄 경우에는 입력 값을 숨길 수 있는 버튼이 활성화됩니다.\n 로그인, 회원가입 등의 화면 구현을 위한 컴포넌트를 만들어 사용했습니다.\n\n 이메일과 비밀번호를 통해 로그인이 가능하며, 로그인 시에는 토큰을 발급받아 localStorage에 저장했습니다.\n 구글과 카카오를 통한 로그인도 가능합니다.\n\n 회원가입 시에는 이메일, 비밀번호, 닉네임을 입력받습니다.\n 닉네임과 비밀번호는 회원정보 수정 페이지에서 변경이 가능합니다.\n 비밀번호를 잊은 사용자를 위한 비밀번호 찾기 페이지도 구현했습니다. 사용자가 입력한 이메일로 임시 비밀번호가 발급됩니다.\n\n 모바일 상태의 사이드 메뉴를 구현했습니다.\n keyframes를 사용해 애니메이션을 추가했습니다.\n\n 모바일 사용자를 위한 반응형 웹을 구현했습니다.\n styled-component에서 @media를 사용해 화면 크기에 따라 스타일을 변경했습니다.\n 스타일의 변경이 많은 경우 window.innerWidth를 이용해 만든 컴포넌트를 활용해 화면 크기에 따라 컴포넌트를 렌더링했습니다.\n\n react-toastify를 사용해 토스트 메시지를 구현했습니다.\n react-spinners를 사용해 로딩 중임을 알려주는 컴포넌트를 구현했습니다.\n "},{id:9,title:"Landing Page",skills:["React","TypeScript","Styled-component","Eslint+Prettier"],description:"Landing Page",duration:"2023.08.08~2023.09.08",part:["Frontend"],git:"https://github.com/DLenc/Randing",role:"\n EsLint+Prettier를 사용해 코드 스타일을 일관성 있게 유지했습니다.\n Font를 편하게 사용하기 위해 CSSProperties를 사용해 스타일을 정의했습니다.\n Color를 편하게 사용하기 위해 Color를 정의한 파일을 만들어 사용했습니다.\n\n 랜딩 페이지의 최상단의 표지를 구현했습니다.\n 중간의 배너를 구현했습니다.\n\n 층간 소음이 발생할 정도의 소음이 생기면 알려주는 기능을 소개하는 섹션을 구현했습니다.\n\n 디자인 상 페이지에서 빠지게 되었지만,\n react-you-tube를 사용해 유튜브 영상을 불러오는 기능을 구현했습니다.\n &::-webkit-scrollbar를 이용해 스크롤바의 스타일을 변경했습니다.\n "}]},1825:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return y}});var i=e(2729),o=e(5893),r=e(1686),a=e(5675),l=e.n(a);function s(){let n=(0,i._)(["\n width: fit-content;\n margin: 50px;\n"]);return s=function(){return n},n}function c(){let n=(0,i._)(["\n width: 300px;\n height: 200px;\n overflow: hidden;\n border-radius: 10px;\n box-shadow: 5px 5px 5px 1px lightgray;\n cursor: pointer;\n border: 1px solid lightgray;\n"]);return c=function(){return n},n}function d(){let n=(0,i._)(["\n font-size: 1.2rem;\n font-weight: semi-bold;\n margin-top: 10px;\n text-align: center;\n"]);return d=function(){return n},n}let p=r.ZP.div.withConfig({componentId:"sc-c976abb1-0"})(s()),h=r.ZP.div.withConfig({componentId:"sc-c976abb1-1"})(c()),u=r.ZP.div.withConfig({componentId:"sc-c976abb1-2"})(d());var g=n=>{let{project:t}=n;return(0,o.jsxs)(p,{children:[(0,o.jsx)(h,{children:(0,o.jsx)(l(),{src:"https://alreadynyeong.github.io/Portfolio/projects/".concat(t.id,".png"),width:300,height:200,alt:""})}),(0,o.jsxs)(u,{children:["[ ",t.title," ]"]})]})},S=e(1765);function f(){let n=(0,i._)(["\n width: fit-content;\n margin: 0 auto;\n cursor: pointer;\n transition: transform 0.7s;\n &:hover {\n transform: scale(1.1);\n }\n"]);return f=function(){return n},n}let m=r.ZP.div.withConfig({componentId:"sc-1101fab3-0"})(f());var y=()=>(0,o.jsx)("div",{children:S.l.slice().reverse().map(n=>(0,o.jsx)(m,{children:(0,o.jsx)("a",{href:"/Portfolio/project?id=".concat(n.id),children:(0,o.jsx)(g,{project:n})})},n.id))})}},function(n){n.O(0,[774,888,179],function(){return n(n.s=6192)}),_N_E=n.O()}]); \ No newline at end of file diff --git a/about.html b/about.html index 247fd33..f9769a8 100644 --- a/about.html +++ b/about.html @@ -1 +1 @@ -Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
학력
성신여자대학교 컴퓨터공학과2019.03 ~
자격증
정보처리기사2022.11.25
수상
제 4회 UMC 해커톤2023.07.04최우수상>
제 4회 NE(O)RDINARY 해커톤2023.06.11우수상>
2022 SSWU 소프트웨어 경진대회2022.09.15은상>
\ No newline at end of file +Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
학력
성신여자대학교 컴퓨터공학과2019.03 ~
자격증
정보처리기사2022.11.25
수상
제 4회 UMC 해커톤2023.07.04최우수상>
제 4회 NE(O)RDINARY 해커톤2023.06.11우수상>
2022 SSWU 소프트웨어 경진대회2022.09.15은상>
\ No newline at end of file diff --git a/activity.html b/activity.html index 151e299..6a0c712 100644 --- a/activity.html +++ b/activity.html @@ -1 +1 @@ -Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
활동
[ UMC 4th SSWU ] 2023.03~
Member
4회 NE(O)RDINARY 해커톤 우수상
Re:MEMORY>
4회 UMC 해커톤 우수상
Green Quest>
[ 수정광산 SaltyLab 1기 ] 2022.10~2023.10
Frontend 개발팀
수정광산>
[ Pycon Korea 2023 ] 2023.01~2023.07
FE 개발 자원봉사자
Pycon Korea 2023>
[ GDSC SSWU 4th ] 2022.09~2023.06
교육팀 팀장
GDSC SSWU 4기 홈페이지 제작
GDSC SSWU>
Google Solution Challenge 참가
withParents>
\ No newline at end of file +Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
활동
[ DLenc 층간소음 프로젝트 ] 2023.08~2023.09
Frontend 개발자
대전 연구소 층간 소음 견학
NE(O)RDINARY 데모데이 부스 참여
KPRA 컨텐츠 기반 랜딩페이지 제작
Landing Page>
[ UMC 4th SSWU ] 2023.03~
Member
4회 NE(O)RDINARY 해커톤 우수상
Re:MEMORY>
4회 UMC 해커톤 우수상
Green Quest>
프로젝트 참여
Todis>
[ 수정광산 SaltyLab 1기 ] 2022.10~2023.10
Frontend 개발팀
수정광산>
[ GDSC SSWU 4th ] 2022.09~2023.06
교육팀 팀장
GDSC SSWU 4기 홈페이지 제작
GDSC SSWU>
Google Solution Challenge 참가
withParents>
\ No newline at end of file diff --git a/index.html b/index.html index cf84a93..a331674 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
안녕하세요.
WEB 개발자
>
이민형입니다.
\ No newline at end of file +Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
안녕하세요.
WEB 개발자
>
이민형입니다.
\ No newline at end of file diff --git a/project.html b/project.html index c4ae989..e873869 100644 --- a/project.html +++ b/project.html @@ -1 +1 @@ -Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
프로젝트를 찾을 수 없습니다.
\ No newline at end of file +Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
프로젝트를 찾을 수 없습니다.
\ No newline at end of file diff --git a/projects.html b/projects.html index f0818c4..cc55faf 100644 --- a/projects.html +++ b/projects.html @@ -1 +1 @@ -Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
\ No newline at end of file +Portfolio
Home
About
Activity
Projects
Lee Min Hyeong
+
\ No newline at end of file diff --git a/projects/8.png b/projects/8.png new file mode 100644 index 0000000000000000000000000000000000000000..cdddfb545fada6bab33bed6affda8402d9e05d6d GIT binary patch literal 132508 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�R9DQ0Hz-aS-SCMx+;6H3 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 literal 0 HcmV?d00001