[Book] κ²Œμž„ μ„œλ²„ ν”„λ‘œκ·Έλž˜λ° κ΅κ³Όμ„œ - 8μž₯ NoSQL 기초
Β·
πŸ“ Book/✏ Game Server
8μž₯ NoSQL 기초 μ•žμ„œ μ•Œμ•„λ³Έ λ°μ΄ν„°λ² μ΄μŠ€λŠ” κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ΄λ‹€. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λŠ” ν…Œμ΄λΈ”κ³Ό μ™Έλž˜ ν‚€ 등을 μ‚¬μš©ν•˜κ³  λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ 질의 ꡬ문으둜 μ›ν•˜λŠ” 정보λ₯Ό λ‹€κ°μ μœΌλ‘œ λΉ λ₯΄κ²Œ μΆ”μΆœν•  수 μžˆλ‹€. 또 데이터 일관성을 μ€‘μš”ν•˜κ²Œ μƒκ°ν•œλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ 쀑 또 λ‹€λ₯Έ ν•˜λ‚˜μΈ NoSQLλŠ” κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ „ν†΅μ μœΌλ‘œ μ€‘μ‹œν•˜λ˜ λͺ‡ 가지λ₯Ό ν¬κΈ°ν•˜λŠ” λŒ€μ‹  λ‹€λ₯Έ 츑면의 μž₯점을 가진닀. 1. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ™€ NoSQL κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λŠ” 였랜 역사λ₯Ό μ§€λ‹ˆκ³  μžˆμ§€λ§Œ, νŠΉμ • μƒν™©μ—μ„œ λͺ‡ 가지 λΆ€μ‘±ν•œ 점이 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 둜그 데이터λ₯Ό ν•œ ν…Œμ΄λΈ”μ— 기둝할 λ•Œ λΆˆνŽΈν•  수 μžˆλ‹€. 둜그 데이터가 λˆ„μ λ˜μ–΄ ν…Œμ΄λΈ”μ— μ•½ 1μ–΅ 개의 λ ˆμ½”λ“œκ°€ μŒ“μ˜€μ„ λ•Œ μœ μ§€ 보수λ₯Ό μœ„ν•΄ ν•„λ“œ ν•˜λ‚˜λ₯Ό 더 μΆ”κ°€ν•΄μ•Ό ν•˜λŠ” 상황이 였면, ..
[C++] μ€‘κ°„μ—μ„œ λ§Œλ‚˜κΈ°(Meet In The Middle)
Β·
πŸ“ Computer Science/✏ Algorithm
μ€‘κ°„μ—μ„œ λ§Œλ‚˜κΈ°(Meet In The Middle) μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν’€ λ•Œ μ™„μ „ νƒμƒ‰μœΌλ‘œ νƒμƒ‰ν•˜λŠ” 경우, νƒμƒ‰μ˜ λ²”μœ„κ°€ 컀질수둝 경우의 μˆ˜μ™€ μ—°μ‚°λŸ‰μ΄ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ λŠ˜μ–΄λ‚˜λŠ” 것을 λ³Ό μˆ˜κ°€ μžˆλ‹€. μ΄λ•Œ μ€‘κ°„μ—μ„œ λ§Œλ‚˜κΈ° 방식을 μ‚¬μš©ν•˜λ©΄, μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 제곱근만큼 쀄일 수 μžˆλ‹€. μ€‘κ°„μ—μ„œ λ§Œλ‚˜κΈ° 방식은 μ•žμͺ½κ³Ό λ’€μͺ½μ—μ„œ μ ˆλ°˜μ”© μ ‘κ·Όν•˜μ—¬ μ€‘κ°„μ—μ„œ νƒμƒ‰ν•œ κ²°κ³Όκ°€ λ§Œλ‚˜κ²Œ ν•˜λŠ” 탐색 κΈ°μˆ μ„ μ˜λ―Έν•œλ‹€. 즉, μ€‘κ°„μ—μ„œ λ§Œλ‚œ μ—°μ‚°μ˜ κ²°κ³Όλ₯Ό 합쳐 전체 κ²°κ³Όλ₯Ό λ½‘μ•„λ‚΄λŠ” 것이닀. 문제 https://www.acmicpc.net/problem/1208 1208번: λΆ€λΆ„μˆ˜μ—΄μ˜ ν•© 2 첫째 쀄에 μ •μˆ˜μ˜ 개수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” Nκ³Ό μ •μˆ˜ Sκ°€ 주어진닀. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) λ‘˜μ§Έ 쀄에 N개의 μ •μˆ˜κ°€ 빈 칸을 사..
[Book] κ²Œμž„ μ„œλ²„ ν”„λ‘œκ·Έλž˜λ° κ΅κ³Όμ„œ - 7μž₯ λ°μ΄ν„°λ² μ΄μŠ€ 기초
Β·
πŸ“ Book/✏ Game Server
7μž₯ λ°μ΄ν„°λ² μ΄μŠ€ 기초 1. ν”Œλ ˆμ΄μ–΄μ˜ 정보 μ €μž₯ μ‹±κΈ€ ν”Œλ ˆμ΄ κ²Œμž„μ„ λ§Œλ“€ λ•ŒλŠ” 보톡 ν”Œλ ˆμ΄μ–΄μ˜ 둜컬 컴퓨터 μ•ˆμ— μ €μž₯ν•œλ‹€. κ·ΈλŸ¬λ‚˜ λ©€ν‹° ν”Œλ ˆμ΄ κ²Œμž„μ„ λ§Œλ“€ λ•Œλ„ μ‹±κΈ€ ν”Œλ ˆμ΄μ™€ 같이 둜컬 컴퓨터 μ•ˆμ— μ €μž₯ν•œλ‹€λ©΄, λ‹€μŒκ³Ό 같은 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€. ν”Œλ ˆμ΄μ–΄κ°€ 컴퓨터λ₯Ό λ³€κ²½ν•˜λ©΄, μžμ‹ μ΄ ν•˜λ˜ ν”Œλ ˆμ΄ 정보λ₯Ό μ΄μ–΄μ„œ ν•  μˆ˜κ°€ μ—†λ‹€. ν”Œλ ˆμ΄μ–΄κ°€ 해킹을 ν•  쀄 μ•ˆλ‹€λ©΄, ν”Œλ ˆμ΄ 정보λ₯Ό μ‘°μž‘ν•  수 μžˆλ‹€. λ”°λΌμ„œ 온라인 κ²Œμž„μ—μ„œλŠ” ν”Œλ ˆμ΄μ–΄ 정보λ₯Ό ν΄λΌμ΄μ–ΈνŠΈκ°€ μ•„λ‹Œ μ„œλ²„μ—λ§Œ μ €μž₯ν•œλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” 둜그인 ν›„ ν”Œλ ˆμ΄μ–΄ 정보λ₯Ό μ„œλ²„μ—μ„œ λ°›μ•„ μ‚¬μš©ν•œλ‹€. ν”Œλ ˆμ΄μ–΄ 정보λ₯Ό μ„œλ²„μ— μ €μž₯ν•˜λŠ” λ°©λ²•μ—λŠ” 크게 파일, λ°μ΄ν„°λ² μ΄μŠ€κ°€ μžˆλ‹€. μƒμš©μœΌλ‘œ μ„œλΉ„μŠ€λ˜λŠ” κ²Œμž„λ“€μ€ λŒ€λΆ€λΆ„ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ΄μš©ν•΄ ν”Œλ ˆμ΄μ–΄ 정보λ₯Ό μ €μž₯ν•œλ‹€. ν”Œλ ˆμ΄μ–΄ 각각..
[Book] κ²Œμž„ μ„œλ²„ ν”„λ‘œκ·Έλž˜λ° κ΅κ³Όμ„œ - 6μž₯ κ²Œμž„ λ„€νŠΈμ›Œν¬ 엔진 ν”„λΌμš°λ“œλ„·
Β·
πŸ“ Book/✏ Game Server
6μž₯ κ²Œμž„ λ„€νŠΈμ›Œν¬ 엔진 ν”„λΌμš°λ“œλ„· 1. κ²Œμž„ μ„œλ²„, λ„€νŠΈμ›Œν¬ 엔진 κ²Œμž„ μ„œλ²„μ™€ λ©€ν‹°ν”Œλ ˆμ΄μ–΄ 처리λ₯Ό κ°œλ°œν•  λ•Œ λ„€νŠΈμ›Œν‚Ή 처리λ₯Ό μœ„ν•΄ 보톡 μ†ŒμΌ“ APIλ₯Ό μ΄μš©ν•œλ‹€. κ·ΈλŸ¬λ‚˜ μ†ŒμΌ“ API만 μ΄μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같은 λ²ˆκ±°λ‘œμ›€μ΄ λ°œμƒν•  수 μžˆλ‹€. μš΄μ˜μ²΄μ œλ§ˆλ‹€ μ†ŒμΌ“ APIλ₯Ό μ‚¬μš©ν•˜λŠ” 방식에 차이가 μžˆλ‹€. μ†ŒμΌ“ APIμ—μ„œ μ œκ³΅ν•˜μ§€ μ•ŠλŠ” κΈ°λŠ₯은 직접 λ§Œλ“€μ–΄μ•Ό ν•œλ‹€. κ·Έλž˜μ„œ μ΄λŸ¬ν•œ 문제λ₯Ό κ°œμ„ ν•˜κΈ° μœ„ν•΄ λ„€νŠΈμ›Œν¬ 엔진을 μ‚¬μš©ν•˜κΈ°λ„ ν•œλ‹€. 2. 개발 ν™˜κ²½κ³Ό κΈ°λ³Έ λͺ¨λ“ˆ λ„€νŠΈμ›Œν¬ 엔진 쀑 ν•˜λ‚˜μΈ ν”„λΌμš°λ“œλ„·μ€... μƒμ—…μš© μ†Œν”„νŠΈμ›¨μ–΄λ‘œ κ°œμΈμ΄λ‚˜ νŠΉμ • 쑰건의 인디 κ°œλ°œμ‚¬μ—μ„œλŠ” 무료둜 μ‚¬μš©ν•  수 μžˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ κ°„ λ„€νŠΈμ›Œν‚Ήκ³Ό ν΄λΌμ΄μ–ΈνŠΈ κ°„ 직접 λ„€νŠΈμ›Œν‚Ήμ„ λ‹¨μˆœν•˜κ²Œ μ‚¬μš©ν•  수 있게 ν•˜λ©° λ„€νŠΈμ›Œν¬ μ•”ν˜Έν™”, μ•”μΆ•, 흐름 μ œμ–΄ λ“± κΈ°λŠ₯을..
[Book] κ²Œμž„ μ„œλ²„ ν”„λ‘œκ·Έλž˜λ° κ΅κ³Όμ„œ - 5μž₯ κ²Œμž„ λ„€νŠΈμ›Œν‚Ή
Β·
πŸ“ Book/✏ Game Server
5μž₯ κ²Œμž„ λ„€νŠΈμ›Œν‚Ή 1. UML UML은 λ‹¨μˆœνžˆ ν”Œλ‘œμ°¨νŠΈ κ·Έ μ΄μƒμ˜ 역할을 ν•œλ‹€. 데이터 μ •μ˜μ™€ ν”„λ‘œμ„ΈμŠ€ μ •μ˜κ°€ νŽΈν•΄μ§€κ³  ν”„λ‘œκ·Έλž¨ ꡬ쑰 λͺ…μ„Έλ₯Ό ν‘œν˜„ν•˜λŠ” λŒ€ν‘œμ  μˆ˜λ‹¨μ΄λ‹€. 1) UML μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨ UML μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ€ 객체와 λ©”μ‹œμ§€λ₯Ό μ‚¬μš©ν•˜κ³  객체 κ°„ λ©”μ‹œμ§• 흐름을 일λͺ©μš”μ—°ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆλ‹€. κ°μ²΄λŠ” μƒν˜Έ μž‘μš©μ˜ 주체(ν΄λΌμ΄μ–ΈνŠΈ, μ„œλ²„)둜 λ„€λͺ¨ μƒμžμ— ν•΄λ‹Ήλœλ‹€. λ©”μ‹œμ§€λŠ” μƒν˜Έ μž‘μš©μ˜ λ‚΄μš©μœΌλ‘œ κ°€λ‘œ ν™”μ‚΄ν‘œμ— ν•΄λ‹Ήλœλ‹€. 2) μ•‘ν‹°λΉ„ν‹° λ‹€μ΄μ–΄κ·Έλž¨ μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ€ 주고받은 λ©”μ‹œμ§€λ₯Ό μ–΄λ–»κ²Œ μ²˜λ¦¬ν•˜λŠ”μ§€ μžμ„Έν•˜κ²Œ ν‘œν˜„ν•˜κΈ°μ—” ν•œκ³„κ°€ μžˆλ‹€. κ·Έλž˜μ„œ μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ— ν”Œλ‘œμ°¨νŠΈλ₯Ό ν•¨κ»˜ μ‚¬μš©ν•œλ‹€λ©΄, 보닀 μžμ„Έν•˜κ²Œ ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 방식을 그림으둜 λ¬˜μ‚¬ν•  수 있게 λœλ‹€. 이것이 μ•‘ν‹°λΉ„ν‹° λ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€. μ‹€λŸ°λ” 도..
[Book] κ²Œμž„ μ„œλ²„ ν”„λ‘œκ·Έλž˜λ° κ΅κ³Όμ„œ - 4μž₯ κ²Œμž„ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ
Β·
πŸ“ Book/✏ Game Server
4μž₯ κ²Œμž„ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ²Œμž„ μ„œλ²„κ°€ ν•˜λŠ” 역할을 μ΄ν•΄ν•˜λ €λ©΄ κ²Œμž„ μ„œλ²„κ°€ μ–΄λ–»κ²Œ λ°œμ „ν•΄ μ™”λŠ”μ§€ μ•Œμ•„λ³΄λ©΄ λœλ‹€. 1. νŒ¨ν‚€μ§€ κ²Œμž„μ—μ„œ κ²Œμž„ μ„œλ²„ 1995λ…„ λ‹Ήμ‹œ λŒ€λΆ€λΆ„μ˜ κ²Œμž„μ€ 인터넷이 μ•„λ‹Œ κ°€κ²Œμ—μ„œ ꡬ맀해야 ν•˜λŠ” νŒ¨ν‚€μ§€ κ²Œμž„μ΄μ—ˆλ‹€. νŒ¨ν‚€μ§€ κ²Œμž„μ€ μ»΄ν“¨ν„°μ˜ λ””μŠ€ν¬ λ“œλΌμ΄λΈŒλ‚˜ CD-ROM λ“œλΌμ΄λΈŒμ— 넣은 ν›„ λ°”λ‘œ μ‹€ν–‰ν•˜κ±°λ‚˜ ν•˜λ“œ λ””μŠ€ν¬μ— μ„€μΉ˜ ν›„ μ‹€ν–‰ν•˜λŠ” 방식이닀. μ΄λ•Œμ˜ νŒ¨ν‚€μ§€ κ²Œμž„μ€ 컴퓨터 λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•˜λ‹€. κ·ΈλŸ¬λ‚˜ 인터넷이 λ³΄κΈ‰λ˜κΈ° μ‹œμž‘ν•˜λ©΄μ„œ ν”Œλ ˆμ΄μ–΄κ°€ μ„Έ λͺ… 이상 인터넷을 톡해 ν”Œλ ˆμ΄ν•˜λŠ” λ°©μ‹μ˜ νŒ¨ν‚€μ§€ κ²Œμž„μ΄ λ“±μž₯ν•˜κΈ° μ‹œμž‘ν–ˆλ‹€. κ²Œμž„μ„ ν•˜λ €λ©΄ ν”Œλ ˆμ΄μ–΄λ“€μ˜ κ²Œμž„ ν”Œλ ˆμ΄ μƒνƒœ(μ„Έμ…˜)λ₯Ό μ €μž₯ν•΄μ•Ό ν–ˆκ³  이λ₯Ό μœ„ν•΄ ν”Œλ ˆμ΄μ–΄ 쀑 ν•œ λͺ…μ˜ 컴퓨터가 μ„œλ²„κ°€ λ˜μ–΄ λͺ¨λ“  ν”Œλ ˆμ΄μ–΄μ˜ κ²Œμž„ ν”Œλ ˆμ΄ μƒνƒœλ₯Ό μ·¨ν•©..