MockMvc 코드@AutoConfigureMockMvcclass CustomControllerTest { @Autowired private lateinit var mockMvc: MockMvc}@Testfun `test should pass() { mockMvc.perform( get("/url/etc") .accept(MediaType.APPLICATION_JSON) .param("", "") ) .andExpect(status().isOk)} MockServerHttpRequest 코드class CustomControllerTest { priavet lateinit var mockServerHttpRequest: MockServerHttpRequest..
파이프라인이란?깃 저장소에 코드를 푸시하면 자동으로 실행되는 빌드, 테스트, 배포 과정 전체를 "파이프라인"이라 부른다.(GitHub Actions, GitLab CI/CD, Jenkins 등에서 정의한다.)
스프링 @Autowired 어노테이션 적용시 의존 객체를 찾는 순서타입이 같은 bean 객체를 검색한다. => 1개이면 해당 bean 객체를 사용한다.@Qualifier가 명시되어 있는 경우 같은 값을 갖는 bean 객체여야 한다.타입이 같은 bean 객체가 두개 이상이고, @Qualifier가 없는 경우 이름이 같은 빈 객체를 찾는다.찾은경우 그 객체를 사용타입이 같은 bean 객체가 두개 이상이면, @Qualifier로 지정한 bean 객체를 찾는다.찾은경우 그 객체를 사용위 경우 모두 해당되지 않으면 컨테이너가 Exception을 발생시킨다.참고
// TCP Clientval client = TcpClient.create() .host("localhost") .port(8080) .connect() // connect()로 서버에 붙는다. .block()// TCP Serverval server = TcpServer.create() .port(8080) .handle { inbound, outbound -> outbound.sendString(Mono.just("Hello from server")) } .bindNow() // bindNow()로 포트 열고 기다린다.val client = HttpClient.create() // HTTP 요청을 보내는 역할 .baseUrl("https:..
헥사고날 아키텍처(Hexagonal Architecture), 또는 포트와 어댑터 아키텍처(Ports and Adapters Architecture) 이 아키텍처의 주요 목표는 비즈니스 로직을 외부 세계로부터 격리, 테스트하기 쉬운 구조를 만드는 것 이를 위해 핵심 비즈니스 로직은 중앙의 도메인 영역에 위치하며, 입력과 출력을 처리하는 포트와 어댑터를 통해 외부와 소통가장 대중적으로 사용하는 3계층 아키텍처(3 Tier Layered Architecture) 비즈니스 로직, 데이터 액세스, 프레젠테이션 계층 이와 달리 헥사고날 아키텍처는 비즈니스 로직에 중점을 두고 외부와 격리 1. 3계층 아키텍처 예// UserService.javapublic class UserService { private..
1. 쿠버네티스는 왜 쓰는건가?컨테이너를 하나만 띄우면 docker run으로 충분하지만,서버 수십~수백 대컨테이너 수백~수천 개자동 복구, 부하 분산, 롤링 업데이트 필요이런 상황이 되면 사람이 직접 관리 불가능하다.Kubernetes가 대신 해준다.하는 일컨테이너 배포 자동화컨테이너 상태 모니터링 및 장애 시 재시작부하에 따라 컨테이너 수 자동 조절 (오토스케일링)서비스 디스커버리(컨테이너 주소 관리)롤링 업데이트와 롤백 2. 쿠버네티스는 서비스인가? 프로젝트인가? 판매 소프트웨어인가? 정체가 뭔가? Kubernetes(K8s)는 개인이나 특정 회사가 만든 상용 서비스가 아니라 오픈소스 소프트웨어 프로젝트다.1. 처음 만든 곳Google이 내부에서 쓰던 Borg라는 시스템을 기반으로 개발2014년에 ..