diff --git a/.gitignore b/.gitignore
index 20fccdd..fd07293 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,5 @@ yarn-error.log*
.env.development.local
.env.test.local
.env.production.local
+
+.now
\ No newline at end of file
diff --git a/README.md b/README.md
index 563f1bf..81bd635 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,12 @@
-# react-profile-11th
+1st mission
-## 실행 방법
+README파일도 수정해야되었던걸 이제야 알았네요.
+커밋도 컴포넌트단위로 했어야 하는데 ,,처음으로 해본게 많아서 많이 서툴렀던 것 같습니다
-```
-npm install
-npm run start
-```
-- npm install : 필요한 모든 패키지를 설치합니다. 처음 1번만 실행하면 됩니다.
-- npm run dev : react 어플리케이션을 브라우저에서 실행합니다.
+따로 css파일을 생성하지 않고 파일 내부에서 컴포넌트형태로 이용할 수 있다는 점이 흥미로웠습니다.
+profiles 객체 변수를 어떻게 하나씩 뽑아야되는지도 어려워서 처음에는 하드코딩을 했었는데,
+map이라는 함수를 이용해서 spread 연산자로 분해해서 개별요소로 만들 수 있다는 것도 알게되었습니다.
+객체나 배열은 재할당하는 경우가 적어서 const를 사용하면 의도치 않은 재할당을 방지해 주기 때문에 보다 안전하게 작성할 수 있다는 점도 유의하겠습니다!
+flex를 적용하는부분이 아직 많이 미숙한 것 같아서 더 공부가 필요할 것 같습니다.
+다음에는 코드의 가독성을 더 높일 수 있고 운영진분들의 손이 덜 가게 노력해보겠습니다.
-## 배포 방법
-
-- now에 회원가입하고 now를 설치합니다.
-1. https://zeit.co 에서 회원가입합니다.
-2. 터미널에서 npm i -g now를 입력해 now를 글로벌로 설치합니다.
-3. 명령 프롬프트에서 프로젝트 폴더에 들어간 후 now를 입력합니다.
-4. ID/PW를 입력합니다.
-5. zeit 가입시 입력한 이메일에서 인증 링크를 클릭합니다. <인증완료>
-6. 다시 프로젝트 폴더에서 now를 입력하면 자동으로 생성된 url에 배포됩니다!
-
-## 미션 설명
-
-[미션 설명](./docs/mission-description/README.md)
-
-## 미션 제출 방법
-
-[미션 제출 방법](./docs/how-to-submit/README.md)
diff --git a/package-lock.json b/package-lock.json
index 026b06f..72df9f6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,9 +5,9 @@
"requires": true,
"dependencies": {
"@ampproject/toolbox-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@ampproject/toolbox-core/-/toolbox-core-2.0.0.tgz",
- "integrity": "sha512-xAJOmh6MPS2mdHNsK8mj1t8TLh6mlehirh0fOBsRhKCNCJXgg4Gfd2u5igy8VFq9sYnuWP/npFyjGX36qpXW5Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/toolbox-core/-/toolbox-core-2.2.0.tgz",
+ "integrity": "sha512-g0NnZZqPJttIcdplIpiMDmOLewwvCWPSnFKvNdyYXN7vknRvR4krpV2qveuVgjnA+dSlDmtzuFapFCaWh4V7FQ==",
"requires": {
"cross-fetch": "3.0.4"
}
@@ -42,22 +42,22 @@
}
},
"@ampproject/toolbox-runtime-version": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.0.0.tgz",
- "integrity": "sha512-7XDlo7l4Ozpc/XWmJeYNF0ZfXCy7Vdh07spN+xEOst8gF99yaavZRNVkdgyTxLR3BpY9RIqqhSs6OxfkOKlRZQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.2.0.tgz",
+ "integrity": "sha512-kQRLMreDp1Wp9DotQzJ4k/ZKK6ZxtI6ce2JIvyH8Xfi6H4BQNu0Ht0agMgm51/OsMKyHD+dDIGEHKaKWIOiPLQ==",
"requires": {
- "@ampproject/toolbox-core": "^2.0.0"
+ "@ampproject/toolbox-core": "^2.2.0"
}
},
"@ampproject/toolbox-script-csp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.0.0.tgz",
- "integrity": "sha512-9mW3yiKwjORi0ViuayphVZii9MwiPhneZGZWy+kN44xr3SpN7iQC52/WWWTBOZX9z1zaUh8DqGc//VFY5ILSAw=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.2.0.tgz",
+ "integrity": "sha512-Z5AzbWFTlTMJg0z1/frMDmW6Gj+EbOw0dVdFYfdma4AJq4rNoxCQMVgVOjl4ryWNouJvK1RUA8o7sY1WmMx6eg=="
},
"@ampproject/toolbox-validator-rules": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.0.0.tgz",
- "integrity": "sha512-5f2IvT1m/zNtqfNXFE9V4ZtKofIttST65QL1wf4lKjBhJsbZgAAeR/u4DgOvftRVRmgn6IpUiWY1pt9xWaI5yA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.2.0.tgz",
+ "integrity": "sha512-R5VkDmhmNatq9SuuHaeA2Uno4O5K4YSh11o6A/5jJZ2EjilAcpuAKvZlRp9tjucPWHi+/z/n5PCJ8YUxzCzWaQ==",
"requires": {
"cross-fetch": "3.0.4"
}
@@ -1745,14 +1745,30 @@
},
"dependencies": {
"browserslist": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz",
- "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==",
+ "version": "4.11.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz",
+ "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==",
"requires": {
- "caniuse-lite": "^1.0.30001035",
- "electron-to-chromium": "^1.3.380",
- "node-releases": "^1.1.52",
- "pkg-up": "^3.1.0"
+ "caniuse-lite": "^1.0.30001038",
+ "electron-to-chromium": "^1.3.390",
+ "node-releases": "^1.1.53",
+ "pkg-up": "^2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
+ "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "requires": {
+ "find-up": "^2.1.0"
}
}
}
@@ -2023,15 +2039,6 @@
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow=="
},
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
@@ -3043,9 +3050,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
- "version": "1.3.390",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.390.tgz",
- "integrity": "sha512-4RvbM5x+002gKI8sltkqWEk5pptn0UnzekUx8RTThAMPDSb8jjpm6SwGiSnEve7f85biyZl8DMXaipaCxDjXag=="
+ "version": "1.3.395",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.395.tgz",
+ "integrity": "sha512-kdn2cX6hZXDdz/O2Q8tZscITlsSv1a/7bOq/fQs7QAJ9iaRlnhZPccarNhxZv1tXgmgwCnKp/1lJNYLOG8Dxiw=="
},
"elliptic": {
"version": "6.5.2",
@@ -3403,12 +3410,6 @@
}
}
},
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
- },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -3486,9 +3487,9 @@
}
},
"follow-redirects": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz",
- "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz",
+ "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==",
"requires": {
"debug": "^3.0.0"
},
@@ -4642,12 +4643,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "nan": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
- "optional": true
- },
"nanomatch": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -7404,8 +7399,6 @@
"integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==",
"optional": true,
"requires": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1",
"node-pre-gyp": "*"
},
"dependencies": {
diff --git a/pages/index.js b/pages/index.js
index 9b98e19..1a164ec 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,18 +1,89 @@
import React from 'react';
-
-import ProfileCard from '../components/profile-card';
+import { render } from 'react-dom';
import styled from 'styled-components';
+import ProfileCard from '../src/components/profile-card';
+
+const profiles = [
+ {
+ id: 1,
+ name: '박효진',
+ age: 23,
+ role: '개발 파트장',
+ univ: '이화여자',
+ major: '컴퓨터공학',
+ phoneNum: '010-5106-6785',
+ email: 'gywls517@gmail.com',
+ githubLink: 'https://github.com/gywlsp',
+ imageUrl:
+ 'https://static.wixstatic.com/media/69e8c2_982cbc3d638e49889d8ba64b3c70a6e3~mv2.jpeg/v1/crop/x_199,y_0,w_543,h_560/fill/w_350,h_347,al_c,q_80,usm_0.66_1.00_0.01/%E1%84%8E%E1%85%AC%E1%84%92%E1%85%AD%E1%84%8C%E1%85%B5%E1%86%AB.webp'
+ },
+ {
+ id: 2,
+ name: '양병훈',
+ age: 25,
+ univ: '서강',
+ role: '운영 팀원',
+ major: '컴퓨터공학',
+ phoneNum: '010-8200-1760',
+ email: 'ybh1760@gmail.com',
+ githubLink: 'https://github.com/ybh1760',
+ imageUrl:
+ 'https://static.wixstatic.com/media/69e8c2_3de533d9d5ee4bbaa5fe0c360e8f6a23~mv2.jpeg/v1/crop/x_0,y_456,w_3024,h_3119/fill/w_351,h_347,al_c,q_80,usm_0.66_1.00_0.01/%E1%84%8B%E1%85%A3%E1%86%BC%E1%84%87%E1%85%A7%E1%86%BC%E1%84%92%E1%85%AE%E1%86%AB.webp'
+ },
+ {
+ id: 3,
+ name: '이수완',
+ age: 22,
+ univ: '이화여자',
+ role: '홍보 파트장',
+ major: '컴퓨터공학',
+ phoneNum: '010-5503-7994',
+ email: '2swan965@gmail.com',
+ githubLink: 'https://github.com/lee-soowan65',
+ imageUrl:
+ 'https://static.wixstatic.com/media/982853_a188a89325cb4a20b6a487f7e3de5d14~mv2.jpg/v1/crop/x_13,y_1126,w_2998,h_2829/fill/w_351,h_335,al_c,q_80,usm_0.66_1.00_0.01/4A2633DE-3322-4CDC-8F8C-35288D83C43B-500.webp'
+ },
+ {
+ id: 4,
+ name: '최수민',
+ age: 26,
+ univ: '서강',
+ role: '부회장',
+ major: '컴퓨터공학',
+ phoneNum: '010-4413-1261',
+ email: 'react@kakao.com',
+ githubLink: 'https://github.com/greatSumini',
+ imageUrl:
+ 'https://static.wixstatic.com/media/69e8c2_43446e9ac65e4f129083516175259a2b~mv2.jpeg/v1/crop/x_0,y_910,w_3024,h_3122/fill/w_347,h_351,al_c,q_80,usm_0.66_1.00_0.01/%E1%84%8E%E1%85%AC%E1%84%89%E1%85%AE%E1%84%86%E1%85%B5%E1%86%AB.webp'
+ }
+];
+
export default function Home() {
- return (
-
- 나는 홈이야
-
-
- );
+ const List = profiles.map((prop) => );
+
+ return (
+
+ CEOS 프론트엔드 운영진
+ {List}
+
+ );
}
+const CardSection = styled.div`
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: space-between;
+`;
+
+const Bg = styled.div`
+ display: flex;
+ flex-direction: column;
+ min-height: 100vh;
+ background-color: rgb(230, 255, 255);
+ padding: 50px 100px;
+`;
-const Wrapper = styled.div`
- background-color: blue;
- height: 100vh;
+const Subject = styled.div`
+ font-size: 28px;
+ margin-bottom: 20px;
`;
diff --git a/src/components/profile-card.js b/src/components/profile-card.js
index 6243f67..c041af0 100644
--- a/src/components/profile-card.js
+++ b/src/components/profile-card.js
@@ -1,66 +1,93 @@
-import React from "react";
-import styled from "styled-components";
+import React from 'react';
+import styled from 'styled-components';
-export default function ProfileCard() {
- const profiles = [
- {
- id: 1,
- name: "박효진",
- age: 23,
- role: "개발 파트장",
- univ: "이화여자",
- major: "컴퓨터공학",
- phoneNum: "010-5106-6785",
- email: "gywls517@gmail.com",
- githubLink: "https://github.com/gywlsp",
- imageUrl:
- "https://static.wixstatic.com/media/69e8c2_982cbc3d638e49889d8ba64b3c70a6e3~mv2.jpeg/v1/crop/x_199,y_0,w_543,h_560/fill/w_350,h_347,al_c,q_80,usm_0.66_1.00_0.01/%E1%84%8E%E1%85%AC%E1%84%92%E1%85%AD%E1%84%8C%E1%85%B5%E1%86%AB.webp"
- },
- {
- id: 2,
- name: "양병훈",
- age: 25,
- univ: "서강",
- role: "운영 팀원",
- major: "컴퓨터공학",
- phoneNum: "010-8200-1760",
- email: "ybh1760@gmail.com",
- githubLink: "https://github.com/ybh1760",
- imageUrl:
- "https://static.wixstatic.com/media/69e8c2_3de533d9d5ee4bbaa5fe0c360e8f6a23~mv2.jpeg/v1/crop/x_0,y_456,w_3024,h_3119/fill/w_351,h_347,al_c,q_80,usm_0.66_1.00_0.01/%E1%84%8B%E1%85%A3%E1%86%BC%E1%84%87%E1%85%A7%E1%86%BC%E1%84%92%E1%85%AE%E1%86%AB.webp"
- },
- {
- id: 3,
- name: "이수완",
- age: 22,
- univ: "이화여자",
- role: "홍보 파트장",
- major: "컴퓨터공학",
- phoneNum: "010-5503-7994",
- email: "2swan965@gmail.com",
- githubLink: "https://github.com/lee-soowan65",
- imageUrl:
- "https://static.wixstatic.com/media/982853_a188a89325cb4a20b6a487f7e3de5d14~mv2.jpg/v1/crop/x_13,y_1126,w_2998,h_2829/fill/w_351,h_335,al_c,q_80,usm_0.66_1.00_0.01/4A2633DE-3322-4CDC-8F8C-35288D83C43B-500.webp"
- },
- {
- id: 4,
- name: "최수민",
- age: 26,
- univ: "서강",
- role: "부회장",
- major: "컴퓨터공학",
- phoneNum: "010-4413-1261",
- email: "react@kakao.com",
- githubLink: "https://github.com/greatSumini",
- imageUrl:
- "https://static.wixstatic.com/media/69e8c2_43446e9ac65e4f129083516175259a2b~mv2.jpeg/v1/crop/x_0,y_910,w_3024,h_3122/fill/w_347,h_351,al_c,q_80,usm_0.66_1.00_0.01/%E1%84%8E%E1%85%AC%E1%84%89%E1%85%AE%E1%84%86%E1%85%B5%E1%86%AB.webp"
- }
- ];
+export default function ProfileCard({
+ id,
+ name,
+ age,
+ role,
+ univ,
+ major,
+ phoneNum,
+ email,
+ githubLink,
+ imageUrl
+}) {
+ return (
+
+
+
+
+
+ {name}({age})
+
+ {role}
+
+ {univ}대학교 {major}과
+
+
+
+ {phoneNum}
+ {email}
+
+
+
- return 안녕 나는 프로필 카드;
+
+
+
+ 신촌 연합 IT 창업 동아리 CEOS
+
+ );
}
const Wrapper = styled.div`
- background-color: red;
- font-size: 18px;
+ width: 45%;
+ background-color: rgb(255, 255, 255);
+ margin-bottom: 20px;
+ border-image: initial;
+ padding: 15px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: rgb(204, 204, 204);
+ border-radius: 15px;
+`;
+
+const Char = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ width: 50%;
+`;
+const Info = styled.div`
+ font-size: 14px;
+`;
+const Name = styled.div`
+ font-size: 20px;
+ font-weight: bold;
+ margin-bottom: 10px;
+`;
+const Li = styled.div`
+ font-size: 14px;
+ color: rgb(0, 0, 153);
+`;
+
+const Ceos = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ font-size: 1.6rem;
+`;
+
+const Img = styled.img`
+ width: 40%;
+ height: 40%;
+`;
+const Row = styled.div`
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ margin-bottom: 1.5rem;
`;