본문 바로가기
728x90
반응형

분류 전체보기217

Rust 바이너리 작게 만들기 Cargo.toml 에 다음을 추가하고,...[profile.release]strip = true # Automatically strip symbols from the bianryopt-level = "s" # Optimize for sizelto = true # Enable link time optimizationcodegen-units = 1 # Maximize size reduction optimizationsrelease 모드로 컴파일 한다.$ cargo build --release 2025. 1. 3.
Rust: Auto-Reloading Development Server (개발서버 자동 리로딩) cargo-watch 를 설치한다.$ cargo install cargo-watch원하는 프로젝트 폴더로 이동해서 아래와 같이 실행하면 라이브 리로딩 서버가 실행된다.$ cargo-watch -x run 2025. 1. 3.
Gin framework (3) : MySQL 연결하기 이번에는 Gin 프레임워크에 MySQL 을 붙여서 동작시켜보자. https://gauryan.tistory.com/241 을 참고하여 MySQL을 설치하기 바랍니다. 이제, mysql 을 이용해서 DB 서버에 접속해보자. mysql -u root -p 라고 입력하고, 비밀번호(test123)까지 입력해보자.일단 새로운 User를 하나 생성해봅시다.-- CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호';CREATE USER 'test_user'@'%' IDENTIFIED BY 'test123';자... 그러면... 이제 Database 를 생성해봅시다.-- CREATE DATABASE 디비이름;CREATE DATABASE test_db;test_user 가 test_db 를 사용.. 2025. 1. 3.
Gin framework (2) : 컨트롤러 확장하기 지난 글에서 간단한 Gin 프레임워크를 이용한 서버를 만들어보았습니다. 그런데, 핸들러가 늘어날 수록 main.go 가 복잡해지는 문제가 있었어요. 이 핸들러를 별도의 폴더로 이동해서 서비스별로 구분을 하면, 조금 더 관리하기 수월해질 것입니다. 이렇게 분리하는 것을 컨트롤러라고 보통 부릅니다. 그래서, controller 폴더를 먼저 만들겠습니다. controller 폴더 하위에는 svc1 과 svc2 폴더도 만듭니다.그리고, svc1 폴더에 svc1.go 파일을 만들고, 다음과 같이 작성해줍니다.package svc1import "github.com/gin-gonic/gin"func Req1(c *gin.Context) { c.JSON(200, gin.H{ "SVC1": "REQ1", })}func.. 2025. 1. 1.
Gin framework (1) : 시작해보기 Go언어에서 가장 유명한 프레임워크 Gin 과 Fiber 가 있습니다. 이 중에서 훨씬 더 유명한 Gin을 먼저 알아보겠습니다. Gin의 홈페이지는 https://gin-gonic.com/ 입니다. C:\work\gapi 폴더를 만들고, 그 안에서 go mod init gapi 를 실행합니다. Gin 프레임워크 모듈을 설치해줍니다. go get -u github.com/gin-gonic/gin 을 실행합니다. 그리고, main.go 를 작성해봅시다.package mainimport "github.com/gin-gonic/gin"func main() { app := gin.Default() app.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "hello".. 2024. 12. 27.
Refresh Token 재사용 방지(Reuse Detection) Refresh Token 재사용 방지(Reuse Detection)는 Refresh Token이 도난당해 악의적인 사용자가 이를 재사용하려는 경우를 감지하고 차단하는 기술입니다. 이를 구현하려면 아래의 메커니즘을 사용할 수 있습니다.1. Refresh Token 저장소 사용Refresh Token의 상태를 서버에서 관리하여 사용 기록을 검증하는 방식입니다.구현 흐름:Refresh Token 저장 및 관리:Refresh Token 발급 시, 이를 서버의 데이터베이스(DB) 또는 캐시(Redis 등)에 저장합니다.저장 시 각 토큰에 고유한 식별자(UUID)와 사용자 정보, 만료 시간, 생성 시간을 기록합니다.토큰 사용 검증:클라이언트가 Refresh Token을 전송할 때마다, 서버는 DB 또는 캐시에서 해.. 2024. 12. 26.
728x90
반응형