일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 레파지토리
- python3.9
- FastAPI
- mariadb
- APT
- Python
- 주식
- QT_QPA_PLATFORM_PLUGIN_PATH
- asyncio
- BATCH
- 스트리밍
- Finance
- Windows
- psutil
- go.mod
- golang
- docker
- repo
- Hyper-V
- 가상화 중첩화
- Replication
- apt-get
- 파이썬
- go
- pip
- 자식프로세스
- Thread
- dockercontainer
- 영상스트리밍
- 자원측정
- Today
- Total
검색하기귀찮아서만든블로그
[GO] DB 질의 REST API 만들기 본문
지난 포스팅에서 golang 을 사용하여 mariadb에 접속, 질의하는 패키지 (sqlconnect)를 만들어 보았다. 이번 포스팅에서는 golang을 사용한 백엔드 서버를 구성하기 위해 프로토타입을 만들어볼 생각이다. 기존에 작성된 sqlconnect 패키지와 HTTP 서버를 접목시켜서 RESTFul API를 만들고, API를 호출해서 DB 데이터를 조회할 수 있는 백엔드 서버를 만들어 본다. API는 사설 인증서를 사용해서 TLS 통신을 지원한다.
REST API 는 기존에 만들었던 TLS1.3 통신 포스팅을 참조하여 사설 인증서를 생성해서 HTTPS 통신을 사용하도록 작성되었다. 핸들러는 root 핸들러와 show_table 핸들러를 등록했고, show_table API를 호출하면 sql 에 질의하여 테스트용 테이블의 값을 json 폼으로 출력하도록 작성되었다.
현재 코드에서는 SQL커넥션은 요청이 발생할 때마다 생성하도록 되어있으나, 실제 서비스 개발에서는 커넥션 풀을 사용하여 세션을 관리할 필요가 있다.
웹 브라우저를 통해서 127.0.0.1/show_table 를 호출하면 위와 같은 결과를 확인할 수 있다.
이상 HTTPS 서버를 구성하고 docker container로 구성된 mariadb의 정보를 질의할 수 있는 REST API를 구성해 보았다. 구현한 내용들로도 간단한 백엔드 서버 역할은 충분히 할 수 있을 것으로 생각되고 다중 코어를 사용할 수 있는 golang은 python 보다 비교적 백엔드 개발이 용이하다고 느꼈다.
golang으로 만들어진 백엔드 서버를 대규모 서버를 구성할 때는 어떤 차이가 있는지 조사를 해봐야겠다.
'개발 > 라이브러리' 카테고리의 다른 글
[GO] SQL 질의 (0) | 2023.12.03 |
---|---|
[GO] Package 개념 이해 (0) | 2023.12.03 |