Skip to content

πŸ†λˆ„κ΅¬λ‚˜ λ§Œλ“€κ³  μ°Έμ—¬ν•  수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜ λŒ€νšŒ μ„œλΉ„μŠ€

Notifications You must be signed in to change notification settings

boostcampwm2023/web12-algo-with-me

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hits



πŸ†web12-algo-with-me

Algo With MeλŠ” λͺ¨λ‘κ°€ μ°Έμ—¬ν•˜κ³  λ§Œλ“€ 수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜ λŒ€νšŒ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

μ£Όμš” κΈ°λŠ₯은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • μ‚¬μš©μžκ°€ μ œμΆœν•œ μ½”λ“œλ₯Ό 채점할 수 μžˆμŠ΅λ‹ˆλ‹€
  • μ‹€μ‹œκ°„μœΌλ‘œ λŒ€νšŒμ— μ°Έμ—¬ν•œ κ²½μŸμžλ“€μ˜ μˆœμœ„λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€

μ•Œκ³ μœ—λ―Έ μ²΄ν—˜ν•˜κΈ°

ν”„λ‘œμ νŠΈ λ¬Έμ„œ λ°”λ‘œκ°€κΈ°



πŸ“„λͺ©μ°¨



🎬데λͺ¨ μ˜μƒ

_.mp4

유튜브 λ°”λ‘œκ°€κΈ°



πŸš€Algo With Me κΈ°λŠ₯ μ„€λͺ…

μ½”λ“œ μ±„μ ν•˜κΈ°

right-wrong

λŒ€νšŒ νŽ˜μ΄μ§€λŠ”

  • 문제 ν™”λ©΄
  • μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλŠ” 에디터
  • 제좜 κ²°κ³Ό ν™”λ©΄

으둜 κ΅¬μ„±λ©λ‹ˆλ‹€.
λ‚˜λ§Œμ˜ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μΆ”κ°€ν•˜κ³  "ν…ŒμŠ€νŠΈ μ‹€ν–‰"λ²„νŠΌμ„ 눌러 μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
"μ œμΆœν•˜κΈ°" λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ νžˆλ“  ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ“€μ˜ μ •λ‹΅ 여뢀와 μ‹œκ°„, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ λ°›μ•„λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€μ‹œ λ³΄λ“œ 확인

dashboard

λŒ€νšŒ μ°Έμ—¬μž μˆœμœ„ 100μœ„κΉŒμ§€μ™€, λ‚˜μ˜ μˆœμœ„λ₯Ό λŒ€νšŒ 진행 쀑 μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
λŒ€νšŒ μ°Έμ—¬μžκ°€ μ•„λ‹ˆλΌλ„ λŒ€μ‹œλ³΄λ“œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έ μ™Έ

메인 νŽ˜μ΄μ§€

메인 νŽ˜μ΄μ§€

algo-with-me λ©”μΈνŽ˜μ΄μ§€μž…λ‹ˆλ‹€. ν˜„μž¬κΉŒμ§€μ˜ λͺ¨λ“  λŒ€νšŒλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€νšŒ 생성

λŒ€νšŒ 생성

λŒ€νšŒ 생성 νŽ˜μ΄μ§€ μž…λ‹ˆλ‹€. μ΅œλŒ€ 참여인원 섀정이 κ°€λŠ₯ν•˜κ³  λŒ€νšŒ μ‹œκ°„μ„ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. λ“±λ‘λœ 문제λ₯Ό 선택해 λŒ€νšŒμ— ν¬ν•¨μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€νšŒ 상세 νŽ˜μ΄μ§€

λŒ€νšŒ 상세 νŽ˜μ΄μ§€

λŒ€νšŒ 상세 νŽ˜μ΄μ§€μ—μ„œλŠ” λŒ€νšŒμ˜ μ‹œμž‘, μ’…λ£Œ μ‹œκ°„, μ°Έκ°€μž λ“±μ˜ 정보λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€νšŒ μ‹œμž‘ μ‹œκ°„μ΄ 되면 λŒ€νšŒ μž…μž₯ λ²„νŠΌκ³Ό λŒ€μ‹œλ³΄λ“œ 보기 λ²„νŠΌμ΄ ν™œμ„±ν™”λ©λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μΆ”κ°€

ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μΆ”κ°€

