{"id":2456,"date":"2016-10-05T08:14:38","date_gmt":"2016-10-05T08:14:38","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=2456"},"modified":"2017-01-30T21:16:30","modified_gmt":"2017-01-30T12:16:30","slug":"golang-postgresql-%eb%8b%a4%eb%a3%a8%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=2456","title":{"rendered":"[Golang] PostgreSQL \ub2e4\ub8e8\uae30"},"content":{"rendered":"<p>Golang\uc740 \ub2e4\uc591\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ub2e4\ub8f0 \uc218 \uc788\ub294\ub370\uc694. Oracle, MySQL, MSSQL Server, DB2 \uadf8\ub9ac\uace0 PostgreSQL \ub4f1\uc5d0 \ub300\ud55c DB \ub4dc\ub77c\uc774\ubc84 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uac01 \ub4dc\ub77c\uc774\ubc84\ub294 github\ub97c \ud1b5\ud574 \uc18c\uc2a4\ucf54\ub4dc\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\uba70 \ub4dc\ub77c\uc774\ubc84\uc5d0 \ub300\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc18c\uc2a4\ucf54\ub4dc\ub294 go get {URL}\ucc98\ub7fc Command Line\uc744 \ud1b5\ud574 \uc124\uce58\ud558\uc5ec \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae00\uc740 Local PC\uc5d0 \uc124\uce58\ub41c PostgreSQL\uc5d0 \uc5f0\uacb0\ud558\uc5ec, \uc774\ubbf8 \uc874\uc7ac\ud558\ub294 postgres \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 test \ud14c\uc774\ube14\uc5d0 \ub370\uc774\ud130\ub97c \ucd94\uac00(INSERT)\ud558\uace0 \ucffc\ub9ac(SELECT)\ud558\ub294 \ucf54\ub4dc\ub97c \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 postgreSQL\uc5d0 \uc5f0\uacb0\ud558\ub294 \ucf54\ub4dc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\npackage main\r\n\r\nimport (\r\n    \"database\/sql\"\r\n    \"fmt\"\r\n\r\n    _ \"github.com\/lib\/pq\"\r\n)\r\n\r\nconst (\r\n    DB_USER     = \"postgres\"\r\n    DB_PASSWORD = \"ILOVEU\"\r\n    DB_NAME     = \"postgres\"\r\n)\r\n\r\nfunc main() {\r\n    dbinfo := fmt.Sprintf(\"user=%s password=%s dbname=%s sslmode=disable\",\r\n        DB_USER, DB_PASSWORD, DB_NAME)\r\n\r\n    db, err := sql.Open(\"postgres\", dbinfo)\r\n    if err != nil {\r\n        panic(err)\r\n    }\r\n    defer db.Close()\r\n\r\n    \/\/ ... \uacc4\uc18d\r\n<\/pre>\n<p>\ub2e4\uc74c \ucf54\ub4dc\ub294 \uc5f0\uacb0\ub41c DB\uc5d0 \ub370\uc774\ud130\ub97c \ucd94\uac00(INSERT)\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\n    result, err := db.Exec(\"INSERT INTO test (name, age) VALUES('Jackass', 19)\")\r\n    if err != nil {\r\n        panic(err)\r\n    }\r\n\r\n    cntAffected, err := result.RowsAffected()\r\n    if err != nil {\r\n        panic(err)\r\n    }\r\n\r\n    fmt.Println(\"Affected Rows:\", cntAffected)\r\n\r\n    \/\/ ... \uacc4\uc18d\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc \uc911 11\ubc88\uc740 INSERT \ub41c \ub370\uc774\ud130\uc758 \uac1c\uc218\ub97c \ub098\ud0c0\ub0b4\uba70, \uc5ec\uae30\uc11c\ub294 1\uac1c\ub97c \ucd94\uac00\ud588\uc73c\ubbc0\ub85c 1\uc774 \ub429\ub2c8\ub2e4. \ub2e4\uc74c \ucf54\ub4dc\ub294 \uc800\uc7a5\ub41c \ub370\uc774\ud130\ub97c \uc870\ud68c(SELECT)\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre>\r\n    rows, err := db.Query(\"SELECT name, age FROM test\")\r\n    if err != nil {\r\n        panic(err)\r\n    }\r\n    defer rows.Close()\r\n\r\n    var name string\r\n    var age int\r\n    for rows.Next() {\r\n        err := rows.Scan(&name, &age)\r\n        if err != nil {\r\n            panic(err)\r\n        }\r\n\r\n        fmt.Println(name, age)\r\n    }\r\n}\t\r\n<\/pre>\n<p>\uc2e4\ud589 \uacb0\uacfc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nAffected Rows: 1\r\nDip2K                            40\r\nDip2K                            40\r\nJackass                          19\r\nJackass                          19\r\nJackass                          19\r\nJackass                          19\r\nJackass                          19\r\nJackass                          19\r\nJackass                          19\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Golang\uc740 \ub2e4\uc591\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ub2e4\ub8f0 \uc218 \uc788\ub294\ub370\uc694. Oracle, MySQL, MSSQL Server, DB2 \uadf8\ub9ac\uace0 PostgreSQL \ub4f1\uc5d0 \ub300\ud55c DB \ub4dc\ub77c\uc774\ubc84 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uac01 \ub4dc\ub77c\uc774\ubc84\ub294 github\ub97c \ud1b5\ud574 \uc18c\uc2a4\ucf54\ub4dc\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\uba70 \ub4dc\ub77c\uc774\ubc84\uc5d0 \ub300\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc18c\uc2a4\ucf54\ub4dc\ub294 go get {URL}\ucc98\ub7fc Command Line\uc744 \ud1b5\ud574 \uc124\uce58\ud558\uc5ec \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc740 Local PC\uc5d0 \uc124\uce58\ub41c PostgreSQL\uc5d0 \uc5f0\uacb0\ud558\uc5ec, \uc774\ubbf8 \uc874\uc7ac\ud558\ub294 postgres \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 test \ud14c\uc774\ube14\uc5d0 \ub370\uc774\ud130\ub97c \ucd94\uac00(INSERT)\ud558\uace0 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=2456\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[Golang] PostgreSQL \ub2e4\ub8e8\uae30&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[50,113],"tags":[111],"class_list":["post-2456","post","type-post","status-publish","format-standard","hentry","category-gisdev","category-golang","tag-golang"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/2456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2456"}],"version-history":[{"count":1,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/2456\/revisions"}],"predecessor-version":[{"id":3845,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/2456\/revisions\/3845"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2456"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}