Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- redis
- 최소신장트리
- 세그먼트 트리
- 11659
- 누적합
- DP
- 점수 따먹기
- 17503
- 민준이와 마산 그리고 건우
- 맥주 축제
- 크루스칼
- 다익스트라
- 21921
- BOJ
- mst
- 구현
- SWEA
- golang
- 구간합
- 정렬
- 이분 탐색
- c++
- 시뮬레이션
- Naver Cloud
- dfs
- NCP
- gorilla/mux
- mongodb
- 백준
- 16985
Archives
- Today
- Total
Gi-Log
[#6] 기본 코드 구조 구상 및 mongodb access 본문
현재 go-board-api의 디렉토리 구조는 위와 같다.
향후 개발을 지속하며 변경 사항이 생길 수 있겠지만,
- router directory - 게시판 REST API Endpoint에 대한 경로 설정
- mongodb directory - mongodb access를 관리하는 package 위치
- handler directory - 게시판 REST API Endpoint 별 요청을 처리하는 함수들 위치
현재는 간단하게 위와 같이 생각 중이다.
개발을 하는 과정에서 디렉토리나 패키지를 분리하고 싶어지더라도, 최대한 위 구조에서 개발을 진행하고 기능 개발이 마무리되면 코드를 정리해볼 생각이다.
mongodb access와 관련된 코드는 다음과 같다. 다음 장에서는 REST API를 하나씩 설계해볼 예정이다.
package mongodb
import (
"context"
"fmt"
"log"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var (
Client *mongo.Client
Collection *mongo.Collection
)
func Init(url, dbName, collectionName string) {
MongoConnect(url, dbName, collectionName)
GetArticles(Client, Collection)
}
func MongoConnect(url, dbName, collectionName string) {
clientOptions := options.Client().ApplyURI(url)
client, err := mongo.Connect(context.TODO(), clientOptions)
if err != nil {
log.Fatal(err)
}
Client = client
fmt.Println("connected...")
Collection = client.Database(dbName).Collection(collectionName)
}
func GetArticles(client *mongo.Client, collection *mongo.Collection) {
cursor, _ := collection.Find(context.TODO(), bson.D{{}})
for cursor.Next(context.TODO()) {
var elem bson.M
cursor.Decode(&elem)
fmt.Println(elem)
}
MongoDisconnect(client)
}
func MongoDisconnect(client *mongo.Client) {
err := client.Disconnect(context.TODO())
if err != nil {
log.Fatal(err)
}
fmt.Println("disconnected...")
}
'Golang 게시판 제작' 카테고리의 다른 글
[#5] mongoDB 서버 생성 및 세팅 (0) | 2022.03.13 |
---|---|
[#4] DB에 대한 고민 (0) | 2022.03.12 |
[#3] golang api 개발을 위한 기초 예제 (0) | 2022.03.12 |
[#2] 게시판 기능 api 개발 서버 생성 및 golang 개발 환경 세팅 (0) | 2022.03.11 |
[#1] Redis 서버 생성 및 세팅 (0) | 2022.03.11 |
Comments