23.07.08 13:41 작성
·
759
1
안녕하세요! 강의 재미있고 유익하게 잘 듣고 있습니다 :)
확장에 대해 생각해보니, Set을 이용해서는 중복방지 이상 개수 확장에 대해서 처리는 불가능 할 거 같아서요.
혹시, 2개 이상 N개 제한에 대한 확장 방법은 어떤게 있을까요??
감사합니다!
답변 2
0
2023. 07. 11. 21:14
류건희님 안녕하세요.
2개 이상 N 개 제한이 필요하다면 유저의 id 를 key 로 잡고 분산락을 구현하여 정합성을 보장할 것 같습니다.
류건희님 말씀대로 Set 을 이용해서는 N 개 이상의 제한이 안되기때문입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요.
쿠폰 개수를 제한해야하는 경우에는 Set 자료구조보다는 다른 자료구조를 사용하는 것이 좋을 수 있습니다. Set은 중복된 값을 허용하지 않기 때문에 한 사용자당 2개 이상의 쿠폰을 발급하는 경우에는 Set 자체로는 처리가 어려울 수 있어요.
그래서 대안으로는 리스트나 딕셔너리를 사용할 수 있어요. 이들 자료구조를 사용하면 개수를 제한할 수 있고, 중복 값도 허용할 수 있어요.
예를 들어, 리스트를 사용해서 한 사용자가 발급받을 수 있는 쿠폰 개수를 제한하는 방법은 다음과 같이 구현할 수 있어요.
딕셔너리를 사용하는 경우에는 사용자 별로 발급받은 쿠폰 개수를 관리하는 방식으로 처리할 수 있어요. 예를 들어, 각 사용자를 키로 가지고 그 값을 쿠폰 개수로 설정한 딕셔너리를 선언하고, 쿠폰을 발급할 때마다 해당 사용자의 값에 1을 더해주면 됩니다. 그리고 2 이상인 경우에만 쿠폰 발급 가능하도록 조건문을 추가하면 되겠죠.
이렇게 리스트나 딕셔너리를 활용해서 한 사용자당 2개 이상 N개 제한을 구현할 수 있습니다. 원하시는 방식에 맞게 선택해서 사용하시면 될 것 같아요. 개발에 참고가 되셨길 바랍니다. 감사합니다!