μ œμΆœν•˜κΈ° μ „ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μΆ”κ°€ν•˜κ³  λ‚΄ μ½”λ“œλ₯Ό μ‹€ν–‰ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.



πŸ₯šλ¬Έμ œ ν•΄κ²° κ³Όμ •: λ°°κ²½

저희 νŒ€μ—κ²Œ 주어진 μžμ›μ€ 2μ½”μ–΄, 8GB RAM 넀이버 ν΄λΌμš°λ“œ μΈμŠ€ν„΄μŠ€ ν•˜λ‚˜μ˜€μŠ΅λ‹ˆλ‹€.
ν•˜μ§€λ§Œ λΆ€μŠ€νŠΈμΊ ν”„ 전원(200λͺ…)이 μ°Έμ—¬ν•  수 μžˆλŠ” μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ 가진 μžμ›μ„ μ–΄λ–»κ²Œ ν•΄μ•Ό μ΅œλŒ€ν•œμœΌλ‘œ ν™œμš©ν•  수 μžˆμ„κΉŒ λΌλŠ” λ„μ „κ³Όμ œλ₯Ό λͺ©ν‘œλ‘œ μ„€μ •ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


🐣문제 ν•΄κ²° κ³Όμ •: μ‹œλ„ν•œ 것듀

BE) μ•„ν‚€ν…μ²˜ 섀계 μ΅œμ ν™”

μ–΄λ–»κ²Œ λ§Žμ€ 채점 μš”μ²­μ΄ λ“€μ–΄μ˜€λ”λΌλ„ λˆ„λ½ 없이 λͺ¨λ‘ 채점할 수 μžˆμ„κΉŒ?
μ–΄λ–€ κΈ°μˆ μ„ μ‚¬μš©ν•΄μ•Ό 우리 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데에 μœ λ¦¬ν• κΉŒ?

πŸ‘‰ BE μ•„ν‚€ν…μ²˜ 섀계 및 DB ERD 섀계
πŸ‘‰ 기술 μŠ€νƒ μ„ μ •

BE) 채점 둜직

λ³‘λ ¬μ μœΌλ‘œ μ±„μ ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ꡬ쑰λ₯Ό μ§œμ•Ό ν• κΉŒ?
λ³΄μ•ˆ μœ„ν˜‘ 없이 μ•ˆμ „ν•˜κ²Œ 채점할 수 μžˆμ„κΉŒ?

πŸ‘‰ μ±„μ μ„œλ²„, λ„μ»€μ„œλ²„ 싀행흐름
πŸ‘‰ BE μ±„μ μ„œλ²„ μ•„ν‚€ν…μ²˜ κ΄€λ ¨ 회의

BE) λŒ€μ‹œλ³΄λ“œ

폴링, μ›Ή μ†ŒμΌ“, SSE 무엇을 μ‚¬μš©ν•΄μ•Ό ν• κΉŒ?
DB, λ©”λͺ¨λ¦¬ μžμ›μ„ μ–΄λ–»κ²Œ 효율적으둜 ν™œμš©ν•  수 μžˆμ„κΉŒ?
μ–΄λ–»κ²Œ ν•΄μ•Ό μ„œλ²„ 뢀담을 μ€„μ΄λ©΄μ„œλ„ μ‹€μ‹œκ°„μœΌλ‘œ 데이터λ₯Ό 전달할 수 μžˆμ„κΉŒ?

πŸ‘‰ λŒ€μ‹œλ³΄λ“œ 데이터 redis μ €μž₯ 방식, ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 보낼 양식, db μ €μž₯ 방식
πŸ‘‰ λŒ€μ‹œλ³΄λ“œ μ†ŒμΌ“ μž¬μ‚¬μš© κ΄€λ ¨ 회의

FE) ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ JS μ½”λ“œλ₯Ό ν…ŒμŠ€νŠΈν•  수 μžˆμ„κΉŒ?

