본문 바로가기

프로젝트/자리 있어요?31

[Refactoring] 22.09.02. 주소창에 직접 경로 요청을 할 때의 filtering 주소창에 직접 경로 요청을 할 때의 filtering 주소창에 직접 입력하는 과정을 거치면서, 그런 경우에는 header의 referer 정보에 null 값이 들어감을 알게 되었다. 이를 Filter로 처리할 수 있을 것 같다. Filter의 내용은 단순하다. 원하던 페이지가 아닌 다른 페이지로 강제 redirect 시키는 것이다. 그리고 그 경로 요청에 대한 처리를 할 수 있는 controller와 page를 간단히 만들어 두었다. 이러면 주소창으로 직접 url 요청을 막을 수 있겠다. 아직 이상한 부분도 많고 정신 사납지만, 이 정도로 국비 교육에서 했던 프로젝트에 대한 refactoring을 마무리 지으려고 한다. 앞으로도 할 일이 많다. 이 친구는 이제 장난감 정도로 생각하고 가지고 놀 생각이며,.. 2022. 9. 2.
[Refactoring] 22.09.02. Session이 만료되었을 때, Login Filter 전에 작성했던 추후 해야할 목록에서 이제 두 가지 항목만이 남았다. 하나는 session이 만료되었을 때의 동작, 다른 하나는 DB의 data를 추가, 수정, 삭제하는 과정에서 email 대조 항목이다. 그런데 생각해보면 이들은 로그인 Filter 하나로 해결될 일이지 않을까? 사실 DB의 정보를 추가, 수정, 삭제하는 method를 수행하기 전에 접속한 email과 해당 매장 정보를 대조한다는 것은 Filter 보다는 AOP를 사용하는 것이 맞다. 하지만 이미 매장 관리 페이지로 들어갈 때, session scope에 저장된 접속한 계정을 바탕으로 얻어오는 data이므로 굳이 그런 과정이 필요없을 것 같다는 생각이 들었다. 단순히 session 정보가 만료된 상태로 다른 동작을 하려고 했을 때, 자연히.. 2022. 9. 2.
[Refactoring] 22.09.01. Transaction과 Exception 트랜잭션에 대해 검색해보던 중 다른 이들은 exception과 함께 포스팅한 내용들을 보게 되었다. 따라서 해당 내용을 기반으로 알아보고 정리한 뒤 트랜잭션 처리를 마무리 지으려고 한다. Transaction과 Exception Error와 Exception Java docs에 exception을 검색해보면 Throwable을 부모 class로 두고 있고, 그 Throwable은 Exception 외에도 Error에서도 상속받고 있다. 그리고 Exception은 당연히 예외 처리를 위한 모든 class에서 상속받고 있을테지만 여기에서 중요한 것은 RuntimeException이다. Throwable은 Error와 Exception class에서 상속받고 있고, 각각은 또 여러 Error와 Exceptio.. 2022. 9. 1.
[Refactoring] 22.08.31. Transaction (트랜잭션) 처리 트랜잭션은 21년 8월 5일에 처음 소개했고, 6일에 관련 내용을 수업했던 내용이다. 이 프로젝트에서는 트랜잭션에 대한 처리까지 하지 않았었고, 그래서 그에 대한 작업을 해주기 위해서 해당 필기 부분을 찾아보던 중, 자세하게 필기되어있지 않아서 이런저런 검색을 통해 관련 내용을 알아보고 작업을 시작하고자 한다. Transaction (트랜잭션) Transaction은 사전적으로 '거래, 매매' 의 의미도 있지만, 하나의 '처리(과정)' 의 의미도 있다. 그래서 DataBase Transaction (데이터베이스 트랜잭션) 이라 함은 데이터베이스에서의 어떤 상호 작용, 동작, 처리 과정의 '단위'라고 할 수 있겠다. 즉, 데이터에 대한 하나의 논리적인 실행 단계를 의미한다고 할 수 있다. 이론적으로 데이터.. 2022. 8. 31.
[Refactoring] 22.08.29. Session에서 관리하던 보유 매장의 List 출력 해당 계정이 관리하고 있는 매장의 정보가 있다면, 우측 navigation bar에서 그 목록들을 볼 수 있다. 기존에는 'myStoreList' 라는 이름으로 session에 정보를 넘겨주어서 출력하고 있었다. 그렇게되면 한 계정 당 session scope를 두 개씩 사용하는 셈이라 request scope로 넘기는 방식으로 일단 수정했었다. 하지만 당장의 수정 방식으로는 메인 페이지의 navigation bar 에서만 해당 목록을 살펴볼 수 있는데, 어떻게 하면 모든 navigation bar에서 해당 목록을 확인할 수 있을까? 다음의 두 가지를 생각해볼 수 있었다. Navigation bar가 있는 모든 페이지 요청에 대해 myStoreList로 data를 넘겨준다. Navigation bar가 .. 2022. 8. 29.
[Refactoring] 22.08.28. 로그인 & 로그아웃 redirection 로그인 redirection 현재 로그인을 하는 경우 home 페이지로 넘어가는 것으로 되어있다. 하지만, 다른 곳에 있다가 navigation bar의 로그인 버튼을 눌렀을 때도 home 으로 넘어간다. 이것은 실제 사용 면에서 상당히 불편한 것이다. 이는 logout에서도 사용했던 HttpServletRequest 객체의 getHeader method를 사용해볼 것이다. 코드 뜯어보기 loginform.jsp / UsersController - loginProcess 로그인의 과정은 작성된 login form에서 ajax 요청을 통해서 Controller로 전달되어 service logic을 거쳐서 그 여부에 따라 front에서의 action이 달라진다. 현재는 로그인 성공 시 무조적인 home으로의.. 2022. 8. 28.