Skip to content

Team-WithMe/WithMe_FE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation





๐Ÿ“š With Me FE

์œ„๋“œ๋ฏธ (With Me) ์Šคํ„ฐ๋”” ๋งค์นญ ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค.

๐Ÿ—„ Links


๐Ÿช„ eslint plugin

  • eslint-plugin-sort-keys-custom-order: type๊ณผ object์˜ ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ ฌ ํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ
  • eslint-plugin-simple-import-sort: import/export๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ
  • eslint-plugin-import: eslint-plugin-simple-import-sort์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ ํ™•์žฅ
  • eslint-plugin-unused-imports: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ˆ„๋ฝ ๋œ ๊ฒƒ์„ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ

๐Ÿ‘จโ€๐Ÿ’ป Member

LeeBonHoon changyuyeo KimTeaSick
  • Lee-bonhoon: ๋ฉ”์ธ ํŽ˜์ด์ง€, ํŒ€ ๋ฆฌ์ŠคํŠธ
  • changyuyeo: ํ˜ธ์ŠคํŠธ ํŽ˜์ด์ง€, ์ƒ์„ธ ํŽ˜์ด์ง€
  • KimTeaSick: ๋งˆ์ด ํŽ˜์ด์ง€


ย ๐Ÿ—‚ Branches

๐Ÿ—‚ branches

๊ฐ์ž ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…, ์ž‘์—…์ด ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด master๋ธŒ๋žœ์น˜์— PR ํ›„ merge ์š”์ฒญ
merge๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ pull ์š”์ฒญํ•˜๊ธฐ
master ๋ธŒ๋žœ์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜๋ฉด ํ•ญ์ƒ pull ๋ฐ›์•„์ค˜์•ผ ์ถฉ๋Œ์ด ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

// ์ƒˆ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ
git checkout -b "์ƒˆ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„"

// ๋ธŒ๋žœ์น˜ ์ด๋™
git checkout "๋ธŒ๋žœ์น˜ ์ด๋ฆ„"

ย ๐Ÿช Hooks

๐Ÿช Hooks

useModal ์‚ฌ์šฉ๋ฒ•

import { FC } from 'react';
import useModal from '@hooks/useModal';

//* ๋ชจ๋‹ฌ์ฐฝ ์•ˆ์— ๋“ค์–ด๊ฐˆ ์ปจํ…์ธ 
const TestModal: FC<{ onCloseModal: () => void }> = ({ onCloseModal }) => (
	<div
		style={{
			background: 'white',
			width: '568px',
			height: '400px',
			borderRadius: '10px',
			padding: '20px'
		}}
	>
		๋ชจ๋‹ฌ ๋‚ด์šฉ... <br /> <button onClick={onCloseModal}>๋ชจ๋‹ฌ์ฐฝ ๋‹ซ๊ธฐ</button>
	</div>
);

const HostPage = () => {
	//* useModal ์‚ฌ์šฉ
	//* ModalPortal: root-modal ์ด๋ผ๋Š” id์— ๋ชจ๋‹ฌ ๋žœ๋”๋ง (children ์œผ๋กœ ๋ชจ๋‹ฌ ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค์–ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.)
	//* onCloseModal: ๋ชจ๋‹ฌ์ฐฝ ์˜คํ”ˆ ์ด๋ฒคํŠธ
	//* onOpenModal: ๋ชจ๋‹ฌ์ฐฝ ๋‹ซ๋Š” ์ด๋ฒคํŠธ
	const { ModalPortal, onCloseModal, onOpenModal } = useModal();

	return (
		<>
			<button onClick={onOpenModal}>๋ชจ๋‹ฌ์ฐฝ ์—ด๊ธฐ</button>
			<ModalPortal>
				<TestModal onCloseModal={onCloseModal} />
			</ModalPortal>
		</>
	);
};

export default HostPage;
  • useModal์„ ์‚ฌ์šฉํ•ด ModalPortal, onCloseModal, onOpenModal์„ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋‹ฌ์ฐฝ์„ ๊ด€๋ฆฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • onOpenModal ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ ์‹œ ๋ชจ๋‹ฌ์ฐฝ์ด ์˜คํ”ˆ๋˜๋ฉฐ id๊ฐ€ root-modal ์ด๋ผ๋Š” ์š”์†Œ์— ModalPortal ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋žœ๋”๋ง ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (react-portal ํ™œ์šฉ)
  • onCloseModal ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ํ•ด๋‹น ๋ชจ๋‹ฌ์ฐฝ์€ ๋‹ซํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์„ ์ปค์Šคํ…€ ํ›…์œผ๋กœ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ react portal ๋ฅผ ํ™œ์šฉํ•ด root์˜ ๋ฐ”๊นฅ์—์„œ ๋žœ๋”๋ง ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