μ–΄λ–»κ²Œ ν•΄μ•Ό μ„œλ²„λ‘œ κ°€λŠ” μš”μ²­μ„ μ€„μ—¬μ„œ λ¦¬μ†ŒμŠ€λ₯Ό μ•„λ‚„ 수 μžˆμ„κΉŒ?
채점은 λͺ°λΌλ„ ν…ŒμŠ€νŠΈ μ •λ„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λŒλ €λ„ λ˜μ§€ μ•Šμ„κΉŒ?
Eval을 μ‚¬μš©ν•˜λ©΄ 될 것 κ°™κΈ΄ ν•œλ°, Eval을 써도 될까?

πŸ‘‰ eval을 μ‚¬μš©ν•΄μ„  μ•ˆ λ˜λŠ” μ΄μœ μ™€ λŒ€μ•ˆλ“€

FE) Eval은 μ•ˆμ „ν• κΉŒ? μ–΄λ–»κ²Œ ν•΄μ•Ό μ•ˆμ „ν•΄μ§ˆκΉŒ

Eval을 μ‚¬μš©ν•˜λ©΄ λ¬΄ν•œ 루프λ₯Ό λ§Œλ‚¬μ„ λ•Œ 메인 μŠ€λ ˆλ“œκ°€ λ©ˆμΆ”λŠ” λ¬Έμ œκ°€ 생긴닀.
μ›Ή μ›Œμ»€λ₯Ό μ΄μš©ν•΄μ„œ μŠ€λ ˆλ“œλ₯Ό 뢄리해 보자

πŸ‘‰ μ›Ή μ›Œμ»€λž€ 무엇인가? & μ•Œκ³ μœ—λ―Έμ—μ„œμ˜ ν™œμš© λ°©μ•ˆ

Eval은 μ–Έμ œ μœ„ν—˜ν• κΉŒ?
Eval은 μ‚¬μ΄λ“œ μ΄νŽ™νŠΈκ°€ λ°œμƒν•  λ•Œ μœ„ν—˜ν•΄
μ‚¬μ΄λ“œ μ΄νŽ™νŠΈκ°€ 일어날 수 μ—†λŠ” μˆœμˆ˜ν•œ JS 엔진을 μ˜¬λ €μ„œ μ‚¬μš©ν•΄ 보자

πŸ‘‰ μ›Ή μ–΄μ…ˆλΈ”λ¦¬λž€ 무엇인가? & μ•Œκ³ μœ—λ―Έμ—μ„œμ˜ ν™œμš© λ°©μ•ˆ

FE) QuickJSλŠ” μ—„λ°€ν•œκ°€?

QuickJSλΌλŠ” JS 엔진을 μ‚¬μš©ν•˜λ©΄ 될 것 κ°™μ•„.
ν•˜μ§€λ§Œ 이게 정말 λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ κ³΅ν‰ν•˜κ²Œ λ™μž‘ν• κΉŒ?

πŸ‘‰ [검증] QuickJSλŠ” λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ λ™μΌν•œ μ„±λŠ₯을 보μž₯ν•  수 μžˆλŠ”κ°€?
πŸ‘‰ [검증] QuickJSλŠ” λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ λ™μΌν•œ Max Call Stack을 보μž₯ν•  수 μžˆλŠ”κ°€?

FE) κ³΅μ •ν•œ ν™˜κ²½μ„ κ΅¬μ„±ν•˜κΈ° μœ„ν•΄μ„  μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ‹œκ°„μ„ 동기화해야 ν•œλ‹€

μ°Έμ—¬μžλ“€μ€ μ‹œν—˜μ΄ μ •ν™•ν•˜κ²Œ 같은 μ‹œκ°„μ— μ‹œμž‘ν•˜κ³  같은 μ‹œκ°„μ— λλ‚˜κΈ°λ₯Ό κΈ°λŒ€ν•œλ‹€.
이λ₯Ό μœ„ν•΄μ„œ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ‹œκ°„μ„ 동기화해야 ν•˜λŠ”λ°, μ–΄λ–»κ²Œ ν•  수 μžˆμ„κΉŒ?
μ„œλ²„ μžμ›μ΄ λ¬΄ν•œν•˜λ‹€λ©΄ 1μ΄ˆλ§ˆλ‹€ Http μš”μ²­μ„ 보내면 λ˜μ§€λ§Œ, μ„œλ²„ μžμ›μ€ ν•œμ •λ˜μ–΄ μžˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈμ˜ Date κ°μ²΄λ§ŒμœΌλ‘œλŠ” μ„œλ²„μ™€ μ‹œκ°„ 동기화할 수 μ—†μ„κΉŒ?

