본문 바로가기

분류 전체보기

(1196)
CRUD Logic 구현 1 . create Header로 들어온 것의 body를 해당 Entity의 Request로 받음. 그리고 Entity 객체를 생성해서 Request의 데이터를 뽑아내서 채움. 그리고 그 Entity를 Repository를 이용하여 저장. @Override public Header create(Header request) { //1. request data UserApiRequest userApiRequest = request.getData(); //2. User 생성 User user = User.builder() .account(userApiRequest.getAccount()) .password(userApiRequest.getPassword()) .status(UserStatus.REGISTERE..
백준 2841번 외계인의 기타연주 문제 상근이의 상상의 친구 외계인은 손가락을 수십억개 가지고 있다. 어느 날 외계인은 기타가 치고 싶었고, 인터넷에서 간단한 멜로디를 검색했다. 이제 이 기타를 치려고 한다. 보통 기타는 1번 줄부터 6번 줄까지 총 6개의 줄이 있고, 각 줄은 P개의 프렛으로 나누어져 있다. 프렛의 번호도 1번부터 P번까지 나누어져 있다. 멜로디는 음의 연속이고, 각 음은 줄에서 해당하는 프렛을 누르고 줄을 튕기면 연주할 수 있다. 예를 들면, 4번 줄의 8번 프렛을 누르고 튕길 수 있다. 만약, 어떤 줄의 프렛을 여러 개 누르고 있다면, 가장 높은 프렛의 음이 발생한다. 예를 들어, 3번 줄의 5번 프렛을 이미 누르고 있다고 하자. 이때, 7번 프렛을 누른 음을 연주하려면, 5번 프렛을 누르는 손을 떼지 않고 다른 손..
@Slf4j @Slf4j Log.info("{}",request);를 통해 해당 메소드 로그를 찍어줄 수 있음 Log.info("{}", "{}",request,"ABC") 하면 request,ABC 가 찍힘
@PathVariable @PathVariable @Override @GetMapping("{id}") // /api/user/{id} public Header read(@PathVariable Long id) { return null; } 이렇게 GetMapping 에 지정된 Path에서 매개변수와 같은 이름이 존재 한다면 변수로 사용 가능. 따라서 기존의 GetMapping은 @GetMapping("/api/account") public Header read(@RequestParam Long id) { } 이런 식으로 작성 후에 url에서 api/account?id=1000 이런식으로 사용 했지만 PathVariable 사용 시 /api/{1000}하면 매개변수 id에 1000이 들어옴
서버와 Java 연동 Case변경 java에서는 camel case를 사용하는데 서버에서 해당 변수를 snake로 바꿔주기 위해서 application properties spring.jackson.property-naming-strategy =SNAKE_CASE 추가 //직접 치는것을 추천
서비스 구현 정리. 1) 어떤 Request에 대해서 Response를 받는 구조를 만들어야 함. 따라서 어떤 User정보를 받아서 그것에 대한 create Request를 한다고 하면 Create메소드에 Mapping되어 있는 주소에 Post로 RequestBody로 싸서 보내면 생성해주고 Response를 내려주는 기능. Request 와 Response 클래스를 따로따로 관리하는 이유는 예를 들어 비밀번호 1234에 대한 정보를 요청 할 때 Request는 비밀번호 그대로에 대해 요청 하지만 Response로 받을 때는 어떠한 처리가 반영된다던지 하는 식의 차이가 존재 하므로 따로따로 관리한다. 편의성을 돕기 위해 CRUD에 대한 인터페이스를 만들어 놓음. public interface CrudInterfase { H..
@Builder, @Accessors 모든 생성자로 Entity를 채워 줄 시에 모든 데이터 타입 순서를 맞춰야 하고 빠지는 것도 없어야 하고, 불편한 사항이 생김. ->@Builder 어노테이션 추가. User user = User.builder().account().password().build(); 하면 채워준 유저만 생성됨. @Accessors(chain = true) 하면 이미 생성된 객체에서 체이닝 형태로 사용 가능 create에서 만들어진 user로 update에서 값을 바꿔 준다 하면 user.setEmai() user.setAccount() .... 하지만 chain = true 로 바꿔주면 user.setEmail().setAccount()....이런식으로 연쇄적로 사용 가능. Accessor로 생성도 가능 builder는..
@Configuration , @Create~ , @LastModified~ 반복해서 나타나는 Entity 변수 중 created 나 update에 관한 변수를 자동 지정 하는 방법은 1) 우선 configuration객체를 만들어야 함. Jpa에 대해 감시 설정 하는 클래스를 생성하고 @Configuration 어노테이션과 @EnableJpaAuditing 를 붙임. @Configuration @EnableJpaAuditing //Jpa에 대해 감사 설정 public class JpaConfig { } 2) Entity의 createdBy에는 @CreatedBy updatedBy에는 @LastModifiedBy 를 어노테이션 지정한 뒤 @EntityListeners(AuditingEntityListener.class) 어노테이션 추가 @EntityListeners(Auditin..