portal๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•œ ์ด์œ 

DOM Tree ์ƒ์—์„œ์˜ ๋ถ€๋ชจ-์ž์‹ ๊ฐ„์˜ ์ œ์•ฝ์—์„œ ์ž์œ ๋กœ์›Œ์ง€๊ธฐ ์œ„ํ•ด Portal ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋˜ํ•œ, Portal์— ๋ Œ๋”๋ง๋œ ์ž์‹์š”์†Œ๋Š” ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์ด ๋ฐ˜์˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ์š”์†Œ์™€์˜ ํ†ต์‹  ์ธก๋ฉด์—์„œ๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Portals ์ฐธ๊ณ  ๋ฌธ์„œ


ย ๐Ÿ–ฅ Available URI

๐Ÿ–ฅ Available URI

  • / : ๋ฉ”์ธ ํŽ˜์ด์ง€
  • /host : ์ƒˆ๋กœ์šด ํŒ€ ๋งŒ๋“ค๊ธฐ ํŽ˜์ด์ง€
  • /...

ย ๐Ÿ“‚ Skeleton

๐Ÿ“‚ Skeleton

|-- /src
| |-- /assets
| | |-- ...
| |-- /components
| | |-- ...
| |-- /hooks
| | |-- useInput.ts
| | |-- useModal.tsx
| |-- /lib
| | |-- /api
| | | |-- ...
| |-- /pages
| | |-- \_app.tsx
| | |-- \_document.tsx
| | |-- ...
| |-- /store
| | |-- index.ts
| | |-- rootReducer.ts
| | |-- ...
| |-- /styles
| |-- /typings
| |-- ...

ย ๐Ÿ“ Conventional Commits

๐Ÿ“ Conventional Commits

์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฐธ๊ณ 


message descripton
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ •
test Test ๊ด€๋ จํ•œ ์ฝ”๋“œ์˜ ์ถ”๊ฐ€, ์ˆ˜์ •
refactor ์ฝ”๋“œ๋ฅผ ๋ฆฌํŽ™ํ† ๋ง
chore (์ฝ”๋“œ์˜ ์ˆ˜์ • ์—†์ด) ์„ค์ •์„ ๋ณ€๊ฒฝ
docs ๋ฌธ์„œ์˜ ์ˆ˜์ •
style (์ฝ”๋“œ์˜ ์ˆ˜์ • ์—†์ด) ์Šคํƒ€์ผ(style)๋งŒ ๋ณ€๊ฒฝ
(๋“ค์—ฌ์“ฐ๊ธฐ ๊ฐ™์€ ํฌ๋งท์ด๋‚˜ ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋นผ๋จน์€ ๊ฒฝ์šฐ)

commit example

git commit -m "feat: ์œ ์ € ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€"

Commitizen ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์œผ๋กœ ์œ„ ๋ฐฉ๋ฒ•๋ณด๋‹ค๋Š” ์•„๋ž˜๋ฐฉ๋ฒ•์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

yarn commit

yarn commit ์„ ํ•ด์ฃผ์‹œ๊ณ  ์ปค๋ฐ‹์˜ ํƒ€์ž…, ์ œ๋ชฉ, ์„ค๋ช… ๋“ฑ ๊ฐ€์ด๋“œ๋Œ€๋กœ ์ž…๋ ฅํ•œ ํ›„ ๊ฐ๊ฐ ๋ธŒ๋žœ์น˜์— push ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

yarn commit ๋ช…๋ น์–ด๋Š” ์ œ์ผ ๋จผ์ € git add๋ฅผ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— git add ๋ช…๋ น์–ด๋Š” ๋”ฐ๋กœ ์ž…๋ ฅ์•ˆํ•ด์ฃผ์…”๋„ ๋ฉ๋‹ˆ๋‹ค!


ย โš™ Settings

โš™ Settings

dev server

yarn dev

node -v

v16.14.2

.env

NEXT_PUBLIC_API_URL=...

etc...

// clone ํ›„ git hook์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด ์‹คํ–‰
chmod +x .husky/pre-commit

About

๐Ÿ“š WithMe ํ”„๋ก ํŠธ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5