ASHD Dev_Blog

HTTP_1 : API in GO / gin

golang의 기본 구조! 패키지 하위의, structure와 메소드

이재룡
이재룡 Jun 26, 2025

[ 1. gin.Engine & MiddleWare ]

import “gin” - ListenAndServe를 편리하게

 

미들웨어 : 요청과 핸들러(Controller) 사이에서 공통 작업을 처리하는 함수

요청을 전처리 or 응답을 후처리할 수 있는 중간 단계 로직

  • logging
  • recovery
  • CORS
  • JWT 검증 + 인증/인가
 

gin module을 활용한 통신 활성화 및 미들웨어 함수 설정

  1. engin이라는 *gin.Engin 형태의 값을 가지는 Network 구조체 생성
  1. NewServer( ) 함수 = engin을 가지는 Nework 구조체를 생성 및 return
      • gin 객체 생성 = gin.New( )로 engin 생성
      • Network 구조체 n에 engin 추가
  1. StartServer( ) 함수 = n.Engin.Run(”:포트번호”)를 통해 해당 포트를 open
      • Network 구조체를 받아서
 

여기에 미들웨어 함수 추가 (n.engin.Use를 통해 )

 
 

[ 2. Network Routing ]

Router는 Spring에서의 controller와 유사

  • sync.Once.Do : 동일한 userRouter가 여러 개 생기는 것을 방지
    • ⇒ Spring에서의 Bean을 등록하는 @Component 와 유사한 역할

 
  • userRouterInstance = &userRouter{router: router}
    • ⇒ &userRouter로 포인터로, 원본 데이터를 수정이 가능하도록 설정

  • .create 등은 모두 핸들러의 역할
 

[ 3. Handler & IRoutes ]

handler는 Spring에서의 Controller의 method와 유사

서비스(동작)으로 가기전 필요한 데이터 req, res, session 등을 추출하는 메소드

 
  • *gin.Context 실제 http 데이터 (Spring에서의 servlet 객체)
    • ⇒ HttpServletRequest request, HttpServletResponse response의 통합 느낌

       
  • IRoutes는 메서드 체이닝을 위한 리턴 인터페이스
    • ⇒ 이런 식으로 하나의 라우터에서 여러 endpoint를 등록하기 위함

 
 

추천 글

BlogPro logo