티스토리 뷰

개인프로젝트의 진행..

저는 이번 프로젝트를 통해서, 지금까지 배운것들에 대해 총체적으로 사용해보고 필요한 곳에 가능한 기술들을 사용해보며 많은 것을 느껴보려 합니다..

프로젝트는 1차적으로 끝내었고, 다시 리펙토링을 진행해보며 블로그 글들도 수정작업에 진행하고 있습니다
(현재 25.1.3) 벌써 작년...프로젝트라니... 실감이 나지는 않지만 시간이 가능할 때 차근히 전에 했던 실수는 무엇이었는지...
아니면 굳이 사용안해도되는 기술들을 억지로 넣었는지, 너무 학습에 치중해서 개발을 진행하지 않았는지에 대해 다시 생각해보며 뺄건 빼고 넣을건 넣으면서 진행해볼까합니다..!

 

사용 도구들..

- spring boot 3.3.5
- java 17
- H2 Database
- Thymeleaf

 

Application Flow

Client 요청 -> Spring - > View (Thymeleaf)

 

처음에 작성해봤던, 로그인 및 게시판 Flow에 대해서 그림으로 표현해봤다..

 현재 방식) 로그인이 지금현재 시점에서는 Filter에서 HttpSession에 세션값이 있는지 확인하고, 해당 로그인아이디 값에 해당하는 URL로 리다이렉트시키고 있다.

 문제 ) 로그인상에는 문제가 없다고 생각할 수 있지만, 이미 세션의 유무에 대해서만 인증이 처리가되기에, 나중에 URL의 loginID를 바꿀경우, 다른 사용자의 로그인이 되는 문제가 발생한다...

 해결) 이 문제를 해결하고자, interceptor부분에서 로그인 ID의 변경을 막고자 정규표현식을 이용하여 로그인 아이디와 세션의 로그인정보를 비교하여 사용자변경을 막았다..
 하지만, 이 방법은 URL의 변경의 사용자가 충분히 인지할 수 있고 변경또한 손쉽게 할 수 있다는 보안상 문제가 있다고 판단이 들어, URL의 구조를 변경하고 세션처리를 확실하게 할 수 있도록 진행해보고자 한다..


지금 생각하기에 문제가 되는 지점은)
1. 사용자에게 로그인 인증방식이 너무 잘 노출되는 문제가 존재..
2. 현재 interceptor에서 정규표현식을 통해서 로그인ID를 추출해서 대조를 하는데, 이 방법 또한 보안성에 취약하다

이를 변경하고자한다)
1. UUID형태의 세션을 통해서 로그인 인증
2. URL변경시마다 Filter를 통해서 세션 갱신
3. 세션저장소에서는 갱신된 시간 이후, 정해진 시간안에 갱신되지 못할경우 삭제처리

[Before] 로그인 및 게시판

 

로그인 기능 + Exception(error) 처리 + DB 구성

[Before] Application Flow

 

ERD

회원에따른 게시판만 있는 기능이기에 DB에 적재할 내용은 많지는 않다..
기능 추가가 더 이루어진다면 게시판 개체를 더 작은 사이즈로 나누거나 따른 개체를 붙이거나 하는 경우가 생길 거 같지만, 아직은 구상만 진행중에 있다..

 

 

URL 디자인

URL디자인 수정 작업 (loginId 부분 제거 예정)
1) HttpSession Store를 이용하여 세션관리
2) loginId를 대신해서, 필터 혹은 인터셉트를 거칠경우 인증을 관리하는 객체를 만들어서 loginId를 구현해보고자한다..
( AOP (?), Resolver(?), custom annotation 등등..)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함