열흘 간, 정말 재밌고 열심히 했던 팀내도서대여시스템(OBRS)가 Ver1 개발을 마쳤다. (*배포 제외)
사이드프로젝트의 버전완료를 낸 게 처음이라 감개무량하고 기쁘고 신기하고 즐겁다.
그래서 Ver1 개발완료한 기념, 어떻게 이 시스템을 만들게 되었고 어떻게 만들었으며 어떤 기능을 제공하는지 글로 따로 남겨보기로 한다.
[작업기간]
2023.3.28~2023.04.08
[개발계기]
개발을 시작하기 전, 아래의 포스팅을 통해 개발을 하게된 계기와 어떤 기술스택을 쓰는지, 최소 요구사항은 어떠한 지 작성했던 글이 있긴 하지만, 개발을 마친 지금 조금 더 정리하여 말해보기로 한다.
최근 읽었던 책을 다시 읽으며 이 좋은 책들을 팀원들에게 대여해주고 싶다는 생각을 했고, 팀내 슬랙에 내가 가지고 있는 책들을 소개하고 대여가능함을 알리려고 했다. 그런데 문득 그럼 "이러한 과정들을 편하게 관리할 수 있는 대여시스템이 있으면 어떨까?" 하는 생각이 들었고 바로 개발에 착수하게 되었다.
[개발일지#000] 팀내도서대여시스템 제작계기 & 사용기술스택 & 최소요구사항
[제작계기] 최근 읽었던 책들을 다시 읽고 있는 중인데 모두 종이책으로 보유중이라서슬랙을 통해 팀원들에게 책을 빌려주면 좋을 것 같다는 생각을 했다. 그런데 아예 책을 빌려주는애플리케
ddururiiiiiii.tistory.com
[프로젝트명 의미]
팀내 혹은 사내에서 사용하게될 작은 웹 애플리케이션이기 때문에 이름 작명에 크게 고민하진 않았다. '팀내도여대여시스템' 으로 말 그대로 팀내에서 사용하게 되는 도서대여시스템이고 영문명은 'OBRS' 인데 O****(회사이름) Book Rental System'의 준말로 한글명도 영문명도 정말 단순하다.
[개발목표]
내가 생각한 이 프로젝트의 개발목표는 크게 두 가지였고 아래와 같았다.
팀내에서 실사용이 가능한 시스템을 만들어보자.
새로운 기술보다 기존에 사용하는 기술을 이용하여 빠른 시간 내에 완성시켜 보자.
프로젝트의 목표는 배포 후 팀원들에게 공개할 예정이라 정말 팀원들이 실사용이 가능한 시스템을 만들고자 했고, 개인적으로 이 프로젝트를 통해서 얻고자 하는 것은 내가 기존에 사용하던 기술을 이용하여 빠른 시간 내에 완성시켜보자. 였다.
[사용한 기술스택]
- 스프링부트 (Spring Boot)
- 타임리프 (Thymeleaf)
- MyBatis
- MySQL
- 부트스트랩 (Bootstrap)
- 바닐라JS
- 백엔드에 경우, 조금 더 빠른 개발진행을 위해 업무에서 사용중인 Spring boot, Thymeleaf, Mybatis를 적용하였고, 업무에서는 Oracle을 사용하고 있지만 MySQL과 Oracle이 크게 다르진 않고 무료로 사용이 가능하기 때문에 MySQL을 사용하였다.
- 프론트엔드 부분은 빠른 개발을 위해 역시 부트스트랩을 적용하였고, 어디에서든 적용이 가능한 바닐라 JS를 사용했다.
[요구사항]
- 책의 소유자가 자신의 책을 등록/수정/삭제가 가능하다.
- 가입한 회원은 등록된 책을 자유롭게 대여하고 반납할 수 있다.
- 가입한 회원은 자신이 등록한 책과 빌린 책에 대한 내용을 확인할 수 있으며, 자신의 회원 정보를 수정할 수 있다.
※ 각 페이지마다의 요구사항을 나열하자면 끝이 없겠지만, 어디에 서류를 제출해야 하는 것도 아닌데다가 반드시 필요한 부분도 아니기에 큰 요구사항만 남겨본다. 아래 구현된 기능을 소개하면서 자세한 요구사항을 서술할 예정이다.
[기능소개]
메인화면

- '모든 책' 화면을 메인페이지로 한다.
- 메인화면인 '모든 책'(모든책/책정보)은 회원/비회원 모두 열람이 가능하다.
- 상단에 시스템의 모든 메뉴를 보여지게끔 했지만 로그인이 필요한 서비스 ('모든책'의 등록/대여/반납, '나의책', '빌린책' '내정보')는 로그인을 요구한다.
- 모든 목록 조회 페이지는 페이지네이션 기능을 제공한다.
- 로그인 후에는 상단에 로그인한 회원의 아이디와 이름이 '아이디 (별명) 님' 형태로 보여진다.
[모든책]
'모든책'의 목록조회 화면에 대한 설명은 '메인화면'의 설명과 같다.
1) 책정보
- '책정보' 페이지에서는 책ID, 책이름, 저자, 등록일자, 소유자, 대여가능상태 여부를 표시한다.
- 책 소유자인 경우 이 화면에서 [수정/삭제] 기능이 활성화 된다.
- 책의 소유자가 아닌 경우 [대여하기] 기능이 활성화 된다.
- 책의 소유자가 아니면서 대여자일 경우 [반납하기] 기능이 활성화 된다.
2) 책등록

