디시인사이드 갤러리

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

갤러리 본문 영역

실용적 관점에서의 OOP 3

나르시갤로그로 이동합니다. 2025.09.10 04:26:04
조회 90 추천 0 댓글 0

OOP가 왜 실용적인가? 알아봅시다.

nimf 라는 다국어 입력기(IME)가 있습니다.

개발 언어는 C인데 OOP 방식으로 개발하였습니다.

왜??

그게 편하니까요.

왜 nimf에 oop가 편할까요?


nimf 좀 IPC 통신(프로세스간 통신)을 합니다. 이게 좀 특이한 것이 있는데,

RPC라고 많이 들어보셨죠?

리모트(원격) 프로시저 콜(호출)이라는 겁니다.

원격으로 함수를 호출하는 것을 RPC라고 하는거에요.


그런데 로컬 PC내에서 호출하는 건 RPC라고 하지는 않는거봐요.


앱에서 IME 함수 호출 --IPC(인터 프로세스 커뮤니케이션, 프로세스 간 통신)--> 서버측 IME 함수 호출


프록시 패턴 들어보셨죠?

프록시 패턴이 사용되었습니다.

인터페이스를 통한 다형성을 구현하여

동일 함수를 호출하여 서버 측의 다국어 언어별 함수를 호출하는거죠.

그 결과 코드 수가 무척 줄었습니다. 줄어들었다기보다 과도하게 늘어나지 않은거죠.


그리고 서버측에 60~80여개의 플러그인 모듈이 있습니다.

마찬가지로 다형성으로 해결하였습니다. 여기에서는 상속을 사용하지 않고 인터페이스를 통한 다형성이죠.

왜냐하면 각 언어별 객체가 각기 다른데 어떻게 상속을... 말도 안 되죠.

아.. 상속을 하긴 했구나.. Lingua 를 인터페이스를 만들고 그걸 상속을 했으니. ㅎㅎ

이게 C 언어라 그래요. 만약 자바로 했더라면 Abstract Class 만들었을 것 같네요.


그리고 관련있는 것들끼리 파일 이름을  예를 들어, object-name.c 에 명세는 object-name.h에 넣음으로써 캡슐화를 하였죠.

또한 플러그인 모듈을 만들어 모듈로 캡슐화를 하였지요.

플러그인이라는 것이 부품처럼 끼웟다 뺐다 할 수 있는거잖아요.

그게 바로 캡슐화랑 일맥상통하는 거랍니다.

그렇다고 하여 플러그인이랑 캡슐이랑 동일시하면 안 되요.

플러그인 설계 및 구현에는 인터페이스가 제일 중요합니다용.

인터페이스로 다형성을 구현하여

동일한 인터페이스(예를 들어 동일 이름의 함수)로

영어 플러그인, 한국어 플러그인, 중국어 플러그인들의 함수를 호출하는 것이죠.

oop 관점으로 얘기하면 객체를 메소드로 조작한다고 표현합니다.

ㅎㅎㅎ

oop가 프로그램 만들 때 정말 실용적이고 유익합니다.

그런데 항상 그런거는 아니에요.

예를 들어, nimf-cons.c라는 소스코드를 보면요. oop가 아닌 절차식으로 작성했지요.

뭘 만드느냐에 따라 적합한 방식으로 개발하면 됩니다요.

우리가 프로그래밍 하는 목적은 oop를 하기 위함이 아니라 프로그램을 개발하기 위함입니다.

마찬가지로 우리가 프로그래밍하는 목적은 c, 러스트 등의 특정 언어를 사용하기 위함이 아니라

프로그램, 앱 만들기 위함이에요.

어떤이는 러스트를 사용하기 위해 프밍하는 사람도 있다하죠 ㅋㅋㅋ

고로 러스트를 사형을 선고합니다.

ㅋㅋㅋ

