오늘 한일
- MySQL의 Geometry 데이터 셋 구현에 많은 시간을 할애하였습니다. 간단하게 위도, 경도를 Decimal로 구현할 수 있었지만, 그럴 경우 MySQL에서 제공하는 Geometry 함수들을 사용할 수 없고, 무식하게 구현하는 것 같아 Point 형식을 사용해서 구현하였습니다.
- Geometry 데이터 셋은 삽입과 조회할 때 함수를 사용해야 하는 것을 확인하였습니다. ST_X, ST_Y같이 별도의 함수를 적용하지 않고 조회할 경우 데이터가 깨진 상태로 출력되고, ST_GeomFromText 함수를 사용하지 않고 Geometry 데이터를 삽입할 경우 오류가 발생하는 것을 확인하였습니다.
- Socket에서 네임스페이스마다 미들웨어를 적용할 수 있는 것을 확인하였습니다. 보안성을 위해 인증된 유저만 접속을 허용하기 위해 Socket에 접속 시 인증되어 있지 않은 클라이언트의 접속을 차단하도록 구현하였고, 인증이 허용되었을 경우 userId를 반환하여 로그인된 클라이언트 리스트에 userId를 작성하여 중복 로그인을 방지하는 기능을 추가하였습니다.
업무 리스트
- MySQL Geometry POINT 컬럼 등록하기 [14:30]
- MySQL Geometry POINT 컬럼 조회 기능 구현 [14:30]
- Sequelize Geometry 데이터 셋 조회 및 등록 기능 구현
- 모임 등록, 수정, 조회 시 장소 lat, lng 삽입[15:53]
- Socket Location 모임 핀 서비스 구현 [20:30]
- Socket Location 유저 위치 갱신은 클라이언트가 하도록 설정 [20:30]
- Socket Location 중복 로그인 차단 기능 [22:30]
- Socket 전용 미들웨어 구현
오늘 배운 것
- MySQL Geometry 데이터 타입 등록 및 조회법
- Socket.IO Middleware
- Socket 퇴장 기능
내일 할 것
- 대화방 입장한 후의 메시지 데이터만 수신하도록 수정
- UserId별 인증 메일 발송 횟수 제한 기능 구현
- Socket 코드 최적화
- Redis 연동
- Redis (pub/sub) 구현
- Redis Geometry 데이터 셋 구현
'항해99 > TIL' 카테고리의 다른 글
2021-08-12 항해99 TIL (0) | 2021.08.13 |
---|---|
2021-08-11 항해99 TIL (0) | 2021.08.12 |
2021-08-09 항해99 TIL (0) | 2021.08.10 |
2021-08-08 항해99 TIL (0) | 2021.08.09 |
2021-08-07 항해99 TIL (0) | 2021.08.08 |