Skip to content

Conversation

@JSH99
Copy link

@JSH99 JSH99 commented Sep 22, 2023

๐Ÿ’ป Toy Project1

๐Ÿ“Œ ๊ฐœ์š”

  • ์ง์›๋“ค์„ ์œ„ํ•œ ์œ„ํ‚ค ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.
  • Firebase Storage, DataBase, Auth๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
  • TypeScript ์‚ฌ์šฉ์„ ์ตํžŒ๋‹ค.


๐Ÿฑ ์‚ฌ์ดํŠธ

Static Badge Static Badge

ํฌ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์ฃผ์ œ๋กœ ํฌ์ผ“๋ชฌ๋“ค์„ ์œ„ํ•œ ์œ„ํ‚ค ์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘.


๐Ÿงšโ€โ™‚๏ธ ์—ญํ•  ๋ถ„๋‹ด

๊น€๋ฏผ์„œ ์‹ ํ•˜์—ฐ ์œค์„๋ฏผ ์ด์žฌ์ค€ ์ •์„œํ˜„
wiki page ใƒป about page ๊ตฌํ˜„, ํ”ผ๊ทธ๋งˆ ๋””์ž์ธ, firebase ํ˜ธ์ŠคํŒ… ๋ฐ ๋ฐฐํฌ footer ใƒป login page ใƒป my page ๊ตฌํ˜„, firebase ๊ธฐ๋ณธ ์„ค์ • ๋ฐ ์—ฐ๊ฒฐ, ๋””์ž์ธ ํ†ตํ•ฉ ๋ฐ ๋ชจ๋ฐ”์ผ ๋ฐ˜์‘ํ˜• ๊ตฌํ˜„ gallery page (members ์†Œ๊ฐœ ใƒป projects ๊ด€๋ฆฌ) ๊ตฌํ˜„, ํ”ผ๊ทธ๋งˆ ๋””์ž์ธ ๋ฐ ์ •๋ฆฌ header ใƒป nav bar ใƒป commute modal ๊ตฌํ˜„, ํ”ผ๊ทธ๋งˆ ๋””์ž์ธ, ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ๊ธฐ๋ณธ ์„ค์ •, ๊ณตํ†ต util ๊ด€๋ฆฌ, ์œ ์ €ํ”Œ๋กœ์šฐ ์ž‘์„ฑ main page ใƒป notice page ๊ตฌํ˜„, ์บ๋Ÿฌ์…€ ๋ฐฐ๋„ˆ ์ด๋ฏธ์ง€ ์ œ์ž‘, ํšŒ์˜๋ก ๊ด€๋ฆฌ, ๋ฆฌ๋“œ๋ฏธ ์ž‘์„ฑ



โœจ ๊ตฌํ˜„ ๋‚ด์šฉ

ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ

แ„’แ…ฌแ„‹แ…ฏแ†ซ ์ •๋ณด ๊ด€๋ฆฌ
[ ๋‹ด๋‹น ๊ฐœ๋ฐœ์ž: ์‹ ํ•˜์—ฐ ]

  • ํ—ค๋”์˜ ๋กœ๊ทธ์ธ ํด๋ฆญ ์‹œ ํšŒ์› ์ธ์ฆ ํŽ˜์ด์ง€๋กœ ์ด๋™ (๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…)
  • ํšŒ์›๊ฐ€์ž… ์‹œ ํœด๋Œ€ํฐ ์ธ์ฆ ๊ฐ€๋Šฅ
  • ๋กœ๊ทธ์ธํ•œ ๊ฒฝ์šฐ ํ—ค๋”์—์„œ ์•„์ด์ฝ˜ ํด๋ฆญ ์‹œ ํšŒ์› ์ •๋ณด ํ™•์ธ ๋ฐ ๋งˆ์ดํŽ˜์ด์ง€ ์ด๋™
  • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ํšŒ์› ์ •๋ณด ํ™•์ธ ๋ฐ ์ˆ˜์ •
  • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์ด๋ฉ”์ผ ์ธ์ฆ, ํœด๋Œ€ํฐ ์ธ์ฆ, ํšŒ์› ํƒˆํ‡ด
  • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์ด๋ฉ”์ผ ์ธ์ฆ ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

