기존 만든 Item API에 제약조건들을 추가하였다. 1.Create레포지토리에 existsByName 메소드를 정의하고 서비스에서 동일 이름 아이템을 생성하지 못하게 만들었다.@Valid로 매개변수가 유효한지 검사한다. (모델에 정의한 어노테이션들에 대하여)public interface ItemRepository extends JpaRepository { boolean existsByName(String name);} @PostMapping("/create")public Item createItem(@Valid @RequestBody ItemDTO itemdto){ return itemService.createItem(itemdto);}public Item createItem(ItemDTO..
주의! 해당 글에서 사용된코드는 기능확인만을 위한 코드로 실전에서 사용하는게 아님 1.CREATE1-1.컨트롤러@RequestBody로 본문(body)의 내용을 Java 객체로 변환@Post로 매핑받는다. @PostMapping("/create")public Item createItem(@RequestBody Item item){ return itemService.createItem(item);} 1-2.서비스itemRepository.save()를 이용하여 새로운 아이템을 데이터베이스에 저장할수있다.public Item createItem(Item item){ return itemRepository.save(item);} 2.READ2-1.컨트롤러@getMapping 으로 매핑한..
1.BOMHTML, XML 문서의 구조화된 표현을 제공하며, 프로그래밍 언어가 이 구조를 조작할 수 있도록 하는 인터페이스 1.BOM 객체window: 모든 BOM 객체의 최상위 객체 navigator: 브라우저 정보 제공 location: 현재 페이지 URL 정보 history: 브라우저의 방문 기록 관리 screen: 사용자의 화면 정보 제공 2.주요함수alert(message): 경고 메시지 창 표시 confirm(message): 확인 대화 상자 표시 prompt(message, default): 사용자 입력 받기 대화 상자 setTimeout(function, milliseconds): 일정 시간 후에 함수 실행 setInterval(function, milliseconds): 일정 간격으로 ..
1.빈패턴재사용 가능한 소프트웨어 컴포넌트를 만들기 위해 정해진 규약인 JavaBeans을 따르는 패턴 2.JavaBeans 규약2-1.기본 생성자매개변수가 없는 기본 생성자를 가져야 합니다. 객체 생성이 단순해지고 다양한 프레임워크에서 빈을 쉽게 생성할 수 있습니다. 2-2.프로퍼티 (Property)프로퍼티들은 private로 선언하고 getter, setter을 가집니다. 3.예시lombok으로 getter,setter을 만든 ItemDTO이다.@Getter@Setterpublic class ItemDTO { private Long id; private String imgurl; private String name; private String Desc..
1.RESTAPI프로젝트의 공부 목적에 맞게 만들어보지않았던 RESTAPI를 통한 프로젝트로 변경하여 만들어보기로하였다. 2.만들어야할 API?우선 만들어야할 API들을 정리해보았다.Auction - ✅전체불러오기(/auction) - ✅개별불러오기(/auction/{id}) - ❌정렬 - ❌검색 - ❌아이템올리기 - ❌아이템내리기 - ❌구입 - ❌페이징 user - ❌회원가입 - ❌로그인 - ❌유저정보 - ❌정보불러오기 - ❌가지고있는 아이템 - ❌경매장에 올린아이템 - ❌개인정보 변경 - ❌돈충전 - ❌로그아웃 #### item - ❌아이템 정보 - ❌아이템 생성 - ❌아이템 제거 - ❌아이템 정보수정 3.AuctionAPI우선경매장에 보이게 될 아이템들에 대한 API를 제작해주기로하..
1.의존성 주입(Dependency Injection)의존성 주입은 객체 간의 의존 관계를 외부에서 설정하는 디자인 패턴입니다. 이를 통해 객체가 다른 객체를 직접 생성하지 않고, 필요한 의존성을 주입받습니다.의존성 주입은 객체가 직접 다른 객체를 생성하지 않고 외부에서 주입받기 때문에 객체 간의 결합도가 낮아집니다.이는 소프트웨어의 품질을 높이고, 유지보수성을 강화하며, 테스트를 용이하게 만드는 강력한 패턴입니다. 2.@Autowired스프링 프레임워크에서 의존성 주입(Dependency Injection)을 수행하기 위한 어노테이션입니다. 이 어노테이션을 통해 스프링이 관리하는 빈(Bean)을 자동으로 주입받을 수 있으며, 객체 간의 의존 관계를 명시적으로 정의하지 않고도 효과적으로 관리할 수 있..
1.컨트롤러,서비스,레포지토리1-1.컨트롤러클라이언트의 요청을 처리하고, 그에 대한 응답을 반환합니다.주로 HTTP 요청을 수신하고, 적절한 서비스 메서드를 호출하여 결과를 받아옵니다. 1-2.서비스비즈니스 로직을 구현하며, 여러 레포지토리에서 데이터를 처리하고 조합합니다.서비스는 컨트롤러와 레포지토리 간의 중간 계층으로 작용합니다. 1-3.레포지토리데이터베이스와의 직접적인 상호작용을 처리하며, 데이터 CRUD(Create, Read, Update, Delete) 작업을 담당합니다. 스프링 데이터 JPA를 활용하여 자동으로 구현할 수 있습니다. 각각은 서비스,컨트롤러,레포지토리는 DTO를 통하여 서로 데이터를 주고받는다.클라이언트가 HTTP 요청을 보내면, Controller가 요청을 수신합니다.Co..
1.DTO(Data Transfer Object)계층 간 데이터 전달을 위한 객체입니다.스프링부트 애플리케이션에서는 컨트롤러, 서비스, 리포지토리 계층이 명확히 나뉘어져 있고, 이 계층 간에 데이터를 주고받기 위해 DTO를 활용합니다. DTO는 주로 데이터를 외부 API 요청 및 응답, 또는 내부 서비스 계층과의 데이터 전달 시 사용됩니다. 2.DTO의 body요소 무시?DTO 객체에 포함되지 않은 요청의 body 요소는 기본적으로 무시됩니다. 스프링부트에서 @RequestBody를 통해 데이터를 받을 때, 클라이언트가 요청 본문에 포함한 데이터가 DTO 클래스에 정의된 필드와 매핑됩니다. DTO 클래스에 정의되지 않은 필드는 자동으로 매핑되지 않고, 무시됩니다. 만약 다음과 같은 상황이면 pric..