| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- clean architecture middleware
- go 맥 air
- go 환경변수
- 세종사이버대 정보보호학과
- git
- go 맥
- 좀비고루틴
- 신입개발자
- 직장인 사이버대
- go
- gin middleware
- 골랑 고퍼
- go디자인패턴
- go 맥 air 환경변수
- gin recovery
- gin logger
- air 환경변수
- go air 환경변수
- 직장 병행
- gopath 환경변수
- go 마스코트
- 개발자 사이버대
- go 캐릭터
- golang gopher
- go middleware
- go air
- go clean architecture
- 2년차개발자
- go recover
- 개발자
- Today
- Total
목록go recover (2)
뽀미의 개발노트
Middleware는 코드 전체에서 작동하는 공통함수를 따로 빼놓은 부분이라고 생각하면 된다. 웹 백엔드 구현시 Middleware 디렉토리에 CORS, Authentication 을 많이 넣지만, 그건 다른 좋은 예시도 많으므로 이번 포스팅에서는 logger와 recovery만 다루도록 함. 프로젝트에서 gin으로 웹서버를 구현하고 있다. 기존에 middleware를 사용하지 않았을 때는 gin.Default()로 Gin Router를 생성했었고, gin에 디폴트로 내장된 logger와 recover 기능을 이미 사용 중이었다. 이번에 middleware에 따로 logger와 recovery를 구현하여 나만의 미들웨어를 사용하기로 결정함.package mainimport ( "github.com/gi..
panic, defer, recovergo에는 try-catch문이 없다. 대신 panic을 처리하기 위해 defer/recover 를 사용한다.1. defer함수 리턴하기 직전에 실행LIFO (Last In, First Out) → 호출된 순서와 반대로 실행됨.C#의 finally 처럼 사용됨 (이미 리턴, 예외, panic 등이 일어나도 항상 후처리)2. panic현재 함수 멈추고 defer 모두 실행.상위함수로 전파됨.마지막 → 프로그램 종료3. recoverpanic 잡고 그 값을 가져옴. 프로그램 복구해서 이어지게 함.defer 함수 내에서만 쓸 수 있음.panic이 안 일어나면 recover()가 nil 임. 예시package mainimport "fmt"func main() { fmt.Pr..