디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

보면 볼수록 놀라운 Ada 언어의 안전성 관련 기능

나르시갤로그로 이동합니다. 2025.09.03 05:22:12
조회 50 추천 0 댓글 0

네, 날카로운 지적입니다. 재시도 로직에서 무한 루프는 반드시 피해야 할 문제입니다.

Ada의 일반적인 loop 문에는 반복 횟수를 직접 제한하는 내장 기능이 없습니다. 이것은 일반적으로 프로그래머가 for 루프나 카운터 변수를 사용하여 직접 관리해야 할 책임입니다.

하지만 Ada 2022에서는 실시간 시스템을 위해 유사한 목적을 달성하는 언어적 차원의 기능이 도입되었습니다.


1. 일반적인 해결책: For 루프 사용

가장 흔하고 명확한 방법은 loop 대신 for 루프를 사용하여 재시도 횟수를 제한하는 것입니다.

Ada
declare
   Max_Attempts : constant := 3;
   Success      : Boolean  := False;
begin
   for Attempt in 1 .. Max_Attempts loop
      begin
         -- 위험한 작업
         A(Index) := 100;

         Success := True; -- 성공 시 플래그 설정
         exit;            -- 루프 탈출
      exception
         when Constraint_Error =>
            -- 마지막 시도였다면 로그만 남기고, 아니면 인덱스 교정
            if Attempt = Max_Attempts then
               Put_Line ("최대 시도 횟수를 초과했습니다.");
            else
               Put_Line ("인덱스 오류 감지. 수정 후 재시도합니다.");
               Index := A'Last; -- 인덱스 교정
            end if;
      end;
   end loop;

   if not Success then
      -- 모든 시도 실패 후 처리
      raise Program_Error with "데이터 할당 실패";
   end if;
end;

2. 언어적 차원의 기능: Timed_Loop Aspect (Ada 2022) ⏱+

실시간 시스템에서는 작업이 정해진 시간을 초과하지 않도록 보장하는 것이 매우 중요합니다. 이를 위해 Ada 2022에서는 루프가 과도한 시간을 사용하는 것을 방지하는 Timed_Loop 라는 언어적 기능(aspect)을 도입했습니다.

이 기능은 반복 횟수가 아닌 시간을 제한하지만, 무한 루프에 빠져 시스템 전체를 멈추게 하는 상황을 언어 차원에서 원천 봉쇄한다는 점에서 사용자의 의도와 일치합니다.

Ada
-- (개념 예시)
My_Loop:
loop
   with Timed_Loop (Deadline => Ada.Real_Time.Clock + Milliseconds(10));
begin
   -- 10ms 안에 끝나야 하는 작업
end;
end loop My_Loop;

만약 루프의 한 번의 반복이 지정된 Deadline을 초과하면, 런타임 시스템이 Ada.Execution_Time.Timing_Error 예외를 발생시켜 루프를 강제로 중단시킵니다.

