본문 바로가기

프로젝트/taka: 대여사업 관리 서비스

(5)
[taka] swagger ui 달기 및 NoSuchMethod 오류 해결하기 Swagger ui란?Swagger UI는 RESTful API를 시각적으로 탐색하고 테스트할 수 있는 인터페이스로, 개발자들이 API의 엔드포인트와 그에 따른 요청 및 응답을 쉽게 확인할 수 있도록 돕는다. 이는 API 사용 방법을 명확하게 보여주며, API의 복잡한 구조를 한눈에 파악할 수 있도록 한다.Swagger ui 가 필요한 이유1. api 문서 작성 자동화 가능: 간단한 코드 추가로 API 문서를 자동 생성해주기 때문에 문서 작성에 드는 시간과 노력을 크게 줄여주며, 문서와 코드의 불일치를 방지한다. API가 변경될 때마다 수동으로 문서를 업데이트할 필요 없이, 코드와 함께 문서가 자동으로 최신 상태로 유지된다. 2. 개발, 테스트의 편리함: Swagger UI는 사용자가 브라우저에서 직접 ..
[taka] dto에 관한 고찰 Dto가 필요한 이유1. entity란 굉장히 여러 곳에서 사용되는 것이기 때문에, entity를 손댔을 때 api 스펙 자체가 변화하면 안된다. 즉, entity와 api가 1:1로 매핑되면 안된다. 또한, 실무에서는 회원가입 케이스가 많이 존재하기 때문에 (ex 사이트 자체 회원가입, 네이버 회원가입, 카카오 회원가입 등...) 하나의 entity로 여러 가지 케이스를 다 감당할 수가 없다. 그렇기 때문에 entity를 외부에 노출하여 외부에서 들어오는 entity를 @ResponseBody 로 바로 바인딩해서 쓰면 안되고, dto 를 활용하여 데이터를 받는 것이 좋다. 즉, api를 만들 때는 entity를 파라미터로 받으면 안되고, 외부에 노출해서도 안된다.  또한 entity 자체를 받아버리면,..
[taka] 예외처리란 어떻게 해야할까? 원래는 그냥 자체 회원가입을 진행하려고 했는데, 학교 학생들을 대상으로 한 서비스이다보니 학교 이메일 인증이 필수적이라고 생각해서 아예 아이디 대신 학교 이메일을 대신 사용하는게 낫겠다는 생각이 들었다. 그래서 userId 필드 자체를 없애버리고 학교 이메일로 대체했다. 그렇다면 이메일로 인증 코드를 발송하고 그것이 프론트단에서 사용자가 확인차 입력한 코드와 일치하는지 확인하는 로직이 추가적으로 필요했다. 그렇게 어려운 과정이 아닌 것 같았는데 원래 회원가입 하나로 구성된 api 엔드포인트를 인증번호 전송 / 인증번호 확인 / 회원가입 세 개의 엔드포인트로 나눠서 구성해야 했고, 그 과정에서 군데군데 에러가 터졌는데 예외처리를 세분화하지 않으면 어디서 에러가 터졌는지 찾기가 힘들어서 좀 까다로웠다. (계..
[taka] entity 수정 + Envers를 이용한 엔티티 변경 감지 @Data 대신 @Getter의 사용실무에서는 @Data를 지양하는데, 이는 setter가 남용될 경우 데이터가 쉽게 변화될 수 있기 때문이다. 이론적으로는 getter, setter을 모두 제공하지 않고 별도의 메서드를 두는 것이 가장 이상적이라고 하지만, 실무에서는 엔티티 데이터를 조회할 일이 너무 많아서 getter은 모두 열어두고 setter의 경우 열어두면 데이터가 변하고 어디서 변화했는지 찾기가 힘들어지기 때문에 setter 대신 변경 지점이 명확해지도록 비즈니스 메서드를 제공해야 된다고 한다. 유효성 검사는 어디에서 해야하는가?유효성 검사를 Dto에서 해야할지 엔티티에서 해야될지 찾아보았는데 - 원칙적으로는 두 곳에서 모두 유효성 검사를 하는 것이 좋겠지만 실무에서는 너무 많은 부분에서 중복..
[taka] db 설계, erd 작성 서론프로젝트 소개학생회, 동아리 등에서 대여사업을 진행할 때 주로 오픈카톡, 네이버 폼을 이용해서 진행하는 경우가 많은데 상당히 불편해보였다. taka는 여러 서비스를 동시에 이용하며 대여사업을 진행하는 대신 하나의 서비스를 이용해 대어 사업을 관리할 수 있는 모바일 웹 서비스이다. (* 원래는 프론트까지 만들어서 실제 사용을 해보고 싶었는데... 오랜만에 리액트 켜서 화면 하나 만들다가 일단 서버개발에 집중해야겠다는 생각이 ...;;) 이름은 왜 taka라고 지었냐고 물어보시면... 별 뜻 없다. 그냥 리포지토리 새로 팔 때 듣고있던 노래 제목이 taka였다. ㅋㅋ  요구사항 분석 db설계를 하려면 요구사항을 면밀하게 분석해야 한다. 먼저 필요한 기능들을 글로 정리해보았다. 분석한 요구사항들을 바탕으로..