(SK쉴더스)AI 활용한 클라우드 & 보안 전문가 양성 캠프

[새싹 성동 2기] 두 번째 모듈 프로젝트 내용 및 후기

hunm719 2024. 12. 6. 20:30

24.11.23 ~ 11.30 까지 진행했던 모듈 pjt 2를 끝냈다.

프로젝트 내용

 

팀은 랜덤으로 배정되었고, 나는 백엔드 파트 중 User 전반의 개발과 백엔드 파트 발표를 담당했다.

일 주일 정도의 짧은 기간 동안 정말 정신없이 프로젝트를 진행하다보니 완성도 있게 마무리 하지 못해서 아쉬움이 있지만 그래도 어떻게든 완성해냈기에 보람찼다.

 

첫 회의에서 CRUD가 가능한 주제 중 가장 대중적인 것이 게시판이니 커뮤니티 웹사이트를 만들자는 이야기가 나왔다.

나는 게시판만으로 끝내는게 아쉬워서, 사람들이 좀 더 즐겁게 사용할 수 있도록 귀여운 강아지 사진도 많이 볼 수 있으면 좋겠다는 생각이 들어서 반려견 커뮤니티 웹사이트를 제안했는데 팀원분들이 모두 찬성하셨다.(나이쁘개라는 프로젝트 이름도 내가 지었는데 이게 통과될 줄은 몰랐다)

 

 

개발 시작 전에 아래와 같이 Figma를 활용해 웹페이지 이미지를 미리 만들어보고(프론트 팀원분들이 너무 잘 만드셨다)

 

프론트 팀원분들과의 협업을 위해 API와 DB테이블도 작성해봤다.

 

각자 열심히 개발하고, 프론트-백 통합하고, 영상찍고, 발표까지 프로젝트를 모두 마쳤다.

아래는 데모영상 링크인데 정말 잘 나온 것 같아서 많이 자랑하고 싶다 :)

https://drive.google.com/file/d/1SWOduMuJ2H95kSlyDXuf83WzkVDPxvPc/view?usp=sharing

 

나이쁘개_demo_최종ver.mov

 

drive.google.com

 

 

내가 담당했던 사용자 전반 개발에서 가장 신경썼던 부분은 역할과 권한 관리다.

 

1. 게시판 웹사이트 특성 상 Admin 과 User의 기능차이가 큼

2. Admin 과 User의 필드 값이 겹치는 부분이 적도록 설계

 

1,2 번의 이유 + 역할 구분을 명확하게하고 보안을 강화하는 목적으로 Admin 과 User 의 테이블을 다르게 설계했다.

 

그리고 역할 클래스는 아래와 같이 3개로 구성했다.

 

guest = 로그인 하지 않고 웹사이트에 접속한 사용자

user = 로그인 한 사용자

admin = 관리자

 

권한은 권한 검사 메서드를 통해 역할별로 접근을 허용/거부하도록 구현했다.

 

이 외에도 회원가입과 로그인에서도 아래처럼 보안을 염두하여 구현했다.

 

시간이 부족해서 로컬로만 실행했는데, AWS를 통해서 배포까지 할 수 있었다면 더 좋았을 걸 하는 아쉬움이 있다.

Oauth를 활용해서 구글, 카카오, 네이버와 연동하여 로그인 하는 방법도 구현했으면 좋았을 걸 하는 아쉬움도 있다.

프로젝트 이후에 틈틈이 Oauth를 공부하고 적용시켜봐야겠다.

 

 

- 강사님의 피드백

1. ORM 활용하기

2. SQLite 를 사용한 이유 설명이 필요함

3. userSearchQuery hook을 만들어서 사용했는데 발표에서 해당 부분 강조가 부족했음

4. AWS로 구현할 경우 엔드포인트를 어떻게 적용하면 좋을지 고민해보기

5. 역할과 권한관리를 신경쓴 것은 좋지만 권한관리를 개별 method에서 관리하는게 맞을까

   -> 모듈을 만들어서 활용하는 것을 권장

6. 토큰과 세션의 정확한 차이 알기