본문 바로가기

프로그래밍/golang

(4)
go colly 내가 경험한 최고의 스크래핑 프레임워크 안녕하세요. k 입니다. python의 scrapy를 사용하려 하다가 높은 진입 장벽에 막혔습니다. (귀찮아서 그런거 아님) requests와 beautifulsoup보다 더 쉽고 빠르게 스크래퍼를 만들 방법을 고민하다가 golang에 colly 라는 프레임워크가 있다는 말을 발견하고 사용해본 후기를 남기고자 합니다. 사용법이 워낙 간단해서 그런지 한글로 된 자료가 거의 없어서 고생 했었는데 이 글을 읽는 분들은 그러지 않기를 바랍니다. ㅎㅎ 0. 공식 문서 공식 문서에 예제도 많고 정말 잘 정리되어 있습니다. http://go-colly.org/docs/ Documentation | Colly Scraping framework for extracting the data you need from webs..
주니어 개발자의 golang 서버 개발일지 -3 웹소켓을 이용한 채팅방 만들기. 본 글은 다음의 자료를 참조하여 작성 하였습니다. www.slideshare.net/SangikBae/golang-websocket-109095156 서버 사이드의 코드만 작성하도록 하겠습니다. 왼쪽의 사진과 같이 총 3개의 파일로 이루어진 채팅방을 만들 계획입니다. 우선 main.go 를 살펴 보도록 하겠습니다. func main() { r := newRoom() http.Handle("/room", r) go r.run() http.ListenAndServe(":8000",nil) } 우선 room은 추후에 만들 코드이고, 우선은 room 이라는 것을 만들어서 실행시키는 것이 main의 모든 기능입니다. 그럼 room.go의 코드를 작성해 보도록 하겠습니다. room 은 client의 배열을 가지는 ..
주니어 개발자의 go랭 서버 개발일지 -2 웹소켓 생성 및 읽고 쓰기 websocket은 서버와 클라이언트 간에 Socket Connection을 유지해서 양방향 통신이 가능하게 하는 기술입니다. * websocket에 대해서 잘 설명해놓은 다른 글들이 많으니 자세히 설명하지는 않겠습니다. 1. go lang 으로 웹소켓 구현하기! * websocket 은 gorilla web toolkit에 있는 websocket을 사용 하였습니다. 기본적인 웹소켓 연결 package main import "github.com/gorilla/websocket" var upgrader = websocket.Upgrader{ ReadBufferSize: 256, WriteBufferSize: 256, } func main(){ conn, err := upgrader.Upgrade(w, r,..
주니어 개발자의 go랭 서버 개발일지 -1 프로젝트 회고 개발 해야 하는 것- 웹소켓을 활용한 실시간 주식 시세 서버 프로그램 동작 순서 --> 클라이언트에서 시세를 받고 싶은 주식들의 리스트 전달 --> 그 종목에 대한 지속적인 시세를 전달하기 위해서 cronjob 등록 --> 일정 시간마다 시세를 클라이언트에게 전달 해결 해야 하는 것. 1.websocet 생성하기 2. go 서버와 db 연결 3. 주식 시세의 메모리 캐싱 (여러 클라이언트에게 주식의 시세를 보내기 때문에 중복값들은 최대한 캐싱) 4. 일정 시간마다 클라이언트로 시세 데이터 전송하기 어려웠던 사항. 1. 웹소켓의 개념이 생소했다. 2. 인터넷에 있는 대부분의 예제는 메아리 서버 또는 다중 클라이언트와 소통하는 서버였다. (1:多) 내게 필요한건 수많은 1:1 연결 (어려웠던 사항 1번과 연..