๊ณต์ง€ ์บ๋Ÿฌ์…€

๊ณต์ง€ แ„แ…ขแ„…แ…ฅแ„‰แ…ฆแ†ฏ
[ ๋‹ด๋‹น ๊ฐœ๋ฐœ์ž: ์ •์„œํ˜„ ]

  • ์บ๋Ÿฌ์…€ ์ด๋ฏธ์ง€ 5์ดˆ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋ฌดํ•œ ์Šฌ๋ผ์ด๋“œ
  • ํ™”์‚ดํ‘œ ๋ฒ„ํŠผ, ๋™๊ทธ๋ผ๋ฏธ ๋ฒ„ํŠผ์œผ๋กœ ์ด๋ฏธ์ง€ ์ด๋™
  • ์บ๋Ÿฌ์…€ ์ด๋ฏธ์ง€ ํด๋ฆญ ์‹œ ํ•ด๋‹น ๊ณต์ง€ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™
  • ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๋Š” ๋™์•ˆ ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ ๋™์ž‘

์œ„ํ‚ค ํŽ˜์ด์ง€

แ„‹แ…ฑแ„แ…ต ํŽ˜์ด์ง€
[ ๋‹ด๋‹น ๊ฐœ๋ฐœ์ž: ๊น€๋ฏผ์„œ ]

  • ๋งˆํฌ๋‹ค์šด ํ˜•์‹์˜ ์œ„ํ‚ค ๊ธ€ ํŽธ์ง‘
  • GUI๋ฅผ ํ†ตํ•ด ์‰ฌ์šด ํŽธ์ง‘ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ํŽธ์ง‘ ์‹œ ๋งˆํฌ๋‹ค์šด ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์ˆ˜์ •ํ•œ ๊ธ€ ์ €์žฅ ์‹œ ์ž‘์„ฑ์ž ๋ฐ ์ž‘์„ฑ ์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ

๊ฐค๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€

แ„€แ…ขแ†ฏแ„…แ…ฅแ„…แ…ต ํŽ˜์ด์ง€
[ ๋‹ด๋‹น ๊ฐœ๋ฐœ์ž: ์œค์„๋ฏผ ]

  • ๋ฉค๋ฒ„ ์†Œ๊ฐœ ํŽ˜์ด์ง€์—์„œ ํšŒ์›๊ฐ€์ž…ํ•œ ๋ฉค๋ฒ„๋“ค์˜ ํ”„๋กœํ•„ ์กฐํšŒ
  • ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ ๋ณ„๋กœ ์˜ˆ์ •, ์ง„ํ–‰์ค‘, ์™„๋ฃŒ๋œ ํ”„๋กœ์ ํŠธ ์กฐํšŒ
  • ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€๋ฅผ ํ†ตํ•œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
  • ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์ƒํƒœ ๋ฐ ๋‚ด์šฉ ์ˆ˜์ •
  • ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ž ํ‘œ์‹œ ๋ฐ ํ”„๋กœ์ ํŠธ ์ฐธ์—ฌ ๊ฐ€๋Šฅ


์ถœํ‡ด๊ทผ ๊ธฐ๋ก

แ„แ…ฉแ„‹แ…ต1_แ„Žแ…ฎแ†ฏแ„แ…ฌแ„€แ…ณแ†ซ
[ modal ๊ฐœ๋ฐœ์ž: ์ด์žฌ์ค€, table ๊ฐœ๋ฐœ์ž: ์ •์„œํ˜„ ]

  • ์ถœํ‡ด๊ทผ ๋ชจ๋‹ฌ ํด๋ฆญ ์‹œ ํƒ€์ด๋จธ๋ฅผ ํ†ตํ•ด ์ถœ๊ทผ ์‹œ๊ฐ„, ํ‡ด๊ทผ ์‹œ๊ฐ„ ๊ธฐ๋ก
  • ํ‡ด๊ทผ ํด๋ฆญ ์‹œ ์ด ๊ทผ๋ฌด์‹œ๊ฐ„ ํ™•์ธ
  • ๋‹น์ผ ์ถœ๊ทผ ๊ธฐ๋ก์ด ์ด๋ฏธ ์žˆ์„ ๊ฒฝ์šฐ ์žฌ์ถœ๊ทผํ•  ๊ฑด์ง€ ํ™•์ธ
  • ๊ฐ™์€ ๋‚  ์ถœํ‡ด๊ทผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ธฐ๋ก ๊ฐ€๋Šฅ
  • ํ‡ด๊ทผ ์™„๋ฃŒํ–ˆ์„ ๊ฒฝ์šฐ ํ•ด๋‹น ๋‚ ์งœ์˜ ๊ฐ€์žฅ ์ตœ๊ทผ ์ถœํ‡ด๊ทผ ๊ธฐ๋ก ์ถœํ‡ด๊ทผ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ (๋ฉ”์ธ ํŽ˜์ด์ง€)


๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ์œ ์ € ํ”Œ๋กœ์šฐ

user flow



๐Ÿ› ๏ธ Stack

TypeScript
React
Firebase
Vite
ESLint
NPM

dbstjrals and others added 22 commits September 22, 2023 18:07
๋””์ž์ธ์„ ํ†ตํ•ฉํ•œ๋‹ค.
๊ณต์ง€ ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋””์ž์ธํ•œ๋‹ค.
๋ชจ๋‹ฌ ๋””์ž์ธ์„ ์ˆ˜์ •ํ•œ๋‹ค.
README.md ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
about page๋ฅผ ์ตœ์ข… ์ˆ˜์ •ํ•œ๋‹ค.
im-na0 added a commit that referenced this pull request Sep 22, 2023
Feat: ์ง์› ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ ๋ชจ๋‹ฌ ๋งˆํฌ์—…
TaePoong719 added a commit that referenced this pull request Sep 22, 2023
๋งˆํฌ๋‹ค์šด ์—๋””ํ„ฐ ๊ตฌํ˜„์„ ์œ„ํ•œ ์ดˆ๊ธฐ ์„ธํŒ… (์ด์Šˆ #7)
Copy link
Member

@marshallku marshallku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค!
ํ”„๋กœ์ ํŠธ์˜ ์ปจ์…‰์— ๋งž์ถฐ ํ”„๋กœ์ ํŠธ๋„ ๋ชจํ—˜๊ฐ™์€ ๊ฒƒ ์ฒ˜๋Ÿผ ๊ด€๋ จ๋œ ๋А๋‚Œ์œผ๋กœ ์ œ์ž‘๋์œผ๋ฉด ์–ด๋• ์„๊นŒ ์‹ถ๋„ค์š”.

  • ์ฝ”๋“œ ์Šคํƒ€์ผ ํ†ต์ผ
  • ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง ๋ฐ UI ๊ณตํ†ตํ™”
  • ์กฐ๊ฑด๋ฌธ / ๋น„๋™๊ธฐ ๋ฐ˜๋ณต๋˜๋Š” ์ƒํ™ฉ์— ์ฝ”๋“œ ๋‹จ์ˆœํ™”
  • ๋น„๋™๊ธฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ

์ •๋„๋ฅผ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ ๋•Œ ๊ณ ๋ คํ•ด๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

์ค‘๋ณต๋˜๋Š” ๋ฆฌ๋ทฐ๋Š” ์ƒ๋žตํ–ˆ์œผ๋‹ˆ, ๋ณธ์ธ์˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ํ•œ ๋ฒˆ์”ฉ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค~

@@ -0,0 +1,19 @@
<!doctype html>
<html lang="en">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

en -> ko๋กœ ๋ณ€๊ฒฝํ•˜์…”์•ผ๊ฒ ์ฃ ?

);
};

const Button = styled.button<{ backgroundColor: string; hoverColor: string }>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

styled component์— ๋„˜๊ธฐ๋Š” props๋ฅผ DOM element๊นŒ์ง€ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด, prop์˜ ์ด๋ฆ„์„ $๋กœ ์‹œ์ž‘ํ•ด์•ผํ•˜์ง€ ์•Š๋‚˜์š”?

