본문 바로가기

프로그래밍/golang

주니어 개발자의 go랭 서버 개발일지 -1 프로젝트 회고

개발 해야 하는 것- 웹소켓을 활용한 실시간 주식 시세 서버 

 

프로그램 동작 순서

--> 클라이언트에서 시세를 받고 싶은 주식들의 리스트 전달

--> 그 종목에 대한 지속적인 시세를 전달하기 위해서 cronjob 등록

--> 일정 시간마다 시세를 클라이언트에게 전달 

 

해결 해야 하는 것.

1.websocet 생성하기 

2. go 서버와 db 연결 

3. 주식 시세의 메모리 캐싱 (여러 클라이언트에게 주식의 시세를 보내기 때문에 중복값들은 최대한 캐싱)

4. 일정 시간마다 클라이언트로 시세 데이터 전송하기

 

어려웠던 사항.

1. 웹소켓의 개념이 생소했다.

2. 인터넷에 있는 대부분의 예제는 메아리 서버 또는 다중 클라이언트와 소통하는 서버였다. (1:多) 

   내게 필요한건 수많은 1:1 연결 (어려웠던 사항 1번과 연결 -> 이론을 잘 몰라서 발생한 문제였다) 

3. 디비 커넥션을 전역으로 유지하고 싶은데 전역변수는 쓰기 싫다. 

4. 캐시도 전역으로 유지해야 하는데 전역변수는 쓰기 싫었다.

 

 

 

위의 문제들을 해결한 방법은 2편에서 이어집니다.