- ๋น ๋ฅธ N๋ถ๋ฐฐ ์ ์ฐ ๊ฐ๋ฅํ Pay
- ์ ๊ธฐ์ ์ผ๋ก ๋ชจ์ด๋ ๋ชจ์์ด ์๋ ์ฌ๋๋ค
- ๋ชจ์ ํ ์ ์ฐ ์์ฒญ์ ๋ณด๋ด๊ธฐ ๊ท์ฐฎ์ ์ฌ๋๋ค
- ๋ชจ์ ํ ์ ์ฐํด์ผ ํ๋ค๋ ์ฌ์ค์ ์ ์๋ ์ฌ๋๋ค
- ๋ชจ์์์ ์ด๋ค ํ๋์ ํ๋์ง ์ถ์ต์ ๋จ๊ธฐ๊ณ ์ถ์ ์ฌ๋๋ค
์น๊ตฌ๋ค๊ณผ ์ฆ๊ฑฐ์ด ์๊ฐ์ ๋ณด๋ด๊ณ ๋๋ฉด ๋ฐ๋์ ํด์ผํ๋ ๊ท์ฐฎ์ ๊ณผ์ ์ด ์์ต๋๋ค. ๋ฐ๋ก ์ ์ฐ!
ํ์ง๋ง ์นด์นด์คํก ์ ์ฐ์ ํ์ฉํ๋ฉด ์๋๊ฐ ๋์ ๋ณด๋ด์ค ๋๊น์ง ๋์น๋ณด๋ฉฐ ๊ธฐ๋ค๋ ค์ผ ํ์ต๋๋ค. ๐ข
์ด๋ฅผ ์ํด ์ ์ฐ ๊ณผ์ ์์ ๊ธฐ๋ค๋ฆด ํ์๋, ๋์น๋ณผ ํ์๋ ์๋๋ก ํ์ดํ์ด๊ฐ ํ์ํ์ต๋๋ค!
์ ์ฐ์ ์ํด ์ผ์ผ์ด ์ฐพ์๋ค๋์ง ๋ง๊ณ , ๊ฒฐ์ ํ๋ฉด์ ์ ์ฐํ์!
- ์ ์ฐ ๊ณผ์ ๊ฐ์ํ
- ๊ฐ๋ณ ๊ณ์ฐ or ๊ฐ๋ณ ์ด์ฒด์ ๊ณผ์ ์ ์๋ต
- ๊ฒฐ์ ๋ด์ญ์ ํตํ ๋ชจ์์ ์ถ์ต ์ ์ฅ
BE
- ๋ค์ด๋ฒ ํต๋ฐ์ด java ์ฝ๋ฉ ์ปจ๋ฒค์ https://naver.github.io/hackday-conventions-java/
- Actions on Save ์๋ ์ ์ฉ
FE
-src
-app # Next.js ํ์ด์ง
-assets # ์ด๋ฏธ์ง,์์ด์ฝ ํด๋
-_component
-hooks # custom hooks
-api # ๋ฐฑ์๋์ ํต์ ํ๋ api ์๋น์ค
-utils # ์ ํธ๋ฆฌํฐ ํจ์ ๋ฐ ์์
-mocks # MSW
-model # interface
-store # zustandํ์ด์ง๋ src/app ํด๋์ ์์ฑ
- ํด๋ ๋ค์ด๋ฐ:
์นด๋ฉ ์ผ์ด์ค๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ, ์ปดํฌ๋ํธ ํด๋์ผ ๊ฒฝ์ฐ์๋ _component๋ก ์์ฑํ๋ค. - ํ์ผ ๋ค์ด๋ฐ: component, layout, page ํ์ผ์ผ ๊ฒฝ์ฐ์๋ง .tsx ํ์ฅ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๊ทธ ์ธ์๋ .ts๋ฅผ ์ฌ์ฉํ๋ค.
- Custom hook:
use+ ํจ์๋ช ์ผ๋ก ์์ฑํ๋ค.
๋ฐ๋์ ์ธ๋ฏธ์ฝ๋ก ์ ์ฌ์ฉ
- ์์๋ ์๋ฌธ ๋๋ฌธ์, ์ค๋ค์ดํฌ ํ๊ธฐ๋ฒ์ ์ฌ์ฉ
const NAME_ROLE;NHN ์ฝ๋ฉ ์ปจ๋ฒค์ ์ ๋ฐ๋ผ ์์ฑ์ ์ ์ธํ ๋๋ ๋ ์ด์์๊ณผ ๊ด๋ จ์ด ํฐ ๊ฒ๋ถํฐ ์์ํ์ฌ ๋ ์ด์์๊ณผ ๋ฌด๊ดํ ๊ฒ ์์๋ก ์ ์ธํ๋ค. https://archuive.tistory.com/72
- ๋ ์ด์์
- Box
- ๋ฐฐ๊ฒฝ
- ํฐํธ
- other
- Airbnb ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ฌ์ฉ.
ํจ์ ํํ์์ ์ฌ์ฉํ๋ฉฐ, Arrow function์ย ์ฌ์ฉํ๋ค.
// Bad
function fnName() {}; Array.map(function(x){ retrun {}; })
// Good
const fnName = () => {}; Array.map(x => x);ํจ์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ๋์๋ React.FC<Props> ๋์ ์, ์ธ์๋ก ๋ฐ์ Props๋ฅผ ์ค๊ดํธ๋ก ๊ฐ์ธ์ ์ฌ์ฉํ๋ค.
// Bad
const Component: React.FC<Props> = ({ item }) => {
return <div>{item}</div>;
};
// Good
const Component = ({ item }: Props) => {
return <div>{item}</div>;
};- ๋ชจ๋ ํ์ผ์ TypeScript๋ก ์์ฑ๋์ด์ผ ํ๋ฉฐ, ํ์ ์ ์ธ์ ๋ช ์์ ์ด๊ฒ ํ๋ค.
- any๋ ๊ฐ๊ธ์ ์ฌ์ฉํ์ง ์๋๋ค.
function calculateTotal(price: number, quantity: number): Props {
return price * quantity;
}๋ฐ๋ณต๋๋ ํ๊ทธ๋ Styled Components๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ณ๋ก ์คํ์ผ๋งํ ๋, ์ปดํฌ๋ํธ์ ์คํ์ผ์ด ํจ๊ป ์ ์๋์ด์ผ ํ๋ค.
import styled from 'styled-components';
const Button = styled.button`};
font-size: 1rem;
padding: 0.5rem 1rem;
border: 2px solid blue;
border-radius: 4px;
`;
export default Button;๋ฐ๋ณต๋์ง ์๋ ํ๊ทธ๋ ๊ฐ๋ฅํ๋ค๋ฉด Tailwind CSS๋ฅผ ์ฌ์ฉํ๋ค.
// ์์: Tailwind CSS ํด๋์ค ์ฌ์ฉ
<div className="flex justify-center items-center bg-gray-200 p-4">
<p className="text-lg font-bold text-blue-500">Welcome!</p>
</div>| ๊ณ ์์ฃผ |
๊น์ค์ |
์ด์ฑ๋ชฉ |
|---|---|---|
@hgoa2000 |
@pittuarez |
@CocoisCat |
| ๋ฅ์ง์(ํ์ฅ) |
ํจ์น์ฐฌ |
ํฉ์ฌ์ธ |
|---|---|---|
@onassis793 |
@head0618 |
@hju753 |













