Go
-
Golang - modGo 2021. 4. 13. 00:23
Go mod Go에서는 API를 사용할 때 go get을 통해 패키지를 설치하고 사용하게된다. 이때 패키지는 GOPATH(경로)에 설치가 되게 된다. GOPATH에 패키지가 설치되면 여러 프로젝트를 만들었을 때 공통적으로 사용되어 버젼관리를 따로 할 수 없고 원하는 패키지만 설치하는 것이 어렵다. 이럴때 mod를 이용하면 패키지 관리를 쉽게 할 수 있다. 다음과 같은 환경에서 작업한다. > example |--> main.go 먼저 현재 폴더를 go mod로 관리하도록 세팅을 해야된다. go mod init ysy go: creating new go.mod: module ysy 위 명령어를 실행하면 go.mod라는 파일이 생기고 현재 폴더가 mod를 사용할 수 있도록 세팅된다. 그리고 현재 디렉토리 내부..
-
Golang 기초[2]Go 2021. 4. 13. 00:10
다음과 같은 환경에서 작업한다. > example |--> main.go 1. Struct 사용하기 main.go package main import ( "fmt" ) type User struct { UserID string Password string } func main() { var user User user = User{ UserID: "아이디", Password: "패스워드", } fmt.Println(user) } {아이디 패스워드} type User struct : 구조체를 선언하는 방식이다 User는 구조체 이름을 뜻한다. 중괄호안에는 구조체의 내용이 들어가는데 변수의 이름과 타입을 순서대로 적는다. var user User var을 통해 변수선언을 해주는데 타입을 User로 한다. us..
-
Golang 기초 [1]Go 2021. 4. 12. 23:35
다음과 같은 환경에서 작업한다. > example |--> main.go 1. Go환경에서 프로그램 작동하기 Go는 기본적으로 package가 main인 파일에 main함수를 실행한다. 따라서 main.go에 package를 main으로 설정하고, main함수를 만들면 main의 첫줄부터 코드가 실행된다. main.go package main import "fmt" func main() { fmt.Println("Hello") } Hello package : 현재 파일의 패키지를 뜻한다. (main은 디렉토리 구조와 관계없이 main 패키지를 뜻한다.) import : 사용할 패키지(API 또는 다른 디렉토리에 내용을 사용하기위해 명시한다.)를 가져온다. fmt.Println : fmt패키지안에 Prin..
-
Golang - ORM(2) [8]Go 2021. 2. 8. 23:04
2021/02/07 - [Go] - RaspberryPi로 Golang 서버만들기 - ORM(1) [7] RaspberryPi로 Golang 서버만들기 - ORM(1) [7] 백엔드개발을 하다보면 데이터를 객체화해서 DB에 저장하는 일이 많다. 이 과정에서 DB에서 객체로 객체에서 DB로 변환해주는 과정을 거쳐야 된다. 이런 과정을 줄이고 정리하기위해 ORM이란걸 사 yun-seyeong.tistory.com 이전 글에서 보았던 ORM을 이용하면 더 간단히 API를 구성할 수 있다. 2021/01/06 - [Go] - RaspberryPi로 Golang 서버만들기 - 회원관리 하기(1) [6] RaspberryPi로 Golang 서버만들기 - 회원관리 하기(1) [6] 지금까지 세팅한 라즈베리로 회원관리..
-
Golang - ORM(1) [7]Go 2021. 2. 7. 23:36
백엔드개발을 하다보면 데이터를 객체화해서 DB에 저장하는 일이 많다. 이 과정에서 DB에서 객체로 객체에서 DB로 변환해주는 과정을 거쳐야 된다. 이런 과정을 줄이고 정리하기위해 ORM이란걸 사용하게된다. ORM 이란? 객체 관계 매핑(Object-relational mapping; ORM)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법이다. 객체 관계 매핑을 가능하게 하는 상용 또는 무료 소프트웨어 패키지들이 있고, 경우에 따라서는 독자적으로 개발하기도한다. golang에서도 orm을 사용할 수 있도록 해주는 api가 있다. (https://gorm.io/index.ht..
-
RaspberryPi로 Golang 서버만들기 - 회원관리 하기 (3) [6]Go 2021. 1. 6. 23:21
1. API 연결 //현재 패키지를 설정한다. main은 func main()이 있어야한다. package main //필요한 패키지를 import한다. import ( "fmt" "net/http" _ "github.com/go-sql-driver/mysql" "github.com/labstack/echo/v4" "myserver.com/user" ) func main() { //echo 생성 e := echo.New() // '/'로 GET으로 요청이 왔을때 응답을 설정한다.\ //user생성 API e.PUT("/user", func(c echo.Context) error { u := new(user.User) var err error err = c.Bind(u) fmt.Println(u) if e..
-
RaspberryPi로 Golang 서버만들기 - 회원관리 하기 (2) [6]Go 2021. 1. 6. 23:06
1. API 구조 . ├── db │ └── manager.go ├── go.mod ├── go.sum ├── main.go ├── user │ └── user.go └── vendor ├── github.com ├── golang.org └── modules.txt Package는 다음과 같이 구성했습니다. 데이터베이스를 쿼리하고 설정하는 코드는 db폴더에 manager.go에 구현하였고, user관련 비즈니스로직은 user폴더안의 user.go에 구현하였습니다. 따라서 요청이 왔을때 main -> user -> db 순서대로 요청이 가게 됩니다. 2. DB Manager package db import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) /..
-
RaspberryPi로 Golang 서버만들기 - 회원관리 하기(1) [6]Go 2021. 1. 6. 22:20
지금까지 세팅한 라즈베리로 회원관리 시스템을 만들어 보겠습니다. 먼저, DB설계를 하고, 이를 바탕으로 API를 구성해보겠습니다. 1. DB 설계 회원정보 이름 PK 타입 Nullable id * varchar(12) X password varchar(15) X email varchar(30) phone varchar(15) 2. SQL 테스트 데이터베이스 생성 CREATE DATABASE IF NOT EXISTS RASPBERRY_SERVER; 테이블 생성 CREATE TABLE IF NOT EXISTS `user` ( `id` varchar(12) NOT NULL, `password` varchar(15) NOT NULL, `email` varchar(30) DEFAULT NULL, `phone` v..