분류 전체보기

항해99/TIL

2021-07-31 항해99 TIL

오늘 한일 실전 프로젝트팀원들의 목표를 한번 되돌아보았습니다. 이번 주의 목표는 어떤 것을 잡았고, 그것을 어느 정도까지 구현에 성공하였는지, 한 주간 보낸 시간이 나태하지는 않았는지, 단순히 시간이 지나면 프로젝트가 종료될 것이라는 마음가짐을 가지고 있지 않은지 등 많은 이야기를 하였습니다. MySQL의 DB를 재정비하였습니다. TRIGGER가 빠지진 않았는지, 대화방을 구현하면서 부족한 부분이 있지는 않았는지, SQL이 비정상적으로 느리지 않았는지 등 고뇌의 시간을 가졌습니다. Socket 대화방을 구현했습니다. 간단하게 nunjucks 템플릿 언어를 사용해 대화방을 구현했고, 완벽하지는 않지만, Socket을 위한 별도의 API 문서를 작성해보았습니다. 다음 주 시간이 난다면 소켓에 대한 구성 방식..

항해99/TIL

2021-07-30 항해99 TIL

오늘 한일 팀장 주간 회의가 진행되었습니다. 전반적인 프로젝트의 진행 상황, 다음 주의 할 일, 업무 현황 등 많은 이야기를 하였습니다. 저희 팀을 포함해 총 4분의 팀장님이 참여해주셨고, 저희 팀과 같이 대부분 기획 부분에서 많은 시간을 할애한 것 같습니다. 느리진 않지만, 느긋하게 프로젝트를 진행해야 할 것 같습니다. Socket으로 클라이언트의 정보를 받아와 모든 유저에게 배포하는 Socket 코드를 작성하였습니다. 아직 친구 목록, 일정 목록 등 많이 구현되어 있지 않지만 구현된 코드를 통해 프론트 엔드에서 테스트가 가능할 것 같습니다. Node.js에서 Express, Socket이 CORS가 별도로 적용되는 것을 확인하였습니다. Express에서 CORS를 적용하고 테스트를 했는데 클라이언트에..

항해99/필기노트

[필기노트] 실시간 통신 논리구조, Socket

-- API Socket 논리 구조 생각 1. 네이버 지도 페이지로 돌아왔을 때 Socket을 연결한다. 2. 연결한 클라이언트에게 자신의 친구 리스트, 동일한 일정에 등록되어있는 유저 리스트를 뿌려준다. 3. Server에서는 클라이언트의 실시간 위치를 취합해서 모든 유저에게 동일한 위치 데이터를 뿌려준다. 3.1 Socket 데이터 = {userId, lat, lng} 4. 클라이언트는 친구, 일정 리스트에서 userId를 구분해 표시할 아이콘을 지정한다. TODO 일정 데이터는 어떻게 뿌려줄 수 있을까? - 일정 데이터 (모일 장소) 는 처음 접속했을 때 한번만 뿌려줄 수 있도록 설정한다. - 나중에 유저수가 증가할 경우 지역별로 일정데이터를 관리할 수 있도록 설정한다. == Socket == So..

항해99/TIL

2021-07-29 항해99 TIL

오늘 한일 디자이너분들과 회의를 진행하였습니다. 테마 색상지정, 메인 로고 아이콘 지정, 주제 선정, 업무분담 4가지로 진행되었지만, 제일 핵심적인 주제선정에서 전날 주제가 '러닝'으로 변경된 것에 대해 팀원들과 디자이너분들이 의문점이 있으셨고, 저 또한 간과한 것이 있었기에 다시 주제에 대해 고찰해보았고, 최종적으로 '운동'이라는 주제로 변경되었습니다. Socket 통신으로 대화방 구현 코드를 분석하고 있습니다. 이전에는 강의를 순서대로 따라가면서 예제를 확인하고, 코드를 분석해 전반적인 프로그램에 이해가 쉬웠지만, 단순히 동작하는 프로그램을 하나씩 분해하면서 습득하는 부분에서는 많은 시간이 걸리는 것 같습니다. 작성된 프로그램을 어떻게 분해해서 저희 프로젝트에 녹일 수 있을지 생각해봐야겠습니다. 카카..

항해99/필기노트

[필기노트] SQL, 5개 Table 조회

-- 유저 정보 조회 (동일한 일정이 있을 경우) 2명의 userId가 존재한다. 1. 모든 유저를 출력한다. SELECT * FROM Users ; 2. 모든 구인 공고를 출력한다. SELECT * FROM Posts ; 3. 모든 채널을 출력한다. SELECT * FROM Channels ; 4. 해당하는 Channels에 모든 user를 출력한다. SELECT userId FROM Channels WHERE postId = 1; 5. 입력받은 userId가 있는 경우의 Channel만 출력해야한다. SELECT postId FROM Channels WHERE userId = 2; 6. 입력받은 userId가 있는 일정에 참여중인 userId를 출력한다. SELECT DISTINCT userId FR..

