디시인사이드 갤러리

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

갤러리 본문 영역

Ada의 심각한 단점: 타입 이름을 네임스페이스로 사용할 수 없다

나르시갤로그로 이동합니다. 2025.07.26 20:57:19
조회 66 추천 0 댓글 1

Ada를 쓰기로 마음먹었다면, 언젠가는 부딪혀야 할 가장 큰 장벽이자 가장 큰 짜증을 유발하는 문제가 있습니다.

Java나 C# 개발자라면, 같은 패키지(네임스페이스) 안에서 클래스들이 서로 상속받아 자연스러운 타입 계층을 만드는 것에 익숙합니다.

// Java/C# 스타일 의사 코드
// 'widget' 네임스페이스 안에서 타입들이 상속 관계를 형성
package com.example.widget;

public class Widget { /*...*/ }
public class Window extends Widget { /*...*/ }
public class Button extends Widget { /*...*/ }
public class ToggleButton extends Button { /*...*/ }
public class CheckedButton extends Button { /*...*/ }

Widget이라는 베이스 타입과 이를 상속받은 Window 타입이 widget 이라는 같은 이름 공간에 공존하는, 지극히 상식적인 구조입니다. Ada에서는 이처럼 직관적인 타입 계층을 이름으로 표현하는 데 근본적인 한계가 있습니다.

계층 구조 비교: 직관적인 Java/C# vs 어색한 Ada

GUI 툴킷을 만든다고 가정하고 두 언어의 계층 구조를 다이어그램으로 비교해 보겠습니다. ToggleButton CheckedButton Button을, Button Window Widget을 상속받는 관계입니다.

Java / C#의 방식: 상속 기반의 타입 계층

하나의 패키지(네임스페이스) 안에서, 클래스들이 상속을 통해 직관적인 타입 계층을 형성합니다. 타입의 이름이 곧 개념을 나타냅니다.

   Widget
   /     \
Window  Button
         /   \
        /     \
       /       \
ToggleButton  CheckedButton

Ada의 방식: 모듈 중심의 계층

Ada는 모든 것을 별개의 패키지(모듈)로 분리해야 합니다. Window Widget을 상속받는 개념을 표현하기 위해, Widget.Window라는 별도의 자식 패키지를 만들어야 합니다.

     Widget
       |
     Object
     /   \
    /     \
Window   Button
   |       |
Object   Object
         /    \
        /      \
ToggleButton  CheckedButton
     |              |
   Object         Object
-- Object가 뒤따를 수 밖에 없는 변수 선언 예시
-- 참고로 with, use를 사용하면 일부 네임 스페이스를 생략할 수 있습니다.
my_widget        : access Widget.Object;
my_window        : access Widget.Window.Object;
my_button        : access Widget.Button.Object;
my_toggle_button : access Widget.Button.ToggleButton.Object;

Widget.Window면 될 것을 Widget.Window.Object라고 써야 하는 이 모습은, 솔직히 말해 끔찍한 혼종처럼 보입니다.

결론: 울며 겨자 먹기로 Ada를 쓰는 이유

Ada의 이런 고집스러운 설계 철학은 정말 마음에 들지 않습니다. 코드는 장황해지고, 다른 언어의 직관적인 객체 지향 패턴을 포기해야 하는 대가를 치러야 합니다.