import { MouseEventHandler, ReactNode } from 'react';
import styled from 'styled-components';

interface Props {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CommuteButton ์™ธ๋ถ€์—์„œ ์ด Props์— ์ ‘๊ทผํ•˜๋ ค๋ฉด Parameters<typeof CommuteButton>[0] ์ฒ˜๋Ÿผ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด interface์˜ ์ด๋ฆ„์„ CommuteButtonProps๋กœ ๋ฐ”๊พธ๊ณ  exportํ•˜๋„๋ก ํ•˜๋ฉด ์ข€ ๋” ์ ‘๊ทผ์ด ํŽธํ•˜์ง€ ์•Š์„๊นŒ์š”?

);
};

const Button = styled.button<{ backgroundColor: string; hoverColor: string }>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์—ฌ๊ธฐ ์‚ฌ์šฉ๋œ value ๊ฐ’๋“ค์„ Props์—์„œ ๊ฐ€์ ธ์˜ค๋„๋ก ์ž‘์—…ํ•˜๋ฉด, CommuteButton์˜ props ํƒ€์ž…์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์œ ๋™์ ์œผ๋กœ ๋”ฐ๋ผ๊ฐ€๋„๋ก ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”.


// ์ปจํ…์ŠคํŠธ์˜ ํƒ€์ž… ์ •์˜
interface UserContextType {
user: User | null;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ด ํŒจํ„ด์ด ๋งŽ์ด ๋ฐ˜๋ณต๋˜๋Š”๋ฐ, type Nullable<T> = T | null;๊ฐ™์€ ํ—ฌํผ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด ์–ด๋• ์„๊นŒ์š”?

Comment on lines +53 to +54
const [editor, setEditor] = useState<string>(''); //์ž‘์„ฑ์ž ์ถ”๊ฐ€
const editorRef = useRef<Editor | null>(null);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ฃผ์„๋„ ์ด๋Ÿฐ ์ด์œ ์—์„œ ์ถ”๊ฐ€๋œ ๊ฒƒ ๊ฐ™์€๋ฐ, ํŽธ์ง‘์ž์™€ ํŽธ์ง‘๊ธฐ๊ฐ€ ์ข€ ํ—ท๊ฐˆ๋ฆฌ๋„ค์š”...
editorComponentRef์ฒ˜๋Ÿผ ์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋ณ€์ˆ˜๋ช…์„ ์ง€์–ด๋ณด๋ฉด ์–ด๋–จ๊นŒ์š”?

Comment on lines +73 to +75
} else {
console.log('๋ฌธ์„œ๊ฐ€ ์—†์Œ');
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฌธ์„œ๊ฐ€ ์—†์„ ๋• console์— ์ถœ๋ ฅ ์™ธ์— ์•„๋ฌด ๋™์ž‘์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š”๋ฐ, ๋ฌธ์„œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด early return๋งŒ ํ•ด๋ฒ„๋ ค๋„ ๋˜์ง€ ์•Š์„๊นŒ์š”?

useEffect(() => {
const fetchData = async () => {
try {
const docRef = doc(db, 'wiki', 'rule');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ด ์˜์—ญ๋„, db ์ปฌ๋Ÿผ ๋ช…๋งŒ ๋‹ค๋ฅธ ๊ฑฐ๋ผ๋ฉด ํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฌถ์–ด๋‘๋Š” ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ํŽธํ•  ๊ฒƒ ๊ฐ™๋„ค์š”.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ด๋Ÿฐ ๊ฒƒ๋“ค์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ณด๋‹จ ์ปดํฌ๋„ŒํŠธ๋ผ๊ณ  ๋ณด๋Š” ๊ฒŒ ๋งž์ง€ ์•Š์„๊นŒ์š”?

Comment on lines +47 to +49
const startIndex = newTime.indexOf('T');
const lastIndex = newTime.indexOf('.');
const formattedTime = newTime.slice(startIndex + 1, lastIndex);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getHours() ๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒŒ ์กฐ๊ธˆ ๋” ์•ˆ์ „ํ•˜์ง€ ์•Š์„๊นŒ์š”?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants