develop
readme
LastModifiedDate17 May 2022
MovieLog(2022-05)

πŸ“‚ μ†Œκ°œ

μ˜ν™” 정보λ₯Ό ν¬λ‘€λ§ν•΄μ„œ μ‚¬μš©μžμ—κ²Œ μ œκ³΅ν•˜κ³ , μ‚¬μš©μžλŠ” μ˜ν™”λ₯Ό κ΅¬λ§€ν•˜κ³  리뷰λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Side Project Repository μ‚΄νŽ΄λ³΄κΈ°β†—


πŸ–₯️ main

πŸ–₯️ sign up

πŸ–₯️ sign in

πŸ–₯️ my

πŸ–₯️ movie

πŸ–₯️ review

πŸ–₯️ payment

πŸ“ log

2022-05-17

My > ꡬ맀내역
  • API
    • Backend(Spring Boot) API ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. proxy κ΄€λ ¨ μ΄μŠˆκ°€ λ°œμƒν•˜μ—¬, proxyλ₯Ό μ„€μ • μž‘μ—…μ„ μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
    • DB 연동 ν›„ Backend와 API ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€. API ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•œ 뢀뢄은 νšŒμ›κ°€μž…, 둜그인, νšŒμ›νƒˆν‡΄, λ‹‰λ„€μž„ μˆ˜μ •, 리뷰 μž‘μ„±, 리뷰 μˆ˜μ •, 리뷰 μ‚­μ œ, μ˜ν™” ꡬ맀, μ˜ν™” ꡬ맀 λ‚΄μ—­ μƒμ„Έμž…λ‹ˆλ‹€.

2022-05-16

My > λ‚΄ 리뷰

2022-05-15

My

2022-05-14

Profile
  • input에 value 을 κ°€μ Έμ˜€κΈ°λŠ” ν–ˆλŠ”λ° μˆ˜μ •μ΄ λΆˆκ°€λŠ₯ν•œ μ΄μŠˆκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ™œ μˆ˜μ •μ΄ λΆˆκ°€λŠ₯ν•œ 지 μ°Ύμ•„λ³΄λ‹ˆ, onChange 이벀트 ν•¨μˆ˜κ°€ μ—†μœΌλ©΄ readOnlyμ²˜λ¦¬κ°€ 되기 λ•Œλ¬Έμ΄μ—ˆμŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•œ ν•΄κ²° 방법은 propsλ₯Ό state에 λ‹΄μ•„μ„œ μˆ˜μ •ν•˜κ³  value에 stateλ₯Ό λ„£μœΌλ©΄ λ©λ‹ˆλ‹€.

ReviewBoard
My
  • My > ꡬ맀내역 & λ‚΄ λ¦¬λ·°μ—μ„œμ˜ API 호좜 μž‘μ—…μ„ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. λ”λΆˆμ–΄ postman을 μ΄μš©ν•˜μ—¬ API ν…ŒμŠ€νŠΈλ₯Ό μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€.

2022-05-12

MovieOrder
  • mock date ν…ŒμŠ€νŠΈλ₯Ό μ™„λ£Œν–ˆμœΌλ©°, API ν…ŒμŠ€νŠΈλ₯Ό 진행 μ€‘μž…λ‹ˆλ‹€.

Join

const InputClass = `form-control ${InputHasError ? 'invalid' : ''}`;
const pwReEnterInputClass = pwReEnterInputHasError
? 'form-control invalid'
: 'from-control';
const InputClass = `form-control ${InputHasError ? 'invalid' : ''}`;
  • νšŒμ›κ°€μž… νŽ˜μ΄μ§€μ—μ„œ ν•΄λ‹Ή μ½”λ“œμ™€ λΉ„μŠ·ν•œ μ½”λ“œλ“€μ΄ λ§Žμ€λ°μš”. ν•΄λ‹Ή λΆ€λΆ„μ˜ μ½”λ“œλ₯Ό 쀄일 수 μžˆμ„ 것 같은 λŠλ‚Œμ μΈ λŠλ‚Œμ΄ λ“€μ—ˆμŠ΅λ‹ˆλ‹€. πŸ€” κ·Έλž˜μ„œ ν•΄λ‹Ή 뢀뢄을 μ›Ήμ„œν•‘ν–ˆμŠ΅λ‹ˆλ‹€.
  • Nesting templates을 μ΄μš©ν•˜μ—¬ μ½”λ“œλ₯Ό 쀄일 수 μžˆλŠ” 방법이 μžˆμ–΄μ„œ 이λ₯Ό μ μš©ν–ˆμŠ΅λ‹ˆλ‹€. πŸŽ‰
    μ‚Όν•­ μ—°μ‚°μžλ₯Ό 잘λͺ» μ‚¬μš©ν•˜μ—¬ parsing errorκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. ν•œ λ²ˆμ”© μ‚Όν•­ μ—°μ‚°μžλ‘œ μ‚½μ§ˆν•˜λ„€μš”. 🀧