πŸ‘‰ Date λ‚΄μž₯ κ°μ²΄λŠ” λ―Ώμ„λ§Œν•œκ°€?

λΈŒλΌμš°μ €μ˜ Date λ‚΄μž₯ κ°μ²΄λ‘œλŠ” μ—„λ°€ν•œ μ‹œκ°„ 동기화가 λΆˆκ°€λŠ₯ν•΄
5초 κ°„κ²©μœΌλ‘œ μ‹œκ°„μ„ κ°±μ‹ ν•΄μ£ΌλŠ” μ •λ„λ‘œ μš”μ²­μ„ μ΅œμ†Œν™”ν•΄λ³Ό 수 μžˆμ„κΉŒ?
setInterval은 μ–Όλ§ˆλ‚˜ 믿을 수 μžˆμ„κΉŒ?

πŸ‘‰ setInterval은 λ©”μΈμŠ€λ ˆλ“œκ°€ 바빠도 μ •ν™•ν•˜κ²Œ λ™μž‘ν• κΉŒ?


πŸ“λ¬Έμ œ ν•΄κ²° κ³Όμ •: νŠΈλŸ¬λΈ” μŠˆνŒ…

BE) λŒ€μ‹œλ³΄λ“œ 데이터 관리λ₯Ό μœ„ν•œ Redis μ„€μΉ˜ κ³Όμ •μ—μ„œ κ²ͺ은 νŠΈλŸ¬λΈ”μŠˆνŒ…

λŒ€μ‹œλ³΄λ“œ 데이터 관리λ₯Ό μœ„ν•΄ Redisλ₯Ό μ„€μΉ˜ν•˜λ €κ³  ν–ˆλ‹€.
NestJSμ—μ„œ μ œκ³΅ν•˜λŠ” cache-module을 μ‚¬μš©ν–ˆλŠ”λ°, Redis에 νŠΉν™”λœ 자료ꡬ쑰λ₯Ό(e.g. SortedSet) μ œμ–΄ν•˜λŠ” λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  수 μ—†μ—ˆλ‹€.
redis-clientλ₯Ό μ„€μΉ˜ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν–ˆλ‹€.

πŸ‘‰ λŒ€μ‹œλ³΄λ“œ 데이터 관리λ₯Ό μœ„ν•œ Redis μ„€μΉ˜ κ³Όμ •μ—μ„œ κ²ͺ은 νŠΈλŸ¬λΈ”μŠˆνŒ…

BE) νŠΈλžœμž­μ…˜κ³Ό 락 κ΄€λ ¨ νŠΈλŸ¬λΈ”μŠˆνŒ…

일뢀 채점 κ²°κ³Όκ°€ λˆ„λ½λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€.
채점이 λ³‘λ ¬μ μœΌλ‘œ μ§„ν–‰λ˜μ–΄ API μ„œλ²„μ— μš”μ²­μ΄ 거의 λ™μ‹œμ— λ“€μ–΄μ™”κ³ , 경쟁 쑰건이 λ°œμƒν–ˆκΈ° λ•Œλ¬Έμ΄μ—ˆλ‹€.
νŠΈλžœμž­μ…˜μ„ κ±Έμ—ˆμ§€λ§Œ, λ¬Έμ œλŠ” ν•΄κ²°λ˜μ§€ μ•Šμ•˜κ³ , 락을 건 이후에야 μ œλŒ€λ‘œ λ™μž‘ν–ˆλ‹€.

