소개
안녕하세요.
멘토링을 하면서 주니어 개발자들이 어려워 하는 개념들에 대해 어떻게 하면 쉽게 전달할 수 있을지에 대해서 많은 고민을 하고 있는 푸(Foo)라고 합니다.
잘 부탁 드리겠습니다.
이력
2019. 08 ~ 현재 : 카카오 자바 백엔드 개발자
2021. 08 ~ 현재 : programmers 백엔드 데브코스 멘토
2021. 12 ~ 현재 : F-Lab 자바 백엔드 멘토
책
이것이 취업을 위한 백엔드 개발이다 with 자바(링크)
기타 이력 및 타 플랫폼 강의들은 아래 GitHub 링크에서 확인할 수 있습니다.
GitHub - https://github.com/lleellee0
강의
전체 7수강평
게시글
질문&답변
2024.10.24
외부 api는 어떻게 테스트해야 하나요 ?
skehdxhd님 안녕하세요~우선 좋은 질문 남겨주셔서 감사합니다.외부 API를 호출하는 기능의 성능 테스트는 말씀하신 것처럼 신중해야 합니다. 실제로 타사의 API를 무분별하게 호출하면 과금 문제나 서비스 약관 위반 등의 문제가 생길 수 있죠.이럴 때는 외부 API를 모의(Mock) 서버로 대체하여 성능 테스트를 진행하는 것이 일반적입니다. WireMock이나 MockServer 같은 도구를 사용하면 외부 API의 응답을 모의할 수 있는데요, 테스트 코드뿐만 아니라 독립된 서버로 구동시켜서 성능 테스트 시에 실제 외부 API 대신 사용할 수 있습니다.이렇게 하면 실제 외부 API를 호출하지 않고도 시스템의 성능을 측정할 수 있고, 응답 시간이나 오류 상황을 자유롭게 설정하여 다양한 시나리오를 테스트할 수 있습니다. 요약하면, 성능 테스트를 위해서는 외부 API를 모의 서버로 대체하고, 그 모의 서버를 활용하여 테스트를 진행하시는 것이 좋을 것 같습니다.다만 이 경우 개발, 운영 환경을 별도로 구성하고 설정도 다르게 동작해야할 필요가 있을텐데요, 관련해서는 스테이징 환경 같은걸 두는 것도 좋은 방법입니다.혹시 더 궁금한 점 있으시면 언제든지 질문 남겨주세요~
- 1
- 2
- 90
질문&답변
2024.10.15
Riot API Circuit Breaker 적용
백종인님 안녕하세요~ 찾아보신 것처럼, slidingWindowSize에 있는 값은 seconds가 맞습니다.잘 찾아보셨어요. 그런데 질문과는 별개로, Riot API Limit에 나와있는 내용은 서킷브레이커보다는 Rate Limiter(https://resilience4j.readme.io/docs/ratelimiter)로 구현하는게 더 적절해보입니다. 서킷브레이커는 부하, 오류 상황으로부터 시스템을 지키는 목적이지 호출 횟수를 제한하려는 목적은 아닙니다. 물론 서킷브레이커로도 구현하신 것처럼 비슷하게 구현은 할 수 있을겁니다. 그러나 조금만 커스터마이징을 하려고 해도 로직을 직접 구현해주셔야해요. 아마 Rate Limiter로 개발하시면 이런 부분이 이미 구현되어있을겁니다. 아무튼 질문 주셔서 감사하고, 혹시 또 궁금한 내용 있으면 질문 남겨주세요~
- 1
- 2
- 101
질문&답변
2024.10.07
http 문제
uiw617님 안녕하세요~일단 https가 적용되어있다면 https로 테스트를 하는게 적절해보입니다.다만, 인증서에 문제가 있을지 모르겠네요. (NaN으로 나오는걸 보니 맞을 것 같기도한데.. 자세한 상황을 제가 알기 어려워서 정확하진 않을 수도 있습니다.) 문제의 원인이 뭔지와는 무관하게 artillery 스크립트 실행시 --insecure 설정을 함께 추가해서 실행해보시기 바랍니다.artillery run your-script.yaml --insecure 이런식으로요혹시 한번 시도해보시고 어떤지 답변 남겨주시면 마저 확인해보겠습니다. (_ _)
- 1
- 3
- 40
질문&답변
2024.10.07
stage view 가 안보여요
해결 처리를 위한 답변입니다. (_ _)
- 1
- 2
- 86
질문&답변
2024.10.01
부하 테스트 진행 중, DB사용과 관련하여 데이터 관리 문의사항
BeakGwa님 안녕하세요!질문 주신 내용에 대해 답변드리겠습니다.성능 테스트를 진행하면서 데이터베이스에 데이터를 생성하는 POST 메서드를 테스트하고 계신데, 테스트로 인해 생성된 데이터의 관리가 고민이 되시는 것 같습니다. Write 연산에 대한 성능 테스트라면 반드시 고려해야 할 중요한 내용입니다.결론부터 말씀드리자면, 성능 테스트 시 일반적으로 별도의 테스트용 서버와 테스트용 데이터베이스를 구성하여 테스트를 진행하는 것이 권장됩니다. 이때 테스트 서버의 성능은 실제 배포 서버와 최대한 유사하게 구성하여 현실적인 성능 측정이 가능하도록 하는 것이 좋습니다. 보통 이러한 테스트 환경을 "스테이징 환경"이라고 부릅니다. 관련해서는 제가 최근 업로드한 강의에 설명이 간략하게 나와 있으니 참고해보세요~하지만 여러 가지 이유로 스테이징 환경을 구성할 수 없어서 개발 환경에서 성능 테스트를 진행해야 하는 상황이라면, 기능 테스트를 위한 데이터와 성능 테스트에 사용된 데이터가 섞일 수 있습니다. 이로 인해 성능 테스트에 사용된 데이터를 반드시 제거해야 하는 상황이라면, 말씀하신 것처럼 SSH로 서버에 접속하여 데이터베이스를 정리하는 스크립트를 작성하고, 이를 Artillery의 after 스크립트에 추가하여 자동화하는 것도 하나의 방법입니다. 다만, 성능 테스트에 사용한 데이터는 어떤 식으로든 구분되도록 만들어야 하기 때문에 다소 번거로울 수 있습니다.질문에 대한 답변이 되었길 바랍니다.또 다른 궁금한 사항이 있으시면 언제든지 질문 남겨주세요.감사합니다!
- 1
- 2
- 62