하지만 아이러니하게도, 저는 이 언어를 버릴 수 없습니다. 안전성/신뢰성을 보장해주는 선택지가 사실상 Ada가 유일하기 때문입니다. 컴파일 시점에는 컴파일러의 엄격한 검사를 하고 실행 시점에는 언어 자체에 내장된 강력한 런타임 검사가 실시간으로 오류를 검사하기 때문에, 저는 이 모든 불편함을 감수하는 것입니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 의외로 연애 못할 것 같은 연애 하수 스타는? 운영자 25/08/04 - -
2878026 마귀를 가둔 봉인 부적의 효력도 떨어져가. 프갤러(220.84) 08.04 22 0
2878025 벌써 10시넹.. ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 17 0
2878023 아 근데 난 왜 이렇게 멍청할까 [4] 루도그담당(58.239) 08.04 61 0
2878020 마귀의 웅덩이에 태어나고싶지않았어. 프갤러(220.84) 08.04 21 0
2878017 아니 근데 신기하네 2차 보안 휴대폰 보안까지했는데 어떻게 [5] ㅆㅇㅆ(124.216) 08.04 54 0
2878015 인생 다 산 기분 든다는 힙합 갤러리 사용 발명도둑잡기갤로그로 이동합니다. 08.04 19 0
2878014 커서 IDE 생각보다 많이 실망이네 [1] 프갤러(211.235) 08.04 37 0
2878011 마귀의 집을 지키기도 지겹습니다. 프갤러(220.84) 08.04 25 0
2878010 기본적인 보안도 못지키는 빡통은 개발자하면 안됨 ㅇㅇ(211.234) 08.04 37 2
2878009 랜선에서 나온 작은거 재활용 어디다 버림? 넥도리아(119.195) 08.04 20 0
2878007 해커는 도둑놈인데 인기가 있을까 ㄹㅇ 도둑노무 새끼들 [2] ㅆㅇㅆ(124.216) 08.04 36 0
2878005 106.101 빛섬 광고 혹시 간첩인가? 발명도둑잡기갤로그로 이동합니다. 08.04 19 0
2878004 나님 일본에서 초고교급 여고생 만난썰 ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 23 0
2878001 추악한 썩은 시체처럼 살아서 미안해요. 프갤러(220.84) 08.04 22 0
2878000 드라마 <아이쇼핑> 한대서 생각나는 것 발명도둑잡기갤로그로 이동합니다. 08.04 28 0
2877997 우리 둘째 작은 할아버지가 대학생 때 럭비선수였는데 발명도둑잡기갤로그로 이동합니다. 08.04 27 0
2877995 지원금2 시작 ㅇㅇ(106.101) 08.04 30 0
2877994 헉! 나님 간택 받은듯? ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 28 0
2877990 세상의 무게에 짓눌려 터지는 가엾은 영혼을 보세요. 프갤러(220.84) 08.04 25 0
2877988 여행나가면 뭐해야함?? 미리 이것저것 알아보고 가야하나 ㅇㅇ(223.39) 08.04 20 0
2877986 기껏 열심히 보안공부해봤자 대부분이 관제 엔딩아님?? 타이밍뒷통수한방(1.213) 08.04 39 0
2877984 예전에도 말했듯이 디씨인싸이드 프로그래밍 갤러리는 각국 정보기관이 발명도둑잡기갤로그로 이동합니다. 08.04 26 0
2877981 한남혐오 멍유의 산뜻한 아침❤+ [1] ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 35 0
2877980 20분 전에 필라이트 맥주 한 잔 마셨다 발명도둑잡기갤로그로 이동합니다. 08.04 44 0
2877976 디저트를 배불리 먹고싶네요. 프갤러(220.84) 08.04 36 0
2877972 여긴 냥덩시티~⭐+ 냥디~ 냥디~ 야~ [2] ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 40 0
2877970 프갤보면 정신병 걸릴 것 같음. 프갤러(106.101) 08.04 40 0
2877967 해커 이 씨발련들 대가리를 부숴야함 그냥 [2] ㅆㅇㅆ(124.216) 08.04 52 0
2877964 크~ 존멋 이게 남자지 ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 31 0
2877963 <컴퓨터 우주 탐험> 발명도둑잡기갤로그로 이동합니다. 08.04 24 0
2877961 보안이 개구린이유 다시말해준다 밀우갤로그로 이동합니다. 08.04 46 0
2877959 BoA 보아 'Crazier' 발명도둑잡기갤로그로 이동합니다. 08.04 30 0
2877954 나의 한 달 소비 내역 발명도둑잡기갤로그로 이동합니다. 08.04 33 0
2877950 어빠.. 나 오늘 안전해~ [1] ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 47 0
2877946 디저트로 아이스크림을 먹어야겠어요. 프갤러(220.84) 08.04 31 0
2877942 하루종일 패킷뜯고있노 좆갘네 ㅇㅇ갤로그로 이동합니다. 08.04 37 0
2877939 ㅇㅇ(118.235) 08.04 26 0
2877938 ㅇㅇ(118.235) 08.04 26 0
2877937 아스카의 한달 100만원으로 살기 프로젝트 대공개 [4] 아스카영원히사랑해갤로그로 이동합니다. 08.04 58 0
2877936 ㅇㅇ(118.235) 08.04 22 0
2877935 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥꽃보다냥덩♥갤로그로 이동합니다. 08.04 25 0
2877934 삶은 길고 긴 고통 프갤러(211.234) 08.04 40 0
2877933 나를 희생양삼지 마시오. 프갤러(220.84) 08.04 32 0
2877932 바이러스는 인간임 환경단체가 무시하지만 ㅋㅋ 코로나는 선동가스라이팅이고 타이밍뒷통수한방(1.213) 08.04 35 0
2877931 220.84 내 인터넷 해킹하는 듯 발명도둑잡기갤로그로 이동합니다. 08.04 62 0
2877930 아니 대학원까지 나와야 취업되는데 왜 해킹보안학과 가는거임?? [4] 타이밍뒷통수한방(1.213) 08.04 43 0
2877929 잔혹하게 버림받았도다. 불쌍한 나. 프갤러(220.84) 08.04 46 0
2877928 세상은 악으로 가득차있으니 노력 + 선 +효도 등을 강요하는거지 ㅋㅋ 타이밍뒷통수한방(1.213) 08.04 26 0
2877927 물리학계를 완전히 뒤집어놓은 이론! 정보에 질량이 있다고? 발명도둑잡기갤로그로 이동합니다. 08.04 30 0
2877926 저주를 퍼부었으니 각오를 하셔야지요. 프갤러(220.84) 08.04 29 0
뉴스 웨이브투어스, 美 최대 음악 축제 '롤라팔루자' 무대 성료…열광적 분위기 '눈길' 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2