πŸ‘‰ 도컀 μ„œλ²„ 개수 5개둜 늘린 이후 일뢀 채점 κ²°κ³Όκ°€ λˆ„λ½λ˜λŠ” 문제

BE) 도컀 κΆŒν•œ κ΄€λ ¨ νŠΈλŸ¬λΈ”μŠˆνŒ…

κΈ°μ‘΄μ—λŠ” root μ‚¬μš©μžλ‘œ λͺ¨λ“  μ„œλ²„λ₯Ό μš΄μ˜ν•˜κ³  μžˆμ—ˆλ‹€.
λ³΄μ•ˆμƒμ˜ 이유둜 μ½”λ“œ μ‹€ν–‰ μ„œλ²„μ˜ μœ μ € κΆŒν•œμ„ rootμ—μ„œ μΌλ°˜μ‚¬μš©μžλ‘œ λ°”κΎΈμ—ˆλŠ”λ°, κΆŒν•œμ΄ 쀄어듀어 파일 읽기 μ“°κΈ°κ°€ λ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€.
도컀 μœ μ € 섀정을 톡해 API μ„œλ²„μ™€ 채점 μ„œλ²„μ˜ κΆŒν•œμ„ 일반 μ‚¬μš©μžλ‘œ λ°”κΎΈμ–΄ 문제λ₯Ό ν•΄κ²°ν–ˆλ‹€.

πŸ‘‰ μ±„μ μ„œλ²„ 도컀 κΆŒν•œμœΌλ‘œ μΈν•œ 읽기/μ“°κΈ° λΆˆκ°€ 문제

FE) useEffect, 생λͺ…μ£ΌκΈ°λ₯Ό μ•Œκ³  μ“°μž

socket으둜 데이터λ₯Ό λ°›μ•„ λŒ€μ‹œλ³΄λ“œλ₯Ό λͺ¨λ‹¬λ‘œ λ³΄μ—¬μ€˜μ•Όμ§€
λͺ¨λ‹¬μ„ λ‹«κ³  λ‹€μ‹œ μ—΄λ©΄ 데이터가 μ •μƒμ μœΌλ‘œ μˆ˜μ‹ λ˜μ§€ μ•Šμ•„
νŽ˜μ΄μ§€μ—μ„œλŠ” 정상 μž‘λ™ν•˜λŠ”λ°, λͺ¨λ‹¬μ—μ„œλŠ” μ™œ μž‘λ™ν•˜μ§€ μ•Šμ„κΉŒ?

πŸ‘‰ [νŠΈλŸ¬λΈ” μŠˆνŒ…] useEffect, 생λͺ…μ£ΌκΈ°λ₯Ό μ•Œκ³  μ“°μž

FE) 싱글톀 νŒ¨ν„΄μ„ μ΄μš©ν•œ μ›Ήμ†ŒμΌ“ 닀쀑 μ—°κ²° μƒνƒœ ν•΄κ²°

톡신 μ˜€λ²„ν—€λ“œλ₯Ό 쀄이기 μœ„ν•΄ μ›Ή μ†ŒμΌ“μ„ μ‚¬μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€.
개발자 λ„κ΅¬λ‘œ μ›Ή μ†ŒμΌ“ 연결을 ν™•μΈν•˜λ‹ˆ 10개의 μ›Ή μ†ŒμΌ“μ΄ μ—°κ²°λ˜λŠ” 것을 ν™•μΈν–ˆλ‹€.
무엇이 문제고, μ–΄λ–»κ²Œ ν•΄κ²°ν•΄ λ‚˜κ°€μ•Όν• κΉŒ?

πŸ‘‰ [νŠΈλŸ¬λΈ” μŠˆνŒ…] 싱글톀 νŒ¨ν„΄μ„ μ΄μš©ν•œ μ›Ήμ†ŒμΌ“ 닀쀑 μ—°κ²° μƒνƒœ ν•΄κ²°

FE) λ°°ν¬ν•˜κ³  μƒˆλ‘œκ³ μΉ¨ν•˜λ©΄ 404νŽ˜μ΄μ§€κ°€ λ– μš”

