https://velog.io/@yerimii11/Project-%EB%82%98%EB%A7%8C%EC%9D%98-%EB%AC%B4%EA%B8%B0-%ED%9A%8C%EA%B3%A0-02.1820-D-2220 2022년 2월 26일에 작성된 게시글 아카이브입니다. (사유: 블로그이전)

📖 02.18 금요일
1. 공부 진행 상황
- 공부 진행 상황
- Login에 대해서 이론을 공부할 때
- 단순히 구현을 해보며 책에 나와있는 코드에 대한 설명을 읽으면 될 거라 생각했는데, 코치님의 조언은 다르셨다. Keyword를 중심으로 공부 해나가는 걸 추천해주셨다.
- passport모듈을 사용해 로그인을 구현한다고 했을 때, 해당 모듈에서 지원하는 프로토콜은 OAtuh 2.0(RFC6749)인데
- OAuth 2.0이 뭔지?
- OAuth Protocol 0(제로)?
- 이 프로토콜을 통해 구글이 하는 역할이 뭔지?
- 이 프로토콜에서 활동하는 entity(개체)가 뭔지?
- 브라우저 / auth 프로바이더...
- 결국 얻는게 access Token인데, 이걸 언제 확인하고 언제 넣어주는건지?
- 어떻게 확인하는건지? 어떻게 유지하는지? → redirect 참고해보기!
https://velog.io/@undefcat/OAuth-2.0-간단정리
- Algorithm X
- Login에 대해서 이론을 공부할 때
2. 기술적 고민
- 기술적 고민
[백엔드 팀 공부 계획 - 진행 상황]- 금-저녁) 로그인/회원가입 (+미들웨어, postman) https://kdinner.tistory.com/100
- 완료. 데모용 임시방편으로 구글로그인만 가능한 상태였기 때문에 일반 로그인/회원가입 코드를 json형식으로 주고받도록 구현하였다.
- 이미 메타버스가 구현되어있는 우리 코드에 새로운 로그인 코드를 껴넣는게 생각만큼쉽지 않았다. 로그인이면 기본 중의 기본이니 간단할거라 생각해 책에 나와있는 로그인 코드를 보며 해당 내용만 잘 집어넣으면 될 줄 알았는데.. 역시 실무는 마냥 쉽지 않다는 걸 느꼈다 😅
- 프론트로 데이터만 넘겨주면 됐기 때문에 json으로 전달하는 코드를 작성했고, 직접 웹화면에서 테스트하는 롤이 아니었기에 로그인, 회원가입 등 기능 하나 하나마다 포스트맨 사이트에서 직접 request를 만들어 send해보면서 우리 DB에 email, nickname, password, accessToken, refreshToken이 잘 들어가는지 테스트해가며 구현을 완료했다!
- 책으로 공부 → bcrypt, JWT사용 (+참고 블로그)
javascript - JWT 로그인 및 세션 유지
https://velog.io/@chy0428/Node-JS-Bcrypt를-이용하여-로그인-정보-암호화하기
- 토-낮) API서버, AWS서버 배포 (HTTP~HTTPS)
- 팀장님 낼 약속 있다고 밤에 후루룩 간결하게 얘기해줌. 다시 들을 예정
- WebRTC-Mesh → SFU로 변경할 예정
- 서버비용이 부담되어 Mesh 그대로 가자는 의견이 나왔다..!
- 카메라 디바이스 선택
- 말풍선, 유저 닉네임 노출
- 금-저녁) 로그인/회원가입 (+미들웨어, postman) https://kdinner.tistory.com/100
3. 성찰
- 성찰
- 잠 너무 줄이지 말 것! 잠이 보약이다..! 아프면 내 손해다.
- 알고리즘 공부도 해야하는데 시간 분배를 어떻게 해야할까?
📖 02.19 토요일
1. 공부 진행 상황
- 공부 진행 상황
- 미들웨어 만들어져있는 것 다시 한 번 더 볼 것!
- 닉네임, 카메라 디바이스 추가, 마이크/카메라 on/off 기능
- UseEffect
export const user = { saveUserInfo: (nickname, character) => axios.post("/users/update/profile", { nickname, character }), getUserInfo: () => axios.get("/users/get/userinfo"), };
// BACK users.js /* GET users listing. */ router.get("/get/userinfo", authUser, async function (req, res) { try { //여기의 버튼은 회원가입이 안되어있으면 못들어오는 페이지 => email check 안해도 될 듯함 if (req.user) { res.json({ result: req.user }); } else { res.json({ msg: "토큰이 만료되었습니다." }); } } catch (e) { console.log(e); } });
- Algorithm 완전탐색(진행중)
2. 기술적 고민
- 기술적 고민
- AWS서버
- url이동 안됨, email형식이 아니어도 가입(로그인) 됨
- 방 누르면 캐릭터창 안뜨게 변경 됨
- 닉네임 띄우기!
- 로그인화면 DB실제 입력되어야하는데(우리는 포스트맨으로 체크완료)
- 토큰은 구글 로그인일 때만 가져옴 !
- 닉네임 db에서 받아와야하지!
router.post(‘/room’, async function(req, res) { const findUser = await Aim_user_info.findOne({ where: { email, } }) userNickname = findUser.nickname
- “Anon” 연결 코드 다 바꾸기
- 세마포어, 데드락, 레이스컨디션 다시 공부하기
- crud api 짠 것 우리 코드 다시 분석
- 버그 픽스 진전이 없다
3. 성찰
- 성찰
- AWS EC2, S3 등 서버관리 페이지와 더 친해질 필요가 있다
📖 02.20 일요일
1. 공부 진행 상황
- 공부 진행 상황
- 휴식 (몸상태가 안좋아서 3주만의 휴식) <- 코로나 옮은거였다.. ㅠㅠ 하하하하
- Algorithm
2. 기술적 고민
- 기술적 고민
- 화상채팅 버그 픽스 완료!!!
- 화상채팅 그룹끼리 인접했을 경우, 한쪽 그룹으로 join_group 우선순위를 몰아주게 변경.
그룹넘버가 겹치지않게 1씩 올리고, 그룹넘버가 높은쪽으로 joingroup - user_call 이벤트 함수 안에 guest_gN, host_gN 나눠서 그룹 생성 후 들어가게 만든 코드쪽을 수정해서 처리
- 코드
// app.js socket.on("user_call", async ({ caller, callee }) => { const user_caller = charMap[caller]; const user_callee = charMap[callee]; console.log("이것이 caller의 닉네임이다", user_caller.nickname); let guest_gN = user_callee.groupNumber; let host_gN = user_caller.groupNumber; console.log(guest_gN, host_gN); if (guest_gN) { // 둘 중 한 명 Group 있을 때 if (!host_gN) { await joinGroup(guest_gN, user_caller.socket, user_callee.nickname); user_caller.groupNumber = guest_gN; console.log(user_caller.groupNumber, user_callee.groupNumber); } else { // guest_gN과 host_gN이 다를 경우를 추가 if (guest_gN != host_gN) { console.log("host, guest의 그룹 번호가 다릅니다."); if (guest_gN > host_gN) { await removeUser(caller); joinGroup(guest_gN, user_caller.socket, user_callee.nickname); user_caller.groupName = guest_gN; } else { await removeUser(callee); joinGroup(host_gN, user_callee.socket, user.caller.nickname); user_callee.groupName = host_gN; } } else { console.log("host, guest의 그룹 번호가 같습니다."); } } } else if (!host_gN) { // 둘 다 Group 없을 때 (guest X && host X) user_caller.groupNumber = await makeGroup(user_caller.socket); console.log("Caller가 만든 그룹 번호 :", user_caller.groupNumber); } else { // guest X && host O console.log("else일 때 host_gN: ", host_gN, "guest_gN: ", guest_gN); } });
- 화상채팅 그룹끼리 인접했을 경우, 한쪽 그룹으로 join_group 우선순위를 몰아주게 변경.
- 화상채팅 버그 픽스 완료!!!
3. 성찰
- 성찰
- 아파도 울면서 하자 ㅠㅠ
'SW Jungle [예림] > Project' 카테고리의 다른 글
[Project 나만의 무기] - 회고 02.28~03.06 D-12~6 (4주차, 마무리발표) (0) | 2022.12.30 |
---|---|
[Project 나만의 무기] - 회고 02.21~27 D-19~13 (3주차-SFU구현) (0) | 2022.12.30 |
[Project 나만의 무기] - 회고 02.14~17 D-26~중간발표 (1) | 2022.12.30 |
[Project 나만의 무기] - 회고 02.13 일 D-27 (1주차 끝) (0) | 2022.12.30 |
[Project 나만의 무기] - 회고 02.12 토 D-28 (0) | 2022.12.30 |
댓글