Controller Test할 때 요약 @WebMvcTest를 사용하면 .with(csrf())와 @WithMockUser를 사용해야 합니다. @WebMvcTest class UserControllerTest { @Autowired MockMvc mockMvc; @MockBean UserService userService; @MockBean BCryptPasswordEncoder encoder; @Autowired ObjectMapper objectMapper; UserJoinRequest userJoinRequest = UserJoinRequest.builder() .userName("kyeongrok") .password("1q2w3e4r") .email("oceanfog1@gmail.com") .b..
이 기능은 '병원 리뷰 사이트'에서 Review를 등록 할 때 Post요청의 Header로 전달받은 Token에서 UserName을 꺼내 댓글을 쓸 때 활용하는 로직 입니다. ReviewCreateRequest @Builder @AllArgsConstructor @NoArgsConstructor @Getter public class ReviewCreateRequest { private Long hospitalId; private String title; private String content; } 리뷰를 쓰기 위해 요청은 총 3가지를 받습니다. 리뷰를 작성하고 싶은 병원의 Id와 리뷰 제목, 내용 이렇게 3가지 입니다. 여기에는 리뷰를 쓰는 사용자에 대한 정보가 들어있지 않습니다. Id에 해당하는 us..
Response를 선언 함으로써 여러가지 형태의 Response를 모두 취급 할 수 있습니다. @AllArgsConstructor @Getter public class Response { private String resultCode; private T result; public static Response error(String errorCode) { return new Response(errorCode, null); } public static Response success(T result) { return new Response("SUCCESS", result); } }
Saga Pattern이란? 마이크로서비스간 이벤트를 주고 받아 특정 마이크로서비스에서 작업이 실패하면, 이전까지의 작업이 완료된 마이크로서비스에 보상(Compensating) 이벤트를 발행함으로써 원자성(atomicity)을 보장하는 패턴 입니다. Saga의 뜻은? Saga의 뜻을 아무리 찾아봐도 정리된 문서에서는 Saga에 대한 설명만 있을 뿐 Saga가 예를들어 Software Application Grouping Aggregate 이런식으로(이것을 예제일뿐입니다 실제 그렇다는 것이 아닙니다) 어떤 단어의 줄임말 이라던지 하는 설명이 없었습니다. 자꾸 Saga, Saga라는 단어가 나오는데 머리속에서 그려지지 않으니 익숙하지 않고 머리에 맴돌아서 영문으로 검색을 해보았습니다. saga full na..
RestAPI만들때 규칙 RestAPI를 만들 때 URI에 행위가 들어가면 안됩니다. 예를들어 /putItem, /updateItem 이런식으로 put, update등의 행위가 들어가지 않도록 하는게 표준입니다. 그리고 _ 언더바를 쓰지 않습니다. -하이픈은 사용 합니다. 도메인 디자인 RestAPI를 만들기 위해서는 먼저 Domain을 만들어야 합니다. 이 도메인이 기준이 되기 때문입니다. @Getter @Setter public class Product { private long id; private String name; private LocalDateTime updated; } API 정의서 작성 사용자 요청 URL 메소드 Path body 전체 목록 조회 /all GET 등록 /add POST ..
Certificate Signing Requests 의 내용을 일부 번역한 문서 입니다. 1.9버젼 기준 인증(Certificates) API는 쿠버네티스 API를 이용하는 클라이언트에게 프로그램 방식의 인터페이스를 이용해 인증기관에서 제공하는 X.509 인증서를 제공 합니다. CertificateSigningRequest(CSR) 오브젝트는 지정된 사이너(signer:사인해주는 사람 또는 코드)가 인증서 요청이 왔을 때 인증을 해준 혹은 해주지 않은 인증서를 요정하는데 사용합니다. 요청에 권한을 부여하는 과정 CSR만들기 CSR 오브젝트(resource type)는 클라이언트에게 승인 요청(signing request)을 통해 X.509 인증서 발급을 요청할 수 있게 해줍니다. CSR 오브젝트는 PEM..
Tomcat 실행이 체감상 느려서 Jetty로 바꾸어보았습니다. 그랬더니 조금 빨라졌습니다. Jetty로 대체 dependencies { implementation('org.springframework.boot:spring-boot-starter-web') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' } implementation "org.springframework.boot:spring-boot-starter-jetty" } 잘 적용 되었다면 아래와 같이 나옵니다. Maven org.springframework.boot spring-boot-starter-web org.springframework.bo..
@Slf4j @Controller @RequestMapping("/api/v1/data/invalid_request/") @RequiredArgsConstructor public class InvalidRequestController { private final InvalidRequestService invalidRequestService;필드 DI를 제발좀 쓰지 말라고 하도 뭐라고 해서 컨스트럭터 di로 바꾸고 있는데 final로 선언을 해주면 그 부분을 자동화 해주는 애노테이션이 있다는 것을 알게 되었습니다. 위와 같이 씁니다. 그러면 @Autowired도 안써도 돼고 constractor도 없어도 됩니다. 그런데 final을 꼭 붙여야 합니다. 안그러면 null나와욤
jpa app 운영 배포 전략 jpa로 앱을 만들고 백엔드 서버를 운영 할 때 db에 컬럼이 추가 되는 경우가 있습니다. jpa같은 경우는 서버가 뜰 때 db하고 entity하고 매핑을 한 다음에 뜹니다. 예를들면 entity에 phone이라는 필드가 있지만 db에는 없는 경우는 매핑이 되지 않아서 서버가 뜨지 않습니다. 그래서 jpa에는 hibernate.ddl-auto에 update라는 옵션이 있는데 prod에는 보통 update는 해놓지 않고 validate로 해놓습니다. 이 옵션을 update로 해놓고 수정한 서버를 재부팅 하면 entity하고 db의 field와 비교를 해서 db의 field에 alter를 해서 컬럼을 추가합니다. 왠지 이야기만 들어도 문제가 생길 것 같지 않으신가요? 컬럼이 추..
Parameter 2개 이상 보내기 @RestController @RequestMapping(value = "/api/v1/order") public class DistributeController { // http://localhost:8080/api/v1/order/distribute?id=1111&name=krk 이렇게 요청한다. @GetMapping(value = "/distribute") public String getOrder(@RequestParam int id, @RequestParam String name) { System.out.println(id); System.out.println(name); }결과 1111 krkTransferController.java @Slf4j @RestCo..
- Total
- Today
- Yesterday
- 2017 티스토리 결산
- 개발자
- 싱가폴
- 도커각티슈박스
- 도커티슈케이스
- 도커컨테이너
- Sh
- shellscript
- 도커각티슈케이스
- docker container whale
- 도커티슈박스
- docker container case
- 이직
- docker container
- vim
- docker container tissue box
- docker container tissue
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |