일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 누적합
- 구현
- 시뮬레이션
- redis
- 16985
- c++
- 11659
- BOJ
- golang
- 정렬
- 최소신장트리
- dfs
- 21921
- 맥주 축제
- SWEA
- 구간합
- 크루스칼
- 17503
- NCP
- 다익스트라
- mst
- 세그먼트 트리
- gorilla/mux
- mongodb
- 민준이와 마산 그리고 건우
- 점수 따먹기
- 이분 탐색
- Naver Cloud
- DP
- 백준
- Today
- Total
목록Golang 게시판 제작 (7)
Gi-Log
현재 go-board-api의 디렉토리 구조는 위와 같다. 향후 개발을 지속하며 변경 사항이 생길 수 있겠지만, router directory - 게시판 REST API Endpoint에 대한 경로 설정 mongodb directory - mongodb access를 관리하는 package 위치 handler directory - 게시판 REST API Endpoint 별 요청을 처리하는 함수들 위치 현재는 간단하게 위와 같이 생각 중이다. 개발을 하는 과정에서 디렉토리나 패키지를 분리하고 싶어지더라도, 최대한 위 구조에서 개발을 진행하고 기능 개발이 마무리되면 코드를 정리해볼 생각이다. mongodb access와 관련된 코드는 다음과 같다. 다음 장에서는 REST API를 하나씩 설계해볼 예정이다. ..
네이버 클라우드(NCP)에서는 Cloud DB for mongoDB라는 상품을 이용하여 mongoDB를 손쉽게(? 사실 세팅이 꽤나 복잡하다.) 세팅할 수 있다. 다만,,, 간단히 뚝딱뚝딱 개발을 하고자 VPC platform이 아니라, classic platform에서 시작한지라,,, 직접 centos 서버를 생성하고 mongoDB를 설치하기로 하였다. 우선 go-board-mongo라는 centos 7.3 서버를 생성한다. (서버 생성 방법은 https://jinho9610.tistory.com/47을 참조하면 편하다.) 그리고 공인 ip도 할당받는데, 이전 redis 서버를 표현할 때 사용하던 공인 ip인 111.222.333.111로 표현해나가도록 하겠다. 그리고 이제 해당 서버에 mongodb를..
본격적인 api 구성을 고민하고, 개발을 하기에 앞서서... database로 redis를 이용하는 것이 과연 적절한가라는 고민을 하게 되었다. 조금 찾아보니 redis는 어떤 저장소보다는 메시지 큐나 캐시의 기능을 하는데 많이 사용된다고 한다. 내가 원했던 nosql은 문서 형태로 어떤 사용자가 어떤 글을 작성했었는지 몽땅 기록해두는 것이었기에, redis 보다는 mongoDB가 적합하다는 생각을 하게 되었다. 그리고... 처음(#1 포스트)에 nosql을 이용하려고 하는 이유가 "학습"이라고 했었는데, 사실 정형화된 형태를 보이는 "게시판"에 어울리는 것은 RDBMS(ex. mysql)이란 생각이 자꾸만 드는 상황이다. .... 많은 고민 끝에 내린 결론은 다음과 같다. 어짜피 아주 복잡한 시스템의 ..
api는 당연히 http를 바탕으로 개발이 되어야 한다. 따라서 golang에서 http 관련 다양한 프레임워크 중 gorilla/mux라는 것을 이용할 것이다. 간단하게 터미널에서 go get -u github.com/gorilla/mux를 입력하면 pkg 디렉토리 내의 mod 디렉토리 내에 github.com/gorilla/mux@{버전정보} 가 생성된 것을 확인할 수 있다. (사실 어느 위치에서 저 명령어를 입력하는지는 그렇게 중요하지는 않은 것 같은데, 본인은 src/go-board에서 저 명령어를 입력하였다.) package main import ( "encoding/json" "github.com/gorilla/mux" "net/http" ) func handler(w http.Response..
게시판 만들기 포스트 #1에서 redis 서버를 생성했는데 비슷한 과정으로 게시판 api 서버를 만들도록 하자. redis 서버가 centos 7.3 os를 이용 중이기 때문에, api 서버도 동일한 버전 os로 생성하고, 이름은 go-board-api로 해주었다. 그리고 redis 서버의 공인 ip를 111.222.333.111 이라고 하겠다고 했었는데, api 서버의 공인 ip는 앞으로 123.123.123.123이라고 하겠다. 앞으로 api 서버는 GoLand에서 ssh로 접근하여 api 개발을 하는데 이용될 예정이다. api 서버 go 설치 개발에 앞서 golang으로 개발을 진행하기 위해 api 서버에 golang을 설치해줄 것이다. golang 개발 환경 세팅에 대해서 자세히 설명하기 위한 포..
가장 먼저 네이버 클라우드(Nave Cloud Platform, 이하 NCP)에 가입하여 콘솔에 접속 후, Server 상품을 이용 신청하여 다음과 같이 Redis 서버(VM)을 생성하였다. (참조 - https://guide.ncloud-docs.com/docs/database-database-4-1) 서버 세대, 스펙 등은 default 값들을 이용했고, 서버 이름은 go-board-db 정도로 간략하게 지정하였다. ACG 또한 default acg를 사용하였고, 해당 acg는 웬만한 ip 접근은 허용하도록 하였다. 간단한 프로젝트이므로 보안성에 대한 고려는 크게 하지 않기로 하였다...ㅎㅎ 그리고 간편한 접근 및, 외부에서 redis를 접근할 수 있도록 공인 ip(server - public ip ..
개인적으로 golang을 사용할 이유가 생겼다. 해당 언어를 공부함과 동시에, 네트워크, db, 클라우드 등 다양한 개발 환경에 대한 실전 학습을 하고자 간단한 게시판을 만들까... 라는 생각을 하게 되었고, 기왕하는김에 블로그에 정리하면서 작성하려고 한다. 형식에 너무 얽매이지 않고 가볍게 작성하는 느낌으로...ㅎㅎ Cloud env. : Naver Cloud Database : Redis Language : Golang v1.13 IDE : GoLand한글 자료가 풍부한 네이버 클라우드를 이용할 것이고, nosql에 대한 경험 및 학습이란 목표로 redis를 이용하기로 하였다. IDE로는 jetbrain 사의 GoLand를 이용할 것인데 vscode도 굉장히 잘 되어있기 때문에 사실 본 포스팅을 참조..