목록전체 글 (16)
우리는 Calisthenics 입니다!
Fetch Type JPA가 하나의 Entity를 조회할 때, 연관관계에 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값 Eager : 연관 관계에 있는 Entity들을 모두 가져온다. Lazy : 연관 관계에 있는 Entity를 가져오지 않고, getter로 접근할 때 가져온다. N+1 문제 @ManyToOne, @OneToOne의 FetchType을 LAZY로 했을 때 발생 → DB에 상당한 부하를 일으키게 된다. N+1 문제 해결 방법 join fetch 사용 inner join 불필요한 쿼리문이 추가되는 단점이 있다. @EntityGraph 사용 outer join → Cartesian Product ⇒ 중복이 발생한다. → 해결 방법 1:n 필드의 타입을 Set으로 선언한다. → Linke..
회원정보 수정, 회원가입 과정에서 닉네임 중복 체크를 해줘야 합니다. 이를 위해 react-redux-toolkit의 createSlice와 createAsyncThunk를 활용하여 axios 요청을 처리하고 이후 결과에 따라 state.isNicknameChecked의 state를 바꿔주려고 했습니다. 하지만, state가 바뀌지 않고 에러가 나는 상황이 발생했습니다. [에러] Assignment to property of function parameter 'state'라는 에러가 발생하였습니다. [해결과정] 1. 구글링을 통해서 찾아보려 했지만, 마땅한 결과가 나오지 않아 console.log로 state가 잘 들어오는 지 먼저 체크를 해주었습니다. 일반적인 JS 객체가아닌 Proxy 객체가 출력이 ..

💡 STUN/TURN 서버의 필요성 STUN 서버는 UDP 프로토콜 기반으로 동작하며, 클라이언트는 NAT 환경에서 자신의 Private IP를 별도로 가지고 있기 때문에 P2P 통신이 불가능하다. 그래서 STUN 서버를 통해 자신의 Public IP를 확인해 시그널링을 수행할 수 있도록 한다. 만약 STUN 서버를 이용해 외부 주소를 얻지 못한다면 TURN 서버를 통해 트래픽을 라우팅한다. (예를 들어, 두 클라이언트가 같은 네트워크 상에 존재하고 있을 경우 STUN 서버로는 해결 불가능하다.) TURN 서버는 클라이언트들이 서로 통신할 때 public 망에 존재하는 TURN 서버를 경유하도록해 미디어 스트리밍을 할 수 있게 해준다. TURN은 STUN의 확장 개념이고 클라이언트가 서로 다른 NAT 또..