다모앙 커뮤니티 운영 규칙을 확인하세요.
X

[GoLang#1] 다모앙을 경량화하기 위한 API 테스트

페이지 정보

작성자 SDK
작성일 2025.02.20 12:26
506 조회
7 추천

본문


다모앙을 경량화하기 위한 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

Realtime님의 댓글

작성자 Realtime
작성일 02.20 13:50
역시 go가 단단한 서비스 만들기 좋죠.

이번에 1.24는 wasm 지원이 더 좋아졌으니 어쩌면 꽃가루 날리기 같은데에 쓸만해질 날도  생각보다 가까울지 모르겠네요 ㅎㅎ

SDK님의 댓글의 댓글

대댓글 작성자 SDK
작성일 02.20 14:17
@Realtime님에게 답글 go version go1.24.0 linux/amd64 입니다~
지금 너무 무거워서 api 만 별도로 테스트 해보는 중입니다
감사합니다

clear님의 댓글

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

SDK님의 댓글의 댓글

대댓글 작성자 SDK
작성일 02.20 19:10
@clear님에게 답글 저희 개발 문서에 여기랑 함께 업데이트 해야겠네요~
좋은 아이디어 감사합니다~

돌멜님의 댓글

작성자 no_profile 돌멜
작성일 02.20 23:06
이미 알고계실수도 있지만 fiber는 zero allocation에 따른 주의해야 할 점이 있어서 링크합니다.

https://docs.gofiber.io/#zero-allocation

SDK님의 댓글의 댓글

대댓글 작성자 SDK
작성일 02.21 00:55
@돌멜님에게 답글 모르고 있었습니다 읽어보겠습니다 감사합니다

간실장님의 댓글

작성자 간실장
작성일 02.21 14:06
golang은 한번도 안 다루어 보았는데..
기존 server side script보다 퍼포먼스가 더 좋다는 것으로 보이는데.. 맞는지요??

SDK님의 댓글의 댓글

대댓글 작성자 SDK
작성일 02.21 14:10
@간실장님에게 답글 컴파일 언어의 이점: Go는 컴파일된 바이너리를 직접 실행하므로 인터프리터 언어보다 실행 속도가 빠릅니다.

효율적인 메모리 관리: Go는 가비지 컬렉터를 통해 메모리를 효율적으로 관리하여 메모리 누수를 방지하고 안정적인 성능을 제공합니다.

동시성 처리: Go는 고루틴(goroutine)을 사용하여 경량 스레드 기반의 동시성 처리를 지원하므로, 높은 동시 요청을 효율적으로 처리할 수 있습니다.


이렇다고 하는데요, 다모앙에 실제 적용해 봐야지 알수가 있을것 같습니다

관심갖아 주셔서 감사합니다.
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색