API

  • 인증 κ΄€λ ¨ν•˜μ—¬ mock apiκ°€ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή 뢀뢄은 지인 μ°¬μŠ€πŸ˜‡λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.
    • mock api λ¬Έμ œκ°€ ν•΄κ²°λ˜μ–΄, 둜그인 등등을 ν…ŒμŠ€νŠΈν•  수 μžˆμ–΄ μž‘μ—…μ΄ κ°€λŠ₯ν–ˆμŠ΅λ‹ˆλ‹€.

2022-05-11

Join

  • νšŒμ› κ°€μž… νŽ˜μ΄μ§€μ—μ„œ μœ νš¨μ„± 관리 μž‘μ—…μ„ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. νšŒμ› κ°€μž… νŽ˜μ΄μ§€μ˜ μž…λ ₯창에 값을 λ―Έμž…λ ₯ν•˜λ©΄ 등둝 λ²„νŠΌμ΄ λΉ„ν™œμ„±ν™”λ˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.
const {
value: inputEmail,
...
} = useInput((value) => value.includes("@" && "."));
} = useInput((value) => value.includes("@") && value.includes("."));
...
} = useInput((value) => value.includes("@" && "."));
  • μœ νš¨μ„± 관리 뢀뢄을 μž‘μ—…ν•˜λ‹€κ°€, κ°‘μžκΈ° &&을 μ΄μš©ν•΄ μ½”λ“œλ₯Ό 쀄여도 μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”μ§€ κΆκΈˆν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. πŸ€”
  • κ·Έλž˜μ„œ ν•œλ²ˆ ν•΄λ³΄μ•˜λŠ”λ°μš”. μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. πŸ‘ includes() λ©”μ„œλ“œ 쀑볡을 ν”Όν•˜κΈ° μœ„ν•΄ ν•΄λ‹Ή μ½”λ“œλ‘œ μˆ˜μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Login
  • API ν…ŒμŠ€νŠΈλ₯Ό 진행 쀑이며, style μž‘μ—…μ„ μ™„λ£Œ ν–ˆμŠ΅λ‹ˆλ‹€. πŸ₯³

2022-05-10

Main

ReviewPost

  • 리뷰 등둝 μ‹œ, κ²½μš°μ— λ”°λ₯Έ κ²½κ³  문ꡬλ₯Ό 좜λ ₯ν•˜κ³  μž‘μ„±ν•΄μ•Ό ν•˜λŠ” μ˜μ—­μ„ ν‘œμ‹œν•˜κ²Œλ” ν–ˆμŠ΅λ‹ˆλ‹€.
MovieLog 2
MovieLog 3

제λͺ©κ³Ό λ‚΄μš©μ— 1κΈ€μž 미만 μž‘μ„±ν•œ 경우

제λͺ©μ— 1κΈ€μž 미만 μž‘μ„±ν•œ 경우

λ‚΄μš©μ— 1κΈ€μž 미만 μž‘μ„±ν•œ 경우

2022-05-09

MovieDetail
  • API ν…ŒμŠ€νŠΈλ₯Ό postman을 μ΄μš©ν•˜μ—¬ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. postman도 μ΄λ²ˆμ— ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ©΄μ„œ 처음 μ‚¬μš©ν•΄λ΄€λŠ”λ°μš”. 써본 μ†Œκ°μ€ μ™„μ „ μ‹ κΈ°λ°©κΈ°
  • μΆ”κ°€λ‘œ λ””μžμΈμ΄ ν•„μš”ν•œ 뢀뢄이 μžˆμ–΄μ„œ figma둜 λ§ˆλ¬΄λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. λ””μžμΈ_μ§„μ§œ_μ§„μ§œ_끝.jpg

Troubleshooting

const [movieData, setMovieData] = useState([]);
const params = useParams();
const movieIndex = params.no;
const movie = movieData.find((movie) => movie.no === movieIndex);
const movieIndex = params.no;
const movie = movieData.find((movie) => movie.no === movieIndex);
  • movie.no == movieIndex 은 μ •μƒμ μœΌλ‘œ ν™”λ©΄ 좜λ ₯λ˜λ‚˜, movie.no === movieIndex 으둜 λ³€κ²½ μ‹œ μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
    • λŠμŠ¨ν•œ λΉ„κ΅μ—μ„œλŠ” μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— params.no μ½”λ“œμ™€ 연관이 μžˆλ‹€κ³  νŒλ‹¨μ΄ λΌμ„œ, 이에 κ΄€ν•΄ μ›Ήμ„œν•‘μ„ ν–ˆμŠ΅λ‹ˆλ‹€. πŸ€”
  • λ‹€λ₯Έ νƒ€μž…μ˜ 값을 숫자둜 λ°”κΎΈμ–΄μ£ΌλŠ” Number() ν•¨μˆ˜λ₯Ό params.no에 μ‚¬μš©ν•΄μ„œ μ—„κ²©ν•œ λΉ„κ΅μ—μ„œλ„ μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. πŸ‘

