https://start/spring.io프로젝트 선택Project : Gradle ProjectLanguage : JavaSpring boot : 2.7.xProject MetadataGroup : hellArtifact : item-serviceName:
상품을 관리할 수 있는 서비스르 만들어보자.상품 ID - 자동으로 증가 (고유 번호)상품명 - 등록/수정/조회가격 - 등록/수정/조회수량 - 등록/수정/조회상품 목록상품 상세상품 등록상품 수정요구사항이 정리되고 디자이너,웹 퍼블리셔, 백엔드 개발자가 업무를 나누어 진행
Item - 상품 객체경로 : hello.itemservice.domain.item
경로 : hello.itemservice.domain.item🤞 ConcurrentHashMap 참고 : https://applepick.tistory.com/124
핵심 비즈니스 로직을 개발하는 동안, 웹 퍼블리셔는 HTML 마크업을 완료했다.다음 파일들을 경로에 넣고 잘 동작하는지 확인참고로 HTML을 편리하게 개발하기 위해 부트스트랩을 사용했다.먼저 필요한 부트스트랩 파일을 설치부트스트랩 공식 사이트 : https:/
본격적으로 컨트롤러와 뷰 템플릿을 개발해보자.hello.itemservice.web.item.basic컨트롤러 로직은 itemRepository에서 모든 상품을 조회한 다음 모델에 담는다. 그리고 뷰 템플릿을 호출한다.@RequiredArgsConstructorfian
정적 HTML을 뷰 템플릿(templates) 영역으로 복사하고 다음과 같이 수정/resources/static/item.html -> 복사 -> /resources/templates/basic/item.html/resources/template/basic/item.h
상품 등록 폼은 단순히 뷰 템플릿만 호출한다.정적 HTML을 뷰 템플릿(templates)영역으로 복사하고 다음과 같이 수정/resources/static/addForm.html -> 복사 -> /resources/templates/basic/addForm.html/r
이제 상품 등록 폼에서 전달된 데이터로 실제 상품을 등록 처리 한다상품 등록 폼은 다음 방식으로 서버에 데이터를 전달한다.content-type : application/x-www-form-urlencoded메세지 바디에 쿼리 파라미터 형식으로 전달 itemName=i
BasicItemController에 추가수정에 필요한 정보로 조회하고, 수정용 폼 뷰를 호출한다./resources/static/editForm.html -> 복사 -> /resources/templates/basic/editForm.html/resoutces/tem
지금까지 진행한 상품 등록 처리 컨트롤러는 심각한 문제가 있다. (addItemV1 ~ addItemV4)상품 등록을 완료하고 웹 브라우저의 새로고침 버튼을 누르면 상품이 계속해서 중복 등록 된다.웹 브라우저의 새로 고침은 마지막에 서버에 전송한 데이터를 다시 전송한다
상품을 저장하고 상품 상세 화면으로 리다이렉트 한 것 까지는 좋았다.하지만 고객 입장에서 저장이 잘 된것인지 안 된것인지 확신이 들지 않음그래서 저장이 잘 되었으면 상품 상세화면에 "저장되었다"라는 메세지를 보여달라는 요구사항이 왔다.리다이렉트 할 때 간단히 statu