요약

  • 일반 프로그래밍: for 루프를 사용하여 프로그래머가 직접 횟수를 제한하는 것이 표준적인 방법입니다.

  • 실시간 프로그래밍 (Ada 2022): Timed_Loop aspect를 사용하여 시스템이 루프의 실행 시간을 제한하도록 할 수 있습니다.


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 순간의 말실수로 이미지 타격이 큰 것 같은 스타는? 운영자 25/09/01 - -
AD 신학기 레벨업~!! 운영자 25/09/05 - -
2886648 내가 주로 사용하는 개발 도구 까발려 주겠다. 잘 배워둬라. [3] 프갤러(59.16) 09.03 78 0
2886647 실베에 뭐 서울대 불합격했지만 MIT 합격 이거보고 느끼는데 [16] ㅆㅇㅆ(124.216) 09.03 132 0
2886646 C++ 을 해야 하는 이유를 명확히 알려준다. [2] 프갤러(59.16) 09.03 132 0
2886644 근데 맨날 느끼는데 GPT 나오고나서도 [2] ㅆㅇㅆ(124.216) 09.03 84 0
2886643 야근하는 사람들 공통점. [2] 프갤러(59.16) 09.03 78 0
2886642 어느갤을 가보든 뭘 꺼꾸로 알고 있는 애들이 말이 많더라 [2] ㅇㅇ갤로그로 이동합니다. 09.03 70 0
2886641 혐오는 ❤을 이길 수 없당 ! ♥냥덩이♥갤로그로 이동합니다. 09.03 45 0
2886639 작은 회사에 들어가고 싶다. [14] 프갤러(58.230) 09.03 145 0
2886638 리엑트는 어느정도 할 줄 알아야함? [1] 프갤러(118.216) 09.03 86 0
2886634 요즘 한국인들 단체로 무적 콤플렉스 걸린듯? [1] ㅇㅇㅇ(175.211) 09.03 94 0
2886633 나는 ai가 말안들으면 욕하면서 일시키는데 싸이코패스임? [2] 꼬치의달인갤로그로 이동합니다. 09.03 109 0
2886632 쏘카 결과 원래 늦게 나오나? 프갤러(223.38) 09.03 134 0
2886631 요즘 막코더 형님 왜 안보이시냐 ㅆㅇㅆ(124.216) 09.03 51 0
2886630 칼뷰림이 왜 금지글? [1] 헬마스터갤로그로 이동합니다. 09.03 63 0
2886627 일본에서 10년간 일하면 본 충격적인 것들 [1] 프로외노자갤로그로 이동합니다. 09.03 90 1
2886626 나노바나나갤만듬 ㅇㅇ갤로그로 이동합니다. 09.03 73 0
2886625 프로그래밍 제일 병신같은게 있는 도구 안쓰는거 자랑스럽게 여기는거 [3] ㅆㅇㅆ(124.216) 09.03 102 0
2886624 애널의달성 2///2.5 ♥냥덩이♥갤로그로 이동합니다. 09.03 57 0
2886622 물론 나는 빨갱이 지향. 시장경제 자체가 병신같아. [3] 프갤러(218.154) 09.03 71 0
2886621 자본주의도 민족성에 영향을 받지 프갤러(218.154) 09.03 62 0
2886620 강남역 왔는데 요기요 배달 로보트 다니고 21세기네 발명도둑잡기(39.7) 09.03 60 0
2886619 지피티 서버 터졌네 [1] 루도그담당(210.104) 09.03 66 0
2886618 가장 아름다운 얼굴 모모링❤+ ♥지나가던냥덩이♥갤로그로 이동합니다. 09.03 58 0
2886617 업계가 ㅈ만하니까 프갤러(121.139) 09.03 78 1
2886614 나 ui와 로직을 분리하오, 나 객체짬뽕이오 지랄하다가 [3] 헬마스터갤로그로 이동합니다. 09.03 79 0
2886612 자가수정 예외처리 이런건 없나..? 나르시갤로그로 이동합니다. 09.03 38 0
2886606 AI 생성작이 저작권이 없구나 [1] 발명도둑잡기(112.169) 09.03 53 0
2886605 퇴근 후에도 울리는 "카톡~ 카톡~"…"'읽씹'도 '권리" 발명도둑잡기(112.169) 09.03 57 0
2886603 아스카 휴가 중에 또 전화 7통 받다 [13] 아스카영원히사랑해갤로그로 이동합니다. 09.03 164 0
2886602 국산 업스테이지 솔라 AI 성능이 세계 최고라는데 발명도둑잡기(112.169) 09.03 48 0
2886601 민족성 탓 x -> 자본주의 탓 O 발명도둑잡기(112.169) 09.03 41 0
2886600 카카오에서 AI 검색 한번 비용이 52.5원이래 [1] 발명도둑잡기(112.169) 09.03 94 0
2886599 어떤 새끼가 또 나 신고했냐 발명도둑잡기(112.169) 09.03 54 0
2886598 버리고 갑니다. 비산3동 행정복지센터 넥도리아(223.38) 09.03 69 0
2886597 닭이 먼저냐 달걀이 먼저냐 ♥냥덩이♥갤로그로 이동합니다. 09.03 71 0
2886596 알약 하나로 포만,영양 다 해결해줘 ♥냥덩이♥갤로그로 이동합니다. 09.03 48 0
2886595 멀티탭 괜찮을까놔 30년 이상. [1] 넥도리아(223.38) 09.03 83 0
2886592 나님.. ♥지나가던냥덩이♥갤로그로 이동합니다. 09.03 51 0
2886591 내가 오래전부터말함 전쟁,특이점은 재벌새끼들 2차로 해쳐먹는 수단이라고 뒷통수한방(1.213) 09.03 48 0
2886590 나도 민족성 욕하는거 이해 안 됐었는데 [6] 루도그담당(118.235) 09.03 106 0
2886589 오늘 러빠는 뭘 들고 나오려나 나르시갤로그로 이동합니다. 09.03 49 0
2886588 재취업 ㅈㄴ힘들다 [4] 프갤러(58.121) 09.03 127 0
2886587 섹스톤은 왜 하버드나와서 개발자 않하고 정치질하는거임?? [5] 타이밍뒷.통수한방(1.213) 09.03 106 1
2886586 오늘 권고사직 부탁했음 [2] ㅇㅇ(211.234) 09.03 106 0
2886585 인생 너무 만만히 보고 살았나 [7] 프갤러(116.40) 09.03 135 0
2886584 클로드 프로 쓰는데 매세지 제한있는데 다들 어떻게 사용함? [5] 프갤러(220.90) 09.03 92 0
2886583 ai 코딩 최대 장점을 찾았다 프갤러(223.38) 09.03 79 0
2886582 슈카에서 흙수저 고연봉에 대해 나왔는데 [1] 프갤러(118.235) 09.03 98 0
2886581 무능극좌 폭동배급견 4050 범죄자세대 ♥냥덩이♥갤로그로 이동합니다. 09.03 53 0
2886579 아스카 너무 화가 납니다 [5] 아스카영원히사랑해갤로그로 이동합니다. 09.03 134 0
뉴스 ‘백번의 추억’ 김다미-신예은도 기억에 가장 남는 에피소드로 픽(Pick)했다! 그 시절 안내양 언니들은 기숙사에서 살았다고? 디시트렌드 09.05
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2