Client와 통신 Restful API Swagger Description MSA Http Client Fallback Factory Circuit Breaker resilience 4J TDD Mockito
JUnit5 + assertj + Mockito JUnit5란? > 자바 개발자가 많이 사용하는 테스팅 기반 프레임워크 assertj란? > 다양한 assertions 세트와 유용한 오류 메시지를 제공해 테스트 코드 가독성을 향상시키는 JAVA 라이브러리 Mocki
Lombok 애노테이션은 조심해서 사용해야 한다.자주 사용되는 lombok, 주의사항(https://devk0ng.github.io/2021/07/30/lombok/(Setter, AllArgsConstructor, RequiredArgConstructor 지
종단 간 연결하는데 소용되는 최대 시간을 의미한다.이 시간을 넘기게 되면 연결할 수 없는 것으로 판단하고 에러가 발생한다.여기서 Connection 은 TCP 3 way handshake를 통해 TCP 연결이 생성되는 것을 의미한다.이미 연결된 종단 간에 데이터를 주고
spring cloud CircuitBreaker는 Resilience4J와 Spring Retry의 구현체를 포함한다.(자바 서킷 브레이커의 라이브러리가 Reslience4J인 것)Circuit Breaker 패턴은 특히 MSA 환경의 필수 패턴 중 하나이다.백엔드에
소스 코드나 문서에서 사용되는 특정 표시.이 표시를 통해 개발자에게 추후 작업 처리나 수정해야할 코드를 알린다.이러한 주석 태그를 통해 작업 추적 및 협업을 원활하게 진행할 수 있다.IntelliJ 내에서 최초 제공하는 주석 태그는 TODO, FIXME가 있고 그 밖의
존재 자체를 안하는 것길이가 0인 값. 즉, 빈 문자열 등이 여기에 포함된다.공백을 포함하는 빈 문자열이 이곳에 포함된다.StringUtils를 이용하면 != null 등을 사용하지 않고도 존재하지 않는 값, 공백, 빈 문자열까지 모두 검증할 수 있다.
리액트 컴포넌트는 함수형 컴포넌트와 클래스형 컴포넌트로 나뉜다.리액트 초기에는 일반적으로 함수형 컴포넌트를 사용했으나, state나 생명주기를 사용해야할 때는 클래스형 컴포넌트를 사용했다.그러나 클래스 형 컴포넌트 사용에는 단점이 있었기에, 이를 보완하여 함수형 컴포
메소드의 파라미터에는 반드시 final 키워드를 붙이는 컨벤션을 따르는 것이 좋다.예측 가능한 코드를 만들기 위해서이다.다변적인 변수는 프로그램의 흐름을 예측하기 힘들게 한다.여기서 자바는 변수의 재할당을 막기 위해 final 키워드를 사용한다.요청 파라미터로 hell
트랜잭션 트랜잭션의 시작과 종료 트랜잭션은 시작 지점과 끝나는 지점이 존재한다. 시작하는 방법은 1가지이지만, 끝나는 방법은 2가지이다. 트랜잭션이 끝나는 방법 커밋(Commit) 모든 작업을 확정짓는다. 롤백(Rollback) 모든 작업을 무효화시킨다. 트랜잭션의
Stream 사용법 map 사용법 원래 코드 stream map 사용한 코드 DateTime으로 요청값 받기 @RequestParam @DateTimeFormat(pattern = "yyyyMMdd") @RequestBody @JsonDeserialize(usin
AOP > Aspect-Oriented Programming 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 것. 교차 절단 문제를 분히하여 응용 프로그램의 다른 부분의 모듈성을 높이기 위한 패러다임. 이를
HikariPool > HikariPool은 HikariCP 커넥션 풀 라이브러리 내부에서 실제로 데이터베이스 커넥션들을 관리하는 핵심 컴포넌트이다. HikariPool의 주요 기능 및 특징 커넥션 관리 HirkariPool은 설정된 최대 커넥션 수와 최소 유휴 커넥
서버와 DB 사이에 병목 현상이 많이 발생하는데, 이때 API Server는 수평확장이 쉽지만, DB 같은 경우에는 수평확장이 쉽지 않다. 이 경우 DB는 접속 분산을 위해 DB 복제를 하게 되는데 이 때 Master 와 Slaves들이 생긴다. API Serve
Docker는 궁극적으로 유휴 자원을 효율적으로 활용하기 위헤서 사용된다.CPU를 하나의 서비스가 독점하는 것도 아니고, 항상 동시에 사용되는 것도 아니기 때문에 도커를 통해 물리적 서버를 여러대의 논리적 서버로 나누어서 여러 서비스들이 CPU를 공유해서 사용할 수 있
자료구조 자료구조 선형구조 선형 리스트 배열(Array), 행렬, 레코드 연결 리스트 단순 연결 리스트(List), 이중 연결리스트, 원형 연결 리스트 스택 큐 데크(Deque)
Test Driven Development소프트웨어 개발의 한 방법론으로, 매우 짧은 개발 사이클의 반복에 초점을 맞추는 것.개발자가 실제 코드를 작성하기 전에 자동화된 테스트를 먼저 작성하도록 하는 것.➡️ TDD는 클린코드와 버그가 적은 소프트웨어 개발을 촉진시킨다
Nexus란 > Apache Maven 프로젝트와 관련된 중앙 저장소 관리 시스템으로,nexus는 이 프로젝트에 필요한 종속성(의존성) 파일을 저장하고 관리하는 중앙 저장소 역할을 한다. (Maven은 Java 기반 프로젝트를 빌드하고 관리하기 위한 도구) 소프트
Local: 컴퓨터에서 개발을 하려면 각 개발자 PC에 개발 및 테스트환경이 셋업되어야 한다.이를 local 개발 환경이라고 한다.Dev: 나 혼자 개발을 마친 뒤, 내가 만든 기능이 다른 팀원들과 함께 작업하는 공간에서도 잘 작동하는지 확인해야한다.DEV 서버는 서버