예제를 만들자 뚱땅뚱땅 11

API 만들기 연습 #10

삭제 기능 만들기 삭제 기능 삭제 기능을 구현하기 전 가장 고민했던 부분은 바로 insert 기능을 만들 때 api 테이블에 Count 되는 부분이었다 추가할 때 Count 값이 증가한다면 삭제할 때는 감소해야 하는데 처음에는 그냥 반대로 +1 이 아닌 -1 하면 되는 거 아닌가? 하고 진행했지만 insert 할 때는 입력창에 입력하는 api 의 PK값이 있는데 삭제할 때는 그게 없으니 api 테이블에 Count를 찾을 수가 없었다 고민한 3가지 방법 1. 삭제할 때 insert처럼 고객 PK를 입력받기 2. 장치에 상태를 만들어 삭제가 아닌 상태를 변경하는 방향 3. 삭제할 때 고객의 PK를 얻어온다 … 이걸 어떻게 처리할까를 한참을 고민하고 지금..

API 만들기 연습 #9

추가로 설계한 Device 등록 로직 만들기 VO , DTO 먼저 만들어주자 DeviceVO package com.apiservice.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Getter @Builder @AllArgsConstructor @NoArgsConstructor public class DeviceVO { private Integer serviceNumber; // 서비스 번호 private String deviceName; // 장치 이름 private String ..

API 만들기 연습 #8 추가 설계

⭐더욱 다양한 상황 , 에러 등등 을 위해 추가적인 설계 타입이 다르게 들어오는 경우 에러 처리 DB의 사이즈보다 더 크게들어오는 경우 추가적인 테이블 설계 회원 테이블은 있으니 회원에게 등록되는 장치 관련 테이블을 구상 기존 테이블에 새로운 컬럼 deviceCount 가 추가되었다 기존 DB를 사용지(고객) 로 가정하고 거기에 등록하는 장치 DB테이블을 추가로 설계했다 deviceCount 컬럼에 default 값을 안주면 데이터가 안들어간다 추가된 기능 명세서

API 만들기 연습 #6 유효성 검증

@Valid를 이용한 유효성 검증 유효성 검사 ApiDTO package com.apiservice.model; import lombok.*; import javax.validation.constraints.Email; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Pattern; import java.time.LocalDateTime; @Data @AllArgsConstructor @NoArgsConstructor @Builder public class ApiDTO { public interface insertGroup{} public interface updateGroup{} private Intege..

API 만들기 연습 #5 CustomException

CustomException 처리 하기 ✅개인적으로 CustomException에 대한 작업이 가장 힘들었습니다 구글링해도 잘 모르겠고 이해 안 가는 코드만 보이고 한 3일 동안은 수많은 코드를 쓰고 지우고 반복하며 지금 코드를 만들었습니다 물론 좋은 코드라고는 할 수 없지만 현재로는 최선인 것 같습니다 😭😭 Error 처리에 대한 정보를 가지는 ErrorCode 와 ErrorDTO 만들어보자 ErrorDTO package com.apiservice.model.Error; import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor public class ErrorDTO { private final int statu..

API 만들기 연습 #4 페이징

어떤 SQL을 사용하느냐에 따라 페이징 방법이 살짝 다를 수 있습니다 저도 MySQL로 만 만들어 보다 최근 PGSQL로 만들어야 했을 때 참... 난감하더군요 하지만 이 글을 보고 계신 분들을 뛰어나신 분들이기에 뚱땅 뚱땅 만드실 수 있을 거라 생각합니다. 자 그럼 select 와 페이징을 만들어보겠습니다 ApiRepository package com.apiservice.repository; import com.apiservice.model.ApiDTO; import com.apiservice.model.ApiVO; import com.apiservice.model.ListDTO; import org.apache.ibatis.annotations.Param; import org.springframewo..

API 만들기 연습 #3 update , delete

insert 기능은 만들기 성공했으니 이제 update와 delete 기능을 만들어보자 ApiRepository package com.apiservice.repository; import com.apiservice.model.ApiDTO; import org.springframework.stereotype.Repository; @Repository public interface ApiRepository { void insert(ApiDTO apiDTO); void update(ApiDTO apiDTO); void delete(Integer memberNumber); } update 는 객체 전체를 수정할 수 있기에 DTO를 매개변수로 받는다 delete는 pk값으로 처리하기에 pk인 memberNumbe..

API 만들기 연습 #2 등록을 해보자

간단하게 등록하는 기능을 먼저 만들어 보겠습니다 ✌본격 API 서버 개발 시작 우선 insert 기능을 먼저 만들어 보자 ✅구현되는 과정 repository는 DB와 통신하는 로직이 들어가는 곳 service는 repository에서 구현된 로직을 받아 기능적인 로직을 만드는 곳 DTO는 repository와 service에서 사용하는 객체 Controller에서는 완성된 로직을 받아 전달한다 DTO와 VO 만들기 ApiVO package com.apiservice.model; import lombok.*; import java.time.LocalDateTime; @Getter @Builder @AllArgsConstructor @NoArgsConstructor public class ApiVO { pr..