항해99/TIL

2021-07-28 항해99 TIL

오늘 한일 기획 재정비를 하였습니다. 기존의 기획은 모든 주제를 포괄하는 실시간 위치 갱신 서비스였는데, 튜터님과의 면담으로 주제에서 타깃을 확실하게 할 수 있는 것이 부족하다 하였고, 모든 주제에서 '러닝'이라는 주제로 축소해서 개발하기로 하였습니다. API 문서의 작성을 중단하였습니다. 현재까지 작성된 API까지만 서버에 배포하였고, 다음 주까지 프론트 엔드에서 구현될 기능을 미리 전부 구현하였습니다. 일부 기능이 남아있기는 하지만, 이제부터 가장 막히는 기능이 어느 것인지 생각해보았고, 소켓 통신, 분산 관리 서비스 등이 남아있었기에 백 엔드에서 역할분담을 Socket GPS 처리, Socket 대화방 구현, Docker 분산 관리 서비스 총 3가지로 역할을 분담하였습니다. DB가 많이 수정되었습니..

항해99/필기노트

[필기노트] 카카오맵, API 구현

Click 이벤트는 마우스 클릭이 종료될 때 발생한다. kakao.maps.Size(width, height) : 크기 정보를 담고 있는 사이즈 객체를 생성한다. kakao.maps.Point(x, y) : 화면 좌표 정보를 담고 있는 포인트 객체를 생성한다. 각각의 marker를 생성하면서 생성된 것과 동시에 addListener에 입력받은 userId, type을 기반으로 함수를 삽입한다. TODO marker를 삭제하지않고 이동하는 방식으로 사용하려면 어떻게 해야할까? - markers를 object형식으로 저장하고, 키값을 userId로 하면 되지 않을까? - userId로 검색을 했을 때 데이터가 있을 경우 markers의 위치만 변경하고 , 없을때 생성하도록 하면? TODO 위도, 경도를 변환..

항해99/TIL

2021-07-27 항해99 TIL

오늘 한일 카카오맵에서 클릭 이벤트 및 마커 실시간 갱신을 구현하였습니다. 내용 중 어려운 것은 없었지만, 어떠한 방식으로 코드를 최적화 할 수 있을지, 통신하는 Socket 데이터를 어떻게 효율적으로 사용할 수 있는지 고민하는 시간이 길었습니다. 코드를 작성하는 시간보다 생각하는 시간이 많았던 것 같습니다. User 인증 API를 작성하였습니다. 기존의 User 인자 중에서 Like 라는 배열 데이터를 가져오는 부분이 새롭게 생겼습니다. Sequelize ORM으로 사용하는 것이 바람직하지만, 더 빠른 코드 구현을 위해 SQL을 활용하여 GROUP_CONCAT을 사용해 해결하였습니다. redis, Socket 데이터 분산처리, 멀티 프로세싱 등 공부해야 할 것이 너무 많은 것 같습니다. 어느 하나를 집..

항해99/필기노트

[필기노트] 2021-07-26 DB생성, 임시 데이터 삽입

== DB ERD CREATE TABLE Users( userId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY , email varchar(255) NOT NULL UNIQUE, name varchar(50) NOT NULL, nickname varchar(50) NOT NULL UNIQUE, password varchar(255) NOT NULL, profileImg varchar(255), statusMessage varchar(255), rating int(11) NOT NULL, createdAt datetime NOT NULL, updatedAt datetime NOT NULL ); CREATE TABLE Likes( likeId int(11) NOT NULL ..

항해99/TIL

2021-07-26 항해99 TIL

오늘 한일 API 문서를 일부 작성하였습니다. 추가해야 할 대화방의 기능과 친구 기능에 대해서는 이번 주 내로 구현이 어렵다고 판단하여 문서 작성에서는 잠시 제외하였고, 가장 핵심적인 로그인, 회원가입, 마이 페이지, 메인 페이지에 대해서 정의하였습니다. DB ERD 구성을 정의하였습니다. 기존의 작성하던 것과 크게 다르진 않았지만, 친구를 수락해야 하는 기능과 대화방을 정의해야 하는 것에서 많은 어려움을 겪었습니다. 우선은 다음 주까지 구현해야 할 기능에서 친구 기능은 존재하지 않기 때문에 제외하였고, 나머지 기능에 대해 ERD를 구성했습니다. Sequelize로 MySQL DB를 설정하였습니다. 기본 코드를 작성하여 Node.js 백 엔드 팀원들에게 공유하였고, 서로 맡은 업무를 시작하였습니다. 오늘..

커스텀 리
'분류 전체보기' 카테고리의 글 목록 (14 Page)