<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sanghyeok_lee.log</title>
        <link>https://velog.io/</link>
        <description>Frontend 개발하는 코린이 입니다.</description>
        <lastBuildDate>Wed, 01 Dec 2021 08:25:07 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sanghyeok_lee.log</title>
            <url>https://images.velog.io/images/sanghyeok_lee/profile/7c370ef7-cc81-4e16-9434-47af2b440eca/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sanghyeok_lee.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sanghyeok_lee" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[서버사이드 렌더링 ]]></title>
            <link>https://velog.io/@sanghyeok_lee/%EC%84%9C%EB%B2%84%EC%82%AC%EC%9D%B4%EB%93%9C-%EB%A0%8C%EB%8D%94%EB%A7%81</link>
            <guid>https://velog.io/@sanghyeok_lee/%EC%84%9C%EB%B2%84%EC%82%AC%EC%9D%B4%EB%93%9C-%EB%A0%8C%EB%8D%94%EB%A7%81</guid>
            <pubDate>Wed, 01 Dec 2021 08:25:07 GMT</pubDate>
            <description><![CDATA[<p>서버 사이드 렌더링이란 서버에서 페이지를 그려 클라이언트(브라우저)로 보낸 후 화면에 표시하는 기법을 의미한다.</p>
<h4 id="데이터-요청하는-순서">데이터 요청하는 순서</h4>
<p>브라우저 -&gt; 프론트 서버 -&gt; 백엔드 서버 -&gt; 데이터베이스 -&gt; 백엔드 서버 -&gt; 프론트 엔드 서버 -&gt; 브라우저</p>
<h4 id="서버사이드-렌더링을-쓰는-이유">서버사이드 렌더링을 쓰는 이유</h4>
<p>서버사이드 렌더링을 쓰는 이유는 검색 엔진 최적화, 빠른 페이지 렌더링 을 위해서 이다.</p>
<h4 id="서버사이드-렌더링-장점">서버사이드 렌더링 장점</h4>
<p>검색엔진 최적화
초기화면 로딩이 빠르다</p>
<h4 id="서버사이드-렌더링-단점">서버사이드 렌더링 단점</h4>
<p>잦은 서버 요청</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[캠프6일차]]></title>
            <link>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%846%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%846%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Mon, 06 Sep 2021 10:18:35 GMT</pubDate>
            <description><![CDATA[<h2 id="폴더구조-container--presentational-패턴">폴더구조 container / presentational 패턴</h2>
<blockquote>
<p>container / presentational 패턴이란, 소스코드를 자바스크립트(기능)와 HTML(UI)로 나누는 방법을 의미
여기서 container는 자바스크립트(기능) 부분을 의미하고, presentational은 HTML(UI) 부분을 의미
props로 던져주고 받아줌</p>
</blockquote>
<h4 id="이름-비밀번호-제목-내용을-다안적어주면-버튼이-회색임">이름 비밀번호 제목 내용을 다안적어주면 버튼이 회색임</h4>
<p><img src="https://images.velog.io/images/sanghyeok_lee/post/8b99c815-ba4b-40b0-b8f9-2542a5944357/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-06%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%207.14.41.png" alt=""></p>
<h4 id="이름-비밀번호-제목-내용을-빈칸없이-다채워주면-버튼이-노란색으로-변함">이름 비밀번호 제목 내용을 빈칸없이 다채워주면 버튼이 노란색으로 변함</h4>
<p><img src="https://images.velog.io/images/sanghyeok_lee/post/609cbe4f-249b-4372-9b4a-0b911cd0c366/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-06%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%207.15.03.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[캠프4일차]]></title>
            <link>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%844%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%844%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Thu, 02 Sep 2021 11:36:05 GMT</pubDate>
            <description><![CDATA[<h4 id="비동기동기-통신">비동기/동기 통신</h4>
<p>서버와 데이터를 주고 받는 방식 </p>
<blockquote>
<p>👍 동기 : 응답이 모두 끝난 후 요청 
👍 비동기 :서버 컴퓨터가 작업이 끝날 때 까지 기다리지 않는 통신 
👍 자바스크립트는 비동기 통신이 기본값이다.
👍 비동기를 동기로 바꿔주기 위해서 async, await 를 써준다.</p>
</blockquote>
<h4 id="apollo-통신-연습">apollo 통신 연습</h4>
<pre><code>import{ Wrapper1, Wrapper,Title, IdInput,TextInput,Header, InputText, Main, MainInput, Address,
    AddressInput, AddressButton, YouTube, Picture,
     PictuerButton, PictureDiv,MainSettings, FooterButton,
   AddressBox,MiniTitle,ErrorMessage} from &#39;../../../styles/BoardsNew.styles&#39;

import {useState} from &#39;react&#39;
import { useMutation, gql } from &quot;@apollo/client&quot;

const CREATE_BOARD = gql`
    mutation ($createBoardInput:CreateBoardInput!){
        createBoard(createBoardInput:$createBoardInput){
            _id
        }
    }
`


export default function BoardsNewPage(){

    const [ createBoard ] = useMutation(CREATE_BOARD)

    const [ name, setName ] = useState(&quot;&quot;)
    const [ pass, setPass ] = useState(&quot;&quot;)
    const [ title, setTitle ] = useState(&quot;&quot;)
    const [ contents, setContents ] = useState(&quot;&quot;)


    const [ nameError, setNameError ] = useState(&quot;&quot;)
    const [ passError, setPassError ] = useState(&quot;&quot;)
    const [ titleError, setTitleError ] = useState(&quot;&quot;)
    const [ contentsError, setContentsError ] = useState(&quot;&quot;)


    function onChangeName(event) {
        setName(event.target.value)
        if(event.target.value !== &quot;&quot;) {
            setNameError(&quot;&quot;)
        }
    }

    function onChangePass(event) {
        setPass(event.target.value)
        if(event.target.value !== &quot;&quot;) {
            setPassError(&quot;&quot;)
        }
    }

    function onChangeTitle(event) {
        setTitle(event.target.value)
        if(event.target.value !== &quot;&quot;) {
            setTitleError(&quot;&quot;)
        }
    }

    function onChangeContents(event) {
        setContents(event.target.value)
        if(event.target.value !== &quot;&quot;) {
            setContentsError(&quot;&quot;)
        }
    }

    async function onClickSignup() {


        if(name === (&quot;&quot;)) {
            setNameError(&quot;이름을 작성해주세요.&quot;)
        }

        if(pass === (&quot;&quot;)) {
            setPassError(&quot;비밀번호를 작성해주세요.&quot;)
        }

        if(title === (&quot;&quot;)) {
            setTitleError(&quot;제목을 작성해주세요.&quot;)
        }

        if(contents === (&quot;&quot;)) {
            setContentsError(&quot;내용을 작성해주세요.&quot;)
        }

        if(name !== &quot;&quot; &amp;&amp; pass !== &quot;&quot; &amp;&amp; title !== &quot;&quot; &amp;&amp; contents !== &quot;&quot;) {
            const result = await createBoard({
                variables: {
                    createBoardInput: {
                        writer:name,
                        password:pass,
                        title:title,
                        contents: contents
                    }
                }
            })
            console.log(result.data.createBoard._id)
            alert(&#39;게시물을 등록합니다&#39;)
        }
    }




   return (
       &lt;Wrapper1&gt;
           &lt;Wrapper&gt;
               &lt;Title&gt;게시물 등록&lt;/Title&gt;
               &lt;IdInput&gt;
                   &lt;div&gt;
                        &lt;div&gt;
                            &lt;MiniTitle&gt;작성자&lt;/MiniTitle&gt;
                        &lt;/div&gt;
                        &lt;TextInput type=&quot;text&quot; placeholder=&quot;이름을 적어주세요&quot; onChange={onChangeName}/&gt;   
                        &lt;ErrorMessage&gt;{nameError}&lt;/ErrorMessage&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                   &lt;div&gt;
                            &lt;MiniTitle&gt;비밀번호&lt;/MiniTitle&gt;
                        &lt;/div&gt;
                        &lt;TextInput type=&quot;password&quot; placeholder=&quot;비밀번호를 입력해주세요&quot; onChange={onChangePass} /&gt;
                        &lt;ErrorMessage&gt;{passError}&lt;/ErrorMessage&gt;
                   &lt;/div&gt;
               &lt;/IdInput&gt;
               &lt;Header&gt;    
                   &lt;MiniTitle&gt;제목&lt;/MiniTitle&gt;      
                   &lt;InputText type=&quot;text&quot; placeholder=&quot;제목을 입력하세요&quot; onChange={onChangeTitle}/&gt;  
                    &lt;ErrorMessage&gt;{titleError}&lt;/ErrorMessage&gt;
               &lt;/Header&gt;
               &lt;Main&gt;          
                       &lt;MiniTitle&gt;내용&lt;/MiniTitle&gt;               
                       &lt;MainInput type=&quot;text&quot; placeholder=&quot;내용을 작성해주세요&quot; onChange={onChangeContents}/&gt;   
                       &lt;ErrorMessage&gt;{contentsError}&lt;/ErrorMessage&gt;  
               &lt;/Main&gt;
               &lt;Address&gt;              
                   &lt;MiniTitle&gt;주소&lt;/MiniTitle&gt;    
                   &lt;AddressBox&gt;
                       &lt;AddressInput type=&quot;text&quot;/&gt;
                       &lt;AddressButton&gt;우편번호 검색&lt;/AddressButton&gt;
                   &lt;/AddressBox&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot;/&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot;/&gt;
                   &lt;/div&gt;
               &lt;/Address&gt;
               &lt;YouTube&gt;
                   &lt;div&gt;
                       &lt;MiniTitle&gt;유튜브&lt;/MiniTitle&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot; placeholder=&quot;링크를 복사해주세요&quot;/&gt;
                   &lt;/div&gt;
               &lt;/YouTube&gt;
               &lt;Picture&gt;     
                   &lt;div&gt;  
                   사진첨부
                   &lt;/div&gt;       
                   &lt;PictureDiv&gt;
                       &lt;PictuerButton&gt;
                           &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                       &lt;PictuerButton&gt;
                       &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                       &lt;PictuerButton&gt;
                           &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                   &lt;/PictureDiv&gt;
               &lt;/Picture&gt;
               &lt;MainSettings&gt;       
                   메인설정     
                   &lt;div&gt;
                       &lt;input type=&quot;radio&quot; name=&quot;settings&quot;/&gt;유튜브
                       &lt;input type=&quot;radio&quot; name=&quot;settings&quot;/&gt;사진
                   &lt;/div&gt;
               &lt;/MainSettings&gt;     
                   &lt;FooterButton onClick={onClickSignup}&gt;등록하기&lt;/FooterButton&gt;
           &lt;/Wrapper&gt;
        &lt;/Wrapper1&gt;
   )

}</code></pre><p><img src="https://images.velog.io/images/sanghyeok_lee/post/12545dc7-3ddf-47b5-a244-f5ad09f6e695/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-02%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%209.04.00.png" alt="">
콘솔창에 id로 playground에 검색해보자.</p>
<p><img src="https://images.velog.io/images/sanghyeok_lee/post/48d44690-9db0-4d3f-8a8c-684f092f36e8/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-02%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%209.06.23.png" alt=""></p>
<p>잘나오는거 같다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[캠프3일차]]></title>
            <link>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%843%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%843%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Wed, 01 Sep 2021 08:54:43 GMT</pubDate>
            <description><![CDATA[<h4 id="http통신">HTTP통신</h4>
<p>HTTP란 두 컴퓨터간에 텍스트 데이터를 주고 받는 길</p>
<p><img src="https://images.velog.io/images/sanghyeok_lee/post/ac17fc5d-4f09-43a2-bc1f-de052e29c4bd/1.png" alt=""></p>
<h4 id="api와-api의-종류">API와 API의 종류</h4>
<p>API란 HTTP 요청을 Back-end 컴퓨터에 보냈을때 실행되는 Back-end 기능</p>
<h4 id="rest-api--graphql-api">rest-API,  graphql-API</h4>
<p>rest-API의 경우 함수 이름이 홈페이지 주소처럼 생겼고, graphal-APl의 경우 일반적인 함수와 같습니다 
rest-API의 경우 응답 결과를 모든 데이터를 받아야 하고 graphal-API의 경우 필요한 데이터만 받을 수 있습니다</p>
<p>솔직히 이해가 되지 않지만 연습을 해야겠다
플레이 그라운드라는 사이트를 이용해 연습을해야겠다.
<img src="https://images.velog.io/images/sanghyeok_lee/post/4b92b6c7-3c87-49df-a297-bbe057822936/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.55.20.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[캠프2일차]]></title>
            <link>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%842%EC%9D%BC%EC%B0%A8-8aucqqu1</link>
            <guid>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%842%EC%9D%BC%EC%B0%A8-8aucqqu1</guid>
            <pubDate>Tue, 31 Aug 2021 13:34:47 GMT</pubDate>
            <description><![CDATA[<h4 id="👍-오늘-수업-내용">👍 오늘 수업 내용</h4>
<p>React를 배워야하는 이유, React 컴포넌트(state)</p>
<h4 id="👍-react-를배워야하는-이유">👍 React 를배워야하는 이유</h4>
<ol>
<li>가장 많은 사용자 수</li>
<li>하나를 배우면 웹, 안드로이드, IOS, 데스크톱을 동시에 할 수 있다는 장점</li>
</ol>
<h4 id="👍-react-컴포넌트">👍 React 컴포넌트</h4>
<p>컴포넌트란 UI 또는 기능을 재사용 쉽게 할 수 있게 해준다.</p>
<h4 id="👍-react-state">👍 React state</h4>
<p>state: 컴포넌트에서 사용하는 변수
setState: 컴포넌트에서 사용하는 변수를 바꿔주는 기능
useState: 컴포넌트에서 사용하는 변수를 만들어주는 기능
useState는 react로부터 import 해줘야 합니다.</p>
<h4 id="2일차-quiz-state연습">2일차 quiz (state연습)</h4>
<p>index.js</p>
<pre><code>import {Wrapper1,Wrapper2,Wrapper3,HeaderHeader,Header,Main,MainId,Id,IdInput,Footer
,MainPw,HeaderTitle, Pw, PwInput, LoginButton,TalkButton
,FooterMain,FooterFont,TalkLogin,Error} from &#39;../../../styles/02-login&#39;

import {useState} from &#39;react&#39;

export default function BoardsNewPage(){

    const [ email, setEmail ] = useState()
    const [ pass, setPass ] = useState()

    const [ emailError, setEmailError ] = useState()
    const [ passError, setPassError ] = useState()


    function onChangeEmail(event) {
        setEmail(event.target.value)
    }

    function onChangePass(event) {
        setPass(event.target.value)
    }

    function onClickSignup() {
        if(email === &quot;&quot; || !email.includes(&quot;@&quot;)) {
            setEmailError(&quot;이메일을 확인해 주세요&quot;)
        }

        if(pass === &quot;&quot; || pass.length &lt; 8) {
            setPassError(&quot;8~16자의 영문,숫자,특수문자만 사용가능합니다.&quot;)
        }
    }




    return (
        &lt;Wrapper1&gt;
            &lt;Wrapper2 &gt;
            &lt;HeaderHeader&gt;&lt;/HeaderHeader&gt;
                &lt;Wrapper3&gt;                  
                    &lt;Header&gt;
                        &lt;img src=&quot;/images/photo10.png&quot;/&gt;
                        &lt;HeaderTitle&gt;잇츠로드&lt;/HeaderTitle&gt;
                    &lt;/Header&gt;
                    &lt;Main&gt;
                        &lt;MainId&gt;
                            &lt;Id&gt;
                                &lt;IdInput type = &quot;text&quot; placeholder=&quot;이메일을 입력해 주세요&quot; onChange={onChangeEmail}/&gt;
                                &lt;img src=&quot;/images/photo11.png&quot;/&gt;
                            &lt;/Id&gt;
                            &lt;hr /&gt;
                            &lt;div&gt;
                                &lt;Error&gt;{emailError}&lt;/Error&gt;
                            &lt;/div&gt;
                        &lt;/MainId&gt;
                        &lt;MainPw&gt;
                            &lt;Pw&gt;
                                &lt;PwInput type = &quot;password&quot; placeholder=&quot;비밀번호를 입력해 주세요&quot; onChange={onChangePass}/&gt;
                                &lt;img src=&quot;/images/photo11.png&quot;/&gt;
                            &lt;/Pw&gt;
                            &lt;hr/&gt;
                            &lt;div&gt;
                                &lt;Error&gt;{passError}&lt;/Error&gt;
                            &lt;/div&gt;
                        &lt;/MainPw&gt;
                    &lt;/Main&gt;
                    &lt;Footer&gt;
                        &lt;LoginButton onClick={onClickSignup}&gt;로그인&lt;/LoginButton&gt;
                        &lt;FooterMain&gt;
                            &lt;FooterFont&gt;이메일 찾기&lt;/FooterFont&gt;
                            &lt;FooterFont&gt;|&lt;/FooterFont&gt;
                            &lt;FooterFont&gt;비밀번호 찾기&lt;/FooterFont&gt;
                            &lt;FooterFont&gt;|&lt;/FooterFont&gt;
                            &lt;FooterFont&gt;회원가입&lt;/FooterFont&gt;
                        &lt;/FooterMain&gt;
                        &lt;TalkButton&gt; 
                        &lt;img src=&quot;/images/photo12.png&quot;/&gt;                       
                          &lt;TalkLogin&gt;카카오톡으로 로그인&lt;/TalkLogin&gt;
                        &lt;/TalkButton&gt;


                    &lt;/Footer&gt;
                &lt;/Wrapper3&gt;
            &lt;/Wrapper2&gt;
        &lt;/Wrapper1&gt;

    )

}</code></pre><p>02-login.js</p>
<pre><code>import styled from &#39;@emotion/styled&#39;

export const Wrapper1 = styled.div`
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;

`

export const Wrapper2 = styled.div`
    width: 640px;
    height: 1138px;
    background-color: skyblue;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border: solid 1px black;
    background-image: url(&quot;/images/photo13.png&quot;);

`
export const HeaderHeader = styled.div`
    width: 640px;
    height: 43px;
    border : solid 1px black;
`

export const Wrapper3 = styled.div`
    width: 540px;
    height: 1095px;

`

export const Header = styled.div`
    width: 540px;
    height: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

`
export const HeaderTitle = styled.span`
    font-size: 60px;
    color: white;
` 

export const Main = styled.div`
    width: 540px;
    height: 300px;
    /* background-color: blue; */
`

export const MainId = styled.div`
    width: 540px;
    height: 90px;

`

export const Id = styled.div`
    display: flex;
    flex-direction: row;
    justify-content: space-between;
`

export const IdInput = styled.input`
    width:400px;
    height: 30px;
    border: none;
    background-color:transparent;
    color: white;
`

export const MainPw = styled.div`
    width: 540px;
    height: 90px;

`

export const Pw = styled.div`
    display: flex;
    flex-direction: row;
    justify-content: space-between;
`

export const PwInput = styled.input`
    width:400px;
    height: 30px;
    border: none;
    background-color:transparent;
    color: white;
`


export const Footer = styled.div`
    width: 540px;
    height: 350px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

`

export const LoginButton = styled.button`
    width: 540px;
    height: 76px;
    border-radius: 38px;
    opacity: 0.6;
    background-color: #ff1b6d;
    font-size: 26px;
    color: white;
`

export const TalkButton = styled.button`
    width: 540px;
    height: 76px;
    border: 1px solid yellow;
    border-radius: 38px;
    background-color:transparent;
    font-size: 26px;
    color: yellow;
`

export const FooterMain = styled.div`
    width: 400px;
    height: 30px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
`

export const FooterFont = styled.span`
    size: 20px;
    color: white;
`

export const TalkLogin = styled.span`
    margin-left: 10px;

`

export const Error = styled.div`
    color: red;
`</code></pre><p><img src="https://images.velog.io/images/sanghyeok_lee/post/dfd634e2-774b-4456-aec6-0457c78051d4/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.09.53.png" alt=""></p>
<h4 id="2일차-board">2일차 board</h4>
<p>index.js</p>
<pre><code>import{ Wrapper1, Wrapper,Title, IdInput,TextInput,Header, InputText, Main, MainInput, Address,
    AddressInput, AddressButton, YouTube, Picture,
     PictuerButton, PictureDiv,MainSettings, FooterButton,
   AddressBox,MiniTitle,ErrorMessage} from &#39;../../../styles/BoardsNew.styles&#39;

import {useState} from &#39;react&#39;

export default function BoardsNewPage(){

    const [ name, setName ] = useState()
    const [ pass, setPass ] = useState()
    const [ title, setTitle ] = useState()
    const [ contents, setContents ] = useState()


    const [ nameError, setNameError ] = useState()
    const [ passError, setPassError ] = useState()
    const [ titleError, setTitleError ] = useState()
    const [ contentsError, setContentsError ] = useState()


    function onChangeName(event) {
        setName(event.target.value)
    }

    function onChangePass(event) {
        setPass(event.target.value)
    }

    function onChangeTitle(event) {
        setTitle(event.target.value)
    }

    function onChangeContents(event) {
        setContents(event.target.value)
    }

    function onClickSignup() {
        if(name === (&quot;&quot;)) {
            setNameError(&quot;이름을 작성해주세요.&quot;)
        }

        if(pass === (&quot;&quot;)) {
            setPassError(&quot;비밀번호를 작성해주세요.&quot;)
        }

        if(title === (&quot;&quot;)) {
            setTitleError(&quot;제목을 작성해주세요.&quot;)
        }

        if(contents === (&quot;&quot;)) {
            setContentsError(&quot;내용을 작성해주세요.&quot;)
        }
    }




   return (
       &lt;Wrapper1&gt;
           &lt;Wrapper&gt;
               &lt;Title&gt;게시물 등록&lt;/Title&gt;
               &lt;IdInput&gt;
                   &lt;div&gt;
                        &lt;div&gt;
                            &lt;MiniTitle&gt;작성자&lt;/MiniTitle&gt;
                        &lt;/div&gt;
                        &lt;TextInput type=&quot;text&quot; placeholder=&quot;이름을 적어주세요&quot; onChange={onChangeName}/&gt;   
                        &lt;ErrorMessage&gt;{nameError}&lt;/ErrorMessage&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                   &lt;div&gt;
                            &lt;MiniTitle&gt;비밀번호&lt;/MiniTitle&gt;
                        &lt;/div&gt;
                        &lt;TextInput type=&quot;password&quot; placeholder=&quot;비밀번호를 입력해주세요&quot; onChange={onChangePass} /&gt;
                        &lt;ErrorMessage&gt;{passError}&lt;/ErrorMessage&gt;
                   &lt;/div&gt;
               &lt;/IdInput&gt;
               &lt;Header&gt;    
                   &lt;MiniTitle&gt;제목&lt;/MiniTitle&gt;      
                   &lt;InputText type=&quot;text&quot; placeholder=&quot;제목을 입력하세요&quot; onChange={onChangeTitle}/&gt;  
                    &lt;ErrorMessage&gt;{titleError}&lt;/ErrorMessage&gt;
               &lt;/Header&gt;
               &lt;Main&gt;          
                       &lt;MiniTitle&gt;내용&lt;/MiniTitle&gt;               
                       &lt;MainInput type=&quot;text&quot; placeholder=&quot;내용을 작성해주세요&quot; onChange={onChangeContents}/&gt;   
                       &lt;ErrorMessage&gt;{contentsError}&lt;/ErrorMessage&gt;  
               &lt;/Main&gt;
               &lt;Address&gt;              
                   &lt;MiniTitle&gt;주소&lt;/MiniTitle&gt;    
                   &lt;AddressBox&gt;
                       &lt;AddressInput type=&quot;text&quot;/&gt;
                       &lt;AddressButton&gt;우편번호 검색&lt;/AddressButton&gt;
                   &lt;/AddressBox&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot;/&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot;/&gt;
                   &lt;/div&gt;
               &lt;/Address&gt;
               &lt;YouTube&gt;
                   &lt;div&gt;
                       &lt;MiniTitle&gt;유튜브&lt;/MiniTitle&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot; placeholder=&quot;링크를 복사해주세요&quot;/&gt;
                   &lt;/div&gt;
               &lt;/YouTube&gt;
               &lt;Picture&gt;     
                   &lt;div&gt;  
                   사진첨부
                   &lt;/div&gt;       
                   &lt;PictureDiv&gt;
                       &lt;PictuerButton&gt;
                           &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                       &lt;PictuerButton&gt;
                       &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                       &lt;PictuerButton&gt;
                           &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                   &lt;/PictureDiv&gt;
               &lt;/Picture&gt;
               &lt;MainSettings&gt;       
                   메인설정     
                   &lt;div&gt;
                       &lt;input type=&quot;radio&quot; name=&quot;settings&quot;/&gt;유튜브
                       &lt;input type=&quot;radio&quot; name=&quot;settings&quot;/&gt;사진
                   &lt;/div&gt;
               &lt;/MainSettings&gt;     
                   &lt;FooterButton onClick={onClickSignup}&gt;등록하기&lt;/FooterButton&gt;
           &lt;/Wrapper&gt;
       &lt;/Wrapper1&gt;
   )

}</code></pre><p>BoardsNew.styles.js</p>
<pre><code>import styled from &#39;@emotion/styled&#39;

export const Wrapper1 = styled.div`
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
`

 export const Wrapper = styled.div`
    border: solid 1px black;
    width: 1200px;
    height: 1715px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
`
export const Title = styled.h1`
    margin-top: 50px;
`

export const IdInput = styled.div`
    width: 996px;
    height: 130px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    /* align-items: center; */
`

export const TextInput = styled.input`
    width: 486px;
    height: 52px;
    margin-top: 10px;
`

export const Header = styled.div`
    width: 996px;
    height: 120px;
    display: flex;
    flex-direction: column;

`
export const InputText = styled.input`
    width: 996px;
    height: 52px;
    border: solid 1px black;
    margin-top: 10px;
`

export const Main = styled.div`
    width: 996px;
    height: 530px;
    display: flex;
    flex-direction: column;

`

export const MainInput = styled.input`
    width: 996px;
    height: 480px;
    border: solid 1px black;
`

export const Address = styled.div`
    width: 996px;
    height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
`

export const AddressBox = styled.div`
    width: 210px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
`

export const AddressInput = styled.input`
    width: 77px;
    height: 52px;
`

export const AddressButton = styled.button`
    width: 124px;
    height: 52px;
    background-color: black;
    color: white;
`

export const YouTube = styled.div`
    width: 996px;
    height: 80px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
`

export const Picture = styled.div`
    width: 996px;
    height: 120px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

`

export const PictureDiv = styled.div`
    width: 270px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
`

export const PictuerButton = styled.div`
    width: 78px;
    height: 78px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: #BDBDBD;

`

export const MainSettings = styled.div`
    width: 996px;
    height: 50px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

`

export const FooterButton = styled.button`
    width: 179px;
    height: 52px;
    background-color: #FFD600;
    margin-bottom: 50px;
    border: none;
`

export const MiniTitle = styled.span`
    margin-bottom: 10px;
`

export const ErrorMessage = styled.div`
    color:red;
` </code></pre><p><img src="https://images.velog.io/images/sanghyeok_lee/post/6625dd8c-af27-481d-862f-1d49d0fc0c94/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.08.21.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[캠프1일차]]></title>
            <link>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%841%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@sanghyeok_lee/%EC%BA%A0%ED%94%841%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Tue, 31 Aug 2021 05:07:54 GMT</pubDate>
            <description><![CDATA[<h4 id="😄코드캠프-1일차가-되었다">😄코드캠프 1일차가 되었다.</h4>
<p>첫날부터 너무 어려운 날이였다..첫날이라 그런지 설치해야할게 너무많았다.
Nods.js,Yarn,Next.js,Apollo-Client 등등..아직도 이해가 안가는 것들을 설치를 하였다.
설치 하는거 조차 너무어려워서 멘탈이 흔들렸지만 열심히 하다보면 이해되고 적응 할 수있지 않을까
생각이 드는 하루였다.
이해안가는거 투성이지만 천천히 알아가도록 해야할거같다.</p>
<h4 id="1터미널-명령어">1.터미널 명령어</h4>
<blockquote>
</blockquote>
<p>$ cd 디렉토리로 이동
$ ../ 현재 폴더에서 위의 폴더
$ ./ 현재 폴더
$ mkdir 폴더 생성
$ rm 현재 작업중인 directory 원본 삭제 
$ rm -rf 해당 폴더 및 파일 전부 삭제
$ ls 현재 위치한 경로 안의 내용 출력
$ ls -al 현재 위치 경로 안의 비밀 폴더까지 보여줌
$ mv 폴더 또는 파일 원본 이동 입력하세요</p>
<h4 id="2git">2.git</h4>
<blockquote>
</blockquote>
<p>git init - 프로젝트에 git설치
git add * - .gitignore에 있는 파일 제외하고 모두 올리기
git commit -m &#39;(메세지)&#39; - commit 메세지 작성
git remote add origin  - git 저장소 연결
git push -u origin master - git master로 push</p>
<h4 id="3emotion">3.Emotion</h4>
<blockquote>
</blockquote>
<p>JavaScript 안에서 스타일을 작성할 수 있게 해준다.
emotion 쓰는법 : import styled from &#39;@emotion/styled&#39;
(아직은 이정도밖에 모르겠다)</p>
<h4 id="4-1일차-quiz">4. 1일차 quiz</h4>
<p>1.index.js</p>
<pre><code>import{Wrapper1,Wrapper2,Header,HeaderHeader,HeaderPhoto,HeaderMain,
    My,Name,MyPhoto,Faq,HeaderFooter,Notice,Main,
MainMain,MainText,MainText2,Text1,Text2,MainFooter,
FooterPhoto,FooterPhoto2,MyMy} from &#39;../../../styles/01-faq&#39;

export default function BoardsNewPage(){

    return (
        &lt;Wrapper1&gt;
            &lt;Wrapper2&gt;
                &lt;Header&gt;
                    &lt;HeaderHeader&gt;

                    &lt;/HeaderHeader&gt;
                    &lt;HeaderPhoto&gt;
                        &lt;img src=&quot;/images/photo1.png&quot;/&gt;
                    &lt;/HeaderPhoto&gt;
                    &lt;HeaderMain&gt;
                        &lt;MyMy&gt;
                            &lt;My&gt;마이&lt;/My&gt;
                        &lt;/MyMy&gt;
                        &lt;MyPhoto&gt;
                            &lt;img src=&quot;/images/photo2.png&quot;/&gt;
                            &lt;Name&gt;임정아&lt;/Name&gt;
                            &lt;img src=&quot;/images/photo3.png&quot;/&gt;
                        &lt;/MyPhoto&gt;
                    &lt;/HeaderMain&gt;
                    &lt;HeaderFooter&gt;
                        &lt;Notice&gt;공지사항&lt;/Notice&gt;
                        &lt;Notice&gt;이벤트&lt;/Notice&gt;
                        &lt;Faq&gt;FAQ&lt;/Faq&gt;
                        &lt;Notice&gt;Q&amp;A&lt;/Notice&gt;
                    &lt;/HeaderFooter&gt;
                &lt;/Header&gt;
                &lt;Main&gt;
                    &lt;MainMain&gt;

                            &lt;MainText&gt;
                                &lt;MainText2&gt;                               
                                    &lt;Text1&gt;Q.01&lt;/Text1&gt;                                                               
                                    &lt;Text2&gt;리뷰 작성은 어떻게 하나요?&lt;/Text2&gt;                 
                                &lt;/MainText2&gt;
                                &lt;div&gt;
                                    &lt;img src=&quot;/images/photo4.png&quot;/&gt;
                                &lt;/div&gt;
                            &lt;/MainText&gt;
                            &lt;MainText&gt;
                                &lt;MainText2&gt;                               
                                    &lt;Text1&gt;Q.02&lt;/Text1&gt;                                                               
                                    &lt;Text2&gt;리뷰 수정/삭제는 어떻게 하나요?&lt;/Text2&gt;                 
                                &lt;/MainText2&gt;
                                &lt;div&gt;
                                    &lt;img src=&quot;/images/photo4.png&quot;/&gt;
                                &lt;/div&gt;
                            &lt;/MainText&gt;
                            &lt;MainText&gt;
                                &lt;MainText2&gt;                               
                                    &lt;Text1&gt;Q.03&lt;/Text1&gt;                                                               
                                    &lt;Text2&gt;아이디/비밀번호를 잊어버렸어요.&lt;/Text2&gt;                 
                                &lt;/MainText2&gt;
                                &lt;div&gt;
                                    &lt;img src=&quot;/images/photo4.png&quot;/&gt;
                                &lt;/div&gt;
                            &lt;/MainText&gt;
                            &lt;MainText&gt;
                                &lt;MainText2&gt;                               
                                    &lt;Text1&gt;Q.04&lt;/Text1&gt;                                                               
                                    &lt;Text2&gt;회원탈퇴를 하고싶어요.&lt;/Text2&gt;                 
                                &lt;/MainText2&gt;
                                &lt;div&gt;
                                    &lt;img src=&quot;/images/photo4.png&quot;/&gt;
                                &lt;/div&gt;
                            &lt;/MainText&gt;
                            &lt;MainText&gt;
                                &lt;MainText2&gt;                               
                                    &lt;Text1&gt;Q.05&lt;/Text1&gt;                                                               
                                    &lt;Text2&gt;출발지 설정은 어떻게 하나요?&lt;/Text2&gt;                 
                                &lt;/MainText2&gt;
                                &lt;div&gt;
                                    &lt;img src=&quot;/images/photo4.png&quot;/&gt;
                                &lt;/div&gt;
                            &lt;/MainText&gt;
                            &lt;MainText&gt;
                                &lt;MainText2&gt;                               
                                    &lt;Text1&gt;Q.06&lt;/Text1&gt;                                                               
                                    &lt;Text2&gt;비밀번호를 변경하고 싶어요.&lt;/Text2&gt;                 
                                &lt;/MainText2&gt;
                                &lt;div&gt;
                                    &lt;img src=&quot;/images/photo4.png&quot;/&gt;
                                &lt;/div&gt;
                            &lt;/MainText&gt;

                    &lt;/MainMain&gt;
                    &lt;MainFooter&gt;
                        &lt;FooterPhoto&gt;
                            &lt;FooterPhoto2&gt;
                                &lt;img src=&quot;/images/photo9.svg&quot;/&gt;
                                &lt;span&gt;홈&lt;/span&gt;
                            &lt;/FooterPhoto2&gt;
                            &lt;FooterPhoto2&gt;
                                &lt;img src=&quot;/images/photo6.png&quot;/&gt;
                                &lt;span&gt;잇츠로드&lt;/span&gt;
                            &lt;/FooterPhoto2&gt;
                            &lt;FooterPhoto2&gt;
                                &lt;img src=&quot;/images/photo7.png&quot;/&gt;
                                &lt;span&gt;마이찜&lt;/span&gt;
                            &lt;/FooterPhoto2&gt;
                            &lt;FooterPhoto2&gt;
                                &lt;img src=&quot;/images/photo8.png&quot;/&gt;
                                &lt;span&gt;마이&lt;/span&gt;
                            &lt;/FooterPhoto2&gt;
                        &lt;/FooterPhoto&gt;
                    &lt;/MainFooter&gt;
                &lt;/Main&gt;
            &lt;/Wrapper2&gt;
        &lt;/Wrapper1&gt;
    )
}</code></pre><p>2.01-faq.js</p>
<pre><code>import styled from &#39;@emotion/styled&#39;

export const Wrapper1 = styled.div`
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
`

export const Wrapper2 = styled.div`
    width: 640px;
    height: 1138px;
    border: solid 1px gray;
`

export const Header = styled.div`
    height: 408px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

    /* border: solid 1px black; */
`

export const HeaderHeader = styled.div`
    width: 640px;
    height: 43px;
    background-color: gray;
    border: solid 1px black;
`
export const HeaderPhoto = styled.div`
    width: 600px;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    height: 32px;

`

export const HeaderMain = styled.div`
    width: 600px;
    height: 70px;
    padding-left: 30px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;

`

export const MyMy = styled.div`
    padding-top: 15px;
`

export const My = styled.span`

    font-size: 40px;
`

export const MyPhoto = styled.div`
    width: 230px;
    height: 70px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;

`

export const Name = styled.span`
    font-size: 26px;
`

export const HeaderFooter = styled.div`
    width: 600px;
    height: 80px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 50px;

`

export const Notice = styled.span`
    font-size: 30px;
    color: #cacaca;

`

export const Faq = styled.span`
    font-size: 30px;
    color:#ff1b6d;
    border-bottom: solid 1px #ff1b6d;

`


export const Main = styled.div`
    height: 730px;

`

export const MainMain = styled.div`
    width: 640px;
    height: 630px;
    margin-left: 40px;
    padding-bottom: 50px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

`

// export const Main1 = styled.div`
//     width: 640px;
//     height: 630px;
//     display: flex;
//     flex-direction: row;
//     justify-content: center;
// `

export const MainText = styled.div`
    width: 550px;
    height: 60px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    /* border: solid 1px black; */
`

export const MainText2 = styled.div`
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

`

export const Text1 = styled.span`
    font-size: 18px;
    color: #adadad;
`

export const Text2 = styled.span`
    font-size: 24px;
    color: #444444;
`

export const MainFooter = styled.div`
    width: 640px;
    height: 100px;
    border-top: gray solid 1px;
`

export const FooterPhoto = styled.div`
    width: 640px;
    height: 100px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;

`

export const FooterPhoto2 = styled.div`
    width: 130px;
    height: 80px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

`</code></pre><p>아직 완성이 안됬다.</p>
<p><img src="https://images.velog.io/images/sanghyeok_lee/post/5a721ae5-0a6e-4a6b-a7d4-432fb4da2826/quiz1.png" alt=""></p>
<h4 id="5-1일차-board">5. 1일차 board</h4>
<p>1.index.js</p>
<pre><code>import{ Wrapper1, Wrapper,Title, IdInput,TextInput,Header, InputText, Main, MainInput, Address,
    AddressInput, AddressButton, YouTube, Picture,
     PictuerButton, PictureDiv,MainSettings, FooterButton,
   AddressBox} from &#39;../../../styles/BoardsNew.styles&#39;

export default function BoardsNewPage(){

   return (
       &lt;Wrapper1&gt;
           &lt;Wrapper&gt;
               &lt;Title&gt;게시물 등록&lt;/Title&gt;
               &lt;IdInput&gt;
                   &lt;div&gt;
                        &lt;div&gt;
                            &lt;span&gt;작성자&lt;/span&gt;
                        &lt;/div&gt;
                        &lt;TextInput type=&quot;text&quot; placeholder=&quot;이름을 적어주세요&quot;/&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                   &lt;div&gt;
                            &lt;span&gt;비밀번호&lt;/span&gt;
                        &lt;/div&gt;
                        &lt;TextInput type=&quot;password&quot; placeholder=&quot;비밀번호를 입력해주세요&quot;/&gt;
                   &lt;/div&gt;
               &lt;/IdInput&gt;
               &lt;Header&gt;    
                   제목      
                   &lt;InputText type=&quot;text&quot; placeholder=&quot;제목을 입력하세요&quot;/&gt;  
               &lt;/Header&gt;
               &lt;Main&gt;          
                       내용               
                       &lt;MainInput type=&quot;text&quot; placeholder=&quot;내용을 작성해주세요&quot;/&gt;         
               &lt;/Main&gt;
               &lt;Address&gt;              
                   주소    
                   &lt;AddressBox&gt;
                       &lt;AddressInput type=&quot;text&quot;/&gt;
                       &lt;AddressButton&gt;우편번호 검색&lt;/AddressButton&gt;
                   &lt;/AddressBox&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot;/&gt;
                   &lt;/div&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot;/&gt;
                   &lt;/div&gt;
               &lt;/Address&gt;
               &lt;YouTube&gt;
                   &lt;div&gt;
                       유튜브
                   &lt;/div&gt;
                   &lt;div&gt;
                       &lt;InputText type=&quot;text&quot; placeholder=&quot;링크를 복사해주세요&quot;/&gt;
                   &lt;/div&gt;
               &lt;/YouTube&gt;
               &lt;Picture&gt;     
                   &lt;div&gt;  
                   사진첨부
                   &lt;/div&gt;       
                   &lt;PictureDiv&gt;
                       &lt;PictuerButton&gt;
                           &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                       &lt;PictuerButton&gt;
                       &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                       &lt;PictuerButton&gt;
                           &lt;span&gt;+&lt;/span&gt;
                           &lt;span&gt;Upload&lt;/span&gt;
                       &lt;/PictuerButton&gt;
                   &lt;/PictureDiv&gt;
               &lt;/Picture&gt;
               &lt;MainSettings&gt;       
                   메인설정     
                   &lt;div&gt;
                       &lt;input type=&quot;radio&quot; name=&quot;settings&quot;/&gt;유튜브
                       &lt;input type=&quot;radio&quot; name=&quot;settings&quot;/&gt;사진
                   &lt;/div&gt;
               &lt;/MainSettings&gt;     
                   &lt;FooterButton&gt;등록하기&lt;/FooterButton&gt;
           &lt;/Wrapper&gt;
       &lt;/Wrapper1&gt;
   )

}</code></pre><ol start="2">
<li>BoardsNew.styles.js</li>
</ol>
<pre><code>import styled from &#39;@emotion/styled&#39;

export const Wrapper1 = styled.div`
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
`

 export const Wrapper = styled.div`
    border: solid 1px black;
    width: 1200px;
    height: 1715px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
`
export const Title = styled.h1`
    margin-top: 50px;
`

export const IdInput = styled.div`
    width: 996px;
    height: 90px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
`

export const TextInput = styled.input`
    width: 486px;
    height: 52px;
    margin-top: 10px;
`

export const Header = styled.div`
    width: 996px;
    height: 80px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
`
export const InputText = styled.input`
    width: 996px;
    height: 52px;
    border: solid 1px black;
`

export const Main = styled.div`
    width: 996px;
    height: 510px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
`

export const MainInput = styled.input`
    width: 996px;
    height: 480px;
    border: solid 1px black;
`

export const Address = styled.div`
    width: 996px;
    height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
`

export const AddressBox = styled.div`
    width: 210px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
`

export const AddressInput = styled.input`
    width: 77px;
    height: 52px;
`

export const AddressButton = styled.button`
    width: 124px;
    height: 52px;
    background-color: black;
    color: white;
`

export const YouTube = styled.div`
    width: 996px;
    height: 80px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
`

export const Picture = styled.div`
    width: 996px;
    height: 120px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

`

export const PictureDiv = styled.div`
    width: 270px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
`

export const PictuerButton = styled.div`
    width: 78px;
    height: 78px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: #BDBDBD;

`

export const MainSettings = styled.div`
    width: 996px;
    height: 50px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

`

export const FooterButton = styled.button`
    width: 179px;
    height: 52px;
    background-color: #FFD600;
    margin-bottom: 50px;
    border: none;
`
</code></pre><p><img src="https://images.velog.io/images/sanghyeok_lee/post/4f70bbda-2c23-4c83-96c2-3b2db95cfec3/2.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>