DAY 8

πŸ”–Β μ˜€λŠ˜ 읽은 λ²”μœ„ : 4μž₯ 주석


<aside> πŸ˜ƒ μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©μ„ μ¨λ³΄μ„Έμš”.

</aside>

<aside> πŸ€” 였늘 읽은 μ†Œκ°μ€? λ– μ˜€λ₯΄λŠ” 생각을 κ°€λ³κ²Œ μ μ–΄λ³΄μ„Έμš”

</aside>

ν”„λ‘œκ·Έλž˜λ°μ„ 처음 μ‹œμž‘ν–ˆμ„ λ•Œμ—λŠ” 1990λ…„λŒ€ ν›„λ°˜μ΄μ—ˆλŠ”λ°, μΉœκ΅¬λ“€κ³Ό κ²Œμž„ν•˜λŠ” 것을 μ’‹μ•„ν•΄μ„œ κ²Œμž„ λ§Œλ“œλŠ” 데에 ν‘Ή λΉ μ Έ μžˆμ—ˆμ„ λ•Œκ°€ μžˆμ—ˆλ‹€. 320*200 해상도 2dλΆ€ν„°, openglμ΄λ‚˜ directx둜 3dλ₯Ό λ‹€λ£¨λ©΄μ„œ, 20λŒ€ μ΄ˆλ°˜κΉŒμ§€λŠ” λ‚˜λ¦„ μ—΄μ‹¬νžˆ κ³΅λΆ€ν–ˆμ—ˆλ˜ 것 κ°™λ‹€. 이 말을 κΊΌλ‚΄λŠ” μ΄μœ κ°€ κ·Έλ•Œ λ‹Ήμ‹œμ—λŠ” ν”„λ‘œκ·Έλž˜λ° μ‹œμž‘ν•  λ•Œ.. 항상

/***********************************************************************
   Particle Engine - by pleed
   μž‘μ„±μΌ: 20XX.XX.XX
************************************************************************/

μ΄λŸ°μ‹μœΌλ‘œ 헀더에 λ­”κ°€ 정보λ₯Ό μ£Όκ³  μ‹œμž‘μ„ ν–ˆμ—ˆλ‹€. λ‚˜λ§Œ 그랬던 것이 μ•„λ‹ˆλΌ, 각쒅 라이브러리 같은 것을 열어봐도 μ €λŸ° μ‹μœΌλ‘œ 헀더에 주석 μž‘μ„±ν•˜λŠ” μ½”λ“œκ°€ λ§Žμ•˜λ˜ κ²ƒμœΌλ‘œ κΈ°μ–΅ν•œλ‹€. κ·Έλ•Œ λ‹Ήμ‹œμ—λŠ” μ½”λ“œ 버전관리λ₯Ό λ‚˜λ‚˜, μ£Όλ³€μ—μ„œλŠ” 잘 μ‚¬μš©μ„ μ•ˆ(이라 μΌμ§€λ§Œ λͺ»)ν–ˆκΈ° λ•Œλ¬Έμ΄λ‹€. μ§€κΈˆμ€ IDE도 λΉ„μ•½μ μœΌλ‘œ μ’‹μ•„μ‘Œκ³ , 버전관리 μ‹œμŠ€ν…œλ„ λ„ˆλ¬΄ μ’‹μœΌλ‹ˆ, μ €λŸ° 것듀을 μ‚¬μš© ν•  ν•„μš”κ°€ μ—†μ–΄μ‘Œλ‹€.

주석 λ‹¬κΈ°λŠ” μ€‘μš”ν•˜κΈ° λ•Œλ¬Έμ—, 주석을 무쑰건 달아야 λœλ‹€κ³  μƒκ°ν–ˆλ˜ 적이 μžˆμ—ˆλ‹€. κ·Έλž˜μ„œ 주석 달 λ•Œλ§ˆλ‹€ 항상 μ–΄λ–»κ²Œ 주석을 써야 잘 μ“ΈκΉŒ κ³ λ―Όν–ˆμ—ˆλŠ”λ°, μ΄μ œλŠ” μ‘°κΈˆμ€ 고민을 덜 수 μžˆμ„ 것 κ°™λ‹€. 주석을 μ—΄μ‹¬νžˆ μž‘μ„±ν•˜λŠ” κ²ƒλ³΄λ‹€λŠ” μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ λ§Œλ“œλŠ” 것에 더 신경을 μ“°λŠ” 것이 μ’‹κΈ° λ•Œλ¬Έμ΄λ‹€. μ±…μ—μ„œλŠ” κ·Έλž˜μ„œ 주석은 ν•„μš”μ•…μ΄λΌκ³ κΉŒμ§€ ν‘œν˜„μ„ ν•  정도이닀. 주석이 쒋은 νš¨κ³Όκ°€ μžˆλŠ” 것보닀 λ‚˜μœ κ²½μš°κ°€ 더 많기 λ•Œλ¬Έμ΄λ‹€. κ·Έλ ‡λ‹€κ³ ν•΄μ„œ 주석이 아에 μ—†μœΌλ©΄ 쒋냐.. ν•˜λŠ” 것은 또 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— 주석을 κΌ­ ν•„μš”ν•  λ•Œλ§Œ λ‚¨κΈ°λŠ” 것이 μ’‹μŒμ„ μ•Œκ²Œ λ˜μ—ˆλ‹€.

μ „λ°˜μ μœΌλ‘œ μ±… λ‚΄μš©μ—μ„œλŠ” 주석을 μ–΄λ–»κ²Œ 잘 μž‘μ„±μ„ 해라 ν•˜λŠ” 것은 μ—†λ‹€. ν•„μš”ν•œ μΌ€μ΄μŠ€λ₯Ό 예λ₯Ό λ“€μ–΄, μ–΄λ–€ κ²½μš°μ—λŠ” 주석을 λ‚¨κΈ°λŠ” 것은 쒋은데 κ·Έλ§ˆμ €λ„ μ‘°μ‹¬νžˆ λ‚¨κΈ°λΌν•˜λŠ” 것.

