Jungle / WIL(Weekly I Learned)
[WIL] 3์ฃผ
๐ฏ ๋ชฉํ ์ค์ ๋ฐ ์ํ ๊ฒฐ๊ณผ ํ๊ณ 1. ๋ฌธ์ ํด๊ฒฐ (Algorithm) ๋ชฉํ: ์๊ณ ๋ฆฌ์ฆ ์นดํ ๊ณ ๋ฆฌ์ ๋ฐ๋ผ ๋งค์ผ 1๋ฌธ์ ์ค์ค๋ก ํ๊ธฐ ๊ฒฐ๊ณผ: ๋งค์ผ ์ค์ฒ์ ์ด๋ ค์์ด ์์์ผ๋ฉฐ, ๋ธ๋ก๊ทธ ์ฐธ์กฐ์ AI ์ฝ๋ ๋ฆฌ๋ทฐ์ ์์กดํจ Action Plan: 30๋ถ๊ฐ์ ์ธ๋ถ ๋
๐ฏ ๋ชฉํ ์ค์ ๋ฐ ์ํ ๊ฒฐ๊ณผ ํ๊ณ
1. ๋ฌธ์ ํด๊ฒฐ (Algorithm)
- ๋ชฉํ: ์๊ณ ๋ฆฌ์ฆ ์นดํ ๊ณ ๋ฆฌ์ ๋ฐ๋ผ ๋งค์ผ 1๋ฌธ์ ์ค์ค๋ก ํ๊ธฐ
- ๊ฒฐ๊ณผ: ๋งค์ผ ์ค์ฒ์ ์ด๋ ค์์ด ์์์ผ๋ฉฐ, ๋ธ๋ก๊ทธ ์ฐธ์กฐ์ AI ์ฝ๋ ๋ฆฌ๋ทฐ์ ์์กดํจ
- Action Plan: 30๋ถ๊ฐ์ ์ธ๋ถ ๋์ ์์ด ์ค์ค๋ก ํ๊ณ , ์ดํ ์ฆ์ ํผ๋๋ฐฑ(๋ธ๋ก๊ทธ, AI)์ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ์ ํ
2. ์ค๊ณ (Architecture)
- ๋ชฉํ: ํ์ฅ ๊ฐ๋ฅํ ํด๋ ๊ตฌ์กฐ ์ค๊ณ๋ก ํ์ ์ Git ์ถฉ๋ ๋ฐฉ์ง
- ๊ฒฐ๊ณผ: Redis ๊ตฌํ ์ ํ ์คํธ ํด๋ ๊ตฌ์กฐ๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ฐ์ด๋ธ ์ฝ๋ฉ ์ค ์ฝ๋ ํผ์ ๋ฐฉ์ง ์ฑ๊ณต
3. ๊ตฌํ (Implementation)
- ๋ชฉํ: ๋ฐ์ด๋ธ ์ฝ๋ฉ ์ ๋ช ์ธ์๋ฅผ ์์ฑํ์ฌ AI์ ํ๋ก์ ํธ ๋ฌธ๋งฅ ํ์ ๋๊ธฐ
- ๊ฒฐ๊ณผ: ๋ช ์ธ์ ๊ธฐ๋ฐ ํ์ต์ ์ด๋ฃจ์ด์ก์ผ๋, Google Docs ์ฌ์ฉ์ผ๋ก ๊ฐ๋ ์ฑ ์ ํ
- Action Plan: ํฅํ Notion ํ์ฉ ๋ฐ ๋ช ์ธ์ ์๋ํ ๋ฐฉ์ ๋ชจ์
4. ํ์ง (Quality)
- ๋ชฉํ: Redis ๊ด๋ จ ํ๋ก์ ํธ์ ๋ชจ๋ ํ ์คํธ ํต๊ณผ
- ๊ฒฐ๊ณผ: Github Actions๋ก ์๋ํ ๊ตฌ์ถ. Main ๋ธ๋์น ์์ ์ ํ ์คํธ ์๋ ์คํ ๋ฐ ๊ฒฐ๊ณผ๋ฅผ Notion์ ๊ณต์ ํ๋ ์์คํ ๋ง๋ จ
5. ์ ์ง๋ณด์ (Maintenance)
- ๋ชฉํ: ์ฃผ์ ์์ฑ์ ํตํ ํ์ ๊ฐ ์ดํด๋ ์ฆ์ง
- ๊ฒฐ๊ณผ: ๊ธฐ๋ฅ ๊ตฌํ์ ์ง์คํ๋๋ผ ์ฃผ์ ๋ฐ ์ ์ง๋ณด์ ๊ณ ๋ ค ๋ถ์กฑ (๋ฏธํก)
6. ํ์ (Collaboration)
- ๋ชฉํ: ๋ฅ๋์ ์ธ ํ๋๋ก ํ์ ์๋ ํฅ์
- ๊ฒฐ๊ณผ: ๋ช ์ธ์ ์ฌ์ ์์ฑ์ ํตํด ํ์๋ค์ ํ๋ก์ ํธ ์ดํด๋ ๋ฐ ์์ ์๋ ์ฆ์ง
7. ํ๋ (Mindset)
- ๋ชฉํ: Redis์ ์ฝ์ด ๊ฐ๋ ๊ณผ ์๋ฆฌ๋ฅผ ํ์ต ํ ๊ตฌํ
- ๊ฒฐ๊ณผ: ์บ์ ๊ฐ๋ ์ ๊ณต๋ถํ์ผ๋ ์ค๋ฌด ์ ์ฉ์ ํ๊ณ. '์ ์ฐ๋ฆฌ์๊ฒ Redis๊ฐ ํ์ํ๊ฐ'์ ๋ํ ๋ ผ๋ฆฌ์ ๊ทผ๊ฑฐ ๋ถ์กฑ
8. ๋น์ฆ๋์ค ์ดํด (Business Insight)
- ๋ชฉํ: ์ฌ์ฉ์ ํธ์์ฑ(UX)์ ๊ณ ๋ คํ ์ฝ๋ ๋ฐ ํ๋ก์ ํธ ์งํ
- ๊ฒฐ๊ณผ: ์ฌ์ฉ์ ๊ด์ ๋ณด๋ค๋ ๊ธฐ์ ์ ๊ตฌํ์๋ง ๋งค๋ชฐ๋จ (๋ฏธํก)
9. AI ํ์ฉ (AI Prompting)
- ๋ชฉํ: Agent.md ์ต์ ํ๋ฅผ ํตํ ๊ณ ํ์ง ์ฝ๋ ์์ฑ
- ๊ฒฐ๊ณผ: OpenAI ํ์ ์ฐธ๊ณ ํ์ฌ Agent.md๋ฅผ ์๋ฌธ์ผ๋ก ์์ฑํ๊ณ ํ๊ตญ์ด ์ค๋ช ์ ๋ณ๊ธฐํ์ฌ ํจ๊ณผ์ ์ธ ๊ฐ์ด๋ ๋ง๋ จ
10. ํ์ต ๋ฏผ์ฒฉ์ฑ (Learning Agility)
- ๋ชฉํ: Redis ๋ด๋ถ ๊ตฌ์กฐ ์ดํด ๋ฐ ๊ตฌํ
- ๊ฒฐ๊ณผ: ๊น์ด ์๋ ์ดํด ๋ถ์กฑ์ผ๋ก Python ๊ธฐ๋ณธ ๋์ ๋๋ฆฌ๋ฅผ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉ
- Action Plan: ๋ด๋ถ ๊ตฌํ ์ฌํญ์ ์ ํ ํ์ตํ๊ณ , ๊ธฐ์ ์ ํ ์ ๊ตฌ์ฒด์ ์ธ ์ด์ ๋ฅผ ์ ์ํ ์ ์๋๋ก ์ค๋น
๐ 4์ฃผ์ฐจ ๋ฐ์ : ๋ ๊น๊ฒ ๊ณ ๋ฏผํ ์ฌํญ
1. ํ์ด์ฌ ์๋ฃ๊ตฌ์กฐ์ ๋ด๋ถ ๊ตฌํ
- List: ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List)๊ฐ ์๋ ๋์ ๋ฐฐ์ด(Dynamic Array)๋ก ๊ตฌํ๋จ
- Dictionary: Hash ๋ฐฉ์ ์ฌ์ฉ. Python 3.6+๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ํด ์ธ๋ฑ์ค ํ
์ด๋ธ๊ณผ ์ํธ๋ฆฌ ํ
์ด๋ธ์ ๋ถ๋ฆฌ
- ๋ฐ์ดํฐ ์ฝ์ ์์๊ฐ ์ ์ง๋๋๋ก ๊ฐ์ ๋จ (Open Addressing ๊ธฐ๋ฐ)
- Sort(): Timsort (Insertion + Merge Sort ํผํฉ) ์ฌ์ฉ
- ์ต์ : O(n), ์ต์ : O(n \log n)์ ์ฑ๋ฅ ๋ณด์ฅ
2. WebAssembly (Wasm)์ ์ ์์ค ์ธ์ด์ ํ์์ฑ
- ํ์: JS๋ ์ธํฐํ๋ฆฌํฐ ๊ธฐ๋ฐ์ด๋ผ ๋ณต์กํ ์ฐ์ฐ(์์ ํธ์ง, 3D, ์ํธํ)์์ ๋ณ๋ชฉ ๋ฐ์
- ํด๊ฒฐ: C/Rust๋ก ๋ก์ง ์ค๊ณ ํ Wasm์ผ๋ก ์ปดํ์ผํ์ฌ ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์ด ์๋ ๊ตฌํ
- ์ ๋ต: Python์ผ๋ก ๋น ๋ฅด๊ฒ ํ๋กํ ํ์ ์ ์ ํ, ์ฑ๋ฅ์ด ํ์ํ ๊ตฌ๊ฐ์ ๋น ๋ฅธ ์ธ์ด๋ก ์ ํ
3. Redis Hash ์ง์ ๊ตฌํ ์ ๊ณ ๋ ค์ฌํญ
- ํ ์ธ์ด์์ ์ง์ Hash๋ฅผ ๊ตฌํํด์ผ ํ๋ค๋ฉด ๋ค์ ์ธ ๊ฐ์ง๊ฐ ํต์ฌ์:
- ํด์ ํจ์ ์ ์
- ์ถฉ๋(Collision) ์ฒ๋ฆฌ ๋ฐฉ์ ๊ฒฐ์
- ๋์ ๋ฆฌ์ฌ์ด์ง: ๋ฐ์ดํฐ ์๊ณ์น ์ด๊ณผ ์ ํ ์ด๋ธ ํฌ๊ธฐ๋ฅผ ํ์ฅ(๋ณดํต 2๋ฐฐ)ํ๊ณ ์ฌ๋ฐฐ์น(Rehashing)
4. ๋ฐ์ด๋ธ ์ฝ๋ฉ ๊ฒฐ๊ณผ๋ฌผ์ ๋ํ '์ง์ง' ๋ด ๊ฒ ๋ง๋ค๊ธฐ
- AI๊ฐ ๋ง๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ํด ๋ต๋ณํ์ง ๋ชปํ๋ค๋ฉด ๊ทธ๊ฒ์ ๋ณธ์ธ์ ์ค๋ ฅ์ด ์๋
- ์์์ฝ๋ฉํ ํ์ฉ: ๋ด๊ฐ ์๋ฒฝํ ์ํํ ์ ์๋ ๋ฒ์๋งํผ๋ง AI๋ฅผ ํ์ฉํ๊ณ , ๊ทธ ๋ด์ฉ์ ๊ณต์ ํ๋ฉฐ ๊ฒ์ฆ๋ฐ๊ธฐ
๐ 3์ฃผ์ฐจ ๋ธ๋ก๊ทธ ์ ๋ฆฌ
Merge Sort, Quick Sort, ๋ถํ ์ ๋ณต
https://forrest7.tistory.com/32
์คํ, set (boj1406 ์๋ํฐ, boj2295 ์ธ์์ ํฉ)
https://forrest7.tistory.com/33
Queue (boj 3190 ๋ฑ)
https://forrest7.tistory.com/34
ํฌ ํฌ์ธํฐ (boj 2470 ๋ ์ฉ์ก)
https://forrest7.tistory.com/35