전체 글(118)
-
WIL (Weekly I Learned) 4월 2째주
최종 발표 준비, 실전 프로젝트 마무리, 면접(?) 드디어 이번주는 최종발표를 하는 날이였다. 준비할 것은 프로젝트의 더 붙이고 싶은 기능도 있고, 아쉬운 점들도 많지만 이제 정리를 해야한다. 마지막 성능개선을 마치고 주석으로 마무리를 하였다. 그렇게 평화로운 날이 오려나 했더니... 사실 최종발표회날 시작되기 몇시간전 갑자기 문제가 발생해 고치느라 심장이 쫄렸었다....휴... 그렇게 오게된,,,최종발표 시간! 사실 축제의 한마당 같은 기분이였다. 마치 어린시절 운동회를 했을 때의 기분이 살짝 들었다.(온라인 상이지만,,,,왜케 신나지? ㅎㅎ) 약 200명 이상의 사람들이 게더의 발표장에 모였다. 항해99 5기 멤버들 뿐만 아니라, 협력사 측에서도 참가해주셔서 '혹시...오늘 채용이 되면 어떡하지?' ..
2022.04.13 -
[실전프로젝트] Zzz...꿈깨 | Trouble Shooting!(WebRTC, Socket.io)
✅ P2P(signalling server) vs MCU/SFU ❓ 4명까지 보이스 채팅이 가능한 환경을 만들기 위해 어떤 서버를 사용해야 하는가? ---> ❕ signalling server를 구축하자! 📑 오디오만 사용하고, 4명까지만 연결하기 때문에 signalling server로도 client 부담이 크지 않을 거라고 생각했고, MCU, SFU는 프로젝트 기한 내에 구현하기 어려울 것으로 판단했다. ✅ Springboot vs NodeJS ❓ 다대다 WebRTC를 위한 signalling server를 어떻게 구현할 것인가? ---> ❕ NodeJS의 Socket.io를 사용하여 signalling server를 구현하자! 📑 Springboot를 사용하면 하나의 서버만 관리하면 되고, 팀원들 ..
2022.04.13 -
[실전프로젝트] Zzz...꿈깨의 오류제보 사례 & 개선
게임 플레이 중 맞춘 문제 수나 남은 찬스 수가 정상적으로 변경되지 않는 문제 제보 NodeJS의 undefined 에러로 인해 서버가 재시작되면서 각 브라우저의 roomID 초기화 socket.io의 방 구분 기능이 정상적으로 작동하지 않음 📍 NodeJS의 에러를 해결하여 서버가 재시작되지 않도록 조치 "마이크를 차단했을 때 쉽게 해결할 수 있는 방법이 적혀 있으면 좋겠습니다." 브라우저의 마이크 사용 권한을 제한하면 게임 플레이 불가 브라우저에 따라 권한 허용 방법을 설명하는 창을 띄워 다시 서비스 이용할 수 있도록 안내
2022.04.13 -
[Intellij] Terminal에서 한글 깨짐 해결
이렇게 해결하였다. 1. File Encodings Intellij>Settings>File Encodings 에서 Global Encodings, Project Encoding, Properties Files 이 세가지 모두 UTF-8로 설정을 해준다. 2. Edit Custom Vm Options IntelliJ>Help>Edit Custom Vm Options 에서 아래 문구를 추가해준다. -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 해결~!
2022.04.07 -
[Spring] boolean 타입 @Getter 에서 is()?
// 게임 종료 처리 Pass pass = (rankRequestDto.isPass()) ? Pass.SUCCESS : Pass.FAIL; room.endGame(pass, (long) userNum); @Getter가 boolean 타입에 대해서는 getXXX()이 아니라 isXXX() 의 형태로 getter를 자동생성 해준다 @Getter @NoArgsConstructor @AllArgsConstructor public class RankRequestDto { private boolean pass; private String time; } 즉, @Getter 어노테이션으로 getter가 자동생성 될 때, boolean 타입 변수에 대해서는 isXXX()의 형태로 getter를 생성해준다.
2022.04.06 -
@PutMapping / @DeleteMapping 에서 @RequestParam 왜 안되는거여?
PutMapping / DeleteMapping : Body 읽기 @PutMapping이나 @DeleteMapping을 통해 리소스 id를 @PathVariable로 받고 그 외의 변수들은 @RequestParam으로 받으려고 했을 때, query string이 아닌 body에 데이터를 넣고 전송하려하면 정상적으로 작동하지 않는다. body에 담긴 데이터가 POST Method에서는 @RequestParam에는 매핑이 되는데 왜 PUT, DELETE는 안되나 싶어서 찾아봤다. 이슈되는 부분은 spring이 아닌 tomcat에 있었다. tomcat에서 request의 body 내용을 HTTP POST Method 일 때만 파싱해오도록 설정되어 있기 때문이다. 이를 해결하기 위한 한가지 방법으로 HTTP D..
2022.04.06