Back-end/Spring19 HealthCheck는 뭔가 오늘은 HealthCheck가 뭔지 왜하는지에 대해서 적어보려고해요 이전 프로젝트에서 Docker + GitHub Action을 사용해서 무중단 CICD를 구축했었는데 구축 당시 HealthCheck라는 단계를 거쳤습니다. 그 당시에는 구현이 가장 급했기 때문에 코드 하나하나가 어떤 의미로 사용되는지 몰랐는데 문득 이걸 왜하지? 라는 생각이 들었습니다.그전에.. 왜 무중단 CICD를 구축했는지, 그리고 대략적인 툴 사용 이유와 개념 가볍게 짚고 넘어갈께요 무중단 CICD(Blue Green) 구축이유이전 프로젝트에서 수작업으로 배포를 진행을 했습니다. 그렇다 보니 코드의 수정이 생길 때마다 SSH을 통해 서버를 닫고 열어야했는데, 너무 잦은 수정으로 인해 배포 과정에서 시간을 너무 잡아먹드라구요그래서 C.. 2024. 6. 20. [Spring] File과 JSON 데이터를 multipart/form-data로 받아오는 방법 목차 이글을 쓴 이유 Case 1의 경우에서 문제상황 Case 1의 문제 상황에서 파싱을 하면서 까지 해결하고 싶었던 이유 Case 2를 사용하게 된 이유 Case 2에서 아직도 고민이 되는 부분 Case 2를 사용한 이유 결론 안녕하세요 안녕주입니다. 이번 프로젝트를 하면서 POST 메소드에 Request Body로 MultiPartFile을 받는 경우가 많았습니다. MultiPartFile을 받을 경우 클라이언트 선생님들께서 FormData 헤더로 보내주셔야합니다. FormData란 HTML 폼 데이터를 나타냅니다. 이때 브라우저가 보내는 HTTP 메시지는 인코딩되고 Content-Type 속성은 multipart/form-data로 지정된 후 전송됩니다. 1️⃣ 이글을 쓴 이유 이글을 쓴 이유는 M.. 2024. 1. 19. [Spring] JPA 활용2 - 지연로딩과 조회 성능 최적화 안녕하세요 안녕주입니다. 오늘은 인프런의 JPA 활용2 강의를 들으면서 복습 겸 정리한 블로그를 올리려고 합니다. 주문 + 배송정보 + 회원을 조회하는 API를 만듭니다. 지연로딩 때문에 발생하는 성능 문제를 단계적으로 해결해볼 예정! 간단한 주문 조회 V1 : 엔티티를 직접 노출 OrderSimpleApiController package jpabook.jpashop.api; import com.fasterxml.jackson.annotation.JsonIgnore; import jpabook.jpashop.domain.Order; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.repository.OrderSearch;.. 2022. 7. 25. [Spring] JPA 활용2 - 준비 안녕하세요 안녕주입니다. 오늘은 인프런의 JPA 활용2 강의를 들으면서 복습 겸 정리한 블로그를 올리려고 합니다. 해당 포스팅은 다음 강의를 이어 나가기위한 샘플데이터를 입력하는 코드입니다..! table을 drop 하고 다시 만들기 위해 yml파일에 ddl-auto: create으로 다시 변경 API 개발 고급 소개 조회용 샘플 데이터 입력 package jpabook.jpashop; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springf.. 2022. 7. 25. [Spring] JPA 활용2 - API 개발 기본 안녕하세요 안녕주입니다. 오늘은 인프런의 JPA 활용2 강의를 들으면서 복습 겸 정리한 블로그를 올리려고 합니다. 회원 등록 API package jpabook.jpashop.api; import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.b.. 2022. 7. 25. [Spring] 빈 생명주기 콜백 스프링 핵심원리 강의를 들으면서 복습겸 기록을 합니다. 빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 스프링을 통해 이러한 초기화 작업과 종료 작업을 어떻게 진행하는 지 예제로 알아보자. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정해보자. 실제로 네트워크에 연결하는 것은 아니고, 단순히 문자만 출력하도록 했다. 이 NetworkClient는 애플리케이션 시작 시점에 connect()를 호출해서 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disConnect()를 호출해서 연결을 끊어야한다. 예제코드.. 2021. 10. 5. 이전 1 2 3 4 다음