디시인사이드 갤러리

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

갤러리 본문 영역

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

나르시갤로그로 이동합니다. 2025.07.26 20:57:19
조회 93 추천 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/10/20 - -
AD iPad Pro 사전예약!! 운영자 25/10/17 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48092 65
2897369 나 조만간 40남자고 부산살고 프로그래밍 상관없는데 부산대 많이 내려갔네 [2] 프갤러(59.22) 12:01 21 1
2897368 남쪽은 범죄 사기치는새끼들일수록 더 당당하고 뻔뻔하누 ㄷㄷ 타이밍뒷.통수한방(1.213) 12:00 11 0
2897367 좇센이 소름돋는게 경기가 좋아지면 북센징들 덕이라고할거같음 타이밍뒷.통수한방(1.213) 11:57 10 0
2897366 [대한민국] 반 트럼프 시위에 대한 생각 프갤러(121.172) 11:50 7 0
2897365 앱히키 나님글에 댓글 다는데? ♥덩냥이♥갤로그로 이동합니다. 11:39 14 0
2897364 말레이시아에 ‘총격범 조승희’ 이름이... 발명도둑잡기(118.216) 11:14 10 0
2897363 앱히키 예전 글 다 지워졌나요? 발명도둑잡기(118.216) 10:57 21 0
2897362 레딧 창업자 "인터넷은 죽었다" [1] 발명도둑잡기(118.216) 10:49 34 0
2897361 앱히키씨 아무래도 캄보디아가서 죽으신것같다 [2] 헬마스터갤로그로 이동합니다. 10:47 50 0
2897360 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥덩냥이♥갤로그로 이동합니다. 10:27 19 0
2897359 좆샵은 자바는 고사하고 자바스크립트한테 따임 류류(118.235) 09:54 26 0
2897358 자바가 어려워? [2] 루도그담당(211.184) 09:50 50 0
2897357 프갤에 24시간 상주하는 애들 부럽다 ㅇㅅㅇ 류류(118.235) 09:46 28 0
2897356 무과금은 아예 유챔 손을 안대는게 맞는건가요?? ㅇㅇ(223.39) 09:39 18 0
2897355 어떤 일본인도 부산 호평하네 [2] chironpractor갤로그로 이동합니다. 09:30 45 0
2897353 Ada 프로그래밍: 7. 객체 지향 프로그래밍 (OOP) 나르시갤로그로 이동합니다. 09:04 24 0
2897352 뉘엿 뉘엿..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:37 25 0
2897351 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:35 30 0
2897350 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:32 31 0
2897349 ❤✨☀⭐⚡☘⛩나로님 시작합니당⛩☘⚡⭐☀✨❤ Naro갤로그로 이동합니다. 07:52 23 0
2897348 길냥이 추워서 꼬리로 몸 말았냉동실 ♥덩냥이♥갤로그로 이동합니다. 07:44 41 0
2897347 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥덩냥이♥갤로그로 이동합니다. 07:07 43 0
2897346 부산 하야리아 미군부대 자리에 만든공원 [1] ㅇㅇ(175.197) 05:26 46 0
2897343 열등감에 쩔어서 신고글삭했노 [5] ㅆㅇㅆ(124.216) 04:41 77 0
2897342 부산 만한 도시가없어 [3] ㅇㅇ(175.197) 04:39 63 0
2897341 납품했으니 잠이나 잘련다. [1] ㅆㅇㅆ(124.216) 04:37 42 0
2897340 부산 모습 [2] 피치(175.197) 04:18 56 0
2897339 진짜 유전자 별나네 ㅅㅂ 뭔 사소한게 이렇게 따라가게 되지 [1] ㅇㅇ(223.39) 03:52 45 0
2897331 그냥 무시가 답 [1] ㅇㅇ(124.48) 03:36 106 4
2897327 제일 이해가 안가는게 걍 해본 적이 없는 놈이 저런말하니까. ㅆㅇㅆ(124.216) 03:12 51 0
2897321 데싸는 파이썬이다.... [1] ㅇㅇ(124.48) 02:55 89 0
2897319 최근들어 상대가 최선의수를 안쓰길 바라는빈도가 늘은듯 공기역학갤로그로 이동합니다. 02:44 39 0
2897317 진지하게 잠 안오는데 편의점 가냐마냐 ㅇㅅㅇ ㅇㅇ(223.39) 02:07 24 0
2897315 AI + 1인 개발인데 게임 출시를 목표로 한다면 [2] 프갤러(121.154) 01:51 80 0
2897313 근데 ㅆㅇㅆ는 뭐냐 [2] 프갤러(123.199) 01:38 75 0
2897311 우리회사 개발자 3명인데 [2] ㅇㅇ(223.39) 00:58 88 0
2897307 여기는 가지 마라 [4] 프갤러(160.238) 00:19 107 0
2897305 [1인`1개] 배달의 민족 30,000 원 짜리 쓸 사람 써 ! [1] ㅇㅇ(223.39) 10.19 45 0
2897304 개발자들 이제 뭐먹고살아야함? [4] 프갤러(39.117) 10.19 129 0
2897303 통계학과에서 데이터사이언스 배워? [1] 돌진하자(121.175) 10.19 47 0
2897302 아니 공공데이터포털 아직도 안돼? 데이터 써야하는데 ㅅㅂ [1] 프갤러(124.59) 10.19 63 0
2897301 코딩갤 맞음? 왜 정치글이 념글임? [2] ㅇㅇ갤로그로 이동합니다. 10.19 61 0
2897299 나님 탈갤합니당.. [1] ♥덩냥이♥갤로그로 이동합니다. 10.19 52 0
2897298 인생 역대급으로 목적이없음 [8] 공기역학갤로그로 이동합니다. 10.19 92 0
2897294 아프리카 흑인들도 짱깨 더럽다고 무시하넹 ♥덩냥이♥갤로그로 이동합니다. 10.19 37 0
2897293 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥덩냥이♥갤로그로 이동합니다. 10.19 70 0
2897292 러스트 배우면 갹체지향도 그냥 깔끔하게 끝납니다. 프갤러(110.8) 10.19 49 0
2897291 흐흣.. 모모야.. 기다려.. [1] ♥덩냥이♥갤로그로 이동합니다. 10.19 52 0
2897290 남녀평등 배구공(119.202) 10.19 47 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2