๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (115)
let's get IT with DAVINA ๐ป
ํ์ผ ๋ณต๊ตฌํ๊ธฐ //๋ฐ๋ก ์ commit ์์ ์ผ๋ก ํ์ผ ๋ณต๊ตฌํ๋ ๋ฒ git restore ํ์ผ๋ช //ํน์ commit ์์ ์ผ๋ก ํ์ผ ๋ณต๊ตฌํ๋ ๋ฒ git restore --source ์ปค๋ฐ์์ด๋ ํ์ผ๋ช //staging ์ทจ์ํ๋ ๋ฒ git restore --staged ํ์ผ๋ช commit ์ทจ์ํ๊ธฐ git revert ์ปค๋ฐ์์ด๋1 ์ปค๋ฐ์์ด๋2 //์ต๊ทผ ์ปค๋ฐ ์ทจ์ git revert HEAD ๊ณผ๊ฑฐ๋ก ๋ชจ๋ ๊ฑธ ๋๋๋ฆฌ๊ธฐ git reset --hard ์ปค๋ฐ์์ด๋ //๋ฆฌ์ ์ธ๋ฐ ๋ณ๋์ฌํญ ์ง์ฐ์ง ๋ง๊ณ ์คํ ์ด์ง ํด๋๊ธฐ git reset --soft ์ปค๋ฐ์์ด๋ //๋ฆฌ์ ์ธ๋ฐ ๋ณ๋์ฌํญ ์ง์ฐ์ง ๋ง๊ณ unstage ํด๋๊ธฐ git reset --mixed ์ปค๋ฐ์์ด๋ ๐ซ ERROR ISSUE ํ์๋ถ์ด dev/front์์ ์์ ์ค์, ๋ด..
merge ๋ฐฉ๋ฒ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ๋๋๋ฉด ๋ธ๋์น๋ฅผ main ๋ธ๋์น์ ํฉ์น ์ ์์ต๋๋ค. ๋จธ์ง๋ feature ๋ธ๋์น๋ ์ด๋ฏธ dev ๋ธ๋์น์ ๊ธฐ๋ก์ด ์๋ฒฝํ๊ฒ ๋จ์์๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ๋จ๊ฒจ๋ ์ด์ ๊ฐ ์์ด ์ญ์ ๋ฅผ ๊ถ์ฅํฉ๋๋ค. ์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ์์ pull request๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ง๋ฌด๋ฆฌ๋๋ฉด, ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ ๋ฒํผ์ ๋๋ฌ ์ฝ๊ฒ ์ญ์ ํ ์ ์์ต๋๋ค. ๋ก์ปฌ์์ merge ์๋ฃ๋ ๋ธ๋์น ์ญ์ ๋ฐฉ๋ฒ git branch -d ๋ธ๋์น๋ช //merge์ํ ๋ธ๋์น ์ญ์ git branch -D ๋ธ๋์น๋ช case 1. ๊ฐ ๋ธ๋์น์ ์ ๊ท commit์ด ์๋ ๊ฒฝ์ฐ => 3 way merge git switch main //๋ฉ์ธ ๋ธ๋์น๋ก ์ด๋ git merge feat //feat ๋ธ๋์น๋ฅผ main๋ธ๋์น๋ก ๋ณํฉ ์ค์ฌ ๋ธ๋์น๋ก ์ด๋ํด์ gi..
Why using git? ํ์ผ ๋ณ๊ฒฝ ๋ด์ญ์ ๋ณด์กดํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด How to install? 1. Homebrew ๊ฒ์ํด์ ์ฌ์ดํธ์ ๋ณด์ด๋ ๊ธด ์ค์น๋ช ๋ น์ด๋ฅผ 2. ํฐ๋ฏธ๋์ ๊ทธ๋๋ก ์ ๋ ฅ 3. password ์ ๋ ฅํ๋ผ๊ณ ํ๋ฉด ๋งฅ๋ถ ๋น๋ฒ ์ ๋ ฅ 4. ์ค์น ๋๋๋ฉด ์ปค๋งจ๋ 2๊ฐ ์ ๋ ฅํ๋ผ๊ณ ๋์ค๋๋ฐ 2๊ฐ ๊ฐ๊ฐ ํฐ๋ฏธ๋์ ์ ๋ ฅ 5. brew install git ํ๋ฉด ์ค์น ๋ 6. ๊ธฐ๋ณธ ๋ธ๋์น ์ด๋ฆ master → main์ผ๋ก ๋ณ๊ฒฝ git config --global init.defaultBranch main 7. ์ด ์ปดํจํฐ์์ git ์ฒ์์ด๋ค? ⇒ ์ฌ์ฉ์ ๋ฑ๋ก git config --global user.email "ํ๊ธธ๋@naver.com" git config --global user.name "ํ๊ธธ๋" Git ์ด..
19000->โฉ19,000 export const priceFormatter = new Intl.NumberFormat("ko", { style: "currency", currency: "krw", }); priceFormatter.format( roomType === "1 King Bed" ? pageDetail.rooms ? pageDetail.rooms[0].price: 0 : pageDetail.rooms ? pageDetail.rooms[1].price: 0 )
//checkin checkout date ํ์ ๋ณํ //Wed Apr 20 2022 00:00:00 GMT+0200 => 2022-04-20 export const DateFormat = (d1) => { const date = new Date(d1); const year = date.getFullYear(); const month = ("0" + (1 + date.getMonth())).slice(-2); const day = ("0" + date.getDate()).slice(-2); return `${year}-${month}-${day}`; };
Calender/style.jsx import styled from "styled-components"; export const DatePickerContainer = styled.div` display: flex; input { cursor: pointer; background-color: transparent; width: 100%; height: 65px; border: none; padding: 40px 20px 13px 20px; &:hover { border-radius: 8px; border: 2px solid ${(props) => props.theme.darkBlack}; } } .react-datepicker__day--keyboard-selected, .react-datepicker_..
๋ฐฉ๋ฒ 1 (์ปดํฌ๋ํธ ๋ณ๋ก ์ ์ฉํ ๋) src/util/useScrollTop.jsx ์ ์ฉ๋ ์ปดํฌ๋ํธ ์ง์ ์ ํ์ด์ง ๋งจ ์๋ก ์คํฌ๋กคํด์ฃผ๋ ์ปค์คํ ํ import { useEffect } from "react"; const useScrollTop = () => { useEffect(() => { if (window) window.scrollTo(0, 0); }, []); return; }; export default useScrollTop; import useScrollTop from "../util/useScrollTop"; const BlogDetails = () => { useScrollTop(); return ( //์๋ต... ); }; export default BlogDetails; ๋ฐฉ๋ฒ 2 (์ ..
๐ฅ TEAM BUILDING START ์ฝ๋์คํ ์ด์ธ ํ์ด๋ง ๊ณผ์ ์ค ๋ง๋ฌ๋ ๋ค์๋, ํ์๋๊ป ์ฐ๋ฝ๋๋ ค ๋ฉ์ธ ํ๋ก์ ํธ ํ๋ก ํธ์ค๋ ํ์ ์ด๋ฃจ๊ฒ ๋์๋ค. ๋ฐฑ์ค๋ ํ์ ์๋ ์ฌ๋์ด ์์ด ๋ฏธ๋ฆฌ ๊ตฌํ์ง ๋ชปํ์ง๋ง, ZEP์์ ๋ง์ฐํ ์ฐ์ ๊ตฐ ์ ํ์ด ์๋, ๋ง๋ค๊ณ ์ ํ๋ ๊ตฌ์ฒด์ ์ธ ํ๋ซํผ ์๋น์ค๋ฅผ ํ๋ณด(?)ํ์ฌ ๊ฑฑ์ ๋ณด๋จ ์์ํ๊ฒ ํ์ ๊ตฌ์ฑ์ ํ ์ ์์๋ค. โ PROJECT PURPOSE ๋๋ ํธํ ๊ฒฝ์์ ์ ๊ณตํ๊ณ , ์ฝ๋ฉ์ ์์ํ๊ธฐ ์ ๊น์ง ํธํ ๊ฒฝ๋ ฅ๋ง์ ์์์๋ค. ์ฌ์ ํ ํด๋น ๋ถ์ผ์ ๋ํ ์ ์ ๊ณผ ๊ด์ฌ์ด ์๊ธฐ์ ๊ฐ๋ฐ๊ณผ ์ฐ๊ด์ง๊ณ ์ถ์๋ค. ํธํ ์์ ๊ทผ๋ฌดํ๋ฉฐ, ๊ณ ๊ฐ๋๋ค๊ป ๊ฐ์ฅ ๋ง์ด ๋ค์๋ ๋ฌธ์์ฌํญ๋ค์ ์กฐํฉํ์ฌ ์ค์กดํ๋ ์๋ฐ์ ์ฒด ์น ํ๋ซํผ์์ ๋ถ์กฑํ ๋ถ๋ถ์ ๋ณด์ํ ์ ์๋ ํ๋ซํผ์ผ๋ก ์์ด๋์ด๋ค์ ํ์๋ค๊ณผ ๊ณต์ ํ๋ฉฐ ํ์ค์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ..