관측성과 OpenTelemetry, Grafana, Loki, Tempo 알아보기
·
모니터링
Observability(관측성)Observability는 시스템의 문제 해결을 위해 외부 출력값(로그, 메트릭, 추적)을 분석하여 시스템 내부 상태를 이해하고 예측할 수 있는 능력이다.모니터링과의 차이점모니터링은 이상 징후를 감지하고 경고하는 것관측성은 시스템의 내부 상태를 이해하고 문제의 원인을 파악할 수 있게 하는 것1. Logs (로그)시점별 텍스트 기록예: “사용자 A 로그인 성공”, “DB 연결 실패”, “Query 실행 시간: 30ms”특징사람이 읽기 쉬움구조화/비구조화 모두 가능디버깅에 매우 유용양이 많아 저장 비용이 큼2. Metrics (메트릭)시계열 숫자 데이터(time-series data)예: CPU 사용률, 요청 수, 에러율, 레이턴시, 메모리 사용량특징정량적, 수학적 분석 쉬움..
스프링 트랜잭션 전파 (1)
·
강의/스프링 DB 2편
스프링 DB 2편 - 데이터 접근 활용 기술 강의 | 김영한 - 인프런김영한 | , 백엔드 개발자라면 반드시 알아야하는스프링 데이터 접근 기술 Part.2 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 7번째 강의입니다. 우아한형제들 최연소 기술이사www.inflearn.com트랜잭션 전파(propagation)트랜잭션이 이미 진행 중일 때 추가로 트랜잭션을 수행한 경우 어떻게 동작할지 결정하는 것트랜잭션 전파 옵션1. REQUIRED기본값이다. 대부분 이 옵션을 사용한다.기존 트랜잭션 없음 : 새로운 트랜잭션 생성기존 트랜잭션 있음 : 기존 트랜잭션에 참여2. REQUIRES_NEW항상 새로운 트랜잭션을 생성한다.3. SUPPORT트랜잭션을 지원한다는 뜻이다.기존 트랜잭션 없음 : 트랜잭..
프로젝트 회고
·
Project/중고타운
100% 혼자서 진행했던 프로젝트가 어느정도 마무리 되었고 그 과정에서 느꼈던 점들을 풀어보려고 한다. 구현한 기능회원회원가입로그인상품등록/조회/수정/삭제채팅상품 아이디를 통해 판매자와 구매자가 메세지 주고 받기상품 아이디로 그 상품에 대한 채팅 내역 조회내가 채팅한 모든 내역 조회주문 및 결제토스페이먼츠 API로 가상계좌 발급웹훅 이벤트 적용결제상태 조회느낀 점/배운 점우선 프로젝트를 진행하면서 가장 중점적으로 생각한 것은 써보지 않았던 기술을 써보는 것이었다. 1. jwt토큰을 사용하는 권한 관리는 내가 직접 해본 적이 없어서 꼭 해 보고 싶었다.물론 처음이라 개념 공부도 하고 실제 적용까지 시간이 좀 걸렸지만 이게 이렇게 쓰이는 거구나라는 걸 알게 되었다.토큰의 단점을 고려해 Refresh 토큰은 ..
Mybatis
·
강의/스프링 DB 2편
스프링 DB 2편 - 데이터 접근 활용 기술 강의 | 김영한 - 인프런김영한 | , 백엔드 개발자라면 반드시 알아야하는스프링 데이터 접근 기술 Part.2 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 7번째 강의입니다. 우아한형제들 최연소 기술이사www.inflearn.comMybatisJdbcTemplate보다 더 많은 기능을 제공하는 SQL Mapper이다.기본적으로 JdbcTemplate이 제공하는 대부분의 기능을 제공하면서 동적 쿼리를 훨씬 편하게 작성할 수 있다. build.gradleimplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' application.propertiesmybatis.type-..
스프링 JdbcTemplate
·
강의/스프링 DB 2편
스프링 DB 2편 - 데이터 접근 활용 기술 강의 | 김영한 - 인프런김영한 | , 백엔드 개발자라면 반드시 알아야하는스프링 데이터 접근 기술 Part.2 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 7번째 강의입니다. 우아한형제들 최연소 기술이사www.inflearn.comJdbcTemplateJdbc 기술을 쉽게 사용할 수 있도록 도와주는 클래스이다.JDBC : 자바에서 데이터베이스 접속할 수 있도록 하는 자바 API 장점설정의 편리함JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있어 별도의 복잡한 설정 없이 바로 사용할 수 있다.implementation 'org.springframework.boot:spring-boot-starter-jdbc'반복 문제 해결J..
컨트롤러 계층 단위테스트 중 No qualifying bean of type 'JwtProvider' available
·
Project/중고타운
‼️ 이슈컨트롤러 계층의 단위테스트를 진행해 보았다.@WebMvcTest(MemberController.class)public class MemberControllerTest { @Autowired MockMvc mockMvc; @MockitoBean private MemberService memberService; private static final MemberDto memberDto = MemberDto.getMemberDto( "testId", "qwer1234@", "홍길동", "010-1234-5678" ); @Test void join() throws Exception { when(memberService.join(a..
토스페이먼츠 가상계좌 API 적용
·
Java
토스페이먼츠 개발자센터토스페이먼츠 결제 연동 문서, API, 키, 테스트 내역, 웹훅 등록 등 개발에 필요한 정보와 기능을 확인해 보세요. 결제 연동에 필요한 모든 개발자 도구를 제공해 드립니다.developers.tosspayments.com토스페이먼츠 API url 정보base-url : 공통으로 포함되는 urlendpoints : 가상계좌 발급 요청과 결제상태를 조회하는 api의 엔드포인트toss: base-url: https://api.tosspayments.com/v1 endpoints: search: /payments virtual-account: /virtual-accounts HTTP 요청 시 사용하는 RestClient 생성 부분은 재사용하기 위해 빈으로 등록해 두었다.시크..
예외의 이해와 처리 방법
·
강의/스프링 DB 1편
스프링 DB 1편 - 데이터 접근 핵심 원리 강의 | 김영한 - 인프런김영한 | , 백엔드 개발자라면 반드시 알아야하는스프링 데이터 접근 기술 Part.1 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 6번째 강의입니다. 우아한형제들 최연소 기술이사www.inflearn.com 예외 계층Object예외도 객체이다.모든 객체의 최상위 부모는 Object이므로 예외의 최상위 부모도 Object이다.Throwable최상위 예외이다. 하위에 Exception과 Error가 있다.Error메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외이다.상위 예외를 catch로 잡으면 그 하위 예외까지 함께 잡는다.따라서 애플리케이션 로직에서는 Throwable 예외도 잡으면..