이번에 개인적을 만드는 미니 프로젝트에 while문으로 디비를 계속 찔러보고 조건이 만족되면 break되는 메소드가 있는데요정상적인 코드는 아닌거같아서요.... 혹시 현업에서도 while문을 많이 쓰는편인가요?아니면 while문 대신에 쓸만한 기술이 있을까요?
반복문 종류는 전부가 동일반복패턴인걸 그냥 편하라고 여러가지 나온게 아니고반복문별 특징이 있어서 쓸곳을 생각하고 쓰는겁니다.참고로 현재 고민하는 문제는 로컬룰이라서 현업이라면 같은 고민은 의미없습니다.회사 수만큼 룰이 있는영역입니다.
설명하신대로 while 문이 돌아가는 스레드가 반복적으로 폴링을 해서 조건이 만족되면 특정 작업을 수행하는건 꽤 흔히 사용되는 디자인 패턴입니다.다만 여러가지 이유로 많은 상황에서는 더 좋은 해결 방안이 있는 것도 사실입니다. 메시지큐 또는 다른 pub/sub 패턴 등을 이용하는 것이 해결 방법일 수도 있고 DB의 경우에는 트리거를 사용하는게 더 좋은 선택일 수 있습니다.또한 말씀하신 메소드를 여러 사용자가 동시 사용할 경우 (웹서버 동시접속 등) 각각 하나의 스레드를 생성해야 합니다. 상황에 따라 이게 문제가 되지 않을 수도 있지만 이것 보다는 비동기 방식을 사용하는 것이 더 좋은 경우가 많습니다.
While로직 자체는 좋고 나쁨이 없습니다. 폴링은 흔희 사용되는 패턴입니다. 운영체제나 펌웨어같은 시스템의 낮은 레벨에서도 빈번히 사용되구요. 높은 레벨의 어플리이션 간의 통신에서 비동기 api 가 있는 외부 시스템이 이벤트를 발행하지 않으면 내 요청이 반영되었는지 확인하기위해 polling을 하기도 합니다. 예를들어 cqrs 패턴에서 read model이 생성되었는지 확인하기 위해서 제한시간을 두고 polling을 하기도 합니다. 이 패턴이 딱 db에 뭐가 제대로 생성되었는지 확인하는 패턴입니다.