전체 글(50)
-
Docker 네트워크 기초
docker를 사용할 때 --port 옵션을 활용한 docker host와 container간 포트 맵핑 외에는 신경을 쓰지 않고 있었는데, 조금이라도 더 명확하게 파악하고 싶어졌다. * 기본적인 docker 네트워크 형태 * docker 설치시 구성되는 네트워크 * bridge는 어떻게 구성되는 것일까? * docker 0 * 그래서 docker0와 bridge의 관계는? * 그래서 bridge/docker0를 이용한 통신은 어떻게 이루어지는데? * 정리하자면.. * 새롭게 궁금한 내용들 기본적인 docker 네트워크 형태 직접 손으로 그려서... 몹시 조잡하지만 대략 docker 네트워크 구조를 그리면 (일반적으로) 위와 같다. 주목할 점은 컨테이너(들)과 도커 호스트 간에 bridge라는 네트워크 ..
2023.06.12 -
[#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를 하나씩 설계해볼 예정이다. ..
2022.03.20 -
[#5] mongoDB 서버 생성 및 세팅
네이버 클라우드(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를..
2022.03.13 -
[#4] DB에 대한 고민
본격적인 api 구성을 고민하고, 개발을 하기에 앞서서... database로 redis를 이용하는 것이 과연 적절한가라는 고민을 하게 되었다. 조금 찾아보니 redis는 어떤 저장소보다는 메시지 큐나 캐시의 기능을 하는데 많이 사용된다고 한다. 내가 원했던 nosql은 문서 형태로 어떤 사용자가 어떤 글을 작성했었는지 몽땅 기록해두는 것이었기에, redis 보다는 mongoDB가 적합하다는 생각을 하게 되었다. 그리고... 처음(#1 포스트)에 nosql을 이용하려고 하는 이유가 "학습"이라고 했었는데, 사실 정형화된 형태를 보이는 "게시판"에 어울리는 것은 RDBMS(ex. mysql)이란 생각이 자꾸만 드는 상황이다. .... 많은 고민 끝에 내린 결론은 다음과 같다. 어짜피 아주 복잡한 시스템의 ..
2022.03.12 -
[#3] golang api 개발을 위한 기초 예제
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..
2022.03.12 -
[#2] 게시판 기능 api 개발 서버 생성 및 golang 개발 환경 세팅
게시판 만들기 포스트 #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 개발 환경 세팅에 대해서 자세히 설명하기 위한 포..
2022.03.11