Netlify에 μ›ΉνŽ˜μ΄μ§€λŠ” 배포λ₯Ό λ§ˆμ³€λ‹€.
ν•˜μ§€λ§Œ 메인 νŽ˜μ΄μ§€λ₯Ό μ œμ™Έν•œ λ‹€λ₯Έ νŽ˜μ΄μ§€μ—μ„œ μƒˆλ‘œκ³ μΉ¨μ„ ν•˜λ©΄ 404 νŽ˜μ΄μ§€κ°€ λ‚˜μ˜€λŠ” 문제λ₯Ό κ²ͺ게 λœλ‹€.
개발 ν™˜κ²½κ³Ό 배포 ν™˜κ²½μ€ 무엇이 달라 이런 λ¬Έμ œκ°€ μƒκ²Όμ„κΉŒ? μ–΄λ–»κ²Œ ν•΄κ²°ν•  수 μžˆμ„κΉŒ?

πŸ‘‰ [νŠΈλŸ¬λΈ” μŠˆνŒ…] λ°°ν¬ν•˜κ³  μƒˆλ‘œκ³ μΉ¨ν•˜λ©΄ 404νŽ˜μ΄μ§€κ°€ λ– μš”


πŸ—λ¬Έμ œ ν•΄κ²° κ³Όμ •: κ²°κ³Ό

BE) λΆ€ν•˜ ν…ŒμŠ€νŠΈ κ²°κ³Ό

JMeter둜 λΆ€ν•˜ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜μ—¬ λΆ€μŠ€νŠΈμΊ ν”„ μ „ 인원이 우리 μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•  수 μžˆμ„μ§€ μ•Œμ•„λ³΄μ•˜λ‹€.
200λͺ…이 λ™μ‹œμ— WebSocket을 톡해 λŒ€μ‹œλ³΄λ“œ 데이터λ₯Ό μ›ν™œν•˜κ²Œ 받을 수 μžˆμŒμ„ ν™•μΈν•˜μ˜€λ‹€.
그리고, 100λͺ…이 0~10초 κ· λ“±ν™•λ₯ λΆ„ν¬λ‘œ μ½”λ“œ 제좜 μš”μ²­μ„ λ³΄λƒˆμ„ λ•Œ, 채점을 μ›ν™œν•˜κ²Œ ν•  수 μžˆμŒμ„ ν™•μΈν–ˆλ‹€.

πŸ‘‰ λΆ€ν•˜ ν…ŒμŠ€νŠΈ μˆ˜ν–‰ 및 κ²°κ³Ό 정리



πŸ‘¨β€πŸ‘¨β€πŸ‘§β€πŸ‘§λ―Έλ‹ˆ 개발 μ„Έλ―Έλ‚˜

λ―Έλ‹ˆ 개발 μ„Έλ―Έλ‚˜ 5회

λ―Έλ‹ˆ 개발 μ„Έλ―Έλ‚˜λž€?

λ―Έλ‹ˆ 개발 μ„Έλ―Έλ‚˜λŠ” Web12 μ½”λ“œ μ‚¬ν”Όμ—”μŠ€νŒ€ λ‚΄λΆ€μ—μ„œ 곡유 λ¬Έν™”λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ μ‹œμž‘λœ μ†Œκ·œλͺ¨ μ„Έλ―Έλ‚˜μž…λ‹ˆλ‹€. 5 ~ 10λΆ„ λ™μ•ˆ 자유주제 ν˜Ήμ€ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ κ³΅μœ ν•˜κ³  싢은 λ‚΄μš©μ„ λ°œν‘œν•˜λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€. λ°œν‘œμžλŠ” νŒ€μ›λ“€λ‘œ κ΅¬μ„±λ˜μ§€λ§Œ, λ‹€λ₯Έ 캠퍼듀도 자유둭게 λ“£κ³  μ§ˆλ¬Έν•  수 μžˆλ„λ‘ μ™ΈλΆ€μ μœΌλ‘œ κ³΅κ°œν•˜μ˜€μŠ΅λ‹ˆλ‹€. 2023/11/08 첫 μ„Έλ―Έλ‚˜λ₯Ό μ‹œμž‘μœΌλ‘œ 5회 μ§„ν–‰λ˜μ—ˆμœΌλ©°, λΆ€μŠ€νŠΈμΊ ν”„κ°€ λλ‚˜κ³ λ„ μ΄μ–΄κ°ˆ μ˜ˆμ •μž…λ‹ˆλ‹€.