ReviewPost

MovieLog 0
MovieLog 1
  • 메인 νŽ˜μ΄μ§€ > μ˜ν™” 상세 νŽ˜μ΄μ§€ > 리뷰 νŽ˜μ΄μ§€ 경둜 μž‘μ—…μ„ μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • μ˜ν™” 상세 νŽ˜μ΄μ§€ > 리뷰 νŽ˜μ΄μ§€ 이동 μ‹œ, 리뷰 νŽ˜μ΄μ§€μ— μ˜ν™” 제λͺ©μ„ μžλ™ μž…λ ₯을 μ‹œν‚€κ³  μ‚¬μš©μžλŠ” 이λ₯Ό μˆ˜μ • λΆˆκ°€λŠ₯ν•˜λ„λ‘ μž‘μ—…ν–ˆμŠ΅λ‹ˆλ‹€.
  • 1κΈ€μž 이상 λ―Έμž…λ ₯ μ‹œ, κ²½κ³  문ꡬλ₯Ό 좜λ ₯ν•˜κ³  κ²Œμ‹œλ¬Ό 등둝 λΆˆκ°€λŠ₯ν•˜κ²Œ ν–ˆμŠ΅λ‹ˆλ‹€.
  • 리뷰 등둝을 μ„±κ³΅ν•˜λ©΄ useNavigate을 μ΄μš©ν•˜μ—¬ λͺ©λ‘μœΌλ‘œ μ΄λ™ν•˜κ²Œ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

2022-05-08

  • 메인 νŽ˜μ΄μ§€μ—μ„œ μ˜ν™” μ•„μ΄ν…œ 클릭 μ‹œ, 상세 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€. router@6으둜 값을 μ „λ‹¬ν•˜λŠ” λΆ€λΆ„μ—μ„œ ν—€λ§ΈμŠ΅λ‹ˆλ‹€. 🀧

2022-05-07

  • routerλŠ” 처음 μ‚¬μš©ν•΄λ΄μ„œ 6μΌμ—λŠ” μ‚¬μš© 방법을 읡히고, 7μΌμ—λŠ” router@6을 ν”„λ‘œμ νŠΈμ— μ μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

2022-05-05

  • JSON νŠΉμ • 문자λ₯Ό μ œκ±°ν•˜κΈ° μœ„ν•΄ μ •κ·œμ‹ μ‚¬μš©μ΄ ν•„μš”ν•˜μ—¬ κ΄€λ ¨ λ¬Έμ„œλ₯Ό μ°Ύκ³  μ μš©ν–ˆμŠ΅λ‹ˆλ‹€.

2022-05-04

Main
  • JSON 데이터λ₯Ό 좜λ ₯ ν…ŒμŠ€νŠΈν–ˆμŠ΅λ‹ˆλ‹€.
    • mock dataλ₯Ό μƒμ„±ν•˜μ—¬ JSON으둜 λ³€ν™˜ ν›„ map() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 좜λ ₯ ν…ŒμŠ€νŠΈλ₯Ό μ™„λ£Œν•˜μ˜€μŠ΅λ‹ˆλ‹€.
.main {
display: grid;
grid-template-columns: repeat(6, 184px);
flex-flow: column;
inline-size: 1104px;
margin: 0 auto;
margin-top: 30px;
}
grid-template-columns: repeat(6, 184px);
}
  • 메인 ν™”λ©΄μ˜ λ ˆμ΄μ•„μ›ƒμ€ CSS의 gridλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.
  • flexλŠ” grid에 λΉ„ν•΄ 많이 μ‚¬μš©ν•΄λ³΄μ•˜λŠ”λ°, ν•™μŠ΅ 외에 gridλ₯Ό ν”„λ‘œμ νŠΈμ— μ μš©ν•œ 건 μ΄λ²ˆμ— μ²˜μŒμ΄μ—ˆλŠ”λ°μš”. κ·Έλž˜μ„œ κ·ΈλŸ°μ§€ μ μš©ν•˜λŠ” 데 μ‹œκ°„μ΄ 쒀…? μ†Œμš”λμŠ΅λ‹ˆλ‹€. CSSλŠ” μ•ˆλ˜λ©΄ 세상 λ‹΅λ‹΅ν•˜κ² λ‹€κ°€λ„ μ›ν•˜λŠ” 데둜 좜λ ₯되면 κΈ°λΆ„ 졜고
Header
  • headerμ—λŠ” grid와 flexλ₯Ό μ‚¬μš©ν•˜κ³ , μ‚¬μš©ν•΄λ³΄κ³  μ‹Άμ—ˆλ˜ CSS hover 쀑 ν•˜λ‚˜λ₯Ό μ μš©ν–ˆμŠ΅λ‹ˆλ‹€.

Β© 2024

Park Gadan

33Β°06'56.2"-38Β°34'03.5"