[GoLang#1] 다모앙을 경량화하기 위한 API 테스트
페이지 정보
작성자
SDK

작성일
2025.02.20 12:26
본문
다모앙을 경량화하기 위한 API 테스트
다모앙을 좀 더 경량화하기 위해 Fiber Go를 사용하여 API 테스트를 진행하였습니다.
백엔드는 Fiber Go를 사용하였으며, 이는 Express.js와 유사한 구조를 가지고 있습니다.
Koa.js가 익숙하긴 하지만, 성능과 확장성을 고려하여 Fiber Go를 선택하였습니다.
Fiber Go를 선택한 이유
- Express.js와 유사한 API 구조를 가져 쉽게 적용 가능
- FastHTTP 기반으로 net/http보다 10배 이상 빠른 성능
- 낮은 메모리 사용량과 Goroutine 기반 멀티스레드 지원
- Node.js 대비 효율적인 동시성 처리로 높은 트래픽 대응 가능
- 다모앙 수준의 트래픽(8천~1만 명 동시접속)에도 안정적인 성능 유지
Express.js vs Koa.js 비교
특징 | Express.js | Koa.js |
---|---|---|
개발사 | StrongLoop (IBM) | Express 팀 (후속 프로젝트) |
미들웨어 방식 | 내장 미들웨어 포함 | 완전한 미들웨어 기반 (더 유연) |
비동기 처리 | 콜백 및 Promise 지원 | Promise 및 async/await 기본 지원 |
크기 | 상대적으로 큼 (많은 기능 포함) | 더 작고 경량화됨 |
사용률 | 가장 널리 사용됨 | Express.js보다 적게 사용됨 |
패키지 설치
go get -u github.com/gofiber/fiber/v2
go get -u github.com/go-sql-driver/mysql
go get -u github.com/joho/godotenv
https://github.com/damoang/fibergo/blob/main/main.go
7명
추천인 목록보기
댓글 8
SDK님의 댓글의 댓글
작성일
02.20 14:17
@Realtime님에게 답글
go version go1.24.0 linux/amd64 입니다~
지금 너무 무거워서 api 만 별도로 테스트 해보는 중입니다
감사합니다
지금 너무 무거워서 api 만 별도로 테스트 해보는 중입니다
감사합니다
clear님의 댓글
작성자
clear

작성일
02.20 18:16
문서화도 이력 관리 필요하니
깃허브에서 문서화 전용 프로젝트 만들어 위키만 쓰시거나
지라 컨플루언스 하나 여시죠.
혹시 알아요 나중에 관련해서 출판할 수 도 있잖아요.
깃허브에서 문서화 전용 프로젝트 만들어 위키만 쓰시거나
지라 컨플루언스 하나 여시죠.
혹시 알아요 나중에 관련해서 출판할 수 도 있잖아요.
돌멜님의 댓글
작성자
돌멜

작성일
02.20 23:06
이미 알고계실수도 있지만 fiber는 zero allocation에 따른 주의해야 할 점이 있어서 링크합니다.
https://docs.gofiber.io/#zero-allocation
https://docs.gofiber.io/#zero-allocation
간실장님의 댓글
작성자
간실장

작성일
02.21 14:06
golang은 한번도 안 다루어 보았는데..
기존 server side script보다 퍼포먼스가 더 좋다는 것으로 보이는데.. 맞는지요??
기존 server side script보다 퍼포먼스가 더 좋다는 것으로 보이는데.. 맞는지요??
SDK님의 댓글의 댓글
작성일
02.21 14:10
@간실장님에게 답글
컴파일 언어의 이점: Go는 컴파일된 바이너리를 직접 실행하므로 인터프리터 언어보다 실행 속도가 빠릅니다.
효율적인 메모리 관리: Go는 가비지 컬렉터를 통해 메모리를 효율적으로 관리하여 메모리 누수를 방지하고 안정적인 성능을 제공합니다.
동시성 처리: Go는 고루틴(goroutine)을 사용하여 경량 스레드 기반의 동시성 처리를 지원하므로, 높은 동시 요청을 효율적으로 처리할 수 있습니다.
이렇다고 하는데요, 다모앙에 실제 적용해 봐야지 알수가 있을것 같습니다
관심갖아 주셔서 감사합니다.
효율적인 메모리 관리: Go는 가비지 컬렉터를 통해 메모리를 효율적으로 관리하여 메모리 누수를 방지하고 안정적인 성능을 제공합니다.
동시성 처리: Go는 고루틴(goroutine)을 사용하여 경량 스레드 기반의 동시성 처리를 지원하므로, 높은 동시 요청을 효율적으로 처리할 수 있습니다.
이렇다고 하는데요, 다모앙에 실제 적용해 봐야지 알수가 있을것 같습니다
관심갖아 주셔서 감사합니다.
Realtime님의 댓글
이번에 1.24는 wasm 지원이 더 좋아졌으니 어쩌면 꽃가루 날리기 같은데에 쓸만해질 날도 생각보다 가까울지 모르겠네요 ㅎㅎ