프로젝트를 계획하고 설계하기 전에 가장 우선적으로 여겨야 할 것은 프로젝트의 시작 동기라고 생각한다. 구체적으로 왜 이 프로젝트를 시작했는지, 구체적으로 어떠한 편의를 주고 싶어 기능들을 기획했는지를 생각해봐야, 프로젝트의 방향성이 잡힌다.✅ 코로나19로 인해 점점 증
✅ API 설계를 우선적으로 진행.마인드맵으로 구상한 기능들에 대해 url 매핑을 진행.크게 Customer, Admin 으로 나누어 진행\-> 맨 앞에 /customer 또는 /admin 으로 구분.✅ DB 모델링DB 모델링은 ERDCloud를 통해 진행했다. DB
API 를 바탕으로, 기능별 분류로그인, 회원가입메뉴판 crud주문 확인 기능매장 관리 기능카테고리 crud유저 닉네임설정 + 메뉴판 조회기능장바구니 crud + 주문주문 내역 확인 + 주문 취소첫 번째 스프린트에서는 메뉴판 CRUD와 카테고리 CRUD를 진행MenuF
✅ 문제점과 해결책 제시기존에는 메뉴 옵션만 존재해서, 한 메뉴가 가질 수 있는 옵션들을 그룹핑 할 수 없었다.옵션그룹 엔티티를 새롭게 추가해서, 옵션그룹과 옵션을 다대다 관계로 맺어줬다.다대다인 이유는, 옵션 하나가 여러 옵션에 속할 수 있고, 옵션그룹이 여러 옵션들
프로젝트를 진행하면서, 패키지 구조를 어떻게 할 지에 대해 고민을 해보았다. 다양한 방법들이 있지만 팀원들끼리 정한 방식은 도메인을 기준으로 Controller, Service, Repository 를 담고그 안에는 form 패키지를 두어 dto 같은 것들을 담아두는
✅ 알게 된 점처음에 무엇이 잘못되었는지 모르겠어서 몇 시간을 찾아보고, form 형태로 넘기지 않고 @RequestParam 으로도 바꿔보고 등 다양한 방식을 시도했다.그러다, 팀원 중 한 분의 도움으로 debug 하는 방법에 대해서 좀 더 알게 되었고, 설정해 둔
✅ 현재 상황OptionGroup 과 Option 을 중간테이블을 두어 일대다, 다대일 관계로 풀어내었다.OptionGroup 에서 Option 에 대한 정보를 갖고 있을 때(중간테이블), OptionGroup 을 삭제할 때 에러가 발생한다.Foreign Key로 다른
기존에는 Redis 를 통해 주문 정보들을 pay 계층에 넘겨주는 방식으로 구성했지만 카트(장바구니)에 담긴 주문 정보들은 cache 처럼 일시적으로만 사용하기 때문에, HashMap 을 통한 구현이 훨씬 효율적이라 판단했다. 우선, 다음과 같이 key 값으로 user
그 동안 Spring Security 을 활용해 실습, 프로젝트까지 진행해보았는데 깊이가 많이 부족한 것 같아 다시 한 번 정리를 통해 복기해보려 한다. 우선 팀프로젝트에서 적용한 Spring Security 코드이다.프로젝트가 아닌 실습에서는 User 인터페이스를 상