[etc] ๐ฐ๐ฟ๏ธ ๊ฐ์ข ๊ฐ๋ฐ ๋๊ตฌ, ์ ํธ๋ฆฌํฐ ์ฌ์ดํธ, ์ธ์ด, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์
- ๊ฐ์
- 1. ๋ฌธ์, ๋ฉ๋ด์ผ, ์ฐธ๊ณ ์๋ฃ
- 2. ์ ๋์ค/๋ฆฌ๋ ์ค Unix/Linux
- 3. ๊ฐ๋ฐ ๋๊ตฌ
- 4. ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- 5. ์ธํ๋ผ, ๋ฐฐํฌ
- 6. ๋ฐ์ดํฐ๋ฒ ์ด์ค
- 7. ํ ์คํธ, ํ์ง ๊ด๋ฆฌ
- 8. ์ธํ๋ผ ๋ชจ๋ํฐ๋ง, ์ฑ๋ฅ ๋ถ์
- 9. ๋ณด์, ์ธ์ฆ
- 10. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด Programming Language
- 11. ๋ฐํ์ ํ๊ฒฝ Runtime Environments
- 12. ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ
- 13. ๋์์ธ, ๋ค์ด์ด๊ทธ๋จ
- 14. ๋คํธ์ํฌ, ๋ณด์
- 15. ๋ฒ์ ๊ด๋ฆฌ
- 16. ์ฝ๋ ํ์ด๋ผ์ดํ
- 17. ์์ฐ์ฑ, ๊ด๋ฆฌ
- 18. AI, ๋จธ์ ๋ฌ๋
- 19. ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ
- 20. ๊ธฐํ ์ ํธ๋ฆฌํฐ
- 21. ๋ธ๋ผ์ฐ์ , ํ๋ฌ๊ทธ์ธ
- 22. ๊ธฐํ ์๋น์ค
- 23. ํต๊ณ, ๋ถ์
- 24. ๋ฌธ์ ์์ฑ ๋๊ตฌ
๊ฐ์
์ฐ๋๋ ๋ค๋์ฅ๊ฐ์ ์ต์ฑ์ด ์์ด์ ์ผ๋จ ๋ชจ์ผ๋ ๊ฒ์ ์ข์ํ๋ค๊ณ ํ๋ค.
์์ฃผ ์ฌ์ฉํ๊ฑฐ๋ ์ค์ํ ๊ฒ์ โญํ์ํจ.
1. ๋ฌธ์, ๋ฉ๋ด์ผ, ์ฐธ๊ณ ์๋ฃ
์ผ๋ฐ ๋ฌธ์
- MDN Web Docs: Mozilla Developer Network์ ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ธฐ์ ๋ฌธ์.
- โญDevDocs: ๊ฐ๋ฐ์์ฉ API ๋ฌธ์ ๋ชจ์ ์ฌ์ดํธ. ๊นํ๋ธ ๋งํฌ
- WikiDocs: ์จ๋ผ์ธ ์ฑ ์ ์ ๊ณต์ , ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ ํํ ๋ฆฌ์ผ์ด ์์.
- The Concise TypeScript Book: TypeScript์ ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ ๋ฌธ์.
- ECMA International: ecma-262: ๋น์๋ฆฌ ๊ตญ์ ํ์คํ ๊ธฐ๊ตฌ์ธ ECMA Internation์ ์ฌ์ดํธ. ์ด ๋ฌธ์์์๋ ECMAScript์ ๋ฒ์ ๋ณ ๋ช ์ธ์ ํ์ฌ ์ ํจํ ํ์ค์ ๋ณผ ์ ์๋ค.
- You might not need jQuery: jQuery API ๋์ ์ธ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ + CSS ์ฝ๋๋ฅผ ์๋ ค์ฃผ๋ ์ฌ์ดํธ. ์๋ฅผ ๋ค์ด
$(el).show()
๋ฅผ ์ฐพ์ผ๋ฉด,el.style.display = ''
๋ฅผ ์๋ ค์ฃผ๋ ์์ด๋ค. - standard-readme: ๋๊ตฐ๊ฐ ๋ง๋ค์ด๋์ README ์์ฑ ํ์ค
ํนํ ๊ฐ์ด๋
- โญCan I use: ์น API, HTML, CSS ๋ฑ์ ์ด๋ค ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๋์ง๋ฅผ ์๋ ค์ฃผ๋ ์ฌ์ดํธ.
- 0.30000000000000004.com: ๋ถ๋ ์์์ ์ ๋ํด ์ค๋ช ํ๋ ๋ฌธ์
- link anatomy:
location
ํด๋ถํ(?) - JS Is Weird: ์๋ฐ์คํฌ๋ฆฝํธ์ ํผ๋์ ์นด์ค์ค ๊ฐ์ ์ฌ๋ฌ ํ์๋ค์ ํด์ฆ ํ์์ผ๋ก ์ค๋ช ํ๋ ์ฌ์ดํธ
HTTP ํ์ค
- rfc9110 | HTTP Semantics)
- rfc6648 | Deprecating the "X-" Prefix and Similar Constructs in Application Protocols
- The W3C Markup Validation Service: W3C์์ ์ด์ํ๋ ๊ฑธ๋ก ๋ณด์ด๋ ๋งํฌ์ ๊ฒ์ฌ๊ธฐ. ์์ค ์ ๋ ฅ ๋ฐฉ๋ฒ์ผ๋ก URL, ํ์ผ, ์ง์ ์ ๋ ฅ ์ธ ๊ฐ์ง๋ฅผ ์ ๊ณตํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๊ฒ์ฌ๊ธฐ๋ ์์ HTML์ ๋์์ผ๋ก ์์ฑ๋ ๊ฒ์ฌ๊ธฐ๋ผ์ ๋ฆฌ์กํธ ๊ฐ์ ํ๋ก ํธ์๋์ฉ ํ๋ ์์ํฌ ์์ค๋ฅผ ๊ฒ์ฌํ๋ฉด ์ฃ ํ๋ ธ๋ค๊ณ ๋์จ๋ค. ์๋งคํ์ผ๋ก CSS Validator๋ ์๋ค.
๋ณด์
- MITRE | CVE: ๊ณตํต ์ทจ์ฝ์ ์์นด์ด๋น ์ฌ์ดํธ
- CVE.report
- DevHub Advisory: mitre ๋ณด๋ค ์ฝ๊ธฐ ์ข์ ํ์์ผ๋ก ์ค๋ช ํด์ฃผ๋ ์ฌ์ดํธ์ธ๋ฐ, ์ด๋ฐ์์ผ๋ก https://devhub.checkmarx.com/cve-details/CVE-2016-1000027 ๋งจ ๋ค path๋ง ๋ฐ๊ฟ์ ์กฐํํ๋ฉด ํธํ๋ค.
2. ์ ๋์ค/๋ฆฌ๋ ์ค Unix/Linux
- Crontab.guru: Cron(๋ฆฌ๋ ์ค/์ ๋์ค์ ์ค์ผ์ค๋ฌ) ํํ์์ ํ ์คํธํ๊ฑฐ๋ ๋๋ค์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์ฌ์ดํธ. Cron Job์ ๋ชจ๋ํฐ๋ง ์ํํธ์จ์ด๋ฅผ ํ๋ Cronitor์์ ์ด์ํ๋ค.
3. ๊ฐ๋ฐ ๋๊ตฌ
์ฝ๋ ์๋ํฐ, IDE
- โญSublime Text: ์๋์ฐ ๊ธฐ๋ณธ ๋ ธํธํจ๋๋ฅผ ์๋ฒฝํ ๋์ฒด ๊ฐ๋ฅํ ์ฑ. ๋น ๋ฅด๊ณ ๊ฐ๋ณ๊ณ ๋ฉํฐ ์บ๋ฟ์ ์ง์ํ๋ค. ๋ฌด๋ฃ ๋ฒ์ ์ ๊ฐ๋ ์ ์ฅํ ๋ ํ์ ์ด ๋ฌ๋ค.
- Notepad++: ์ข ์ค๋๋์ง๋ง ๊ฐ๋ณ๊ฒ ์ฐ๊ธฐ ์ข์. ์๋ธ๋ผ์์ผ๋ก ์ด์์ ๋ ์ฑ์ด ๋ฉ์ถฐ๋ฒ๋ฆด ์ ๋๋ก ํฐ ํ์ผ๋ ๋ ธํธํจ๋++ ์์ ์ ์ด๋ฆฐ๋ค.
- โญVisual Studio Code
- Obsidian: ์ ๊ฐ๋ ํ ์คํธ ์๋ํฐ. ๋งํฌ๋ค์ด๊ณผ ๋ค์ด์ด๊ทธ๋จ์ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํ๊ณ , ๋ ธํธ๋ผ๋ฆฌ ๋งํฌ๋ก ์ฐ๊ฒฐํ ์ ์๋ค. ์์ฑ๋ ๋ ธํธ ๊ธฐ๋ฐ์ผ๋ก ์๋ ์์ฑ๋๋ ๋ง์ธ๋๋งต ๊ธฐ๋ฅ์ด ์๋ค. ์์ฑํ ํ์ผ์ ํด๋ผ์ฐ๋ ๋๊ธฐํ ๊ธฐ๋ฅ(Obsidian Sync)์ ์ ๋ฃ๋ค.
- Cursor: AI ๊ธฐ๋ฐ ์ฝ๋ ์๋ํฐ. ์ผ๋ ํธ๋ก + ๋ชจ๋์ฝ ์๋ํฐ ๊ธฐ๋ฐ์ด๋ผ VSCode์ ์ธํฐํ์ด์ค๊ฐ ๋งค์ฐ ์ ์ฌํ๋ค.
- Zed: ์๋์ฐ๋ ์์ง ์ง์ ์์ (2025-02-05)์ด๋ผ ๊ธฐ๋๋ง ํ๊ณ ์๋ ํ ์คํธ ์๋ํฐ. ํน์ง์ ๊ณ ์ฑ๋ฅ, ๊ฒฝ๋, ์ค์๊ฐ ํ์ ๊ธฐ๋ฅ์ด๋ค.
- Eclipse
- IntelliJ
- jEdit
- NetBeans
- Cloud9
- WebStorm
- Aptana
์จ๋ผ์ธ ์ฝ๋ ์๋ํฐ, ์ค๋ํซ
- CodePen: ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ #1. ์น์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ณ ํ ์คํธํ๊ฑฐ๋ ๋จ๋ค๊ณผ ๊ณต์ ํ ์ ์๋ ์๋น์ค.
- JSFiddle: ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ #2
- CodeSandbox: ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ #3. ์น์ผ๋ก ์ง์ ์์ฑ ๋ง๊ณ ๋ CLI ์ ๋ก๋๋ฅผ ์ง์ํ๋ค.
- StackBlitz: ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ #4. ํ๋กํธ์๋์ ํนํ๋์ด ์๋ค. ๊นํ๋ธ ์ ์ฅ์์ ์ฐ๋ํ ์ ์๊ณ , Node.js ๊ฐ์ ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. public ํ๋ก์ ํธ์ ํํด ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅ.
- GitHub Gist: ์ฝ๋ ์ค๋ํซ ๊ณต์ ์ฉ ์ฑ #1. ์ฌ์ฉํ๋ ค๋ฉด ๊นํ๋ธ ์์ด๋ ํ์
- Pastebin: ์ฝ๋ ์ค๋ํซ ๊ณต์ ์ฉ ์ฑ #2. ๋ก๊ทธ์ธ ํ์ํจ
-
[Hastebin Toptal](https://www.toptal.com/developers/hastebin): ์ฝ๋ ์ค๋ํซ ๊ณต์ ์ฉ ์ฑ #3. ๋ก๊ทธ์ธ ํ์ ์์ - Snippet.host: ์ฝ๋ ์ค๋ํซ ๊ณต์ ์ฉ ์ฑ #4. ๋ก๊ทธ์ธ ํ์ ์์
- Carbon: ์ฝ๋ ์ค๋ํซ ๊ณต์ ์ฉ ์ฑ #5. ์ด์ชฝ์ ์ฝ๋๋ฅผ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด์ฃผ๋ ์ฌ์ดํธ๋ค.
์ ๊ท์ Regular Expressions
- regular expressions 101: ์ ๊ท์ ํ ์คํธ ๊ฒธ ์ฝ๋ ๊ณต์ ์ฌ์ดํธ. (๊ทผ๋ฐ ์ 101์ผ๊น)
- RegExr: ์ ๊ท์ ํ ์คํธ ์ฌ์ดํธ
- REGEXPER: ์ ๊ท์์ (๋๋ฆ)์ด์๊ฒ ์ค๋ช
ํด์ค. ์๋ด์์ผ๋ก
https://regexper.com/#^M[^iI]*%3F[iI][^iI]*%3F%24
URL์ ์ ๊ท์์ ๋๋ ค๋ฃ๋๊ฒ ํน์ง - [^grex$](https://pemistahl.github.io/grex-js/): ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ฉด ์ ๊ท์์ ๋ง๋ค์ด์ค
์์กด์ฑ ๊ด๋ฆฌ(๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น/์กฐํ/์ญ์ )
- Chocolatey: Windows OS์ฉ ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ. NuGet ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๋ค ํ๋ค. ๋น์ทํ ๊ฒ์ผ๋ก MS ๊ณต์ ๋๊ตฌ์ธ Winget์ด ์๋ค.
- Scoop: Chocolatey๋ณด๋ค ๊ท๋ชจ์ ์ฌ์ฉ์๋ ์ ์ง๋ง, ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๊ฐ ๋งค์ฐ ํ์ฑํ๋์ด ์๋ค๊ณ ํจ.
- uv:
pip
,virtualenv
,pip-tools
๋ฅผ ๋์ฒดํ๋ ํ์ด์ฌ์ ํจํค์ง ๋งค๋์ . ์์กด์ฑ ๊ด๋ฆฌ์ ๊ฐ์ ํ๊ฒฝ ๊ด๋ฆฌ ๋ฑ์ ์ง์ํ๋ค.
SDK Manager
- Node Version Manager: Node.js์ ์ค์น/๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ. ์ฌ๋ฌ ๋ฒ์ ์ Node.js๋ฅผ ์ค์นํ๊ณ ์ง๊ธ ์ฌ์ฉํ๋ ค๋ ๋ฒ์ ์ผ๋ก ์์ฝ๊ฒ ์ ํํ ์ ์๊ฒ ํด์ค๋ค. ํต์นญ nvm
- SDKMAN: nvm์ฒ๋ผ ์ฌ๋ฌ ๋ฒ์ ์ SDK๋ฅผ ์ค์นํ๊ณ ํน์ ๋ฒ์ ์ผ๋ก ์ ํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ SDK ๊ด๋ฆฌ ๋๊ตฌ๋ค. ์ง์ํ๋ SDK๋ก Java, Scala, Groovy, Kotlin, Ceylon, Gradle, Maven ๋ฑ์ด ์๋ค. ๋จ์ ์ผ๋ก, SDKMAN์ ์คํํ๋ ค๋ฉด bash ํ๊ฒฝ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ WSL์ด ์๋๋ฉด ์๋์ฐ์์๋ ์ธ ์ ์์.
JSON ๋๊ตฌ
- โญJSON Placeholder: JSON ์๋ต์ ๋ฐ์์ผํ๋๋ฐ ๋ฐฑ์๋๋ฅผ ๋ง๋ค๊ธฐ ๊ท์ฐฎ์ผ๋ฉด ์ฐ๋ Free Fake JSON API ์๋ฒ
- jsoneditoronline.org: JSON ํธ์ง ๋ฐ ๋ทฐ์ด
- jsonviewer.codeplex.com: JSON ๋ทฐ์ด
4. ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ก ํธ์๋ ํ๋ ์์ํฌ
- Vue: ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #1.
- โญReact: ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #2.
- React Native: ๋ฆฌ์กํธ ๊ธฐ๋ฐ์ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ ํ๋ ์์ํฌ. ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ํ๋๋ก ์๋๋ก์ด๋์ iOS์์ ์๋ํ๋ ์ฑ์ ๋น๋ํ ์ ์๋ค.
- Svelte: ํ๋ก ํธ์๋ ํ๋ ์์ํฌ. ๊ฐ๋ณ๊ณ ๋จ์ํ ๊ฒ ํน์ง. ์ผ๋ฐ์ ์ธ ํ๋ ์์ํฌ์ ๋ค๋ฅด๊ฒ ๋ฐํ์ ๋์ ์ปดํ์ผ๋ฌ๋ก ์๋ํ๋ค. ์ด ๋ง์ ๋น๋ ํ์ ๋ณ๋๋ก ๋ถ๋ฌ์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด ์ฑ๋ฅ๊ณผ ๋ก๋ฉ ์๋์์ ์ด์ ์ด ์๋ค๋ ๋ป์ด๋ค.
- Flutter: ๊ตฌ๊ธ์ด ๋ง๋ UI ํดํท(SDK) ๊ฒธ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ ํ๋ ์์ํฌ. ์ง์๋๋ ํ๋ซํผ์ Windows, macOS, ์น์ด๋ค. ์ฌ์ฉ์ธ์ด๋ Dart
- Vite: ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ๋ฅผ ์ํ ๋น๋ ๋๊ตฌ. ๋ฆฌ์กํธ, ๋ทฐ, ์ค๋ฒจํธ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ชจ๋ ์ง์ํ๋ค. ๋น ๋ฅธ ์ฝ๋ ์คํํธ, ํซ ๋ชจ๋ ๊ต์ฒด, ๋น๋ ์ต์ ํ, ํ๋ฌ๊ทธ์ธ ์์คํ ๋ฑ์ด ํน์ง์ด๋ค.
- Gatsby: ๋ฆฌ์กํธ ๊ธฐ๋ฐ์ ์ ์ ์ฌ์ดํธ ์์ฑ(SSG, Static Site Generation) ํ๋ ์์ํฌ. ์คํ ์์ค๋ค.
- โญNext.js: ๋ฆฌ์กํธ ๊ธฐ๋ฐ ํ์คํ ํ๋ ์์ํฌ. SSR, SSG, CSR์ ๋ชจ๋ ์ง์ํ๋ค. ์ฃผ๋ก ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ค.
- โญReact Router: ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ผ์ฐํ ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. 7.x ๋ฒ์ ๋ถํฐ๋ Remix 3์ ํตํฉ๋ ํ๋ ์์ํฌ ๋ชจ๋๋ฅผ ์ง์ํ๋ค.
- โญRemix: ๋ฆฌ์กํธ ๊ธฐ๋ฐ ํ์คํ ์น ํ๋ ์์ํฌ. Next.js๋ณด๋ค ๊ฐ๋ณ๊ณ ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค. Remix๋ ํ์ค ์น API๋ฅผ ํ์ฉํด ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ , Node.js, ์๋ฒ๋ฆฌ์ค ํ๋ซํผ, ํด๋ผ์ฐ๋ ์ฃ์ง ๋ฑ์ ๋ค์ํ ํ๊ฒฝ์ ๋์ผํ ์ฝ๋ ๋ฒ ์ด์ค๋ก ๋ฐฐํฌํ ์ ์๋ค(Next.js๋ Node.js ํ๊ฒฝ์์๋ง ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค). ์ต์ ๋ฒ์ ์ธ Remix 3์ React Router 7์ ํ๋ ์์ํฌ ๋ชจ๋๋ก ํตํฉ๋์์ผ๋, ๋์๋ง์ด ํ์ํ๋ฉด React Router์ ๋ฌธ์๋ฅผ ๋ณผ ๊ฒ.
- Quasar Framework: ๋ทฐ ์ ์ฉ์ธ๋ฏ?
- Vuetify: ๋ทฐ์ฉ ์ปดํฌ๋ํธ ํ๋ ์์ํฌ
๋ฐฑ์๋ ํ๋ ์์ํฌ
- โญNetty: ์๋ฐ ๋คํธ์ํฌ ์ฑ ๊ฐ๋ฐ์ฉ NIO(๋น๋๊ธฐ ์ ์ถ๋ ฅ) ํด๋ผ์ด์ธํธ-์๋ฒ ํ๋ ์์ํฌ
- Spring: ์๋ฐ ๋ฐฑ์๋์ ๋๋ช ์ฌ ๊ฒฉ์ธ ์๋ฐ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ ์์ํฌ
- NestJS: ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ (=API ์๋ฒ) ๊ตฌ์ถ์ ์ํ Node.js ํ๋ ์์ํฌ. ์์กด์ฑ ๊ด๋ฆฌ, ๋ชจ๋ํ, ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง, ์น์์ผ ๋ฑ์ ์ง์ํ๋ค.
- Tiles: ์๋ฐ์์ ์ฌ์ฉํ๋ ํ ํ๋ฆฟ ํ๋ ์์ํฌ. ์ง๊ธ์ retired ์ํ๋ผ์ ์ ๋ฐ์ดํธ๋ ์๋ค.
- SiteMesh: ํ์ผ์ฆ์ ๊ฐ์ JSP ํ ํ๋ฆฟ ํ๋ ์์ํฌ. ์ค๋๋๊ธด ๋ง์ฐฌ๊ฐ์ง๊ธด ํ์ง๋ง ๊ฐ์ฅ ์ต๊ทผ์ ์ผ์โฆ๋๊ฐ?
CSS ํ๋ ์์ํฌ, UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Bootstrap: ๋ฒ์ฉ ํ๋ ์์ํฌ๋ก ๋ถ๋ฅ๋จ
- Bulma: Flexbox ๊ธฐ๋ฐ
- Foundation Framework
- โญTailwind CSS: ๋ฏธ๋ฆฌ ์์ฑ๋ ์คํ์ผ๋ง ํด๋์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ์. ์ ํธ๋ฆฌํฐ ๊ธฐ๋ฐ ํ๋ ์์ํฌ๋ก ๋ถ๋ฅ๋จ
- daisyUI: Tailwind CSS์ ํ๋ฌ๊ทธ์ธ์ผ๋ก, ์์ฃผ ์ฐ๋ ํด๋์ค๋ฅผ ์กฐํฉํด ๋ง๋ ์ปดํฌ๋ํธ ์ธํธ๋ฅผ ์ ๊ณตํ๋ค. ํ ์ผ์๋์กฐ์ฐจ ๊ท์ฐฎ๊ฒ ๋๊ปด์ง ๋ ์ ์ฉํ์ง๋ง, ๋ณต์กํ ์ปค์คํฐ๋ง์ด์ง์ด ํ์ํ ๊ฒฝ์ฐ์ ๋ค์ ๋ถํธํ ์ ์๋ค.
- StyleX: ๋ฉํ(ํ๋ถ)์์ ๋ง๋ฆ. ํ ์ผ์๋ ๊ฒฝ์์๋ผ ํจ. ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ๋ค. ์กฐ๊ฑด๋ถ ์คํ์ผ ์ค์ , ์ปดํ์ผ, ํ์ ์์ ์ฑ(type safe)์ด ํน์ง์ด๋ค. ๋ฆฌ์กํธ ์์ด๋ ์ธ ์ ์๋ ๊ฒ์ผ๋ก ๋ณด์.
- Open Props
- Basscss
- Water.css
- MVP.css
- Materialize CSS
- System.css: ๋ ํธ๋ก ๊ฐฌ์ฑ. ์ ํ ์์คํ OS์ ๋๊ฐ๋ค๊ณ ํ๋ค.
- NES.css: ๋ํ ๋ ์คํ์ผ
- PSone.css: ํ์ค 1 ์คํ์ผ
- 98.css: ์ด๊ฑด ์๋์ฐ 98
- XP.css: ์๋์ฐ XP
- 7.css: ์ด๊ฑด ์๋์ฐ 7
- Bojier: ๋ฉ์ผ์ฉ
- Chota
- Pico.css
- ChakraUI: React ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฐ๊ฒฐํ ๋ชจ๋์
- Mantine: ๋ฆฌ์กํธ์ฉ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Ant Design: ๋ฆฌ์กํธ์ฉ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- NextUI: ๋ฆฌ์กํธ์ฉ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Reach UI: ๋ฆฌ์กํธ์ ๋ทฐ์ฉ UI ์ปดํฌ๋ํธ
- Headless UI: ๋ฆฌ์กํธ์ ๋ทฐ์ฉ UI ์ปดํฌ๋ํธ
- โญshadcn/ui: ๋ฆฌ์กํธ์ฉ UI ์ปดํฌ๋ํธ ์ปฌ๋ ์ . ์์ค ์ฝ๋๋ฅผ ๋ณต์ฌํด ์ปค์คํฐ๋ง์ด์งํ๋ ๋ฐฉ์์ผ๋ก, ์ ํต์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด๊ฐ ์๋ค. Tailwindd CSS์ Radix UI ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๋ค. ์ฌ์ค CSS ํ๋ ์์ํฌ๋ผ๊ธฐ๋ณด๋จ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ๊น๋ค.
- Storybook: ํ๋ก ํธ์๋ ์ํฌ์ต์ด๋ผ๊ณ ํ๋ค(๊ทธ๊ฒ๋ญ์ผ). UI ์ปดํฌ๋ํธ๋ ํ์ด์ง๋ฅผ ๋ง๋ค ๋ ์ด๋ค๋๋ฐ ์์ง ๋ชฒ. ๊ทผ๋ฐ ๊ฐ๊ธ์ ๋นจ๋ฆฌ ์จ๋ณด๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ์ ๋๋์ ์ธ ๋๋
- component.gallery: CSS ํ๋ ์์ํฌ์ ๋์์ธ ์์คํ ๊ฐ์ ๊ฒ์ ๋ชจ์๋์ ์ฌ์ดํธ
- Material UI: ๋ฆฌ์กํธ์ฉ UI ์ปดํฌ๋ํธ ๋ชจ์
- @mdi/svg: MDI(Material Design Icons) ํ๋ก์ ํธ์ SVG ์์ด์ฝ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๋จ๋ ๊ธฐ๋ฅ์ ํ์ํ ์์ด์ฝ์ svg๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ ์๋ค. (์๋ง๋?)
- Vitebook
JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Moment.js: ๋ ์ง์ ์๊ฐ์ ๋ค๋ฃจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #1. ํฌ๋งคํฐ๊ฐ ํ์ํ๋ฉด ์ด๊ฑธ ์ฐ์
- โญDay.js: ๋ ์ง์ ์๊ฐ์ ๋ค๋ฃจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #2. ํฌ๋งคํฐ ์ง์ํจ. MUI์ Date picker์ ์ ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
- Lodash: ๋ชจ๋ ์์คํ ์ ์ง์ํ๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ฑ๋ฅ ํฅ์์ ์ํด ์ฐ์ธ๋ค. ๋ํ์ ์ผ๋ก lodash.debounce๊ฐ ์์.
- babel: ์ผ์ข ์ ์ปดํ์ผ๋ฌ(?). ์์ฑํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ์ต์ ๋ฌธ๋ฒ๊ณผ ๊ธฐ๋ฅ์ ๊ตฌ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ๋ ํ๊ฒฝ์์ ์คํ๋ ์ ์๋๋ก ๋ณํํด ์ค๋ค.
- Immer: ๋ถ๋ณ์ฑ์ ์ ์งํ๋ฉด์ ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ์์ ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๋ฆฌ์กํธ์์ ์ํ๊ฐ์ด ๊ฐ์ฒด์ผ ๋ ํ์ฉํ๊ธฐ ์ข๋ค. ์ ๊ณต๋ draft๋ฅผ ์ง์ ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋๋ฐ, ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ณต์ ํ๋๋ก ์ต์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด ์ ์ฒด์ ๊น์ ๋ณต์ ์ฉ์ผ๋ก๋ ์ ํฉํ์ง ์๋ค.
- sharp: ๊ณ ์ฑ๋ฅ์ ์ด๋ฏธ์ง ์ฒ๋ฆฌ Node.js ํจํค์ง. ์ด๋ฏธ์ง ์ต์ ํ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ , ํฌ๋งท ๋ณํ, ์๋ฅด๊ธฐ, ํ์ , ๋ฐ์ , ํํฐ ์ ์ฉ ๋ฑ.
- Execa: Node.js ํ๊ฒฝ์์ ์ธ๋ถ ๋ช
๋ น์ด๋ฅผ ์คํํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ก์ธ์ค ์คํ ํจํค์ง.
child_process
๋ชจ๋์ ๊ฐ์ ๋ ๋์์ผ๋ก, ๋ ๋์ API๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ช ๋ น์ด ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ๋ค๋ฃจ๊ณ , ๋น๋๊ธฐ ์์ ๊ณผ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฑ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค. - Puppeteer: Google์์ ๊ฐ๋ฐํ ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ์ ์ด Node.js ํจํค์ง, Chrome ๋๋ Chromium ๋ธ๋ผ์ฐ์ ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ดํ ์ ์๊ฒ ํด์ค๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ํํ๊ฑฐ๋ ์น ์คํฌ๋ํ, UI ํ ์คํธ, PDF ์์ฑ, ์คํฌ๋ฆฐ์ท ์ฐ๊ธฐ, ์ฑ๋ฅ ์ธก์ ๋ฑ์ ์์ ์ ์ํํ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํค๋๋ฆฌ์ค ๋ชจ๋(๋ธ๋ผ์ฐ์ UI ์์ด ์คํ)๋ก ์๋ํ์ง๋ง, ํค๋ ๋ชจ๋๋ก ์ค์ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋์ ์์ ์ ์คํํ ์๋ ์๋ค.
- fullPage.js: ์ด๋ค ๊ฒ์์ ์ด๋ฒคํธ ํ์ด์ง์์ ์ค์ด์จ ๊ฑฐ. ์ ์ฒด ํ๋ฉด ์คํฌ๋กค ์น ์ฌ์ดํธ(๋จ์ผ ํ์ด์ง ์น ์ฌ์ดํธ ๋๋ ๋จ์ผ ํ์ด์ง ์ฌ์ดํธ๋ผ๊ณ ๋ ํจ)๋ฅผ ๋ง๋ค๊ณ ์ฌ์ดํธ ์น์ ๋ด์ ๊ฐ๋ก ๋ฐฉํฅ ์ฌ๋ผ์ด๋๋ฅผ ์ถ๊ฐํ๋ ๊ฐ๋จํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ๋คโฆ๋๋ฐ ์ฌ์ค ๋ญ์ง ์ ๋ชฒ.
- Dexie.js: ๋ธ๋ผ์ฐ์ ์ IndexedDB๋ฅผ ๋ค๋ฃจ๋ ์๋ ํํฐ ์ค ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. Promise ๊ธฐ๋ฐ API๋ฅผ ์ ๊ณตํ๋ค.
- pug: Node.js ๊ธฐ๋ฐ ํ ํ๋ฆฟ ์์ง. HTML์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋งํ ๋ ์ฌ์ฉํ๋ค. ์์ ์ด๋ฆ์ Jade
- json-server: JSON ํ์ผ๋ง์ผ๋ก API ์๋ฒ๋ฅผ ์ ๊ณตํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ fake API server ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
- โญlive-server: ๋ก์ปฌ ์ ์ฉ ์น ์๋ฒ๊ฐ ํ์ํ ๋ ์ค์นํ๋ ํจํค์ง. ํ์ด์ง ์๋ก๊ณ ์นจ์ ์๋์ผ๋ก ํด์ฃผ๋ live reload ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ index ํ์ผ์ด ํ์ ์์ด์ ํธํ๋ค.
- โญserve: ๋น ๋ฅด๊ณ ๊ฐ๋ฒผ์ด ์ ์ ํ์ผ ์ ๊ณต์ฉ ์น ์๋ฒ. Live reload ๊ธฐ๋ฅ์ ์์ผ๋ฉฐ, ํ๋ก๋์ ํ๊ฒฝ์ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
React ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Million: ๋ฆฌ์กํธ๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ค๋ค๊ณ ํจ. (๋ฌด๋ ค 70%)
- Redux: ๋ฆฌ๋์ค. ๋ฆฌ์กํธ์ฉ ์ํ(reactive state) ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #1. ๋ชจ๋ ์ํ ๋ณํ๊ฐ ์ค์์์ ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ์์ธก๊ณผ ๋๋ฒ๊น ๋ฑ ์ ์ง๋ณด์์ ๋์์ด ๋๋ค๊ณ ํ๋ค. ๋ฆฌ์กํธ์์๋ ๋ณต์กํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ปดํฌ๋ํธ๋ค ์ฌ์ด์์ state์ ๋ณํ๋ฅผ ์ ๋ฌํ ๋ props drilling์ด๋ผ ๋ถ๋ฆฌ๋ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ด ํ์ํ๋ฐ, ๋ฆฌ๋์ค๋ ์ด๋ฌํ ์์ ์ ๊ฐ์ํํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ๊ทธ๋ฐ๋ฐ ๋ฌธ๋ฒ์ด ๋๋ฌด ๋ณต์กํ ํ์ธ์ง ์ธ๊ธฐ๊ฐ ์ ์ ์๋คํด์ง๋ค๊ณ โฆ
- โญzustand: ๋ฆฌ์กํธ์ฉ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #2. ๋ฆฌ๋์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก props drilling ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ณ ์ํ๋ฅผ ์ ์ญ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค. ๋ฆฌ๋์ค๋ณด๋ค ์ฝ๋ ์์ฑ์ด ๊ฐ๊ฒฐํ๋ค.
- recoiljs: ๋ฆฌ์กํธ์ฉ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #3
- Jotai: ๋ฆฌ์กํธ์ฉ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ #4
- React Hook Form: ์ ๋ ฅ ํผ์ ์ฝ๊ฒ ๋ค๋ฃจ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ฐ๊ธฐ ์ข ๋ณต์กํ๊ธด ํ๋ฐ ์ฑํผํฐ๊ฐ ์๊พธ ์ข๋ค๊ณ ๋ค์ด๋.
- useHooks: ๋ฆฌ์กํธ ํ ๋ชจ์ #1. ๋ฆฌ์กํธ ๊ฐ๋ฐ์์ ์์ฃผ ๋ฐ๋ณต๋๋ ๊ธฐ๋ณธ์ ์ธ ๋ก์ง(ํด๋ฆฝ๋ณด๋ ๋ณต์ฌ, ๋๋ฐ์ด์ค, ๋ก์ปฌ ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ ๋ฑ)์ ์ปค์คํ ํ ํํ๋ก ๋ชจ์๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ์๋์ react-use์ ๋นํด ๋น๊ต์ ๊ฐ๋จํ๊ณ ํ์์ ์ธ ํ ์์ฃผ๋ก ๋ชจ์์ ธ์๋ค. usehooks.com๋ ์๋ ๋ฆฌ์กํธ์ ์ปค์คํ ํ ์ ์ง์ ๋ง๋ค์ด๋ณด๋ฉฐ ํ์ตํ ์ ์๋๋ก ์์์ ๊ฐ๋ ์ ์ค๋ช ํ๋ ํํ ๋ฆฌ์ผ ์ฌ์ดํธ์์.
- react-use: ๋ฆฌ์กํธ ํ ๋ชจ์ #2. ์ด ํจํค์ง๋ ๋ฆฌ์กํธ ๊ฐ๋ฐ์์ ์์ฃผ ๋ฐ๋ณต๋๋ ๋ก์ง(๋ธ๋ผ์ฐ์ API ์ฐ๋, ์ํ ๊ด๋ฆฌ, UI ์ํธ์์ฉ ๋ฑ)์ ํ ํํ๋ก ๋ชจ์๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. useHooks ๋ณด๋ค ๋ฐฉ๋ํ๊ณ ํญ ๋์ ํ ๋ค์ ์ ๊ณตํ๋ค.
- โญTanStack Query: ๋ฐ์ดํฐ ํ์นญ, ์บ์ฑ, ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ๋คํธ์ํฌ ์์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํด ์ฃผ๋ '๋ฐ์ดํฐ ์ํ ๊ด๋ฆฌ' ์๋ฃจ์ ์ด๋ผ ์ค๋ช ํ๋ ํจ. ์์ ์ด๋ฆ์ React Query์๋ค.
- โญSWR: ๋ฐ์ดํฐ ํ์นญ๊ณผ ์บ์ฑ์ ๊ฐํธํ ์ฒ๋ฆฌํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. Vercel์ ๋ง๋ฆ.
Vue ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Pinia: ๋ทฐ์์ ๊ณต์์ผ๋ก ์ง์ํ๋ ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
๋ฒ๋ค๋ฌ
- webpack
- Browserify
- rollup.jshttps://rollupjs.org/
- Parcel
UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Air Datepicker: ํ๋ก ํธ์๋์ฉ ๋ฌ๋ ฅ ์ปดํฌ๋ํธ. ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๋ฉฐ, ์ธ์ด ๊ธฐ๋ณธ๊ฐ์ด ๋ฌ์์์ด์ธ ๊ฑธ ๋ณด๋ ๋ฌ์์์ฐ์ธ ๋ชจ์
- Tom Select: ์ ๋ ํธ๋ฐ์ค. ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๋ค.
- AG Grid: ์ฃผ๋ณ ์ฌ๋์ด ์ถ์ฒํ ์ ๋ฃ ๊ทธ๋ฆฌ๋
- jqxgrid
- Toast UI Grid: ์ค์ฌ์ TUI Grid. NHN์์ ๋ง๋ค์๊ณ MIT ๋ผ์ด์ ์ค์ ์คํ ์์ค ๊ทธ๋ฆฌ๋. ๊ฐ๋ณ๊ฒ ์ฐ๊ธฐ ์ข์ง๋ง ๊นํ๋ธ ๋์์ด ์ข ๋ง์ด ๋๋ฆฌ๋ค.
- Fontello: ์์ด์ฝ์ ํฐํธ๋ก ๊ตฌํํ ๋ ์. ์ฌ์ดํธ์์ ์ ํํ ์์ด์ฝ๋ง ๋ค์ด๋ก๋ํ ์ ์์.
- Reveal.js: HTML๋ก ๋ง๋๋ PPT
5. ์ธํ๋ผ, ๋ฐฐํฌ
Web server/WAS
- Apache HTTP Server: ๊ฒ์์ผ๋ก ๋ค์ด๋ก๋ ๋งํฌ ์ฐพ๊ธฐ ํ๋ฌ.
PaaS (Platform as a Service)
PaaS ์ค์ ์ ๋ช ํ ๊ฒ๋ค์ ๋์ฒด๋ก ์น ์ฑ ์์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ๋์ ๋น๋์ ๋ฐฐํฌ๋ฅผ ํด์ฃผ๋ ํด๋ผ์ฐ๋ ์๋น์ค๋ค์ด๋ค.
- Heroku: ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๋ฅผ ์ํ PaaS ์๋น์ค. ์ด๋ฐ์ ์์๋ค๋ ์ผ๋ถ ๋ฌด๋ฃ ์ ์ฑ (์ฑ 5๊ฐ๊น์ง ๋ฌด๋ฃ)์ ์์ด์ง ๋ชจ์์ด๋ค. ๋ค์ ๋ชฉ๋ก์ ์ถ์ฒ ๋ฐ์ ๋์ฒด์ ๋ค: Koyeb, Fly.io, Northflank
- Kubernetes: ํต์นญ K8s, ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ๊ธฐ ์ํ ์คํ ์์ค ํ๋ซํผ์ด๋ค. ๊ธฐ์กด PaaS ๋ฒ์ฃผ์ ๋น์ทํ์ง๋ง ๋ค๋ฅด๋ค๊ณ ํ๋ค. ๊ณต์ ๋ฌธ์ ๋งํฌ. "์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ, ๊ด๋ฆฌ, ํ์ฅํ ๋ ์๋ฐ๋๋ ๋ค์์ ์๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ ์คํ ์์ค ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ํ๋ซํผ"์ด๋ผ ์๊ฐ๋๋ค.
- cloudtype: ์ต์ค๋์ด ์๋ ค์ค. ์์จ๋ด
- smolsite: ์ค๋ชฐ์ฌ์ดํธ, ZIP์ผ๋ก ์์ถํด์ ์ ๋ก๋ํ๋ฉด ๋ฌด๋ฃ๋ก ํธ์คํ ํด์ค
- Vercel: ํ๋ก ํธ์๋์ฉ ํด๋ผ์ฐ๋ ํ๋ซํผ. Next.js์ ๊ฐ๋ฐ์ฌ์ด๊ธฐ๋ ํ๋ค. ์ ์ ์ฌ์ดํธ์ Jamstack ์ดํคํ ์ฒ์ ์ต์ ํ๋์ด ์๋ค๊ณ ํ๋ค.
- โญNetlify: ์ ์ ์น์ฌ์ดํธ ๋ฐ ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ํ๋ซํผ. ์น ์ฑ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ฃผ์ ํน์ง์ผ๋ก ์๋ ๋น๋ ๋ฐ ๋ฐฐํฌ, ์๋ฒ๋ฆฌ์ค, ๊ธ๋ก๋ฒ CDN, ์ปค์คํ ๋๋ฉ์ธ, ๋ฌด๋ฃ SSL ์ธ์ฆ์ ๋ฑ์ด ์๋ค. ๋ญ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง JAMstack(?) ์ํคํ ์ฒ์ ์ ๋ง๋๋ค๊ณ ํจ. ๋ฌด๋ฃ ํ๋์์ ์ 100GB์ ํธ๋ํฝ ์ ํ์ด ์๋ค.
IaaS (Infrastructure as a Service)
์ธํ๋ผ๋ง ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์๋น์ค.
- AWS: ์๋ง์กด์ the AWS. ์ ํ์ ์ธ ๋ฌด๋ฃ ํฐ์ด๋ฅผ ์ ๊ณตํจ
- Google Cloud Platform (GCP)
- Azure
- Oracle Cloud Infrastructure (OCI): ์ค๋ผํด OCI. ์๋ค๋ ๋ฌด๋ฃ ํฐ์ด๊ฐ ์์
- Pulumi: ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ํด๋ผ์ฐ๋ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ IaC ์๋น์ค. ๊ฐ์ธ ์ฉ๋๋ ๋ฌด๋ฃ(2023-09-13)
โน๏ธ IaC(Infrastructure as Code): ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ํ๋ก์ธ์ค๊ฐ ์๋ ์๋์ผ๋ก ์ธํ๋ผ๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ๋ก ์ ์ผ์ข
BaaS (Backend as a Service)
BaaS๋ ๋ฐฑ์๋์ ์ ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์๋น์ค๋ฅผ ์๋ฏธํจ.
- Firebase: ํ์ด์ด๋ฒ ์ด์ค
- Supabase: PostgreSQL ๊ธฐ๋ฐ์ ๋ฐฑ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ BaaS ํ๋ซํผ. ์ธ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ ์ ์ฅ์, ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ ๋ฑ์ ์ ๊ณตํ๋ค.
- PocketBase: ์คํ ์์ค ๋ฐฑ์๋ ์๋น์ค #2. ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ธ์ฆ, ํ์ผ ์ ์ฅ์, ์ด๋๋ฏผ ๋์๋ณด๋๋ฅผ ํ์ผ ํ๋๋ก ๋ง๋ค์ด์ค๋ค. ๋ค๋ฅธ ์๋น์ค์ ๋ค๋ฅด๊ฒ ํด๋ผ์ฐ๋๊ฐ ์๋๋ผ ์๋ฒ๋ฅผ ์ง์ ๊ตฌ์ถํ๋ ๋ฐฉ์์ด๋ค.
CDN
- cdnjs: Cloudflare์ ์ํด ํธ์คํ ๋๋ ๋ฌด๋ฃ ์คํ ์์ค CDN
- JSDELIVR: ์ญ์ ๋ฌด๋ฃ CDN. npm๊ณผ GitHub์ ์ต์ ํ๋์ด ์๋ค๊ณ ํ๋ค.
- UNPKG: npm์ผ๋ก ๋ฐฐํฌ๋ ํจํค์ง๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ CDN.
unpkg.com/react@16.7.0/umd/react.production.min.js
์๋ฐ์์ผ๋ก ์
ํธ์คํ , ํฐ๋๋ง
- ngrok: ๋ก์ปฌ ๊ตฌ๋ ์๋ฒ(localhost)๋ฅผ ์ธ๋ถ์์ ์ ์ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ก์ปฌ ํฐ๋๋ง ๋๊ตฌ. HTTPS ํ๋กํ ์ฝ๋ ์ง์ํ๋ค. ์๋์ฐ์์ chocolatey๋ก ์ค์นํ๊ณ , ๋ณ๋๋ก ๋ฐ๊ธ ๋ฐ์ ํ ํฐ์
ngrok config add-authtoken MY_TOKEN
๋ช ๋ น์ผ๋ก ๋ฑ๋กํ ๋คngrok http http://localhost:8080
๋ช ๋ น์ผ๋ก ๋ก์ปฌ ์๋ฒ์ ์ฐ๊ฒฐํ๋ ์์ผ๋ก ๊ตฌ๋ํ๋ค. expo๋ ํฐ๋๋ง ์ต์ ์ ์ํด ngrok์ ๋ด์ฅํ๊ณ ์๊ธฐ๋ ํ๋ค.
ํ๋ก์ธ์ค ๋งค๋์
- PM2: Node.js ์ฑ์ ์ด์ํ๋๋ฐ ์์ฃผ ์ฐ์ด๋ ํ๋ก์ธ์ค ๋งค๋์ . ์๋ ์ฌ์์, ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๋ชจ๋ํฐ๋ง, ๋ก๊ทธ ๊ด๋ฆฌ, ๋ฌด์ค๋ค ๋ฐฐํฌ(Zero downtime deployment) ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ฉ์์ง ๋ธ๋ก์ปค(๋ฉ์์ง ํ ์์คํ )
- Apache Kafka: ์นดํ์นด. ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์ด ์ค์นผ๋ผ๋ก ๊ฐ๋ฐํ ์คํ ์์ค ๋ถ์ฐ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ. '๋ฉ์์ง ๋ธ๋ก์ปค ํ๋ก์ ํธ' ํน์ '๋ถ์ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ'์ผ๋ก ์๊ฐ๋๋ค. ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๊ธฐํ ์์ ์ด๋, ๋น๋๊ธฐ๋ก ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํ๋ค(๋ฐ์ดํฐ ์ ์ถ๋ ฅ๋ ์ฌ๊ธฐ์ ํด๋นํจ). ์์ด์ ํธ๋ฅผ ์ค์นํ๋ ๋ฐฉ์์ด๋ผ ์นด๋๋ผ.
- RabbitMQ: MQTT, AMQP๋ฅผ ๊ตฌํํ ์คํ ์์ค ๋ฉ์์ง ๋ธ๋ก์ปค. Erlang์ผ๋ก ๋ง๋ค์ด์ก๋ค(์ผ๋ญ?). ์ฌ์ฉ์ ์์ฒญ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ, ์ฑ ๊ฐ ๋ฉ์์ง ๊ตํ, ๋ถ์ฐ ์์คํ ์์์ ๋ฉ์์ง ๋ธ๋ก์ปค๋ง ๋ฑ์ ํ์ฉ๋๋ค.
6. ๋ฐ์ดํฐ๋ฒ ์ด์ค
DBMS
- โญSQLite: ์คํ ์์ค RDBMS #1. ๋งค์ฐ ๊ฐ๋ฒผ์์ ๋ณดํต ์๋ฒ๊ฐ ์๋ ์ํํธ์จ์ด์ ๋ด์ฅ์ํค๋ ์๋ฒ ๋๋์ฉ์ผ๋ก ์ฐ์ธ๋ค. ACID(Atomicity, Consistency, Isolation, Durability) ํน์ฑ์ ์ค์ํ๋ ๊ธฐ๋ฅ๊ณผ ํธ๋์ญ์ ์ ์ง์ํ๋ค. ์์คํ ์ด ๋งค์ฐ ์์ ์ ์ด๋ผ ํ๋ก์์ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒ ์๋๋ผ๋ฉด ์๋ฒ์ฉ์ผ๋ก ์จ๋ ๋๋ค๊ณ ํ๋ ์ฌ๋๋ ์๋ค. ์์คํ์๋ผ์ดํธ ํน์ ์ํ๋ผ์ดํธ๋ผ๊ณ ์ฝ๋๋ค. ๊ฒฝ๋ DB๋ผ์ SQL ํ์ค ๊ธฐ๋ฅ์ด ์ผ๋ถ ๋น ์ ธ์๊ฑฐ๋ ์ ํ์ ์ผ๋ก ์ ๊ณตํ๋ค. ์๋ฅผ ๋ค์ด ์ธ๋ํค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์๊ณ ์ฌ์ฉ ์ ํ์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก์์ ๋ ๋ฏธ์ง์, ํธ๋ฆฌ๊ฑฐ์ ์๋์ฐ ํจ์ ๋ฑ์ ๋ถ๋ถ์ ์ผ๋ก ์ง์ํ๋ค. ๋์์ฑ ์ ์ด์ ๊ฒฉ๋ฆฌ ์์ค๋ ๋ค๋ฅธ DBMS๋งํผ ์ธ๋ฐํ์ง ์์ผ๋ฉฐ ์ฌ๋ฌ ์ฌ์ฉ์์ ๋์ ์ฐ๊ธฐ ์ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ๋ฐ๋ผ์ SQLite๋ฅผ ์๋ฒ์์ ์ฌ์ฉํ๋ค๋ฉด ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก๋ง ์ค๊ณํ๊ณ , ์ฐ๊ธฐ๋ ๋ค๋ฅธ ์๋จ์ ๋ง๋ จํ ๊ฒ. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒดํฌ์ฌ์ ์ํํ์ง ์๊ธฐ ๋๋ฌธ์, ๋์คํฌ ์์์ผ๋ก ์ธํ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ์ง ์๋๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํ๋ค.
- โญPostgreSQL: ์คํ ์์ค RDBMS #2. SQL ํ์ค์ ๋์ ์์ค์ผ๋ก ์ค์ํ๋ฉฐ ACID์ ํธ๋์ญ์ ์ ์ง์ํ๋ค. JSON์ด๋ XML ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๊ทธ๋๋ก ์ ์ฅํ ์ ์๊ณ , ํ๋ฌ๊ทธ์ธ๊ณผ ํ์ฅ ๋ชจ๋์ ํตํด ์ฌ์ฉ์ ์ ์ ํจ์๋, ๋ฐ์ดํฐ ํ์ , ์ธ๋ฑ์ค ๋ฐฉ์ ๋ฑ์ ์ถ๊ฐํ ์ ์๋ค๋ ์ ์ด ๊ธฐ์กด RDBMS๋ค๊ณผ ๋ค๋ฅด๋ค. ์๋ฅผ ๋ค์ด PGMQ ํ์ฅ์ ์ค์นํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฉ์์ง ํ๋ฅผ ๋ณต์กํ ๊ตฌ์ฑ ์์ด ๋จ์ผ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ ์ ์๋ค.
- โญRedis: ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ๊ฐ์ฅ ์ธ์ง๋ ๋์. ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ ์๋๊ฐ ๋น ๋ฅธ๊ฒ ํน์ง์ด๋ฉฐ ๋์คํฌ ๋ฐฑ์ ๊ธฐ๋ฅ๋ ์ ๊ณตํจ.
- SwayDB: ๋ ๋์ค๊ฐ์ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค. ๋ ๋์ค์ฒ๋ผ ์๋ฒ์ฉ์ ์๋๊ณ ์๋ฒ ๋๋๋ก ์ฐ์ด๋ ๋ชจ์?
DBMS Tool
- DBeaver: ๋ฒค๋ ์๊ฐ๋ฆฌ๋ ๋๊ตฌ. ์ดํด๋ฆฝ์ค์ ๊ฐ์ ํ๋ ์์ํฌ๋ก ์ถ์ .
- QueryBox: ๋ฒค๋ ๊ฐ๋ฆฌ์ง ์๊ณ ์ ์ํ ์ ์๋ ๊ตญ์ฐ ์ฑ. ๊ธฐ์ ์ฉ์ ์ ๋ฃ.
- Flyway: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ. ๋ง๊ตฌ์ก์ด๋ก ํค์ง์ด๋์ ๋ฐ์ดํฐ๋ ์ํ๋ ์์ ์ผ๋ก ๋๋๋ฆฌ๋ ๊ธฐ๋ฅ ๋ฑ์ ์ ๊ณตํ๋ค. ๊ฐ๋ฐ๊ณผ ํ ์คํธ๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ์ ๋งค์ฐ ์ธ๋งํ ์คํ ์์ค ๋๊ตฌ.
- โญDataGrip: IntelliJ IDEA Ultimate ํจํค์ง์ ํฌํจ๋ ์ ํ. ์ฑ๋ฅ์ ๋ ๊ฐ ํ๋ค.
ERD
- dbdiagram.io: ๋ฐ์ดํฐ๋ฒ ์ด์ค ERD ์ ์ฉ. ์น ๋ฒ์ ๋ง ์๊ธด ํ์ง๋ง ์ธ๋งํจ. ๋ณ๋์ ์คํค๋ง ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๊ฑด ์์ข์.
- โญerd-editor: VSCode์์ ์ฌ์ฉํ๊ธฐ ์ข์ ๋ฌด๋ฃ ERD ์๋ํฐ. IntelliJ์ ์น ๋ฒ์ ๋ ์ง์ํ๋ค.
7. ํ ์คํธ, ํ์ง ๊ด๋ฆฌ
์ ๋ ํ ์คํธ ํ๋ ์์ํฌ
- JUnit: ์๋ฐ ํ ์คํ ํ๋ ์์ํฌ. JUnit Platform + JUnit Jupiter + JUnit Vintage ์ธ ๊ฐ๋ฅผ ํฉ์น JUnit 5 ๋ฒ์ ์ด ๋์์. (2023-02-15)
- AssertJ Core: ํ ์คํธ์ฉ ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. Spring boot starter ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ผ ์๋ค. (์ฌ์ค JUnit๋ ๊ฐ์ด ์์) ๋ค๋ฆฌ๋ ๋ง๋ก๋ ์๊ฒ ๋ ์ข๋ค๊ณ ํจ.
- Mocha: ์ค๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํ ํ๋ ์์ํฌ #1. ์ดํ ๋ชจ์นด
- Chai: ์๋ฐ์คํฌ๋ฆฝํธ์ฉ Assertion ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๊ฐ๋ ์ฑ ์ข๊ณ ์ ์ฐํ ๋ฌธ๋ฒ์ ์ ๊ณตํ๋ค. ๋ณดํต ๋ชจ์นด์ ๊ฐ์ด ์ด๋ค.
- Jest: ๋ฆฌ์กํธ ํ๋ก์ ํธ์์ ๋ง์ด ์ฌ์ฉํ๋ ํ ์คํ ํ๋ ์์ํฌ. Facebook์์ ๊ฐ๋ฐํ๋ค. ์ง๊ธ์ OpenJS ์ฌ๋จ์์ ๊ด๋ฆฌํ๋ ๋ชจ์.
- โญVitest: Vite ์ํ๊ณ์ ํ ์คํ ํ๋ ์์ํฌ. Vite์์ ์ฌ์ด ํตํฉ, ๋น ๋ฅธ ์คํ ์๋๊ฐ ํน์ง. ESM์ ์ง์ํ๋ค.
ํ ์คํธ ๋๊ตฌ
- postman: HTTP Request/Response ํ ์คํธ
- Selenium: ๋์ ์น ์ฑ(ํ์ด์ง ๋ก๋ฉ ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฑ์ ์ํด ๋์ ์ผ๋ก ๊ตฌ์ฑ์ด ๋ณ๊ฒฝ๋๋ ์ฌ์ดํธ) ํ ์คํธ ํน์ ํฌ๋กค๋ง์ ์ฌ์ฉ๋๋ ๋๊ตฌ๋ค.
8. ์ธํ๋ผ ๋ชจ๋ํฐ๋ง, ์ฑ๋ฅ ๋ถ์
APM(Application Performance Management), ํ๋กํ์ผ๋ง
ํต์นญ ๋ชจ๋ํฐ๋ง ๋๊ตฌ ๋ชจ์. ์๋ค๋ค์ ์ฌ๋งํ๋ฉด ์์ฉ์ด๋ค.
- Datadog: ๋ฐ์ดํฐ๋ . ์ธํ๋ผ ๋ชจ๋ํฐ๋ง. APM ๊ธฐ๋ฅ๋ ์์ง๋ง ์์คํ ์ฑ๋ฅ ์งํ ๋ถ์ ๊ธฐ๋ฅ์ด ์ฃผ๋ ฅ์ด๋ค. ์ค์นํ์ด ์๋๋ผ ๋ฐ์ดํฐ๋ ์ ์ชฝ์์ ๊ด๋ฆฌํ๋ฉฐ, ๋น์ธ๋ค.
- ์ ๋ํผ: ์๋ฐ์ฑ ๋ชจ๋ํฐ๋ง
- VisualVM: ํ๋กํ์ผ๋ง ๋๊ตฌ#1. ์๋ฐ ์ฑ์ฉ. VM์ ํ๊ฒฝ, CPU์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ๋, ํด๋์ค์ ์ค๋ ๋์ ์ ์ ์จ, CPU/๋ฉ๋ชจ๋ฆฌ/JDBC ํ๋กํ์ผ๋ง ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์คํ ์์ค
- Eclipse Memory Analyzer: ํ๋กํ์ผ๋ง ๋๊ตฌ #2. ์๋ฐ ์ฑ์ฉ. VisualVM๋ณด๋ค ๊ธฐ๋ฅ์ด ์กฐ๊ธ ๋ ๋ง๊ณ ๋์๋ง์ด ์ ๋์ด ์์ด์ ์ฐ๊ธฐ ํธํจ. UI๋ ์ดํด๋ฆฝ์ค ๊ธฐ๋ฐ์. ์คํ ์์ค
- XRebel: ํ๋กํ์ผ๋ง ๋๊ตฌ #3. ์๋ฐ ์น ์ฑ ์ ์ฉ์ด๋ค. ์์ฉ
- JProfiler: ํ๋กํ์ผ๋ง ๋๊ตฌ #4. 10์ผ ๋ฌด๋ฃ. IDE์ ์ฐ๋ํ ์ ์์. ์์ฉ
- YourKit Java Profiler: ํ๋กํ์ผ๋ง ๋๊ตฌ#5. ์ด๊ฒ๋ IDE ์ฐ๋ ์๊ฐ๋ฅ. ๋จ, Java 1.7 ๋ฏธ๋ง์ ํ๊ฒฝ์ ์ง์ํ์ง ์์ผ๋ฉฐ ์์ฉ์ด๋ค.
- Jennifer: APM #2. ์๋ฐ/PHP/๋ท๋ท ์ฑ ๋ชจ๋ํฐ๋ง. ์์ฉ
- WhaTap: APM #3. ์ฑ/์๋ฒ/DB/URL/์ปจํ ์ด๋/์ธํ๋ผ ๋ชจ๋ํฐ๋ง. ์์ฉ์ด๋ฉฐ ํ๊ตญ๊ธฐ์ ์ด๋ผ ํ๊ตญ์ดํ์ ์ ๊ณตํ๋ค.
- โญPinpoint: ์คํ ์์ค APM. ๋ค์ด๋ฒ์์ ๋ง๋ค์๋ค ํจ
- Scouter: ์คํ ์์ค APM. LG CNS๋ ๊ด๋ จ์ด ์๋ ๋ด. ์ด๊ฑฐ ๋ง๋ ์ฌ๋๋ค์ด WhaTap ๋ง๋ค์๋ค๊ณ ํ๋๋โฆ?
๋ฐ์ดํฐ ์๊ฐํ
- Grafana: ๋ฉํธ๋ฆญ/๋ก๊ทธ ์๊ฐํ ๋๊ตฌ. ์คํ ์์ค๋ค. ๋ฉํธ๋ฆญ์ด๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ํ๋ ํ์์คํฌํ๋ฅผ ํฌํจํ ์์น ๋ฐ์ดํฐ๋ผ๊ณ ํ๋ค.
- Kibana: Elastic Stack์ ์ผ๋ถ์ธ ๋ฐ์ดํฐ ์๊ฐํ ๋ฐ ๋ถ์ ๋๊ตฌ. ๋ชจ๋ํฐ๋ง๊ณผ APM ๊ธฐ๋ฅ๋ ์ ๊ณต๋จ.
9. ๋ณด์, ์ธ์ฆ
- Let's Encrypt: ๋น์๋ฆฌ ๋จ์ฒด์ธ ISRG, Internet Security Research Group์์ ์ ๊ณตํ๋ TLS(SSL) ์ธ์ฆ์ ๋ฌด๋ฃ ๋ฐ๊ธ ์ฌ์ดํธ.
- certbot: Let's Encrypt์์ ๋ฐ๊ธํ๋ TLS ์ธ์ฆ์๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ฒ ๋์์ฃผ๋ ์คํ ์์ค ์ํํธ์จ์ด. EFF(Electronic Frontier Foundation)์์ ๋ง๋ค์๊ณ ์ธ์ฆ์ ์๋ ๊ฐฑ์ ๊ฐ์ ์์ ์ ์ง์ํ๋ค.
- HashiCorp Vault: ๋น๋ฐ๋ฒํธ ๊ด๋ฆฌ, ์ํธํ ํค ๊ด๋ฆฌ, ์ ๊ทผ ์ ์ด ๋ฑ์ ํตํฉ ์ ๊ณตํ๋ ์คํ ์์ค. ์ํธํ ํค๋ฅผ ๊ด๋ฆฌํ๋ ์ฉ๋๋ก ์ด๋ค. ํด๋ผ์ฐ๋, ์จํ๋ ๋ฏธ์ค ๋ชจ๋ ์ง์ํ๋ค. ์ํฐํ๋ผ์ด์ฆ ๋ฒ์ ์ ์ ์ฉ ์๋ฒ๊ฐ ์ ๊ณต๋์ง๋ง ๋ฌด๋ฃ ๋ฒ์ ์ ์ง์ ์ค์นํด์ผ ํ๋ค.
10. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด Programming Language
- โญRust: ๊ฐ๋น์ง ์ปฌ๋ ์ (GC)์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ(memory safe)์ ์ถ๊ตฌํ๋ ์ธ์ด #1. ๋ง์ฐฌ๊ฐ์ง๋ก GC๊ฐ ์์ง๋ง memory unsafeํ C์ C++์ ๋์ฒด์ ๋ก ๊ผฝํ๋ค. ์์คํ ํ๋ก๊ทธ๋๋ฐ, ์น ์ด์ ๋ธ๋ฆฌ, ์๋ฒ ๋๋ ์์คํ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ ๋ฒ์ฉ ์ธ์ด๋ค. Mozilla Research์์ ๊ฐ๋ฐํ๋ค.
- Elixir: BEAM(Erlang์ ๊ฐ์๋จธ์ ) ์์์ ์คํ๋๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด. ๋์์ฑ๊ณผ ๋ถ์ฐ ์ฒ๋ฆฌ์ ๊ฐํ๋ฉฐ, ํ๋ก์ธ์ค ๊ฐ์ ๊ฒฉ๋ฆฌ(ํ ํ๋ก์ธ์ค์ ์คํจ๊ฐ ์์คํ ์ ์ฒด์ ์ํฅ์ ์ฃผ์ง ์์)๋ฅผ ํตํ ์์ ์ฑ์ด ํน์ง์ด๋ค. Erlang์ด ์๋ฐ๋ผ๋ฉด Elixir๋ ์ฝํ๋ฆฐ์ ๋น๊ฒฌ๋๋ค. ๋์ค์ฝ๋๋ ์ค์๊ฐ ๋ฉ์์ง ์ฒ๋ฆฌ๋ฅผ Elixir๋ก ๊ตฌํํ๋ค๊ณ ํจ. ๋น๊ฒฐ์ Erlang VM์ด ๊ด๋ฆฌํ๋ Erlang ํ๋ก์ธ์ค(OS์ ํ๋ก์ธ์ค๋ ์ค๋ ๋์ ๋ค๋ฅธ ๊ฐ๋ )์ concurrency ์ง์ ๊ธฐ๋ฅ ๋๋ถ์ด๋ผ๋โฆ
- Erlang: 1980๋ ๋์ ํต์ ์์คํ ๊ตฌ์ถ์ ์ํด ๋ง๋ค์ด์ง ์ธ์ด(๊ทธ๋์ Erlang/OTP, Open Telecom Platform์ด๋ผ ํจ). ์งง์ ์ง์ฐ์๊ฐ, ๊ฒฌ๊ณ ํจ, ๋ด๊ฒฐํจ์ฑ, ๋ถ์ฐ ์์คํ ์ง์ ๋ฑ์ด ํน์ง์ด๋ค. ์๋ฐ์ ์ ์ฌํ๊ฒ ๋ค๋ฅธ ์ธ์ด๊ฐ ์ปดํ์ผํ๋ ๊ฐ์๋จธ์ (Erlang์ VM, BEAM์ด๋ผ ๋ถ๋ฅธ๋ค)์์ ์๋ํ๋ค.
- Ada: GC๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ์ถ๊ตฌํ๋ ์ธ์ด #2. ํญ๊ณต, ๋ฐฉ์, ์ฐ์ฃผ ์ฐ์ ์ฒ๋ผ ๋์ ์์ค์ ์์ ์ฑ๊ณผ ์ ํ์ฑ์ด ์๊ตฌ๋๋ ์์คํ ์์ ์ฐ์ธ๋ค๊ณ ํ๋ค.
- Zig: GC๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ์ถ๊ตฌํ๋ ์ธ์ด #3. ์ ์ค ๊ฐ์ฅ ์ต์ ์ธ์ด๋ค(Ada์ ํ์คํ๋ 1983๋ , Rust์ ์ต์ด ๋ฆด๋ฆฌ์ฆ๊ฐ 2010๋ , Zig๋ 2015๋ ์ ๊ฐ๋ฐ ์์).
- Scala: ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ฒฐํฉํ ๊ฐ๋ฐ ์ธ์ด. ์์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ฐ๋ฐ์ ์ค๋ฌธ์กฐ์ฌ ์ธ์ด๋ณ ํ๊ท ์ฐ๋ด ํญ๋ชฉ์์ ๋ ์์๊ถ์ ์ฐจ์งํ๋ค. ์๋ฐ ๊ธฐ๋ฐ์ด๋ฉฐ JVM์์ ์คํ๋๋ค.
- Kotlin: JVM์์ ์คํ๋๋ ์๋ฐ์ ์ํธ ์ด์ฉ ๊ฐ๋ฅํ ์ธ์ด. ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ฃผ๋ก ์ฐ์ธ๋ค. ๋ค์ดํฐ๋ธ, ์๋ฐ์คํฌ๋ฆฝํธ(?)๊น์ง ์ง์ํ๋ค๊ณ ํ๋ฉฐ ๊ธฐ์กด์ ์๋ฐ ์ฝ๋๋ฅผ ํธํํด์ค์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋ค.
- Apache Groovy: JVM์์ ์๋ํ๋ ๋์ ํ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(? ๊ทธ๊ฒ ๋ญ๋ฐ). ์๋ฐ, ํ์ด์ฌ, ๋ฃจ๋น ๋ฑ์ ์ธ์ด์์ ์ํฅ์ ๋ฐ์๋ค ํ๋ค.
- Go: ํ ๋ ์ธ๊ณ์์ ๊ฐ์ฅ ๋์ ๋ง์ด ๋ฒ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ง๊ณ๋๊ธฐ๋ ํ์ผ๋ฉฐ ๊ฐ๋ฐ ์๋์ ์คํ ์๋ ๋ ๋ค ๋น ๋ฅธ ํ๊ธฐ์ ์ธ ์ธ์ด๋ผ๊ณ ํจ. ์ธ์ด ์์ฒด๊ฐ ๊ฒฝ๋์ด๋ผ ๋ ์ฐ๋๊ฒ๋ง ์ด๋ค๋ ์์ํ ๋จ์ ์ด ์์ง๋ง, ๊ทธ๋งํผ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ตํ ์ ์๋ค๊ณ โฆ
- Dart: ๊ตฌ๊ธ์ด ๋ฉํฐ ํ๋ซํผ ์๋์ ๋ชฉ์ ์ผ๋ก ๋ง๋ ์ธ์ด. ๋ฌธ๋ฒ์ C์ ๋น์ทํ๋ค๊ณ ํจ. ์๋ฐ์ฒ๋ผ DVM(Dart VM) ์์์ ์๋ํ๊ฑฐ๋ ๋ค์ดํฐ๋ธ ์ปดํ์ผ์ ๋ฐ๋ก ํ๋ค.
- โญTypeScript: ํ์ ์คํฌ๋ฆฝํธ. ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํผ์ (superset)์ผ๋ก, ์ด๋ฆ์ฒ๋ผ ์ ์ ๋ฐ์ดํฐ ํ์ ์ด ์ถ๊ฐ๋์ด ์ปดํ์ผ ์๋ฌ ๊ฒ์ถ์ด ๊ฐ๋ฅํ ๊ฒ ๋ํ์ ์ธ ํน์ง์ด๋ค. ์ปดํ์ผ ํ์์ด ์กด์ฌํ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํ๋๋ค.
- Mojo: ํ์ด์ฌ์ ์ํผ์ . ํ์ด์ฌ์ ๋๋ฆฐ ์๋๋ฅผ ๊ฐ์ ํ์ผ๋ฉฐ ์ ์์ค์ ์ ์ด๊ฐ ๊ฐ๋ฅํ ๊ฒ์ด ํน์ง. Python 3.x๋ฅผ ์๋ฒฝํ๊ฒ ํธํํ๋ค.
- Jsonnet: ํ๊ฒฝ ์ค์ ์ฉ ์ธ์ด(A configuration language). ์ค์ง JSON ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ธ์ด๋ก, ๊ธฐ์กด JSON์์ ๋ถ๊ฐ๋ฅํ๋ ๋ณ์ ์ฐธ์กฐ, ์กฐ๊ฑด ๋ถ๊ธฐ, ํจ์, import ๋ฑ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
์ธ์ด ๋ณํ ๋ฐ ๋ถ์
- Figstack: ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ธ์ด๋ก ๋ฒ์ญ, ์์ด๋ก ํด์ค, documentation comments ๋ง๋ค๊ธฐ, ์๊ฐ ๋ณต์ก๋ ๊ณ์ฐ, ์์ฑํ ์ฝ๋ ๊ธฐ๋ฐ ์์ฐ์ด๋ก ์ง๋ฌธ๊น์ง. ์์ง์ ์ชผ๋ ๋๋ฆฐ๊ฒ ํ .
- OneLang.io: ๊ฐ๋ฐ ์ธ์ด ๋ณ๋ ฌ ๋ฒ์ญ๊ธฐ
11. ๋ฐํ์ ํ๊ฒฝ Runtime Environments
- Node.js: ์๋ฒ ์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์
- Deno: Node.js ๊ฐ๋ฐ์๊ฐ ๋ง๋ ์๋ฐ์คํฌ๋ฆฝํธ์ Rust๊ธฐ๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ/ํ์ ์คํฌ๋ฆฝํธ ์ฉ ๋ฐํ์. Node.js ๊ฐ์ ๋ฒ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋จ.
- Bun: Node.js๋ณด๋ค ์ต์ ํ๋ ์ฑ๋ฅ, ๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฑ์ด ๋ชฉํ์ธ ์๋ฒ ์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์. ๋ค๋ฅธ ๋ฐํ์๋ณด๋ค ๋น ๋ฅด๋ค๊ณ ์ฃผ์ฅํ๋ค.
12. ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ
- Electron: ํฌ๋ก์ค ํ๋ซํผ ๋ฐ์คํฌํ ์ฑ ๊ฐ๋ฐ ํ๋ ์์ํฌ. ์คํ ์์ค๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๋ค. VSCode, Atom, Notion desktop ๋ฑ์ด ์ด๊ฑธ๋ก ๋ง๋ค์ด์ง.
- Tauri: ํฌ๋ก์ค ํ๋ซํผ ์ฑ ๊ฐ๋ฐ ํ๋ ์์ํฌ(์๋๋ก์ด๋๋ iOS๋ ๋๋ ๋ชจ์). ์ผ๋ ํธ๋ก ์ ๊ฒฝ์ ๋ชจ๋ธ์ด๋ค. OS์ ๋ค์ดํฐ๋ธ ์น ๋ฐํ์์ ํ์ฉํ๋ฉฐ ๋ฐฑ์๋๋ ๋ฌ์คํธ, ํ๋ก ํธ์๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๋ค. ๋ฆฌ์กํธ๋ ๋ทฐ ๋ฑ์ ๋๋ถ๋ถ์ ํ๋ก ํธ์๋์ฉ ํ๋ ์์ํฌ๋ฅผ ์ง์ํ๋ค. ์ผ๋ ํธ๋ก ๋ณด๋ค ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ, ๋ ๋์ ๋ณด์์ ์ฅ์ ์ผ๋ก ๋ด์ธ์ด๋ค.
13. ๋์์ธ, ๋ค์ด์ด๊ทธ๋จ
๋ค์ด์ด๊ทธ๋จ, UML
- โญeraser: ๋งํฌ๋ค์ด ๋ ธํธ์ ๋๋ก์ ์ฑ์ ํฉ์ฒด์ํจ ์ ๋ฐํ ๋ฌผ๊ฑด. ์์ง๋์ด๋ง ํ์ ์ํ ํ์ดํธ๋ณด๋๋ผ ์๊ฐ๋๋ค. ํค๋ณด๋๋ก ํ๋ก์ฐ ์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ ์์ํ๋ค. Diagram as Code, ์ฝ๋ฉํธ ๊ธฐ๋ฅ ์ง์. ๋ฌด๋ฃ ํ๋ ์ ๊ณต
- Excalidraw: ์น ์ ์ฉ ๋๋ก์ ์ฑ. ๋ฌด๋ฃ ์ฌ์ฉ ๊ฐ๋ฅ. eraser์ ๋นํด ๊ฐ๋ณ๊ฒ ์ฐ๊ธฐ ์ข๋ค.
- Balsamiq: UML, ์์ด์ดํ๋ ์ ๋ฑ์ ์ํ ๋๋ก์ ์ฑ. ์ข์ง๋ง ๋ฌด๋ฃ ํ๋์ด ์๋ ๊ฒ ๋จ์
- StarUML
- Draw.io
- Gliffy
- โญMermaid: ๊ฐ๋จํ ํ ์คํธ ๊ตฌ๋ฌธ์ ์ด์ฉํด ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํด์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ด๋ฐ๊ฑธ Diagram as Code๋ผ๊ณ ํ๋ค. ํ๋ก์ฐ ์ฐจํธ, ๊ฐํธ ์ฐจํธ, ํด๋์ค ๋ค์ด์ด๊ทธ๋จ, ๊น ๊ทธ๋ํ, ์ํ์ค ๋ค์ด์ด๊ทธ๋จ, ํด๋์ค ๋ค์ด์ด๊ทธ๋จ, ERD ๋ฑ์ ์ง์ํ๋ค. ๋ ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์ ํ์ธ.
- chart.xkcd: ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋๋ ์ฐจํธ. ๊ฒฐ๊ณผ๋ฌผ์ svg๋ก ๋์ด. ๋ฐ๋ก ๊ทธ๋ฆฐ ๊ฒ ๊ฐ์ ๋ชจ์์๊ฐ ํน์ง
- โญtree.nathanfriend.com: ํธ๋ฆฌ ๊ตฌ์กฐ์ ํ ์คํธ ๊ธฐ๋ฐ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํด์ฃผ๋ ์ฌ์ดํธ. ์ ๋ ฅํ ๊ฐ์ URL์ ์ฟผ๋ฆฌ์คํธ๋ง์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ ๊ณต์ ๊ฐ ์ฝ๋ค.
๋ง์ธ๋๋งต
์์ด์ดํ๋ ์, ๊ธฐํ
- MockFlow
- Moqups
- Cacoo
- Wireframe.cc
- โญAxure: ๊ธฐํ์/์์ด์ดํ๋ ์ ์์ฑ์ ์ฌ์ฉํ๋ ์ฑ. ๋ฌด๋ฃ ํ๋์ ์๋ค. ๊ฐ๊ฒฉ์ ์ 25๋ฌ๋ฌ(2024-07-11)
๋์์ธ ๋ฆฌ์์ค
- Figma: ์์ฆ(2021-05-03) ๋ฌ๋ค๋ UI ๋์์ธ ๋๊ตฌ. ๊ธฐ๋ณธ์ ๋ฌด๋ฃ๊ณ , ๋-์ถฉ ๋น๊ณต๊ฐ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๋ช ์ด ์ฌ์ฉํ ๋ ์ ๋ฃ์ธ๋ฏ
- ThemeForest: ์ธ์ด, ์์ง, ํ๋ ์์ํฌ ๋ณ ํ ๋ง(HTML๊ณผ CSS ๋ฌถ์. ํ์ํ๋ฉด JS๊น์ง) ํ๋ ์ฌ์ดํธ
- loading.io: ๋ก๋ฉ ์ด๋ฏธ์ง, ํจํด, ํ ์คํธ ๋ฑ์ ๋ฐ์ ์ ์๋ ์ฌ์ดํธ. ๋ฌด๋ฃ๋ฒ์ ์ธ ๊ฒฝ์ฐ ์ ์ ๋๋ฐ์ ๋ชป๋ฐ๊ฟ.
- ๋ฏธ๋ฆฌ์บ๋ฒ์ค: ์์นญ ๋์์ธ ํ๋ซํผ. ํ ํ๋ฆฟ ํ์ฉํ ์ ์๋ ๊ฐํธํ ๋์์ธ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ง์ถค ๋์์ธ ์๋ขฐ๋ ๊ฐ๋ฅํจ.
- Fluent Icons: ๋ง์์ ์คํ ์์ค ์์ด์ฝ ์ ์ฅ์. ๋ง์๊ฐ ๋ง๋ ๊ฑด ์๋. SVG ํน์ PNG๋ก ๋ฐ์ ์ ์๋ค.
- Awesome list of free CSS Generator - DEV Community: CSS ์ฝ๋ ์์ฑ๊ธฐ ๋ชจ์
14. ๋คํธ์ํฌ, ๋ณด์
SSH/ํ ๋ท/FTP ํด๋ผ์ด์ธํธ
์ฌ์ค ์๋์ฐ 10๋ถํฐ๋ Windows Terminal์ด ์์ด์ ์ด๋ฐ ๊ฑฐ ํ์ ์์ง๋งโฆ ๐คญ
- WinSCP
- PuTTY
- Xshell: ๊ฐ์ฅ ์ข์ผ๋ ์ ๋ฃ ๋ผ์ด์ ์ค.
- bitvise: ์๋ฒ ๋ฑ ํ๋์ ๋ถ๋ ์ฉ๋๋ก๋ ์์ฃผ ์ข๋ค. ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ผ๋ ค๋ฉด ๋งค๋ฒ ํ๋กํ๋ค์ ๋ถ๋ฌ์์ผ ํด์ ๋ถํธ.
- MobaXterm: ๋ฌด๋ฃ ์ฑ ์ค์์ ์ฌ๋ฌ ์๋ฒ ๋์ ์ ์ ๊ธฐ๋ฅ์ ๊ทธ๋๋งโฆ
VPN
- OpenVPN GUI: OpenVPN ์ปค๋ฎค๋ํฐ ๋ฒ์ ์ ํด๋ผ์ด์ธํธ ์ฑ. ๊ณต์ ์ฑ์ ์ด๋ฆ์ OpenVPN Connect์ด๋ฉฐ OpenVPN GUI์๋ ๋ค๋ฅด๋ค. VPN ์ค์ ๊ณผ ๊ฐ์ ๋คํธ์ค์์๋ ์ฑ์ ๋ฐ๋ผ ์ฐจ์ด๊ฐ ์์ ์ ์๋ค. ์๋ฅผ ๋ค์ด OpenVPN Connect๋ก ํน์ VPN์ ๋ถ์๋๋ ์ธํฐ๋ท ๋จนํต ํ์์ด ๋ฐ์ํ๋๋ฐ, OpenVPN GUI์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์.
- Surfshark: ์ ์ ๊ตญ๊ฐ ๋ณ์กฐ์ฉ ์ ๋ฃ VPN
ํธ๋ํฝ ์บก์ฒ
- Fiddler: ๋คํธ์ํฌ ๋๋ฒ๊น ๋๊ตฌ. ํํญ์ SSL ์ธ์ฆ์ ๋๋ฌธ์ ๋นก์น ์ ์๋ค. ์ ๋ฃ
- Wirehsark: ํจํท ์ถ์ ๋๊ตฌ.
IP ํ์ธ
- https://icanhazip.com: ๋ด ๊ณต์ธ IP๋ง ํ ์คํธ๋ก ์๋ตํ๋ ์ฌ์ดํธ.
- https://whatismyipaddress.com: ์ ์ํ PC์ IP ๊ด๋ จ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฌ์ดํธ #1. ์์ ์ bot์ด ์์๋๋ฐ ์ฌ๋ผ์ง.
- https://ipinfo.io: ์ ์ํ PC์ IP ๊ด๋ จ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฌ์ดํธ #2
15. ๋ฒ์ ๊ด๋ฆฌ
- โญSublime Merge: Git GUI ํด๋ผ์ด์ธํธ #1. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด๋ฃ ์ฑ์ด๋ฉฐ ๋คํฌ ๋ชจ๋๋ฅผ ์ฐ๊ณ ์ถ์ ๋๋ง ๊ฒฐ์ ํ๋ฉด ๋๋ค. ์๋๊ฐ CLI ์์ค์ผ๋ก ๋น ๋ฅด๊ณ ํค๋ณด๋ ๋จ์ถํค ์ง์์ด ํ๋ฅญํ ํธ.
- Fork: Git GUI ํด๋ผ์ด์ธํธ #2. ๊ฐ๋ณ๊ณ ๊ทธ๋ํ๊ฐ ๋ณด๊ธฐ ์ข์๊ฒ ํน์ง. ๋ฌด๋ฃ์ง๋ง ํ์ ๋ฐฉ์์ผ๋ก ๋ผ์ด์ ์ค ๊ตฌ์ ์ด ๊ฐ๋ฅํ๋ค.
- GitKraken: Git GUI ํด๋ผ์ด์ธํธ #3. ์๋๋ ๋๋ฆฌ์ง๋ง ํธ์์ฑ์ ํ. ์ฌ์ค ์๋ฒ ํน์ ๋น๊ณต๊ฐ ์ ์ฅ์๋ ์ ๋ฃ๋ฒ์ ์ด ์๋๋ฉด ์ฌ์ฉํ ์ ์๋ค. ๐ฉ
- gitui: Mdir(?) ์คํ์ผ์ GUI ์ฑ. ์๋ ๊ฐฌ์ฑ์ด ์ข์ผ๋ฉด ์ธ๋งํ๋ค. ๋จ์ ์ผ๋ก ์ปค๋ฐ ๊ทธ๋ํ ๊ธฐ๋ฅ์ด ์๊ณ , ์ ธ์์ ์ ์ฅ์ ๊ฒฝ๋ก๋ก ์ด๋ํ์ฌ ์คํํ๋ ๋ฐฉ์์ด๋ผ ์ฌ๋ฌ ์ ์ฅ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋ถํธํ๋ค.
- GitHub Desktop: GitHub ๊ณต์ GUI ํด๋ผ์ด์ธํธ. ๋จ์ ์ผ๋ก ์ปค๋ฐ ๊ทธ๋ํ ๊ธฐ๋ฅ์ด ์๋ค.
16. ์ฝ๋ ํ์ด๋ผ์ดํ
- prismjs: ์ฝ๋ ํ์ด๋ผ์ดํ JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ. HTML๋ก ์์ฑ๋ ํ์ด์ง๋ ์ด๋๋ ์ ์ฉํ ์ ์์. ๊นํ๋ธ
- Code Beautify: ์ธ๋ผ์ธ ์ฝ๋ ํ์ด๋ผ์ดํฐ #1. ์ ๋ ฅํ ํ ์คํธ์ CSS๋ฅผ ์ ์ฉํด HTML๋ก ๋ง๋ค์ด์ฃผ๋ ์ฌ์ดํธ. ์ฝ๋ ๋ธ๋ก์ ์ง์ํ์ง ์๋ ๋ฉ์ผ์ด๋ ๊ฒ์ํ์์ ์ฌ์ฉํ๊ธฐ ์ข๋ค.
- Color Scripter: ์ธ๋ผ์ธ ์ฝ๋ ํ์ด๋ผ์ดํฐ #2.
- hilite.me: ์ธ๋ผ์ธ ์ฝ๋ ํ์ด๋ผ์ดํฐ #3
17. ์์ฐ์ฑ, ๊ด๋ฆฌ
์ผ์ , TODO
- โญWorkflowy: ์จ๋ผ์ธ ํ ์ผ ๊ด๋ฆฌ ๋๊ตฌ
- โญClickUp: ์จ๋ผ์ธ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ. ๋ฌด๋ฃ ํ๋๋ ์ธ๋งํ๊ณ ๊ฐํธ ์ฐจํธ๋ฅผ ์ ๊ณตํ๋ค.
- Calendly: ๋ฉ์ผ๋ก ์ผ์ ๋ง์ถ๊ธฐ
- Linear
- Markwhen: Project planning example: ์ฝ๋๋ก ํ๋ก์ ํธ ์ผ์ ํ๋ฅผ ๋ง๋๋ ์ฌ์ดํธ
๋ฉ์ผ ์๋น์ค
- Guerrilla Mail: ์ผํ์ฉ ๋ฉ์ผ ์๋ฒ. 60๋ถ ๋์๋ง ์ ํจํ ๋ฉ์ผ ์ฃผ์๋ฅผ ์ ๊ณต.
- sharklasers.com: ์ผํ์ฉ ๋ฉ์ผ ์๋ฒ #2. ์ด๊ฑด ๊ฝค ์ค๋๊ฐ.
- Firefox Relay: ํํญ ๊ณ์ ์ผ๋ก ์ฌ์ฉํ ๋ฉ์ผ์ ๋ณ์นญ์ ๋ง๋ค ์ ์๊ณ , ํด๋น ๋ณ์นญ์ผ๋ก ๋ฉ์ผ์ด ์ค๋ฉด ํํญ์ด ํฌ์๋ฉ ํด์ค. fใ ์ดํฌ ๋ฉ์ผ์ ์ง์ง์ฒ๋ผ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ.
- Mailgun: ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ฉ์ผ ์ธํ๋ผ ์๋น์ค. ์น API๋ฅผ ํตํด์ ๋ฉ์ผ์ ๋ฐ์กํ ์ ์๋ค. ํ๋ฃจ 100๊ฑด์ ๋ฌด๋ฃ
- stibee: ๋ฉ์ผ ๋ง์ผํ ์๋น์ค. ์ฝ๊ธฐ ์ฌ์ด ๋ฉ์ผ ์์ฑ ์ง์
๊ฒฐ์
- stripe: ๊ฒฐ์ ๋ํ ์น ์ฑ. ํด์ธํ PG์ฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋ ธ์ ๊ณผ ํ๋ธ๋ฒ๋ค์์ ์ฐ๋๋ผ.
- PortOne: 30๋ถ์ด๋ฉด ๋๋ค๋ ํตํฉ ๊ฒฐ์ ์๋น์ค. ์ด ์๋น์ค๋ PG์ PG์ ๊ฐ๊น๋ค(?).
- i'mport: ์์ํฌํธ. ๊ฒฐ์ /๋ณธ์ธ์ธ์ฆ ์ค๊ณ ์๋น์ค. ์๋ฅผ ๋ค๋ฉด ์ผํ๋ชฐ๊ณผ PG์ฌ(ํน์ ์ ์ฉ์กฐํํ์ฌ)์ ์ค๊ฐ์ ์์นํ๋ค๊ณ ๋ณด๋ฉด ๋จ.
18. AI, ๋จธ์ ๋ฌ๋
- ChatGPT: OpenAI ์ฌ์ GPT ๊ธฐ๋ฐ ๋ํ ์ธ์ด ๋ชจ๋ธ #1
- GPTForge: GPT๋ฅผ ํ์ฉํ ์น์ฑ, ํด, ์ฑ ๋ฑ์ ๋ชจ์๋์ ์ฌ์ดํธ. ๋๊ฐ ๋ฐ๋ก ๋ชจ์ผ๋ ๊ฒ ์๋๋ผ ๋ง๋ ์ฌ๋๋ค์ด ๊ปด๋ฌ๋ผ๊ณ ์ ์ฒญํ๋ ๊ฒ ๊ฐ๋ค.
- FUTUREPEDIA: AI ๊ด๋ จ ๋๊ตฌ ๋ชจ์ ์ฌ์ดํธ
- Teachable Machine: ๊ตฌ๊ธ ํฐ์ฒ๋ธ ๋จธ์ . ์ด๋ฑํ์๋ ์ฌ์ฉํ ์ ์๋ ์น ๊ธฐ๋ฐ ๋จธ์ ๋ฌ๋ ๋๊ตฌ๋ค. ์์ง(2023-12-28)์ ์ค๋์ค๋ ์ด๋ฏธ์ง ์ ๋๋ง ์ง์ํจ.
- Claude: Anthropic ์ฌ์ GPT ๊ธฐ๋ฐ ๋ํ ์ธ์ด ๋ชจ๋ธ #2. ๋ฐ์์ 'ํด๋ก๋'. ์ค์ค๋ก ์ฃผ์ฅํ๊ธฐ๋ฅผ ChatGPT๋ณด๋ค ์ฑ๋ฅ์ด ์ข๋ค๊ณ ํจ.
- Tabnine: ์ฝํ์ผ๋ฟ ๊ฐ์ ์ฝ๋ ์ด์์คํดํธ. ํน์ง์ผ๋ก๋ ๋ด ์ฝ๋์์ ๋ชจ๋ธ์ ํ์ตํ๋ค๋ ๊ฒ. ๊ฐ์ธ์ ์ฝ๋ฉ ํจํด, ํ ์ ์ฒด์ ์ฝ๋ฉ ์คํ์ผ ๋ฑ์ ํ์ตํ๊ณ ์ฌ๊ธฐ์ ๋ง์ถฐ ์ฝ๋๋ฅผ ์ถ์ฒํด ์ค๋ค๊ณ ํ๋ค. ๋ก์ปฌ ๊ธฐ๋ฐ ํ์ต์ด๋ผ ๋ฐ์ดํฐ ์ ์ถ ๋ฌธ์ ์์๋ ์์ฌ๋ฑ์ฌ.
- Grok: xAI์์ ๊ฐ๋ฐํ ๋ํ ์ธ์ด ๋ชจ๋ธ #3
19. ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ
- troy
- Adobe Edge Inspect
- browser-deeplink: ๋ธ๋ผ์ฐ์ ์์ ์ฑ ์คํ
20. ๊ธฐํ ์ ํธ๋ฆฌํฐ
๊ฐ๋ฐ ๊ด๋ จ
- โญmockaroo: mock ๋ฐ์ดํฐ(๋๋ฏธ ๋ฐ์ดํฐ, ๊ฐ์ง ๋ฐ์ดํฐ) ๋ง๋ค์ด์ฃผ๋ ์ฌ์ดํธ
- โญSmall Dev tools: ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ, ํฌ๋งคํฐ, ํ ์คํธ ๋ฐ์ดํฐ ์์ฑ ๋ฑ ๊ฐ๋ฐ์ ํ์ํ ์น ๋๊ตฌ ๋ชจ์.
- Itty bitty: ๊ฐ๋จํ ์์์ ๊ธ์ ์์ฑํ๊ณ URL๋ก ๊ณต์ ํ๋ ์ฌ์ดํธ. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ URL์ ์์ฑํ ๊ธ ๋ด์ฉ์ด ๋ชจ๋ ๋ด๊ฒจ์๋ ๊ฒ ํน์ง. ์ค๋ช ์๋ ์ฌ๊ธฐ์.
- TypeForm: ์ค๋ฌธ ์กฐ์ฌ์ฉ ์น ์ฌ์ดํธ. ์ฌํ ๋ดค๋๊ฒ ์ค ๊ฐ์ฅ ๊น๋. ์ ๋ฃ์ผ๋ฏ?
- Chatbase: ์น ์ฌ์ดํธ์ ์์ ฏ์ฒ๋ผ ๊ฐ๋จํ ์ถ๊ฐํ ์ ์๋ AI ์ฑ๋ด.
- GitBook: ๋งํฌ๋ค์ด์ผ๋ก ์น ๋ฌธ์ ๋ง๋๋ ์ฌ์ดํธ. ์น์์ ์ง์ ์๋ํธ๋ ๊ฐ๋ฅํ์ง๋ง ๋์ ํ ์ธ ๋ฌผ๊ฑด์ด ์๋๋ผ์(๋ค๊ตญ์ด ์ ๋ ฅํ๋ค ๋ณด๋ฉด ๋จนํต๋จ) ๋งํฌ๋ค์ด์ด๋ ๋ ธ์ ์ผ๋ก ์์ฑํ ํ ๋ณต๋ถํด์ผ ๋จ. ๋ฌธ์ ๋ฒ์ ๊ด๋ฆฌ๋ณด๋จ ์์ฑ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ถํ์ฉ์ผ๋ก ์ ํฉํ ์๋น์ค.
- ON24: ์จ๋น๋(Webinar, ์น ์ธ๋ฏธ๋) ์๋น์ค ์ฌ์ดํธ. Why Slack์์ ์ฐ๊ธธ๋ ์ค์ค
- Firefox Monitor: ๋ค๋ฅธ ์ฌ์ดํธ ๊ฐ์ ํ ๋ ์ฌ์ฉํ ๋ด ๊ณ์ ์ ๋ณด๊ฐ ํธ๋ ธ๋์ง ์ํธ๋ ธ๋์ง ์๋ ค์ค
- evanw: Source Map Visualization: ์๋ฐ์คํฌ๋ฆฝํธ ์์ค ๋งต ์๊ฐํ ๋๊ตฌ #1
- sokra: source-map-visualization: ์๋ฐ์คํฌ๋ฆฝํธ ์์ค ๋งต ์๊ฐํ ๋๊ตฌ #2
- Meta Tags: ๋ฉํ ํ๊ทธ ๋ง๋ค์ด์ฃผ๋ ์ฌ์ดํธ.
- โญEmmet: ์์ ์ด๋ฆ์ Zen Coding. ๋งํฌ์ ์ด๋ CSS ์ฝ๋๋ฅผ ์งง์ ๋ฌธ๋ฒ์ ํตํด ์๋์ผ๋ก ํ์ฅํด์ฃผ๋ ์ฝ๋ ๋จ์ถ ๋๊ตฌ. ์ฌ๋งํ ํธ์ง๊ธฐ๋ IDE์๋ ๊ธฐ๋ณธ์ผ๋ก ํฌํจ๋์ด ์๋ค.
- Advent of Code: ๋งค๋
์ผ์ ์๊ฐ๋ง๋ค ํ๋์ฉ ๊ณต๊ฐ๋๋ ํ๋ก๊ทธ๋๋ฐ ํผ์ฆ ์ฌ์ดํธ. ๋ชจ๋ ์ธ์ด๋ก ํ ์ ์์.
UI์์ํด์ปค๋์๊ฐ๋๋ค
์์คํ ์ ํธ๋ฆฌํฐ
- โญMicrosoft PowerToys: ์๋์ฐ ๊ณ ๊ธ ์ฌ์ฉ์๋ฅผ ์ํ ์ ํธ๋ฆฌํฐ ๋ชจ์. Color Picker, ํญ์ ์, ๋ง์ฐ์ค ์ฐพ๊ธฐ, PowerToys Run(์๋์ฐํ Spotlight) ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํด ์ค๋ค. ๊ทธ ์ค ๊ฐ์ฅ ์ฉ๋๊ฑด PowerRename(์ด์ ํ์ผ๋ช ๋ฐ๊พผ๋ค๊ณ ์ฝ๋ฉ ์ํด๋ ๋จ ๐ฅน)
- Caffeine:
์๊ธ๋ฃจํก์ ํ์ํPC๊ฐ ์ ์ ๋ชจ๋ ํน์ ํ๋ฉด ๋ณดํธ๊ธฐ ๋ชจ๋๋ก ๋ฐ๋์ง ์๊ฒ ํด์ฃผ๋ ์ฑ. ๊ฐ๋ฐ์ฌ๋ Zhorn Software. - RunCat: CPU ์ฌ์ฉ๋์ด ๋์ ์๋ก ๋ค๋ฆฌ๊ฐ ๋นจ๋ผ์ง๋ ๊ณ ์์ด. ํธ๋ ์ด์ ๊ฑฐ์ฃผํจ.
- ์คํ ๋ผ๋ฆฌ์: ์คํ ๋ผ๋ฅจ. ์คํ ์์ค ์ฒ์ฒด ํฌ์๊ด
- SoundSwitch: ์ค๋์ค ์ฅ์น๊ฐ ๋ ์ด์์ผ ๋ ์ถ๋ ฅ ์ ํ์ ๋จ์ถํค๋ก ๋ณ๊ฒฝํ ์ ์์
- Meld: ์๋์ฐ ์ฉ GUI diff ์ฑ. ํ์ผ ๋น๊ต ํ ๋จธ์ง๊น์ง ํ ์ ์๊ณ 3-way merge๋ ๊ฐ๋ฅ. macOS๋ ์์ง ์ง์ ์ํจ.
- FFmpeg: CLI ๋ฐฉ์์ ๋์์ ๋ณํ/ํธ์ง ๋๊ตฌ. ๋์ฝ๋ผ์ค ์ ํ๋ธ | FFmpeg ์๊ฐ ์์
- CPU-Z: ์ค์น๋ ์ปดํจํฐ์ ํ๋์จ์ด ์คํ ์กฐํ ์ ํธ๋ฆฌํฐ. ์นฉ์ , ์บ์, ๋ฉ์ธ๋ณด๋, ๋ฉ๋ชจ๋ฆฌ, ๊ทธ๋ํฝ์นด๋์ ๋ชจ๋ธ๋ช ๊ณผ ์คํ์ด ํ์๋จ.
- HWMonitor: ํ๋์จ์ด ๋ชจ๋ํฐ๋ง ์ ํธ๋ฆฌํฐ. ์ฟจ๋ง ํฌ ์๋, ์ฌ์ฉ ์ ์, ์จ๋ ๋ฑ์ ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ ์ค.
- OCCT: ์ค๋ฒํด๋ญ ํ ์คํธ์ฉ์ผ๋ก ์ฌ์ฉํ๋ ๊ณผ๋ถํ ์ฑ์ธ๋ฐ, ๋ฐด์น๋งํน, ๋ชจ๋ํฐ๋ง, ์์ ์ฑ ํ ์คํธ, ์์คํ ์ ๋ณด ํ์ธ ๋ฑ์ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค.
- ํ๊ตญํ์ค๊ณผํ์ฐ๊ตฌ์: ํ์ค์๊ฐ ๋ง์ถ๊ธฐ: ํ๊ตญํ์ค๊ณผํ์ฐ๊ตฌ์์์ ์ ๊ณตํ๋ ํ์ฌ ์๊ฐ ๋ฐ ์ธ๊ณ ์๊ฐ ํ์ธ/๋๊ธฐํ ์ ํธ๋ฆฌํฐ. ์ค์นํ์ด๊ณ ์ฑ ์ด๋ฆ์ UTCk, ํ์ฌ(2023-08-09) ๋ฒ์ ์ 3.1
- Revo Uninstaller: ์ฑ์ ์ญ์ ํ ๋ ๋ ์ง์คํธ๋ฆฌ ๊ฐ์ ์ผ์ข ์ ์ฐ๊บผ๊ธฐ(?)๋ ์์ ํ ์ญ์ ํด ์ค๋ค๋ ์ธ์ธ์คํจ๋ฌ. ์์ฉ์ธ Pro ๋ฒ์ ์ด ๋ฐ๋ก ์์.
- ๊ตฌ๋ผ์ ๊ฑฐ๊ธฐ: ์ ์ฑ ์ฝ๋ ์ ๊ฑฐ ๋๊ตฌ
๋งคํฌ๋ก, ํค ๋งคํ
- autohotkey: ์คํฌ๋ฆฝํธ๋ก ์์ฑํ๋ ๋งคํฌ๋ก
- joytokey: ๊ฒ์ํจ๋-ํค๋ณด๋(์ ๋ง์ฐ์ค) ๋งคํ ์ฑ
- REWASD: ๊ฒ์ํจ๋-ํค๋ณด๋(์ ๋ง์ฐ์ค) ๋งคํ ์ฑ. ๋งคํฌ๋ก์ ํฐ๋ณด ๊ธฐ๋ฅ์ ์ ๋ฃ๋ค.
๋ฏธ๋์ด ํ๋ ์ด์ด
- VLC media player: ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ถฉ์คํ ๋ฏธ๋์ด ํ๋ ์ด์ด
๋ฏธ๋์ด ํธ์ง
- โญpaint.net: ์ด๋ฏธ์ง ํธ์ง๊ธฐ. ์ข์
- Audacity: ๊ฐ๋จํ ์์ ํธ์ง๊ธฐ
- PDF2JPG: PDF๋ฅผ JPG๋ก ๋ณํ
- Segment Anything: AI๋ก ๋ง๋ ์๋ ๋๋ผ(?) ์ฑ์ด๋ผ๋๋ฐ ์์ง ์ ์จ๋ด. ์ผ๋จ ๊นํ๋ธ ์ค๋ช ์ ๋ณด๋ฉด ํ์ด์ฌ์ผ๋ก ์คํํ๋ ๋ชจ์
- OpenCut: ์คํ ์์ค ์์ ํธ์ง๊ธฐ. ๋ฆฌ์กํธ ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฉฐ ์์ค๋ฅผ ๋ฐ์ ๋ก์ปฌ ์๋ฒ๋ฅผ ๋์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
์๊ฒฉ ์ฐ๊ฒฐ
21. ๋ธ๋ผ์ฐ์ , ํ๋ฌ๊ทธ์ธ
๋ธ๋ผ์ฐ์
- Firefox: ๋ถ์ฌ์ ๋ธ๋ผ์ฐ์ . ๊ฐ๋ฐ์์ฉ ๋ถ์ฌ์๋ ์ฌ๊ธฐ๋ก.
about:config
์์browser.uidensity
๋ฅผ 1๋ก ํด๋ณผ ๊ฒ - DuckDuckGo browser
- Brave: ํ๋ผ์ด๋ฒ์์ ์ฑ๋ฅ์ ์ค์ ์ ๋ ํฌ๋ก๋ฏธ์ ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ #1
- Ladybird: ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ ๋ฆฝ์ ์ธ ์น ๋ธ๋ผ์ฐ์ ๊ฒธ ์์ง. 2026๋ ์ฌ๋ฆ ์ ์ ์ถ์ ์์
- Nyxt: ํด์ปค์ฉ ๋ธ๋ผ์ฐ์ (?). ๊ณ ๊ธ ์ฌ์ฉ์๋ฅผ ์ํ ๋ธ๋ผ์ฐ์ ๋ก, ํค๋ณด๋ ํ์, ์ ํ ํค๋ฉ, ์ฌ์ด ํญ ๊ด๋ฆฌ, ๋ช ๋ น ํผ์ง ๊ฒ์, ๋ด์ฅ REPL, ์ค๋งํธ ๋ถ๋งํฌ ๊ฒ์, ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ์๋ ์์ฑ, ํด๋ฆฝ๋ณด๋ ๊ธฐ๋ก, ํธ๋ฆฌ ๊ธฐ๋ฐ์ ๋ฐฉ๋ฌธ ํ์ด์ง ๊ธฐ๋ก ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๊ณ ํจ. 2024-12-09 ๊ธฐ์ค ์๋์ฐ๋ ์์ง ๋ฏธ์ง์.
- Chromium: ๊ตฌ๊ธ์ ์คํ ์์ค ์น ๋ธ๋ผ์ฐ์ ํ๋ก์ ํธ. ํฌ๋กฌ์ ๊ธฐ๋ฐ ์ฝ๋์ด๋ฉฐ ์์ฆ(2023-09-13) ์ ์ ์จ ๋์ ๋ธ๋ผ์ฐ์ ๋ค์ ๋๋ถ๋ถ Chromiun ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
Firefox ํ๋ฌ๊ทธ์ธ
- Mate Translate
- PocketTube
- Save webP as PNG or JPEG
- uBlacklist
- uBlock Origin
Chrome ํ๋ฌ๊ทธ์ธ
- Go Back With Backspace
- Mate Translate
- Chrome Remote Desktop
์ฌ๊ธฐ์ ๊ฐ๋ฐ์ฉ ํฌ๋กฌ์ด๋ฉด:
- CSSViewer
- JSON Formatter
- Vue.js devtools
- Wappalyzer
- Authenticator(์ธ์ฆ ๋๊ตฌ)
22. ๊ธฐํ ์๋น์ค
- stream: ์ฑํ ๊ด๋ จ ์คํ ์์ค ๊ฐ์๋ฐ ๋ญ์ง ์ ๋ชฒ
- Sanity: CMS(Content Management System)๋ผ๋๋ฐ ์ด๊ฒ ๋ญ๊น
- Apache Tika: ํ์ผ ์ฝํ ์ธ ๋ฅผ ๋ถ์ํด์ฃผ๋ ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- โญKeystoneJS: ์ด๋๋ฏผ ํจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๊ด๋ฆฌ์ ํ๋ฉด์ ๋ง๋ค์ด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ํน์ ํ์ ์คํฌ๋ฆฝํธ๋ก ์ฌ์ฉํ ์ ์์. ๋์ฝ๋ผ์ค ์ ํ๋ธ | KeystoneJS ์๊ฐ ์์
- Chosic: ๋น์ทํ ๋ ธ๋ ์ฐพ๊ธฐ ๋ฑ ๋ ธ๋ ๊ด๋ จ ํ์ ์๋น์ค ์ ๊ณตํ๋ ์ฌ์ดํธ
- Everynews: ๋ด์ค๋ ํฐ ์๋น์ค์ธ ๊ฒ ๊ฐ์๋ฐโฆ
- ํ๋ฆฌ๋์๋ฅผ ์ํ ๋ฉ์ธ์ง ํ ํ๋ฆฟ ์๋น์ค
23. ํต๊ณ, ๋ถ์
- Worldometer: ์ ์ธ๊ณ์ ๊ฐ์ข ์ ๋ณด ์ค์๊ฐ ์นด์ดํฐ. ์ธ๊ตฌ ์ฆ๊ฐ, ๋จ์ ์์ ๋ ๋ฑ
- statcounter: ์ ์ธ๊ณ ๋์ ๋ธ๋ผ์ฐ์ , OS ์ ์ ์จ ๋ฑ์ ํต๊ณ์๋ฃ ์กฐํ ์ฌ์ดํธ
- A/B Testing Significance Calculator: A/B ํ ์คํธ ํต๊ณ์ ์ ์์ฑ ๊ณ์ฐ๊ธฐ. ์ ๋ขฐ๋๋ฅผ ๊ณ์ฐํด์ฃผ๋ ์ฌ์ดํธ์ธ๊ฐ๋ณด๋ค. ํต๊ณ์ ์ ๋ขฐ๊ตฌ๊ฐ๊ณผ ์ ๋ขฐ๋
- built with: trends: ์น/์ธํฐ๋ท ๊ธฐ์ ์ฌ์ฉ ํธ๋๋์ ํต๊ณ ๋ณด๊ธฐ. ์ฌ๊ธฐ๋ ์๋ ํน์ ์ฌ์ดํธ๊ฐ ๋ญ๋ก ๋ง๋ค์ด์ง๊ฑด์ง๋ฅผ ๋ถ์ํด์ฃผ๋ ์ฌ์ดํธ์.
24. ๋ฌธ์ ์์ฑ ๋๊ตฌ
- WPS Office: ๋ฌด๋ฃ ํ๋์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๊ณผ 1GB ํด๋ผ์ฐ๋ ์ฌ์ฉ ๊ฐ๋ฅ.
- LibreOffice