일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 보조스트림
- Collection
- 스프링
- Kotlin
- GC
- 자바 ORM 표준 JPA 프로그래밍
- redis
- jvm
- spring
- 자바
- IntellJ
- MSA
- 토비의 스프링 정리
- OS
- 토비의 스프링
- Stream
- gradle
- 쿠버네티스
- JPA
- SpringBoot
- Stack
- Java
- 이스티오
- 스트림
- mysql
- K8s
- 백준
- thread
- list
- Real MySQL
- Today
- Total
목록전체 글 (151)
인생을 코딩하다.
안녕하세요. 이번 글은 제가 MySQL Master 서버 이외에 추가적으로 Replication된 Slave 서버를 생성한 이유와 과정에 관해 글을 작성해 보았습니다. 현재 진행중인 프로젝트인 Black-postoffice는 사용자가 지속적으로 증가함하며 많은 양의 트래픽이 발생한다는 가정하에 진행중이기 때문에 하나의 DB 서버로 모든 쓰기/읽기 작업이 집중된다면 쉽게 부하가 발생할 수 있다고 생각했습니다. 따라서 Master 서버 이외에 추가적으로 Replication된 Slave 서버를 두고 모든 읽기 작업(read-only)은 slave에게 향하게 함으로써 트래픽이 분산될 수 있도록 구현하였습니다. 이는 또한 단일 서버일 때 MySQL 서버가 죽게되어, 서비스를 진행할 수 없어 수익을 창출하지 못하..
다음 글 nGrinder를 이용한 성능 테스트를 진행하기 앞서, 리눅스 서버에 ngrinder를 설치하고 성능 테스트를 위한 환경을 구축해놓는 것에 관해 글을 작성해 보았습니다. 설치하는 것에 작성하기에 앞서 간단하게 ngrinder 관해 설명해보도록 하겠습니다. nGrinder란? nGrinder는 네이버에서 성능 측정 목적으로 개발된 오픈 소스 프로젝트 입니다. nGrinder는 서버에 대한 부하를 테스트 하는 것이므로 서버의 성능 측정이라고도 할 수 있습니다. 성능 측정이란 것은 실제 서비스에 투입되기 전, 실제와 같은 환경을 만들어 놓고 서버가 사용자를 얼만큼 수용할 수 있는지를 실험할 때 사용됩니다. 만약 이와 같은 테스트를 하지 않으면, 엔지니어가 동시 접속자를 1000명 정도로 예상하고 이에..
이 글을 읽기 전, 리눅스 서버에 ngrinder 설치하기를 참고해주시면 좋을 것 같습니다. 🔍 내가 만든 서비스는 얼마나 많은 사용자가 이용할 수 있을까? 저는 Black-postoffice가 실제 서비스로 출시되었다고 가정했을때, 지속적인 수익 창출을 원하고 그러기 위해서는 사용자들에게 서버가 멈추지 않고, 더욱 빠른 서비스를 제공해드려야 한다고 생각합니다. 따라서 성능 테스트가 꼭 필요한데요, nGrinder는 서버에 대한 부하를 테스트 하는 것이므로 서버의 성능 측정이라고도 할 수 있습니다. 성능 측정이란 것은 실제 서비스에 투입되기 전, 실제와 같은 환경을 만들어 놓고 서버가 사용자를 얼만큼 수용할 수 있는지를 실험할 때 사용됩니다. 성능 테스트를 하지 않았을 떄의 큰 위험을 한 예로 들어보면,..
저는 현재 프로젝트를 진행함에 있어, https://github.com/f-lab-edu/black-postoffice f-lab-edu/black-postoffice 익명으로 편하게 고민, 일상을 공유하는 소셜 네트워크 서비스입니다. Contribute to f-lab-edu/black-postoffice development by creating an account on GitHub. github.com 지속적으로 성능을 튜닝하여 빠른 서비스를 만들어야 한다고 생각합니다. 서비스의 속도가 계속 느려진다면, 이용하는 사용자들의 수도 그만큼 줄어들겠죠? 이건 곧 수익의 저하로도 이어집니다. 최악의 시나리오네요. 따라서 저는 제가 진행중인 프로젝트의 성능을 꾸준히 튜닝하여 속도를 높이기 위해 http://..
이전 글은 젠킨스를 이용해 CI를 자동화하는 것에 관해 글을 작성하였습니다. 먼저 읽고오시면 아래 내용들을 이해하는데 큰 어려움이 없으실 겁니다. 젠킨스와 슬랙 연동하여 알림받기 슬랙 홈페이지에 접속한 후 슬랙을 다운받고 워크스페이스와 알림을 받을 채널을 생성해줍니다. https://black-postoffice.slack.com/apps 처럼 htps:// + 자신의 워크스페이스.slack.com/apps를 입력하여 접속합니다. jenkins CI 검색 후 클립하여 줍니다. Slack에 추가를 누르고 채널을 선택하여 Jenkins CI 통합 앱 추가 버튼을 눌러줍니다. Setup Instructions 의 Step3의 Team Subdomain 와 Integration Token Credential I..
https://junghyungil.tistory.com/167 [Infra] CI란?, 어떤 CI 도구를 사용할까? CI는 왜 발생했을까요? CI는 애자일 프로젝트를 수행하는 데 많은 도움이 됩니다. 애자일 프로젝트에 관해 이야기하기에는 이 글이 너무 길어지기 때문에 여기를 보고 오시면 좋을 것 같습니다. junghyungil.tistory.com 젠킨스에 관해 알아보기전, CI에 관해서 알아야하고, 많은 CI 도구중 젠킨스를 고른 이유에 관해 아셔야하기 때문에 위 글을 먼저 읽어보고 오시면 좋을 것 같습니다. 젠킨스란? CI 도구중 하나입니다. 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이고 주로 빌드 - 테스트를 자동화하기 위해 사용합니다. 젠킨스의 장점 무료입니다. 많은 플러그인을 지..
CI는 왜 발생했을까요? CI는 애자일 프로젝트를 수행하는 데 많은 도움이 됩니다. 애자일 방법론에 관해 이야기하기에는 이 글이 너무 길어지기 때문에 여기를 보고 오시면 좋을 것 같습니다. 애자일 개발 방법론은 빠른 배로플 기반으로 하는데, CI는 애자일에서 필요한 속도를 얻는데 도움을 줍니다. 하지만 어떻게 CI가 이 과정에서 도움이 될까요? 간단한 예제를 통해 알아봅시다. 기능을 개발할 떄는 코드를 여러번 수정하게 되는데, 이 과정에서 코드를 반영하고, 버전 관리 시스템에서 변경 사항을 가져오고, 소스코드를 빌드하고, 단위테스트를 진행하고, 통합된 코드를 빌드하고, 이를 묶어 배포하는 등 여러 과정을 수행합니다. CI 환경에서는 젠킨스 같은 도구를 이용해 모든 과정을 빠르게 에러 없이 진행할 수 있습..
안녕하세요. 이번에는 프로젝트에서 Redis를 적용해야 하는 이슈가 생겼는데요. Redis를 적용해야 하는 이유는 여기서 확인 하실 수 있습니다. 우선 Spring Boot Redis Docs와 함께 외부 Redis에 간단히 알아볼까요? https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/htmlsingle/#boot-features-connecting-to-redis hget "spring:session:sessions:9a398c47-36c6-4d33-95d1-80f51447f7eb" "sessionAttr:email" "\xac\xed\x00\x05t\x00\x0fadmin@gmail.com" 하지면 여기서 문제가 하나 있습니다. 스프링에서 로그..