본문 바로가기
반응형

2018/0714

1. Spring Batch 가이드 - 배치 어플리케이션이란? Spring Batch In Action이 2011년 이후 개정판이 나오지도 않고 (2019.03 기준), 한글 번역판도 없고, 국내 Spring Batch 글 대부분이 튜토리얼이거나 공식 문서 중 일부분을 짧게 번역한 내용들이라 대용량 시스템에서 사용할때 정말 많은 삽질을 했습니다. Spring Boot가 활성화되면서 Spring Batch도 이전에 비해 훨씬 사용하기 편해졌지만 제대로 정리된 곳 찾기가 쉽지 않았습니다. 예전에 정상혁님께서 정리해주신 Spring Batch 시리즈가 있었는데, 찾기가 쉽지 않네요 ㅠ특히나 커머스 사이트에선 웹 어플리케이션만큼 배치 어플리케이션 작성하는 경우가 많습니다. 저 뿐만 아니라, 주변에서, 팀에서 Spring Batch 를 시작할때 마땅히 가이드라고 전달해드릴만.. 2018. 7. 31.
4. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - 기타 자 이번 시간엔 이 시리즈에서 자세히 다루진 않지만, 꼭 해야할 여러 설정 포인트를 정리하겠습니다. 4-1. Open Files 예를 들어 @Async 혹은 CompletableFuture 와 같은 비동기 쓰레드를 많이 사용해야하거나, 응답시간이 오래 걸리는 외부 API 요청이 대량으로 발생하는 경우 등등 대규모 트래픽 서비스에서 자주 발생하는 것이 Too many open files 에러입니다. 좀 더 자세한 내용은 이전에 작성한 Java, max user processes, open files 를 참고해보세요! EC2, IDC 에서의 설정 방법이 해당 포스트 최하단에 있습니다. 위 이슈 등으로 인해 기본적으로 Linux 서버에 설정해줘야하는 값이 바로 Open Files 입니다. AWS Beansta.. 2018. 7. 26.
3. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - Nginx 튜닝 지난 시간에 보셨던것처럼 AWS Elastic Beanstalk은 기본적으로 Nginx을 갖고 있습니다. 이 내용을 모르시는 분들 입장에선 성능 튜닝시 Nginx 부분은 놓치실 수 있는데요. 그래서 이번 시간에는 Nginx와 Spring Boot 간의 성능 튜닝 과정을 진행해보겠습니다. 모든 코드는 Github에 있습니다. 3-1. 여전히 많은 TIME_WAIT 소켓 지난 시간에 net.ipv4.tcp_tw_reuse 값을 수정하여 로컬 포트 고갈 문제를 해결하였습니다! 그리고 수정된 버전으로 다시 한번 성능 테스트를 진행했는데요. Vuser 50으로 맞추고 테스트를 하니 TPS가 4700까지 올라갔습니다! 중간에 DB Connection이 부족한것이 발견되어 DB Connection Pool Size와.. 2018. 7. 23.
IntelliJ & 안드로이드 스튜디오 기본 가이드 소개 아마 예전부터 블로그를 방문하신 분들은 아시겠지만 저는 IntelliJ를 굉장히 좋아합니다.처음 IntelliJ Ultimate 라이센스를 회사에서 받았을때, 이걸 도대체 어떻게 써야하나 막막했습니다. "누가 차례대로 하나씩 알려줬으면 좋겠다." "Eclipse에서 쓰던 기능이 IntelliJ에서 어떻게 쓰는지 소개해주는 자료가 어디 없나" 등등 생각은 많고, 행동으로 옮기지 못했습니다. 특히 Eclipse에 비해 한글로 된 자료가 너무나 부족해서 실제로 2달이 지나서야 사용하기 시작했습니다. 아마 이건 안드로이드 스튜디오 역시 마찬가지인걸로 알고 있습니다. 여전히 Eclipse에 안드로이드 플러그인을 설치해 개발하시는 분들을 자주 봤습니다. 메인 개발 툴을 바꾼다는건 그만큼 번거롭고 귀찮은 일이라고 생.. 2018. 7. 22.
@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.

728x90
반응형