주석을 μž‘μ„±ν•˜μ§€ 말아야 ν•˜λŠ” μΌ€μ΄μŠ€κ°€ 주석을 μž‘μ„±ν•΄μ•Ό ν•˜λŠ” μΌ€μ΄μŠ€λ³΄λ‹€ 훨씬 λ§Žλ‹€. 그만큼 주석 μž‘μ„±λ³΄λ‹€λŠ” μ½”λ“œ 간결에 신경을 μ“°λΌλŠ” 것이 이 μ±•ν„°μ˜ 결둠이라 λ³Ό 수 μžˆλ‹€.

λ‚˜λŠ” μ§€κΈˆμ€ μ½”λ”©κ³ΌλŠ” μ „ν˜€ 상관 μ—†λŠ” 직μž₯에 있기 λ•Œλ¬Έμ— λ§Žμ€ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” μ‚¬λžŒμ€ μ•„λ‹ˆμ§€λ§Œ, μ΅œκ·Όμ— 쀌클둠 μ±Œλ¦°μ§€μ— μ°Έμ—¬ν•˜λ©΄μ„œ, 이 μ—„μ²­λ‚˜κ²Œ ν•‘νν•˜λŠ” μ΄λ²€νŠΈλ“€μ„ μ–΄λ–»κ²Œ 정리λ₯Ό 잘 ν•  수 μžˆμ„κΉŒ.. 많이 고민을 ν–ˆμ—ˆλ‹€..

// ν΄λΌμ΄μ–ΈνŠΈκ°€ λ°© μ°Έκ°€ λ˜λŠ” λ°© λ§Œλ“œλŠ” 것을 μš”μ²­..
    socket.on('request_join_room', (roomName) => {
        const room = io.sockets.adapter.rooms.get(roomName);
        console.log(room);
        if (room && room.size !== 1) {
            // 방에 이미 두 μ‚¬λžŒμ΄ μžˆλŠ” 것..
            socket.emit('reject_join_room', roomName);
            return;
        }
        // λ‘œλΉ„ λ‚˜κ°€κ³ , 일단 방에 μ°Έκ°€.
        socket.leave('lobby');
        socket.join(roomName);
        // ν΄λΌμ΄μ–ΈνŠΈμ—λ„ 방에 μ°Έκ°€ν–ˆμŒμ„ μ•Œλ €μ€Œ.
        socket.emit('grant_join_room', roomName);
        // μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 방이면.. λ‘œλΉ„μ— μžˆλŠ” λ©€λ²„λ“€μ—κ²Œ 방이 μƒκ²ΌμŒμ„ μ•Œλ €μ€Œ.
        if (!checkRoom(roomName)) {
            socket.to('lobby').emit('room_created');
        }
    });

μœ„ μ½”λ“œκ°€ μ„œλ²„ μ½”λ“œμ˜ 일뢀뢄인데, ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— μ±„νŒ…λ£Έ μ°Έκ°€λ₯Ό μš”μ²­ν•˜μ˜€μ„ λ•Œ μ„œλ²„μ—μ„œ 이벀트 μ²˜λ¦¬ν•˜λŠ” μ½”λ“œμ΄λ‹€. 이 μ½”λ“œλ₯Ό μ–΄λ–»κ²Œ μ’€ μ •λ¦¬ν•˜λ©΄μ„œ, λ‚˜μ€‘μ— 봀을 λ•Œ ν—·κ°ˆλ¦¬μ§€ μ•Šμ„κΉŒ κ³ λ―Όν•΄μ„œ 주석을 μž‘μ„±ν–ˆλŠ”λ°.. μ†”μ§νžˆ μ“Έ 데 μ—†λŠ” 주석을 많이 넣은 것 κ°™λ‹€.

μœ„μ™€ 같이 μ†ŒμΌ“ 이벀트 μ²˜λ¦¬λŠ”.. λͺ…λͺ…λ²•μ΄λ‚˜ ν•¨μˆ˜ μ±•ν„°μ—μ„œ 배운 κ²ƒμ²˜λŸΌ, λͺ…λͺ…κ³Ό ν•œκ°€μ§€ ν•¨μˆ˜λŠ” ν•œκ°€μ§€λ§Œ ν•˜λ„λ‘ ν•˜λŠ” λ°©ν–₯으둜 μ •λ¦¬ν•˜λŠ” 것이 쒋지 μ•Šμ•˜μ„ 까 μƒκ°ν•œλ‹€.

μ“Έ 데 μ—†λŠ” 방에 λ‘μ‚¬λžŒ μžˆλ‹€λŠ” λ“±.. λ‘œλΉ„ λ‚˜κ°„λ‹€λΌλŠ” λ“±, 이런 κ²ƒμ˜ 주석은 μ‚­μ œν•΄λ„ 사싀 μ½”λ“œλ₯Ό μ½λŠ”λ°λŠ” μ „ν˜€ 지μž₯이 μ—†μ–΄μ„œ, 쓸데 μ—†λŠ” μ€‘λ³΅λ˜λŠ” 주석이고, request_join_room μ΄λŸ°κ²ƒμ€ join_request_from_client, reject_join_room은 reject_room_full λ“±μœΌλ‘œ λ°”κΎΈλ©΄, ꡳ이 주석을 쓰지 μ•Šμ•„λ„ λ˜μ§€ μ•Šμ„κΉŒ ν•œλ‹€.