Software Developer | Continuously Contributing & Building
-
fastexcel-readerκ° μμ νμΌμ 1904 λ μ§ μ²΄κ³λ₯Ό μ μμ μΌλ‘ μΈμνμ§ λͺ»νλ νμ μμ - Pull Request: #PR521
-
- ν μ΄λΈμ μμμ μΌλ‘ DOMμμ μ§μ΄ μνμμ νμ μΆκ°νκ³ , λ€μ ν μ΄λΈμ DOMμ 그릴 λ ν μΆκ° μνκ° λ°μλμ§ μλ νμ μμ
- Pull Request: #PR4756
-
- μ€ν¬λ‘€μ΄ μκΈΈ μ λλ‘ λ°μ΄ν°κ° λ§μ κ²½μ°, λλκ·Έ μ€ λλμΌλ‘ μν ν λ λλ λ°μ΄ν° ν¬μ§μ μ΄ μ΄μνκ² μ‘νλ νμ μμ
- Pull Request: #PR1057
- ComposerRuntime λ¬Έμ μ€ν μμ (#PR2412)
νκΈ λ¬Έμ(HWP/HWPX)λ₯Ό μ λ‘λνμ¬ λ¬Έμ λ΄μ©μ AIλ‘ λΆμνλ μ±λ΄ μ ν리μΌμ΄μ
π Links: Website | Repository
π μ£Όμ κΈ°λ₯
- HWP/HWPX νμΌμ μ λ‘λνμ¬, ν΄λΉ λ¬Έμλ₯Ό κΈ°λ°μΌλ‘ λ¬Έμ λ΄μ©μ μμ½ν©λλ€.
- λ¬Έμ 컨ν μ€νΈλ₯Ό νμ©ν AI μ±λ΄ μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€.
- νκ΅μ΄, μμ΄, μλμ΄(RTL μ€μ΅μ©) λ± λ€μν μΈμ΄λ₯Ό μ§μν©λλ€.
- λ€ν¬ λͺ¨λ/λΌμ΄νΈ λͺ¨λ ν λ§λ₯Ό μ§μν©λλ€.
- RTL λͺ¨λλ₯Ό μ§μν©λλ€.
π οΈ Tech Stack
- Frontend: TypeScript, React 19, Next.js 15, Tailwind CSS, Zustand, next-intl, next-themes
- Backend: Java 21, Spring Boot 3.5.5, Spring AI, Spring Data JPA, Spring Data Redis, Spring WebFlux (SSE Streaming)
- Database: MariaDB 10
- Cache: Redis 7
- Library: hwpxlib, hwplib (νκΈ λ¬Έμ μ²λ¦¬)
- Infrastructure: Docker, Kubernetes, Terraform
π― ν΅μ¬ μ±κ³Ό & νμ΅ λ΄μ©
μ±λ₯ μ΅μ ν
react-virtuosoμ νμ©ν΄ κ°μ μ€ν¬λ‘€μ ꡬννμ¬ λλ λ°μ΄ν°(μ€λ λ 200κ°, μ±ν 200κ°) λ λλ§ μ±λ₯μ90%κ°μ νμ΅λλ€. (4.14μ΄ β 0.41μ΄)- λ²‘ν° μ μ¬μ± λΉκ΅λ₯Ό μ΅μ ννκ³ Redis μΊμ±μ νμ©νμ¬ λ¬Έμ μμ½ μ²λ¦¬ μκ°μ
98.2%κ°μ νμ΅λλ€. (5λΆ 29μ΄ β 5.9μ΄) - μΏ λ²λ€ν°μ€ νκ²½μμ
MySQLλμMariaDBμ΄λ―Έμ§λ₯Ό μ¬μ©νκ³startupProbeλ₯Ό νμ©νμ¬ νλ μμ± μκ°μ63.7%λ¨μΆνμ΅λλ€. (134μ΄ β 49μ΄)
κΈ°μ ꡬν
- Spring AIλ₯Ό νμ©νμ¬ HWPX/HWP λ¬Έμ μμ½ λ° μ±ν κΈ°λ₯μ ꡬννμ΅λλ€.
- νμΌ ν΄μ κΈ°λ° Redis μΊμ±μΌλ‘ μ€λ³΅ νμΌ μ λ‘λ μ μ²λ¦¬ μκ°μ λ¨μΆνμ΅λλ€.
μ¬μ©μ κ²½ν
next-intlμ νμ©νμ¬ νκ΅μ΄, μμ΄, μ€κ΅μ΄, μΌλ³Έμ΄, μλμ΄ λ± λ€κ΅μ΄λ₯Ό μ§μνκ³ RTL λ μ΄μμμ ꡬννμ΅λλ€.next-themesμ μ¬μ©νμ¬ λΌμ΄νΈ ν λ§/λ€ν¬ ν λ§λ₯Ό λͺ¨λ μ§μνλλ‘ κ΅¬ννμ΅λλ€.Zustandλ₯Ό νμ©ν κ²½λ μν κ΄λ¦¬λ‘ μ€λ λ λ° λν κΈ°λ‘μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλλ‘ κ΅¬ννμ΅λλ€.
μΈνλΌ & DevOps
Docker ComposeμKubernetesλ₯Ό νμ©νμ¬ μ»¨ν μ΄λ κΈ°λ° λ°°ν¬ νκ²½μ ꡬμΆνμ΅λλ€.
HWPX ν νλ¦Ώ νμΌμ κΈ°λ°μΌλ‘ λ°μ΄ν°λ₯Ό μ£Όμ νμ¬ λ¬Έμλ₯Ό μμ±νλ Java λΌμ΄λΈλ¬λ¦¬
π Links: Repository | Documentation | Maven Central
π μ£Όμ κΈ°λ₯
- ν νλ¦Ώ νμΌ κΈ°λ°μΌλ‘ HWPX λ¬Έμμ λ°μ΄ν°λ₯Ό μ£Όμ νμ¬ μμ±νλ λΌμ΄λΈλ¬λ¦¬λ₯Ό ꡬννμ΅λλ€.
- κΈ°λ³Έ νκ·Έ, 쑰건문 νκ·Έ, λ°λ³΅λ¬Έ νκ·Έ, μ΄λ―Έμ§ νκ·Έ, ν μ΄λΈ νκ·Έ λ± λ€μν νκ·Έ κΈ°λ₯μ νμ©νμ¬ λ¬Έμλ₯Ό μμ±ν μ μλλ‘ κ΅¬ννμ΅λλ€.
- 컀μ€ν°λ§μ΄μ§ κ°λ₯ν ν νλ¦Ώ λ¬Έλ² λ° μΈν°μ ν° μμ€ν μ€κ³
- Maven Centralμ λ°°ν¬νμ¬ λΌμ΄λΈλ¬λ¦¬λ₯Ό 곡κ°μ μΌλ‘ μ¬μ©ν μ μλλ‘ κ΅¬ννμ΅λλ€.
π οΈ Tech Stack
- Language: Java 8+
- Build Tool: Maven
- Code Review: CodeRabbit (AI-powered code review)
- Documentation: MkDocs, GitHub Pages
π― ν΅μ¬ μ±κ³Ό & νμ΅ λ΄μ©
- HWPXμ OOXML ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ νμΌμ νμ±νμ¬ λ°μ΄ν°λ₯Ό λ λλ§νλ μκ³ λ¦¬μ¦μ κ°λ°νμ΅λλ€.
- ν©ν 리 ν¨ν΄, λΉλ ν¨ν΄ λ± λ€μν λμμΈ ν¨ν΄μ μ μ©νμ¬ μ μ§λ³΄μμ±κ³Ό νμ₯μ±μ ν₯μμμΌ°μ΅λλ€.
- JUnitμ νμ©ν λ¨μ ν μ€νΈλ₯Ό μμ±νμ¬ μ½λ μμ μ±μ ν보νμ΅λλ€.
- Maven Centralμ μ€μ λ‘ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ°°ν¬νλ νλ‘μΈμ€λ₯Ό κ²½ννμ΅λλ€.
- CodeRabbitμ νμ©νμ¬ μλνλ μ½λ 리뷰 μμ€ν ꡬμΆμ ꡬμΆνμ¬ μ½λμ νμ§μ ν₯μμμΌ°μ΅λλ€.
- MkDocsλ₯Ό νμ©νμ¬ μ²΄κ³μ μΈ μ¬μ©μ λ§€λ΄μΌμ ꡬμΆνμ΅λλ€.
HWPXTemplater λΌμ΄λΈλ¬λ¦¬μ κΈ°λ₯μ μμ°νλ μλ²λ¦¬μ€ νμ€ν μν μ ν리μΌμ΄μ
π Links: Website | Repository
π μ£Όμ κΈ°λ₯
- HWPXTemplater λΌμ΄λΈλ¬λ¦¬μ λ€μν κΈ°λ₯λ€μ μμ°ν©λλ€.
- μ¬μ©μκ° μ§μ λ°μ΄ν°λ₯Ό μ λ ₯νμ¬ HWPX νμΌ μμ±μ 체νν μ μμ΅λλ€.
π οΈ Tech Stack
- Frontend: TypeScript, React/Next.js
- Backend: Java, AWS Lambda
- Library: HWPXTemplater
- Infrastructure: AWS S3 (Frontend Hosting), AWS Lambda (Serverless Backend)
- CI/CD: GitHub Actions
π― ν΅μ¬ μ±κ³Ό & νμ΅ λ΄μ©
- κ°λ°ν μ€νμμ€ λΌμ΄λΈλ¬λ¦¬μ λμμ μμ°νλ λ°λͺ¨ μ ν리μΌμ΄μ μ ꡬννμ΅λλ€.
- AWS Lambdaλ₯Ό νμ©νμ¬ EC2 μ¨λ맨λμ λλΉν΄ λΉμ©ν¨μ¨μ μ΄λ©° κ°μ©μ±λ λμ μλ²λ¦¬μ€ μν€ν μ³λ₯Ό μ€κ³νκ³ κ΅¬ννμ΅λλ€.
- S3 + CloudFront + ACM + Route53 μ‘°ν©μΌλ‘ μμ νκ³ λΉ λ₯Έ κΈλ‘λ² μ½ν μΈ λ°°ν¬ νκ²½μ ꡬμΆνμ΅λλ€.
- ACMμΌλ‘λΆν° μΈμ¦μλ₯Ό λ°κΈλ°μ CloudFrontμ μ°λνμ¬ HTTPSλ₯Ό μ μ©νμ΅λλ€.
- Route53μ ν΅ν΄ 컀μ€ν λλ©μΈμ μ€μ νκ³ DNSλ₯Ό κ΄λ¦¬νμ΅λλ€.
- Reactμ TypeScriptλ₯Ό νμ©νμ¬ μΈν°λν°λΈν νλ‘ νΈμλ νμ΄μ§λ₯Ό κ°λ°νμ΅λλ€.
- ν νλ¦Ώ κ΄λ¦¬λ₯Ό AWS S3 κΈ°λ°μΌλ‘ μ ννμ¬ λΉκ°λ°ν νμ ν¨μ¨ν λ° λ¬΄λ°°ν¬ μ€μκ° λ°μ 체κ³λ₯Ό ꡬμΆνμ΅λλ€
- βοΈ email: mumberrymountain@naver.com


