2021-03-02(Tue)

ν•­λͺ©

λ‚΄μš©

ν•™μŠ΅ λ‚ μ§œ

2021-03-02(ν™”)

ν•™μŠ΅ μ‹œκ°„

11:00~24:00

ν•™μŠ΅ λ²”μœ„ 및 주제

ActiveJob

ν•™μŠ΅ λͺ©ν‘œ

Tournament operation λͺ¨λ“ˆμ„ μ™„μ„±ν•œλ‹€.

λ™λ£Œ ν•™μŠ΅ 방법

슀크럼 ν›„ eunhkimλ‹˜κ³Ό νŽ˜μ–΄μ½”λ”©ν•¨

상세 ν•™μŠ΅ λ‚΄μš©

PR λ¦¬λ·°ν•˜κ³ , PR λ‚ λ¦¬λŠ” ν•˜λ£¨μ˜€λ‹€.

μ—λŸ¬ 메세지λ₯Ό νŒŒμ‹±ν•˜λŠ” κ³Όμ •μ—μ„œ ruby, railsμ—μ„œμ˜ μ—λŸ¬ 객체가 raise λ˜λŠ” 방식을 μ’€ 더 이해할 수 μžˆμ—ˆλ‹€.

μ•„λž˜λŠ” error_messageλ₯Ό μΆ”μΆœν•΄λ‚΄κΈ° μœ„ν•œ κΈ΄-체이닝 κ³Όμ •

rescue ActiveRecord::RecordInvalid => e
      key =  e.record.errors.attribute_names.first
      error_message = e.record.errors.messages[key].first
      return render_error("INVALID TOURNAMENT", error_message, 400)

μ•„λž˜λŠ” λ‚΄κ°€ λ‚ λ¦° PR λ‚΄μš©μ΄λ‹€. 80개의 컀밋, 737쀄

-----------------

ν† λ„ˆλ¨ΌνŠΈ μƒμ„±ν•˜κΈ° νŽ˜μ΄μ§€λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. api/tounaments/new URL둜 μ ‘κ·Όν•˜μ‹œλ©΄ 확인 κ°€λŠ₯ν•˜μ‹­λ‹ˆλ‹€!

  • μƒν’ˆμ΄ μ—†λ‹€λ©΄ nil이 ν—ˆμš©λ©λ‹ˆλ‹€.

  • 보상 타이틀이 μ—†λ‹€λ©΄ default 타이틀이 μ μš©λ©λ‹ˆλ‹€.

κ΅¬ν˜„λ°©λ²•

1. tournament_spec

ν† λ„ˆλ¨ΌνŠΈ μƒμ„±μ‹œ μž…λ ₯λ˜λŠ” 값이 invalidν•œ 쑰건듀을 ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€.

  1. rails db:envrionment:set RAILS_ENV=test λͺ…λ Ήμ–΄λ‘œ test λͺ¨λ“œλ‘œ μ „ν™˜

  2. rspec spec/models/tournament_spec.rb λͺ…λ Ήμ–΄λ‘œ ν…ŒμŠ€νŠΈ μ‹€ν–‰

ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³  이λ₯Ό 톡과할 수 μžˆλŠ” λ©”μ„œλ“œλ₯Ό μž‘μ„±ν•˜λŠ” μ‹μœΌλ‘œ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. 빨리 μ—λŸ¬λ₯Ό ν™•μΈν•˜κ³  κ³ μΉ  수 μžˆμ–΄μ„œ μ’‹λ„€μš” :)

2. tournament.rb

create_by λ©”μ„œλ“œλ‘œ μš”μ²­μ„ νŒŒμ‹±ν•˜μ—¬ tournament λ ˆμ½”λ“œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. 이 λ•Œ validation을 톡해 μœ νš¨ν•œ 값인지 ν™•μΈν•©λ‹ˆλ‹€.

3. tournament_create_view

ν† λ„ˆλ¨ΌνŠΈ 생성폼을 λ Œλ”λ§ν•©λ‹ˆλ‹€. 참고둜 μ‚¬νŒŒλ¦¬μ—μ„œλŠ” ν† λ„ˆλ¨ΌνŠΈ μ‹œμž‘μΌμ΄ μΊ˜λ¦°λ” 폼으둜 λ‚˜νƒ€λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€λ§Œ web_admin, web_owner만 μ“°λŠ” νŽ˜μ΄μ§€μΈ 만큼 큰 μ΄μŠˆμ—†λ‹€κ³  νŒλ‹¨ν•˜μ—¬ μˆ˜μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

