본문 바로가기
반응형

전체글587

@SpyBean @MockBean 의도적으로 사용하지 않기 보통 스프링 부트 관련 테스트 코드를 작성할때 @MockBean과 @SpyBean 를 사용했습니다. (참고: SpringBoot @MockBean, @SpyBean 소개) 복잡한 스프링 프로젝트에서도 원하는 코드만 아주 간단하게 Mock 처리를 할 수가 있어 정말 많이 사용했습니다. 그러다 최근에 Spring Boot Cloud 프로젝트의 테스트 코드를 보면서 제가 완전히 잘못하고 있음을 깨달았는데요. 대부분의 테스트 코드가 @MockBean, @SpyBean없이 작성되있었습니다. 마침 정진욱님의 발표도 봤던지라, 저도 @MockBean과 @SpyBean없이 테스트 코드 작성을 시도해보니!완전 큰 깨달음을 얻었습니다. 샘플 예제로 한번 소개드리겠습니다. 예제 예를 들어서, AWS SQS로 메세지를 보내는.. 2018. 7. 21.
2. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - 커널 파라미터 튜닝 지난 시간에 Nginx에 엄청난 양의 에러로그가 발생하면서 부하 테스트가 강제 종료되었습니다! (Nginx log) 이번 시간엔 해당 문제를 해결하는 과정을 진행하겠습니다. 2-1. TIME_OUT과 소켓 로그를 자세히 보면 아래와 같습니다. 2018/07/19 08:03:23 [crit] 2872#0: *338613 connect() to 127.0.0.1:8080 failed (99: Cannot assign requested address) while connecting to upstream, client: 13.125.61.131, server: , request: "GET /availablePoint/1 HTTP/1.1", upstream: "http://127.0.0.1:8080/availab.. 2018. 7. 20.
1. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - DB Connection Pool 안녕하세요 이번 시간에는 AWS Beanstalk을 이용한 웹 어플리케이션 서버 성능 튜닝 시리즈를 시작합니다. 모든 코드는 Github에 있으니 참고하시면 됩니다. 신규 서비스를 출시할때마다 성능 테스트와 튜닝을 꼭 진행해야합니다. 이번에 신규 프로젝트를 준비하면서 이것 저것 시도해본 내용을 샘플 예제로 정리합니다. 0. 테스트 환경 테스트 환경은 아래와 같습니다. AWS Elastic Beanstalk c5.large 1대 t2.large 보다 저렴합니다. AWS Aurora RDS AWS와 같은 클라우드 환경에 최적화 r4.large AWS Aurora 도입전에 알아야 할 몇가지 사실 참고 Spring Boot 2.0.3 DataSource Hikari CP 설정 X (기본값) 사용한 쿼리 sele.. 2018. 7. 17.
Travis CI와 AWS ElasticBeanstalk 연동하기 안녕하세요? 이번 시간에는 Travis CI를 이용하여 Spring Boot를 AWS Beanstalk에 배포하는 과정을 소개드리겠습니다. 모든 내용은 Github에 있기 때문에 코드를 참고하시면 도움이 되실것 같습니다. AWS에서는 heroku와 같은 일체형 서비스를 지원하고 있습니다. 그게 바로 AWS ElasticBeanstalk인데요. EC2처럼 하나하나 설정할 필요없이 웬만한 기능들은 다 자동화 되기도 하고, 추가 설정들은 config 파일로 해결할 수 있어서 빠르게 구축할 수 있는 장점이 있습니다. 만약 개인 프로젝트를 AWS ElasticBeanstalk에 구축한다면 Travis CI와 함께 이용하시면 젠킨스나 Code Pipeline등을 별도로 구축할 필요 없이 편하게 개발 환경이 완성됩니.. 2018. 7. 13.
tcpdump 기본 사용법 CentOS/RHEL에서 설치하기 sudo yum install tcpdump 자주 사용하는 옵션 옵션 설명 -nn 출력 결과의 포트를 변환 없이 그대로 출력한다. 옵션을 적용하지 않으면 가장 대중적인 프로토콜로 보여준다. ex) 80 -> http, 443 -> https -vvv 패킷의 모든 정보 (TTL 등을 보여준다. 단, 데이터는 볼 수 없다. Request Body, Response Body 등) -A 패킷의 내용을 ASCII 형태로 출력한다. 데이터가 암호화 되지 않았다면, 데이터도 보여준다. (Request Body, Response Body 등) -G 패킷 정보를 저장하는 파일을 일정 주기로 갱신한다. 기본 단위는 s (초) -C 패킷 정보를 저장하는 파일을 일정 크기로 갱신한다. 기본 .. 2018. 7. 8.
3. AWS Code Deploy로 배포 Jenkins에서 배치 Jenkins로 Spring Batch 배포하기 - 젠킨스 연동 4. 배포 Jenkins 환경 설정 여기서는 Batch가 아닌 배포 Jenkins 페이지로 이동합니다. 배포 Jenkins에서 Github에 올라간 코드를 가져오려면 Github과 연동이 필요합니다. Jenkins와 Github 연동은 이전에 작성된 포스팅를 참고해서 진행하시는것을 추천드립니다. 연동이 되셨으면 배포 Job을 생성하겠습니다.매개변수 (파라미터)에는 Choice Parameter를 선택합니다. 여기서는 member-batch 모듈만 있어서 member-batch 만 등록했지만, member-api, member-admin 등 여러 모듈이 있다면 다 등록하시면 됩니다. 소스코드 관리에서는 배포할 프로젝트의 Github 주소를 등록합니다.배포 스크립트 내용은 좀 길어서 아래 코드를 그대로 복사.. 2018. 7. 7.

728x90
반응형