본문 바로가기

분류 전체보기124

Redis에서 사용하는 분산락 알고리즘인 RedLock에 대해 알아보자 개요 redis에서는 분산락을 제공하기 위해 redLock 알고리즘을 사용한다. 이에 대해 공부해보고 내용을 정리해본다. 참고: https://redis.io/docs/manual/patterns/distributed-locks/ Distributed Locks with Redis A distributed lock pattern with Redis redis.io 분산락을 적용하는 방법 레디스가 단일 인스턴스일 때의 방법은 간단하다. 레디스의 SetNX 를 사용하면 된다. // 락이 존재하지 않는다면 value를 set하고 3초 뒤에 ttl 한다. SET key_name random_value NX PX 3000 spring data redis를 활용한 스프링 코드로 보면 다음과 같을 것이다. 과정을 간.. 2023. 9. 16.
nGrinder 성능 테스트 측정 삽질 일기 (Docker를 통한 설치 + war 파일을 통한 설치 포함) 개요 서비스의 성능을 측정하기 위해서는 대게 Throughput과 Latency 성능지표가 필요하다. 보통 Throughput은 얼마나 많은 요청을 처리할 수 있는지에 대한 처리량을 의미하고, Latency는 요청을 처리하는 속도를 의미한다. 처음 nGrinder를 썼을 때 왜 안되지? 이것들은 뭐지? (가령, TPS는 뭔지, 스크립트는 어떻게 만드는지, Agent는 뭔지) 하며 많이 당황했었고 이 글을 보는 개발자 분들이 단순 구현보다는 성능과 모니터링에 관심을 가졌으면 해서 nGrinder를 활용한 성능 테스트 측정 방법을 정리해보고자 한다. nGrinder 알아보기 nGrinder는 네이버에서 The Grinder라는 성능 테스트 도구를 기반으로 제작한 오픈소스 성능 테스트 솔루션이다. (오픈소스 .. 2023. 9. 2.
신입 개발자의 2023 토스 next 챌린지 코딩 테스트/ 1차 기술 면접/ 2차 컬쳐핏 면접 후기 안녕하세요! 오랜만에 글을 쓰는데요. 이번에 토스 2023 챌린지에서 2차 컬쳐핏 면접 까지 보고 나서 느낀 후기를 작성해보면 토스 면접 뿐만 아니라 다른 회사 면접을 준비하는 분들에게 조금이나마 도움이 되지 않을까 싶어 이렇게 작성합니다. 본글은 지극히 주관적이니 참고해주세요! 0. 저의 배경 우선 저는 모대학 4학년 1학기를 얼마 전에 마쳤고, 회사 면접 및 지원이 아예 처음이었습니다. 따라서 한번 경험해보자! 라는 생각이 컸습니다. 당연하겠지만, 토스에서 신입 개발자로 취직하는 경우가 6%에 불과(토스 피드 피셜)하고 제가 준비가 하나도 안된 입장이었기에 내가 붙을 수 있을거라는 희망은 단 하나도 존재하지 않았습니다. 토스 지원 당시 저는 학교 학우 분들과 진행하는 모카콩이라는 사이드 프로젝트를 진.. 2023. 7. 25.
[프로그래머스]2023 Kakao Blind 공개채용 표 병합 파이썬 문제 당신은 표 편집 프로그램을 작성하고 있습니다. 표의 크기는 50 × 50으로 고정되어있고 초기에 모든 셀은 비어 있습니다. 각 셀은 문자열 값을 가질 수 있고, 다른 셀과 병합될 수 있습니다. 위에서 r번째, 왼쪽에서 c번째 위치를 (r, c)라고 표현할 때, 당신은 다음 명령어들에 대한 기능을 구현하려고 합니다. "UPDATE r c value" (r, c) 위치의 셀을 선택합니다. 선택한 셀의 값을 value로 바꿉니다. "UPDATE value1 value2" value1을 값으로 가지고 있는 모든 셀을 선택합니다. 선택한 셀의 값을 value2로 바꿉니다. "MERGE r1 c1 r2 c2" (r1, c1) 위치의 셀과 (r2, c2) 위치의 셀을 선택하여 병합합니다. 선택한 두 위치의 셀이.. 2023. 1. 10.