첫날..
node.js -> yarn ($sudo npm install -g yarn) 설치
next.js (홈페이지에서 소스를 찾아 터미널에 폴더생성하여 입력)
RunJs
~~폴더에 수업 프로젝트 설치
1. Next.js 설치 ($npx create-next-app@latest를 최상위 폴더에)
2. 프로젝트 이름 작성
3. 프로젝트 폴더 안에서
1) Emotion 설치 ($yarn add @emotion/react
$yarn add @emotion/styled)
2) Apollo-Client & Graphql 설치 ($npm install @apollo/client graphql)
3) Ant-Design 설치 ($yarn add antd)
4) Material-UI 설치 ($npm install @material-ui/core)
5) Axios 설치 ($yarn add axios)
프론트엔트 라이브러리 -> React, jQuery (이미 만들어져 있는 기능을 복사하여 사용)
프레임워크 -> Angular, Vue (유지보수에 좋음. 하지만 제공하는 기능만 사용)
라이브러리 : 필요할 때 호출하여 사용
프레임워크 : 기본 구조 안에 규칙에 따라 사용 (템플릿으로 개발)
Next는 React 기반 프레임워크
기존 HTML -> JSX
JSX(JavaScript eXtension) : HTML에 대한 형식을 return 해주는 방식. javascript를 확장한 문법
기존 CSS -> CSS-IN-JS (상수에 저장하여 사용)
CSS-IN-JS : 자바스크립트 코드에서 css를 작성하는 방식
import : 다른 폴더의 파일 불러오기
export : 파일안의 내용 내보내기
git : 소스코드 관리를 위한 분산버전관리 시스템
로그인 창에 있는 아이디와 비밀번호를 input으로 사용하여 작성
pages/index.js // html
import {MyTitle, Wrapper, Form, Putter ... } from '../../styles/emotion'
export default function EmotionPage () {
return (
<Wrapper>
<MyTitle>로그인</MyTitle>
<Form>아이디</Form>
<Putter type="text" />
<Form>비밀번호</Form>
<Putter type="password" />
</Wrapper>
)
}
styles/emotion.js // css
import styled from '@emotion/styled'
export const MyTitle = styled.div`
color: black;
text-align: center;
font-size: 2rem;
padding-bottom: 20px;
`
export const Wrapper = styled.div`
width: 60%;
height: 300px;
display: flex;
flex-direction: column;
border: 1px solid black;
border-radius: 15px;
padding: 30px;
margin: 0 auto;
`
export const Form = styled.p`
font-size: 12px;
`
export const Putter = styled.input`
width: 100%;
height: 50px;
border: 1px solid gray;
border-radius: 5px;
`
public/.png // images
(과제 : figma에서 자유게시판 게시물 등록 freeboard에서 제작)