전체 글 245

💻 채팅방 중복현상(P&S)

Problem: 일반 감정채팅방과 스파링채팅방의 채팅방 중복현상 Why?: 일반 감정채팅방 입장시 최소 사진 입력값에 따른 roomIndex 값으로 입장, 이때 roomIndex 값은 1, 2, 3 스파링채팅의 roomIndex의 최초 값도 1로 설정되어있어 입장시 중복 현상 발생 Solution: 스파링채팅방의 roomIndex의 최초값을 10부터 시작하도록 코드 변경

컨설팅 메모

채팅창 고려하기 성격/ 환경에 따라 (타겟팅) 앱 리팩토링으로 발전 시키기 채팅 화면갱신의 문제 데이터는 왔는데 갱신이 안되니까? 화면을 갱신하는 이벤트 처리 새로오면 이벤트 처리 후 화면 업뎃해주는 호출 데이터 왔는지 확인 후 데이터 수신쪽에서의 문제일 확률 갱신 트리거 받는거와 갱신은 별개 소켓이 연결되서 가는지 확인 그리고 그게 다시 와야됨 (에코 기능확인) 갔다 다시 온거 확인 됐는데 안뜬다 - dom객체 반영 x [에코가 제대로 되는지) 단일서버와 도커 도커는 이미지로 유리하게 하기위해 리액트에서 브라우저 라우터 잘써주기

카테고리 없음 2023.10.19

💻 사용자 목록 새로고침 현상(P&S)

Problem: 사용자 목록은 이제 제대로 출력이 되지만 다음 사용자가 들어와도 사용자 목록이 업데이트 되지않음 Why?: 비동기방식으로 서버와의 연결을 유지하여 서버로부터 최신데이터를 받아와야 하지만 클라이언트측에서 최초 한번만 호출후 연결종료하여 유저목록이 업데이트되지 않음 Solution: 클라이언트측 호출방식 변경 후 문제해결

💻 사용자 목록 구별(P&S)

Problem: 클라이언트측에서 사용자값은 서버쪽으로 들어오지만 서버에서 다시 Map으로 저장하여 클라이언트로 반환할때 클라이어트 측에서 출력이되지 않음 Why?: 서버쪽에서 Map 형식으로 key값을 roomId로 설정하고 value값 에 다시 유저 목록을 저장 이때 저장은 되지만 클라이언트에서 사용자 목록을 호출할때 roomId값이 제대로 삽입되지 않아 사용자 Set값을 제대로 호출하지 못함 Solution: roomId값이 제대로 호출되도록 roomId호출 로직 변경

💻 메세지 구별(P&S)

Problem: 채팅할때 내가 보낸 메세지와 상대방이 보낸메세지를 구분하는 로직을 추가해도 작동하지 않음 Solution: senderd와 received로 구별한 로직을 보내는 sender, received가 아닌 ID값으로 바꿔서 received의 ID값이 내 ID와 다르면 상대측 메세지로 표시되도록 로직 변경 Why? 구분하는 로직을 sender와 received로 나눠서 나와 상대방을 구별했으나, stomp방식으로 인해 모든 메세지는received로 반환이 되어 모든 메세지가 상대방으로 표시됨

💻 로그인 이슈3(P&S)

Problem: 로그인 직후 로그인 처리가 되지 않던 이슈. 유저가 소셜로그인을 하면 redirect로 연결되는 oauth2/ 경로는 OAuth2RedirectHandler로 연결되어 토큰값을 확인하고 Login 처리가 되어야 하지만 바로 페이지에 반영되지 않던 이슈가 발생 Solution: Client의 로직. login(소셜로그인) -> handler(토큰o) -> login(로그인완료) How: OAuth2RedirectHandler에서 토큰을 확인 한 후에 window.location으로 login을 다시 시도하여 Token 값이 포함된 경우 로그인이 성공하게끔 해결

💻 로그인 이슈(P&S)

Problem : 구글 로그인 이후 카카오,네이버 developers에서 토큰을 받아오지만 토큰에서 email,name 등 칼럼값들이 추출이 안되어 로그인이 실패했던 문제가 발생 Solution : 소셜타입 마다 info를 두어서 각자에 맞는 객체형태로 받을 수 있게정제하여 받는 attributesResponse를 설 How: 카카오,네이버,구글 로그인을 provider 로 구분하여 각 타입에 맞는 service를 생성하여 db에 유저 정보를 저장

🧾로그인에 대해 ++

클라이언트 사이드 vs 서버사이드 소셜로그인을 구현하는 방법은 크게 두 가지다. 하나는 클라이언트 사이드에서 플랫폼과 정보를 주고 받는 것이고, 다른 하나는 서버사이드에서 정보를 주고 받는 것이다. 클라이언트 사이드는 1) 클라이언트에서 정보를 플랫폼에 발송 2) 플랫폼에서 클라이언트로 토큰 발송 3) 클라이언트에서 서버로 토큰 전달 4) 서버에서 토큰을 가지고, 플랫폼에 유저 정보를 요청 5) 유저 정보와 서버에서 생성한 자체 토큰을 클라이언트로 전달하는 과정으로 진행된다. 서버 사이드는 1) 클라이언트에서 정보를 플랫폼에 발송 2) 플랫폼에서 서버로 토큰 발송 3) 서버에서 토큰을 가지고 플랫폼에 정보 요청 4) 유저 정보와 서버에서 생성한 자체 토큰을 클라이언트로 전달하는 과정으로 진행된다. 클라이..

JPA

JPA: Java Persistence API JPA는 자바 진영에서 ORM 기술 표준으로 사용하는 인터페이스의 모음 ORM이란? ORM은 DB와 실제 객체간의 간격을 매핑해주는 Object Relational Mapping 기술 +DB의 CRUD 동작을 모두 메소드로 처리할 수 있게 한다. JPA는 인터페이스의 모음으로, 구현체가 따로 없다. 일반적으로 사용되는 구현체는 Hibernate가 존재 JPA를 왜 써야하나? JPA 장점 Query문 작성 실수를 피할 수 있다. Query같은 경우는 컴파일 시, 오류가 여부 검사가 어렵다 실제로 해당 쿼리가 동작하는 기능이 수행되어야 하기 때문에, 배포 후 오류가 발견된다면...? 협업 상황 시, 다른 사람 코드를 이해하기가 더 쉽다. JPA 단점 정형화 되어..