큐티


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 군대 예능 출연해 줬으면 싶은 여자 스타는? 운영자 25/09/15 - -
AD 가전디지털, 액세서리 SALE 운영자 25/09/12 - -
2889338 AI 글 수정하는거 보고가 ㅋㅋ 나르시갤로그로 이동합니다. 09.15 76 0
2889337 제미니 유무료로 글 써보니까 느낀 점 나르시갤로그로 이동합니다. 09.15 64 0
2889335 ㅆㅇㅆ 범죄 증거 목록.txt [24] 나르시갤로그로 이동합니다. 09.15 188 4
2889334 ㅆㅇㅆ 분명히 경고했다. 범죄 한번 더 저지르면 고소한다고 했다. 나르시갤로그로 이동합니다. 09.15 75 3
2889333 ㅆㅇㅆ 비방 목적 허위 사실 유포 한번만 더하면 고소한다. 나르시갤로그로 이동합니다. 09.15 100 4
2889331 AI 사용 제한까지 오늘 함 다 써보자 ㅋㅋ 나르시갤로그로 이동합니다. 09.15 65 0
2889330 이 자슥 완벽히 차단하는 방법 없는가? 나르시갤로그로 이동합니다. 09.15 60 0
2889329 개쩌는 게임 아이디어가 떠올랐는데 과연 내가 할 수 있을까 프갤러(218.154) 09.15 55 0
2889328 ㅆㅇㅆ 얘는 지가 불특정 다수한테 까이는 걸 굳이 왜곡 나르시갤로그로 이동합니다. 09.15 71 8
2889327 발톱이거 깨진거 n개월 째인데 [1] 루도그담당(211.184) 09.15 74 0
2889326 내 관심 받으려 하지 말고 니들 일이나 해. 나르시갤로그로 이동합니다. 09.15 45 3
2889325 ㅆㅇㅆ은 의문의 다중이? 망상으로 타인을 공격해. 나르시갤로그로 이동합니다. 09.15 51 3
2889323 러빨러 또 납션냐? 너도 정신 차리고 살아 나르시갤로그로 이동합니다. 09.15 47 0
2889322 ㅆㅇㅆ 또 망상, 현실 왜곡하니? 나이도 한참 어리구만. ㅎㅎ 나르시갤로그로 이동합니다. 09.15 66 3
2889321 우울증 << 이거 뭐하면 오는거임? [3] 루도그담당(211.184) 09.15 86 0
2889320 발톱 깨졌는데 이거 병원가서 [10] 루도그담당(211.184) 09.15 75 0
2889319 루비만 까면 나타나는 의문의 다중 유동이들ㅋㅋㅋ [4] ㅆㅇㅆ(124.216) 09.15 83 0
2889318 그 보석 나이 50먹고 러스트보다 에이다가 낫다고 물고빨았던거냐 [1] 프갤러(218.154) 09.15 75 0
2889317 리액트 개발모드에서 mount unmount mount 한대 [7] 헬마스터갤로그로 이동합니다. 09.15 82 0
2889316 고릴란가 원숭인가 영장류중에 [3] 주아갤로그로 이동합니다. 09.15 67 0
2889315 jdw64친추해도되나 프갤러(223.38) 09.15 57 0
2889314 c언어에서 int foo();하면 가변인자받는거임? [4] 프갤러(223.38) 09.15 84 0
2889312 stdin stdout stderr 대체머임? [9] 프갤러(223.38) 09.15 93 0
2889311 프갤도 완장이 있어야 함 [3] 루도그담당(211.184) 09.15 79 0
2889310 AI 저술 과정을 함 보자. [4] 나르시갤로그로 이동합니다. 09.15 83 0
2889309 ㅆㅇㅆ 나한테 사이버 범죄 저질렀으면 사과를 하던가 [1] 나르시갤로그로 이동합니다. 09.15 57 1
2889308 ㅆㅇㅆ 빤스런했냐? 사과는 왜 없냐? [2] 나르시갤로그로 이동합니다. 09.15 70 3
2889307 ㅆㅇㅆ 너는 확증편향 심각해서 깃갤 가면 잘 어울릴거다 나르시갤로그로 이동합니다. 09.15 37 2
2889306 ㅆㅇㅆ 정신병 있는거 확실하지? 나르시갤로그로 이동합니다. 09.15 40 2
2889305 ㅆㅇㅆ 누가 나랑 말투가 똑같아? 전문 용어로 확증 편향이라 한다. 나르시갤로그로 이동합니다. 09.15 43 2
2889304 왜 하필 남쪽에서 태어났을까 그많은 나라중에 타이밍뒷.통수한방(1.213) 09.15 32 0
2889303 ㅆㅇㅆ 너는 왜 프갤에 유입되어 프갤에 흙탕물 뿌리니?? 나르시갤로그로 이동합니다. 09.15 43 1
2889301 c언어 질문좀 [14] 7월갤로그로 이동합니다. 09.15 100 0
2889300 ㅆㅇㅆ아 망상 좀 그만해라. 너는 증거 없다. 나르시갤로그로 이동합니다. 09.15 40 1
2889299 싸우지마라 [1] 밀우갤로그로 이동합니다. 09.15 49 0
2889298 개발을 잘 하는 사람이 누구냐? 기계를 효과적으로 사용하는 사람이다. ㅇㅇ(106.241) 09.15 50 0
2889297 왜 자꾸 121.139로 내 글에 댓글달면서 애미창년 소리를 하는데 [1] ㅆㅇㅆ(124.216) 09.15 90 0
2889295 난 저새끼 이해가 안가는게 걍 가만히 있는데 시비걸다 쳐맞는단거임 [9] ㅆㅇㅆ(124.216) 09.15 115 0
2889294 훔. ㅇㅇ(221.146) 09.15 47 0
2889293 루비점마는 개 웃긴게 121.139 지랑 말투 똑같고 ㅆㅇㅆ(124.216) 09.15 62 0
2889292 ㅆㅇㅆ이 오늘 털리는 이유 뭔가 글 봤더니 나르시갤로그로 이동합니다. 09.15 75 4
2889291 역시 무능한 늙은이들이 제일 문제임 프갤러(125.131) 09.15 76 2
2889290 ㅆㅇㅆ 얘는 인간이 글러 먹었어. 인격도 처참하고 나르시갤로그로 이동합니다. 09.15 56 2
2889289 나님은 지금 Ada 예외처리 글 작성하냐 정신이 없다 [1] 나르시갤로그로 이동합니다. 09.15 67 0
2889288 121.139는 내가 아냐. 난 유동으로 글 안 써. 나르시갤로그로 이동합니다. 09.15 64 0
2889287 난 어찌한게 없는데 갑자기 내 욕이냐? [4] 나르시갤로그로 이동합니다. 09.15 84 1
2889285 루비 여기없는데 왜자꾸 쉐도우복싱하냐 ㅋㅋ 프갤러(121.139) 09.15 58 0
2889284 루비 여기에 없는데 왜자꾸 욕하는거지? 프갤러(121.139) 09.15 81 2
2889281 루비 저새끼는 왜 지가 AI 쓴다고 내가 AI로 글 쓸거라 생각하지 [3] ㅆㅇㅆ(124.216) 09.15 108 0
2889279 ai로 글다듬고, 남에게 잘보일려고 애쓰고 [1] 프갤러(121.139) 09.15 91 2
뉴스 ‘발라드 황제’ 신승훈, 데뷔 35주년 맞이 ‘불후의 명곡’ 귀환! 데이브레이크-정준일-임한별-허각-조째즈 등 출격! 디시트렌드 09.19
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2