νŠΉμ΄μ‚¬ν•­

  • ν•΄λ‹Ή νŽ˜μ΄μ§€λŠ” current_user의 position이 web_owner, web_admin일 λ•Œλ§Œ μ§„μž…κ°€λŠ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŠ” μΆ”ν›„ tournament_create_view에 μ§„μž…ν•˜λŠ” λ²„νŠΌμ„ μ‚½μž…ν•  μ˜ˆμ •μΈ, admin νŽ˜μ΄μ§€λ₯Ό μž‘μ—…ν•  λ•Œ ν•¨κ»˜ μ²˜λ¦¬ν•  μ˜ˆμ •μž…λ‹ˆλ‹€~!

  • 넀이버 μ›¨μΌμ—μ„œλŠ” ν•΄λ‹Ή νŽ˜μ΄μ§€κ°€ μ •μƒμž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€! replaceAll이 μž‘λ™ν•˜μ§€ μ•ŠλŠ” λΈŒλΌμš°μ €(IE, μ‚Όμ„± 인터넷.. λ“±) 쀑 ν•˜λ‚˜μΈλ“― ν•΄μš”. 평가에 μ“°μ΄λŠ” 크둬, νŒŒμ΄μ–΄ν­μŠ€, μ‚¬νŒŒλ¦¬ 쀑 ν•˜λ‚˜λ₯Ό μ¨μ£Όμ‹œκΈΈ λ°”λžλ‹ˆλ‹€.

  • rspec으둜 controller, request ν…ŒμŠ€νŠΈλ„ μ‹œλ„ν•΄λ³΄λ €ν–ˆμœΌλ‚˜ 잘 λ˜μ§€ μ•Šλ„€μš”γ… γ…  μ•Œκ²Œ λ˜μ‹œλŠ” λΆ„ κ³„μ‹œλ©΄ μ•Œλ €μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€ :)

ν•™μŠ΅ λ‚΄μš©μ— λŒ€ν•œ 개인적인 총평

λΈŒλΌμš°μ €λ³„λ‘œ λ™μž‘μ΄ λ‹€λ₯΄λ‹€λŠ” 것을 μ—¬μ‹€νžˆ λŠλ‚„ 수 μžˆμ—ˆλ‹€. μ§€κΈˆκΉŒμ§€λŠ” λΈŒλΌμš°μ €λ³„λ‘œ CSSκ°€ 달리 μ μš©λ˜λŠ” μˆ˜μ€€μ˜ 이슈만 κ²ͺμ—ˆλŠ”λ°, replaceAll이 μ›¨μΌμ—μ„œ μ•„μ˜ˆ μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 λͺ¨λ₯΄κ³  λ„ˆλ¬΄ μ˜€λž«λ™μ•ˆ μ‹œκ°„ 썼닀.

rspec으둜 controller, request ν…ŒμŠ€νŠΈλ₯Ό μ‹œλ„ν•˜λ €ν–ˆμœΌλ‚˜ 잘 λ˜μ§€ μ•Šμ•„μ„œ 아쉽닀. 곡식 μ‚¬μ΄νŠΈλ‚˜ μŠ€νƒμ˜€λ²„ν”Œλ‘œμš°λ₯Ό 톡해 λͺ…μ‹œλœ λ‚΄μš©λŒ€λ‘œ μš”μ²­ν—€λ”λ₯Ό λ„£μ—ˆλŠ”λ° μ™œ 잘 μ•ˆλ˜λŠ” κ²ƒμΌκΉŒ 흠.. λ‚΄ μ˜ˆμƒμ— 컨트둀러 객체의 경둜λ₯Ό Rspecμ—μ„œ 참쑰해내지 λͺ»ν•˜λŠ” 것 같은데, μ§€κΈˆ λ‹Ήμž₯ μ²˜λ¦¬ν•  μ΄μŠˆλŠ” μ•„λ‹ˆλΌκ³  νŒλ‹¨ν–ˆλ‹€. λ‹€μŒμ— 방법을 μ•Œμ•„λ΄μ•Όμ§€ :)

λ‹€μŒ ν•™μŠ΅ κ³„νš

  • Tournament operation λͺ¨λ“ˆ

Last updated