커린이
446
2022-04-29 21:18:21
9
739

현업에서도 while문 사용하나요?


이번에 개인적을  만드는 미니 프로젝트에 while문으로 디비를 계속 찔러보고 조건이 만족되면 break되는 메소드가 있는데요

정상적인 코드는 아닌거같아서요.... 혹시 현업에서도 while문을 많이 쓰는편인가요?


아니면 while문 대신에 쓸만한 기술이 있을까요?


0
  • 댓글 9

  • defult
    16k
    2022-04-29 21:26:20 작성 2022-04-29 21:30:17 수정됨

    반복문 종류는 전부가 동일반복패턴인걸 그냥 편하라고 여러가지 나온게 아니고

    반복문별 특징이 있어서 쓸곳을 생각하고 쓰는겁니다.


    참고로 현재 고민하는 문제는 로컬룰이라서 현업이라면 같은 고민은 의미없습니다.

    회사 수만큼 룰이 있는영역입니다.

  • ambp
    255
    2022-04-29 22:04:04
    디비를 왜 계속 찔러보는지 모르겠는데요?
  • 커린이
    446
    2022-04-29 22:19:29

    ambp 조건이 만족되는지 확인을 해야하기 때문입니다.

  • siyex42080
    493
    2022-04-30 00:12:50

    설명하신대로 while 문이 돌아가는 스레드가 반복적으로 폴링을 해서 조건이 만족되면 특정 작업을 수행하는건 꽤 흔히 사용되는 디자인 패턴입니다.

    다만 여러가지 이유로 많은 상황에서는 더 좋은 해결 방안이 있는 것도 사실입니다. 메시지큐 또는 다른 pub/sub 패턴 등을 이용하는 것이 해결 방법일 수도 있고 DB의 경우에는 트리거를 사용하는게 더 좋은 선택일 수 있습니다.

    또한 말씀하신 메소드를 여러 사용자가 동시 사용할 경우 (웹서버 동시접속 등) 각각 하나의 스레드를 생성해야 합니다. 상황에 따라 이게 문제가 되지 않을 수도 있지만 이것 보다는 비동기 방식을 사용하는 것이 더 좋은 경우가 많습니다.

  • 더미
    17k
    2022-04-30 00:34:32

    while 문에 증감넣으면 for문입니다.


    조건만족할때까지 db를 확인해야된다면

    설계부터 다시 하세요. 

    굳이 그런식으로 되야하는 경우는 극히 드뭅니다.

  • 감자면
    147
    2022-04-30 01:40:49
    while로 주기적으로 데이터를 받거나 수정하는 코드는 자주썼는데
    특정 조건이 되면 break라...
    그 조건을 모르겠지만 잘못하면 디도스랑 다를바 없어보이는데요?
    -2
  • yadameda
    308
    2022-04-30 14:18:41

    While로직 자체는 좋고 나쁨이 없습니다. 폴링은 흔희 사용되는 패턴입니다. 운영체제나 펌웨어같은 시스템의 낮은 레벨에서도 빈번히 사용되구요. 높은 레벨의 어플리이션 간의 통신에서 비동기 api 가 있는 외부 시스템이 이벤트를 발행하지 않으면 내 요청이 반영되었는지 확인하기위해 polling을 하기도 합니다. 예를들어 cqrs 패턴에서 read model이 생성되었는지 확인하기 위해서 제한시간을 두고 polling을 하기도 합니다. 이 패턴이 딱 db에 뭐가 제대로 생성되었는지 확인하는 패턴입니다.

  • kenu
    61k
    2022-04-30 16:41:15
    해당 게시물은 관리자에 의해 Tech Q&A에서 포럼로 이동 되었습니다.
  • 커린이
    446
    2022-04-30 22:12:17
    모든분들 너무 감사합니다. 도움이 많이 되었어요 많은 공부를 한거같아요 감사합니다.!!
  • 로그인을 하시면 댓글을 등록할 수 있습니다.