'책등록'페이지에서는 책이름과 저자입력만으로 책 등록이 가능하다.
3) 책 정보 수정

- '책 정보 수정' 페이지는 책의 소유자만이 접근이 가능하다.
- 소유자는 책 이름과 저자, 대여상태만 수정이 가능하다. (다만, 현재 책이 대여중인 경우는 상태를 변경할 수 없다.)
[나의책]

- '나의책' 페이지에서는 내가 등록한 책에 대한 목록을 확인할 수 있다.
- '나의책'페이지에서도 '책등록'이 가능하다. 다만 '모든책'에서의 책등록과 동일한 기능이다.
- '나의책' 페이지에서도 책 이름을 클릭시 책에 대한 상세내용을 확인할 수 있으며 이는 '모든 책'의 책정보 기능과 동일하다.
[빌린책]

- 내가 빌린 혹은 빌렸던 책에 대한 목록을 조회할 수 있다.
- 책이름을 클릭하면 '책정보'를 볼수 있으며 이는 '나의책'의 '책정보' 기능과 동일하다.
[내정보]



- '내정보' 페이지에서는 로그인한 회원의 정보를 조회/수정할 수 있다.
- 수정 시에는 재로그인이 필요하다.
- 회원정보는 이름과 비밀번호만 수정이 가능하며 비밀번호는 비밀번호 확인까지 입력받아 동일한 경우에만 수정이 가능하다.
[앞으로 추가될 기능]
다음 버전에서 추가하고 싶은 혹은 추가될 기능들을 미리 소개해봄.
- '책등록' 시, 이름과 저자를 직접 입력하는 것이 아니라 책 정보 API를 활용해서 (책이름, 저자, 출판사, 책 이미지 등)가져오기
- '모든 책', '나의책', '빌린책' : 검색 기능 추가 (10개, 30개씩 보기 / 책제목, 저자 등 검색)
- 스프링 인터셉터 + 스프링 시큐리티 추가
- 어드민시스템 별도 구축
[마치는 글]
첫 사이드 프로젝트는 아니지만 저음으로 버전을 내본 사이드프로젝트이여서 그런지 감회가 엄청나게 새로웠다. 그리고, 개발하는 내내 즐거웠다. 원래 퇴근 후에는 되도록이면 코딩 안하는데 집에가서도 오직 '재밌어서' 쉴새 없이 코딩했던 즐거운 기억만 남는다. 아직 수정하거나 추가해야 할 기능들이 많지만 '언제 다하지' 라는 생각보다 '빨리 구현해보고싶다'는 생각이 많이 든다. 나 자신, 고생 많았다! 이 프로젝트를 통해 외적으로나 내적으로 조금 더 발전되는 계기가 되기를!
'💻 뚝딱뚝딱 > 팀내도서대여시스템(OBRS)' 카테고리의 다른 글
[개발일지#013] 데이터베이스 컬럼추가 및 화면 수정 (0) | 2024.06.27 |
---|---|
[개발일지#012] AWS(아마존 웹 서비스) 회원가입 하기 (0) | 2024.06.04 |
[개발일지#011] 회원정보수정 수정하기 (0) | 2024.04.11 |
[개발일지#010] 페이지네이션 적용하기 (회원목록 / 나의책 / 빌린책 / 모든책) (0) | 2024.04.11 |
[개발일지#009] 로그인 / 로그아웃 / 회원가입 수정 및 구현 (0) | 2024.04.10 |
뚜루리님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.