☛ 사용자들이 중고 제품을 구매할 수 있는 사이트를 개발
☛ Spring Framework, Java, JPA, Spring Data JPA, QueryDSL, Javascript, jQuery, HTML5, CSS, Apache Tomcat, IntelliJ, JSP, MySQL, Ajax, Thymeleaf
☛ 본인이 가지고 있는 기술과 역량으로 자유 주제의 프로젝트를 하나 완성하는 것 을 목표로 하여 수행. 개발 툴은 Intellij.
☛ JPA와 MySQL을 이용하여 테이블 관계를 생성하고 Thymeleaf, HTML, CSS, JS 와 함께 상품 등록, 상품 구매, 장바구니 구매 내역의 기능을 마쳤고 Security로 로그인, 회 원가입과 회원 수정 기능 구현.
☛ 이후 팀장님이 만드신 코틀린 코드를 제가 만든 프로젝트와 합쳐서 부족한 기능 들을 추가. (이 부분은 보안 상 코드는 생략했다.)
☛ JS, jQuery, Ajax로 데이터를 전송하여 관리자가 재고 수량을 수정, 삭제할 수 있 도록 하고 상품을 장바구니나 구매 내역에 넣을 때 백단과 프론트 단에서 모두 재고 수량이 부족하면 더 이상 구매를 할 수 없도록 했고 JPA로 페이징도 구현.
☛ 대규모 데이터를 가지고 있을 경우 엑셀로 편하게 다운로드할 수 있도록 POI를 통해 엑셀 다운로드도 구현하고 Modal을 사용하여 상품에 대한 리뷰와 댓글도 등록하고 수정 할 수 있도록 개발.
- Spring Security를 활용하여 로그인, 회원가입, 회원 수정 기능 구현.
- JPA와 MySQL로 ERD를 설계하고, JSP/HTML/CSS/JS로 상품 관리 및 구매 기능을 구현.
- jQuery와 Ajax로 재고를 효율적으로 관리하며, 재고 부족 시 구매를 자동으로 차단하도록 구현.
- 대규모 데이터를 POI로 엑셀 다운로드 가능하게 하며, Modal을 활용해 상품 리 뷰와 댓글을 손쉽게 등록·수정하도록 개발.
- CKEditor를 적용해 리뷰와 댓글 작성 시 스타일링과 이미지 업로드 기능을 구 현.
- tomcat에서의 수동 배포.
📌 Spring Security를 활용하여 CSRF 공격 방지를 위한 토큰 생성 및 관리 기능!!
- 원인 분석
- HTML 폼에서 CSRF 토큰을 올바르게 생성하여 전송하지 않아 CSRF 토큰이 누락.
- JavaScript에서 폼을 제출할 때 CSRF 토큰을 올바르게 포함하지 않은 문제.
- 해결 방안
- Spring Security를 통해 CSRF 공격을 방지하기 위해 HTML 폼에 CSRF 토큰을 적절히 포함하여 보안을 강화.
- multipart/form-data 형식의 폼에서도 경로에 CSRF 토큰을 포함하여 처리.
📌 Ajax를 활용한 비동기적 데이터 요청과 효율적인 통신!!
-
원인 분석
- Ajax 요청에서 서버로 데이터를 전송할 때, 데이터가 올바르게 전달되지 않 는 문제 발생.
- jQuery를 통해 HTML 요소의 값을 찾을 때, 올바른 위치를 지정하지 못해 서 데이터를 정확히 가져오지 못함.
-
해결 방안
- JSON.stringify() 함수를 사용하여 객체를 JSON 문자열로 변환하여 전송.
- html에서 부모와 자식 요소의 관계를 정확히 파악하여 원하는 요소의 위치 를 찾아내 서버에 전송할 값을 설정.
🔔 <회고>
처음 접하는 기술과 도구들을 스스로 학습하고 적용하는 과정에서 자기 주도적 학습 능력을 키울 수 있었습니다.
프로젝트를 진행하면서 겪었던 문제들이 발생했을 때 금방 해결할 수 있게 에러들과 기능들에 대한 해결 방법들을 기록하고 배울 수 있어서 좀 더 자신감을 가 질 수 있게 되었습니다.
명확한 목표 설정과 계획 수립, 그리고 시간 관리에 대한 인식을 더욱 깊고, 의미 있게 생각하게 되었습니다.