πŸ‘‰ 전체 보기

Best Pick

썸넀일 ν•œ 쀄 μ†Œκ°œ 링크
κ·ΈλŒ€λ“€ μ–΄λ–»κ²Œ κ°œλ°œν•  것인가? μ œκ°€ 개발자의 길을 걷게 λ˜λ©΄μ„œ 슀슀둜 가지고 있던 개발자의 μ •μ˜κ°€ μ–΄λ–»κ²Œ λ°”λ€Œμ—ˆλŠ”μ§€ νšŒκ³ ν•˜κ³  μ§ˆλ¬Έμ„ λ˜μ§‘λ‹ˆλ‹€ κ·ΈλŒ€λ“€ μ–΄λ–»κ²Œ κ°œλ°œν•  것인가?
WebSocket을 μ„ νƒν•œ 이유 μ–‘λ°©ν–₯ ν†΅μ‹ λ“€μ˜ 기법에 λŒ€ν•΄μ„œ κ°„λž΅νžˆ μ•Œμ•„λ³΄κ³ , μ™œ μš°λ¦¬κ°€ webSocket을 μ„ νƒν–ˆλŠ”μ§€ κ³΅μœ ν•©λ‹ˆλ‹€. WebSocket을 μ„ νƒν•œ 이유
클린 μ½”λ“œ, 주석 클린 μ½”λ“œλ₯Ό μ™œ 지ν–₯ν•΄μ•Ό ν•˜λŠ”μ§€, 클린 μ½”λ“œμ™€ μ£Όμ„μ˜ μƒκ΄€κ΄€κ³„λŠ” 무엇인지에 λŒ€ν•΄ μ„€λͺ…ν•©λ‹ˆλ‹€. 클린 μ½”λ“œ, 주석
Why MSA? MicroService Architectureκ°€ 무엇인지, μ–΄λ–€ μž₯점이 μžˆλŠ”μ§€, μ–Έμ œ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. Why MSA?
λŒ€μ‹œλ³΄λ“œ μ–΄λ–»κ²Œ κ΅¬ν˜„ν•˜μ§€ λŒ€μ‹œλ³΄λ“œ μ‹€μ‹œκ°„ 갱신을 μœ„ν•΄ WebSocketκ³Ό Redisλ₯Ό λ„μž…ν•˜μ—¬ μ‚¬μš©ν•˜κ²Œ 된 과정을 μ†Œκ°œν•©λ‹ˆλ‹€. λŒ€μ‹œλ³΄λ“œ μ–΄λ–»κ²Œ κ΅¬ν˜„ν•˜μ§€



πŸ‘·μ•„ν‚€ν…μ²˜

캑처 μ•„ν‚€ν…μ²˜



πŸ› κΈ°μˆ μŠ€νƒ

Language

TypeScript JavaScript

BE Skill

NestJS Socket.io Postgres Redis Docker Express.js NodeJS Nginx TypeORM

FE Skill

React Socket.io PandaCSS

Etc

Netlify Notion Slack Figma GitHub Actions



πŸ—Ίλ””μžμΈ 및 기획



πŸŽΈκΈ°νƒ€ λ“±λ“±



πŸ™‰νŒ€μ› μ†Œκ°œ

FE FE FE BE BE

J079 μ–‘κΈ°μ‘°
(dev2820)

J111 이우찬
(dmdmdkdkr)

J140 μ •μœ μ„
(mahwin)

J026 κΉ€μš©ν›„
(rladydgn)

J109 이예찬
(yechan2468)

About

πŸ†λˆ„κ΅¬λ‚˜ λ§Œλ“€κ³  μ°Έμ—¬ν•  수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜ λŒ€νšŒ μ„œλΉ„μŠ€

Resources

Stars

Watchers

Forks

Packages

No packages published