이번엔 API 제작때 테스트하기 유용하게 임시 테스트 데이터들을 만들어서 넣어둘것이다. 1.아이템 생성반복문을 통해 아이템 데이터들을 저장하였다.@Testvoid itemLoad() { for (int i = 0; i 2.유저생성반복문을 통해 유저 데이터들을 저장하였다.@Testvoid auctionUserLoad() { for (int i = 0; i 3.경매장 품목 생성경매장 품목은 아이템과 유저 를 가지고있어야 하므로 별도로 사용할 아이템과 유저 객체또한 생성하여 저장해줬다.@Testvoid auctionLoad(){ Item item = Item.builder() .imgurl("testurl") .name("testAuctionitem") ..
BackEnd/SpringBoot
기존 만든 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.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..
0.Lombok반복적인 코드를 줄여주는 라이브러리Annotation을 기반으로 Getter,Setter 와 같은 코드들을 작성하지않고 사용할수있도록만든다.@Getter, @Setter: Getter/Setter 자동 생성.@ToString: toString() 메서드 자동 생성.@EqualsAndHashCode: equals()와 hashCode() 자동 생성.@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor: 다양한 형태의 생성자 자동 생성.@Data: 주요 메서드 (Getter, Setter, ToString, EqualsAndHashCode) 자동 생성.@Value: 불변 객체 생성.@Builder: 빌더 패턴 자동 생성.@Slf4..