COTATO.KR 프로젝트 (5) 썸네일형 리스트형 [Spring] Params를 통한 동일 path API 구분 + Swagger에서 불가능한 이유 코테이토 프로젝트에서 이름, 포지션, 합격 기수별 멤버를 필터링 API가 있다. 또한, 이번 스프린트를 통해 멤버 상태(승인, 불승인, OM)에 따라 필터링 하는 같은 경로(path)의 API를 추가했다. 이번 글에서는 Controller에서 같은 path + 다른 파라미터의 API를 구분하게 하는 방법과 Swagger에서 구분할 수 있는지 확인해보겠다. 같은 URL, 같은 HTTP 메서드의 엔드포인트가 존재하면?1. 이름, 포지션, 합격 기수별 멤버 필터링 API@RequestMapping("/v1/api/member")public class MemberController { @Operation(summary = "기수별 멤버에 추가 가능한 멤버 반환 API") @RoleAuthority(.. [COTATO.KR] 웹소켓에 퀴즈에 대한 정보를 넣어야 할까? 코테이토 내 실시간 선착순 문제풀이 서비스를 개발한 지 1년 정도 됐다. 웹소켓을 활용해 관리자가 버튼을 클릭할 시 실시간으로 접속한 사용자들에게 동시에 문제 풀이가 가능하게 했다. 하지만 현재 웹소켓 전송 로직을 바꿀까 고민중에 있어 글을 정리하고자 한다. 현재 선착순 제어 로직은 다음과 같다.관리자가 접근 버튼을 누른다.웹소켓을 이용해 접속한 모든 사용자에게 해당 퀴즈 pk가 넘어간다. 문제의 데이터는 보내지 않는다.사용자는 웹소켓으로 받은 퀴즈 pk를 Body에 넣어 퀴즈의 정보를 받는 API를 쏜다.해당 로직은 장단점은 다음과 같다.장점웹소켓을 통해 적은 메세지만 보내므로 모든 인원이 비슷한 시기에 버튼을 받을 수 있다.단점웹소켓 → API → 랜더링의 과정을 겪으므로 시간이 오래 걸린다.API(.. [K6 테스트] websocket 발전을 위한 성능 테스트 프로젝트에서 websocket을 이용한 선착순 문제풀이가 존재한다. 현재 방식은 websocket에서 퀴즈 상태(현재 상태), 명령어(command), 퀴즈 아이디만 소켓을 통해 프론트로 메세지를 보낸다. 해당 메세지를 받은 프론트는 1번 퀴즈를 status(공개) 하고 문제풀이(start)는 허용하지 않은 화면을 반환한다. 프론트에 소켓 메세지가 도착하면 프론트에서/quiz/{quizId} http 요청을 통해 해당 퀴즈 정보를 가져오는 두 단계 방식으로 진행된다. 기존에는 문제의 정보를 전체 다 넘겨주려고 했다. 하지만 당시까지는 개발한 소켓은 불안해 최대한 안정적으로 메세지를 보내기 위해 quizId만 보내기로 했다.하지만 프로젝트 V2에 들어서면서 소켓 안정성이 향상돼 많은 데이터도 안정적으로.. Multipart/form-data convert(역직렬화) 오류 해결 프로젝트를 진행하다 file과 속성 값이 같이 있는 DTO를 swagger에서 백엔드 넘기는 상황에 직면했다. 이 때 중첩된 DTO를 사용할 때 convert 오류가 발생한다.record request(String placeName,@NotNull LocalDate sessionDate,@Valid @NotNull AttendanceDeadLineDto attendanceDeadLine)cannot convert value of type 'java.lang.string' to required type dto 헤당 문제는 중첩된 DTO를 사용할 때 swagger에서는 form-data 상태에서 중첩된 DTO를 객체가 아닌 String으로 인식한다. 따라서 AttendanceDeadLineDto를 객체를 받.. 코테이토 홈페이지 프로젝트 V1 회고록 2월 23일 코테이토 데모데이가 끝나고 공식적으로는 프로젝트 V1이 끝났다.2023년 10월부터 2024년 2월까지 5개월동안 진행한 프로젝트에 대한 후기를 남겨보도록 하겠다. 왜 2월에 끝났는데 지금 작성하냐...공식적으로는 2월 마감으로 마감까지는 완료했지만 V1으로 남겨두기에는 스스로 너무 부족한 부분이 많이 보였다.리펙토링할 것도 눈에 보이는 것만 산더미였고 미완으로 남겨둘 수가 없어서 추가로 리펙토링을 4월까지 진행했다. 코테이토 프로젝트란?코테이토는 내가 2023년 3월부터 활동했던 동아리다. 일년동안 동아리 활동을 하면서 다양한 사람들을 만나면서 많이 배우고 생각하는 방식도 알게 됐다. 그렇다 보니 지금까지 배운 지식과 경험을 바탕으로 운영을 할 수 있는 프로젝트를 만들고 싶었다.그렇게 뜻이.. 이전 1 다음