Skip to content

JaeEonHwang/piepay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

844 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ต์„œ๋น„์Šค ์†Œ๊ฐœ

์„œ๋น„์Šค ์„ค๋ช…

๊ฐœ์š”

  • ๋น ๋ฅธ N๋ถ„๋ฐฐ ์ •์‚ฐ ๊ฐ€๋Šฅํ•œ Pay

๋Œ€์ƒ ๐Ÿ‘ช

  • ์ •๊ธฐ์ ์œผ๋กœ ๋ชจ์ด๋Š” ๋ชจ์ž„์ด ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค
  • ๋ชจ์ž„ ํ›„ ์ •์‚ฐ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ๊ท€์ฐฎ์€ ์‚ฌ๋žŒ๋“ค
  • ๋ชจ์ž„ ํ›„ ์ •์‚ฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ž˜ ์žŠ๋Š” ์‚ฌ๋žŒ๋“ค
  • ๋ชจ์ž„์—์„œ ์–ด๋–ค ํ™œ๋™์„ ํ–ˆ๋Š”์ง€ ์ถ”์–ต์„ ๋‚จ๊ธฐ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค

UCC๐ŸŽž๏ธ

์œ ํŠœ๋ธŒ๋กœ ์ด๋™

๐Ÿ’ด๊ธฐํš ๋ฐฐ๊ฒฝ

๋ฐฐ๊ฒฝ

์นœ๊ตฌ๋“ค๊ณผ ์ฆ๊ฑฐ์šด ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ณ  ๋‚˜๋ฉด ๋ฐ˜๋“œ์‹œ ํ•ด์•ผํ•˜๋Š” ๊ท€์ฐฎ์€ ๊ณผ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ •์‚ฐ!

ํ•˜์ง€๋งŒ ์นด์นด์˜คํ†ก ์ •์‚ฐ์„ ํ™œ์šฉํ•˜๋ฉด ์ƒ๋Œ€๊ฐ€ ๋ˆ์„ ๋ณด๋‚ด์ค„ ๋•Œ๊นŒ์ง€ ๋ˆˆ์น˜๋ณด๋ฉฐ ๊ธฐ๋‹ค๋ ค์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ข

์ด๋ฅผ ์œ„ํ•ด ์ •์‚ฐ ๊ณผ์ •์—์„œ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๋„, ๋ˆˆ์น˜๋ณผ ํ•„์š”๋„ ์—†๋„๋ก ํŒŒ์ดํŽ˜์ด๊ฐ€ ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค!

๋ชฉ์ 

์ •์‚ฐ์„ ์œ„ํ•ด ์ผ์ผ์ด ์ฐพ์•„๋‹ค๋‹ˆ์ง€ ๋ง๊ณ , ๊ฒฐ์ œํ•˜๋ฉด์„œ ์ •์‚ฐํ•˜์ž!

์˜์˜

  • ์ •์‚ฐ ๊ณผ์ • ๊ฐ„์†Œํ™”
  • ๊ฐœ๋ณ„ ๊ณ„์‚ฐ or ๊ฐœ๋ณ„ ์ด์ฒด์˜ ๊ณผ์ •์„ ์ƒ๋žต
  • ๊ฒฐ์ œ ๋‚ด์—ญ์„ ํ†ตํ•œ ๋ชจ์ž„์˜ ์ถ”์–ต ์ €์žฅ



๐Ÿ“ฑํ™”๋ฉด ์†Œ๊ฐœ

ํšŒ์›๊ฐ€์ž…
๋ชจ์ž„๋งŒ๋“ค๊ธฐ
๋ชจ์ž„์ž…์žฅ
๊ฒฐ์ œ
๋ชจ์ž„์ƒ์„ธ
์ •์‚ฐ


๊ฐœ๋ฐœ ํ™˜๊ฒฝ

Management Tool

IDE

Infra

Frontend

Backend


๐Ÿ“‹ ์ฝ”๋“œ ์ปจ๋ฒค์…˜

BE
Intelij Formatter ์ ์šฉ
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

  1. ๋ ˆ์ด์•„์›ƒ
  2. Box
  3. ๋ฐฐ๊ฒฝ
  4. ํฐํŠธ
  5. other
Eslint Prettier
  • Airbnb ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ์‚ฌ์šฉ.
ํ•จ์ˆ˜

ํ•จ์ˆ˜ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉฐ, Arrow function์„ย ์‚ฌ์šฉํ•œ๋‹ค.

// Bad
function fnName() {}; Array.map(function(x){ retrun {}; })

// Good
const fnName = () => {}; Array.map(x => x);
ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์™€ Props

ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ์—๋Š” 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
  1. ๋ชจ๋“  ํŒŒ์ผ์€ TypeScript๋กœ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ํƒ€์ž… ์„ ์–ธ์€ ๋ช…์‹œ์ ์ด๊ฒŒ ํ•œ๋‹ค.
  2. any๋Š” ๊ฐ€๊ธ‰์  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
function calculateTotal(price: number, quantity: number): Props {
  return price * quantity;
}
Styled Components

๋ฐ˜๋ณต๋˜๋Š” ํƒœ๊ทธ๋Š” 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๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

// ์˜ˆ์‹œ: 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>



๐Ÿ“‚์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜

๐Ÿ“ˆ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

ํšŒ์›๊ฐ€์ž… ์‹œํ€€์Šค
ํœด๋Œ€ํฐ ๋ณธ์ธ์ธ์ฆ ์‹œํ€€์Šค
๊ณ„์ขŒ ๋ณธ์ธ์ธ์ฆ ์‹œํ€€์Šค
๋กœ๊ทธ์ธ ์‹œํ€€์Šค
๋ชจ์ž„ ์ƒ์„ฑ ๋ฐ ์ฐธ์—ฌ ์‹œํ€€์Šค
๊ฒฐ์ œ ์ฐธ์—ฌ์ž ์„ ํƒ ์‹œํ€€์Šค
๊ฒฐ์ œ ๋ฐ ์ •์‚ฐ ์‹œํ€€์Šค



๐Ÿ“œํ”„๋กœ์ ํŠธ ์‚ฐ์ถœ๋ฌผ

์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ

)

๊ธฐ๋Šฅ ๋ช…์„ธ์„œ

API ๋ช…์„ธ์„œ

Figma

ERD

๐Ÿ™‹ํŒ€์›

Frontend

๊ณ ์„์ฃผ
๊น€์ค€์ˆ˜
์ด์„ฑ๋ชฉ

@hgoa2000

@pittuarez

@CocoisCat

Backend

๋ฅ˜์ง€์ˆ˜(ํŒ€์žฅ)
ํ•จ์Šน์ฐฌ
ํ™ฉ์žฌ์–ธ

@onassis793

@head0618

@hju753

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages