C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[19365] Re:C++ Builder 부동소수점 문제, 아직 끝나지 않은 문제점(?)
Nibble [gameover] 4535 읽음    2011-04-06 03:06
임프님 글에 댓글로 달다가, 그냥 답글로 적는게 나을 것 같아 다시 옮겼습니다.

임프님 무척 수고하셨고요, Lyn 님이나 논의에 참여하신 다른 분들도 수고하셨습니다.
발안자이신 박우성님도 수고하셨고요.

박우성님,
참... 어렵게 돌고 돌아가는군요. 처음부터 뻔한 결론이었던 것을.

당사자로서는 과연 언제까지 뇌리에 남아 있을지 모를 약간의 지식을 얻어가실지 모르지만,
저는 진행과정을 꽤나 탐탁치 않게 바라보고 있습니다.

1. 그동안 부동소수점 문제에 대해서 포럼 곳곳에서 논의가 있었지요. 포럼 밖도 다를 바 없고요.

2. 앞서 다른 글에서 이야기 했지만, 1.9999... 냐 2.000...1 이냐의 문제를
   마치 2와 1의 차이인듯 코드에 연출되어 있습니다.

3. 다른데선 정상적인데 볼랜드 툴에서는 왜 이러냐 로 흘러갔지요?
   (케이스를 모조리 바꿔서 말하면 볼랜드에서만 잘 도는 코드도 작성할 수 있지요)
   
4. 그런 모든것들이 부동소수점 표현의 모호성에 기인한 것이라는것을 안다고 말씀하시면서
   계속 이야기를 이어오셨습니다.

5. 그로 인해 몇 몇 분들이 꽤 오랜시간을, 단지, 박우성님이 이해될때까지 설명하는 고초를 겪어야 했습니다.
   덕분에 자유게시판에 글이 좀 늘긴 했네요.

6. 왜냐? 빌더문제처럼 연출되었으니까요. 애착을 가진 사람들이라면 좌시할 수 없는 상황이 되어버렸던겁니다.

7. 우리가 사람을 믿는다 말 할 때, 친구를 믿는다 라고 말 할 때,
   그 사람은 무단 횡단이나 노상방뇨도 절대 하지 않을 완전 무결한 사람이기에 믿는게 아닙니다.
   허용할 수 있는 약간의 불법적 행위의 범위, 에러 범위를 가정하고 믿는다고 말하는 것이지요?
   빌더는, 우리 보다 오래, 개발툴을 제작하는 입장에 섰던 사람들이 그것을 주업으로 갈고 닦아서 만들어 놓은
   인프라인 것입니다.
   적당한 유효범위를 스스로 안에 세워 두고 몸에 익혀 나가면 될 것을,
   자칫 개발툴에 대한 신뢰와 만족도의 문제에 이를 만큼 끌고 갈 여지가 다분한 상황이었다고 봅니다.

그렇다면 자유롭게 자신의 의사와 풀리지 않은 문제에 대해 써내려간게 잘못인가?

물론 아닙니다. 자유롭게 이야기 나눌 수 있는 장소입니다.
다만,

이런곳에서도 정치이야가니 종교이야기는 함부로 꺼내지 않습니다.
여기까지로 우성님은 납득할만한 해답을 얻으셨다고 결론을 내리시긴 했지만,

왜 이런걸까요? 가 아니라, 왜 빌더만 이런걸까요? 라는건,
꽤 여러 사람들을 피곤하게 할 수 있는 일이라는 사실을,
그리고 굳이 공론화시키지 않고서도,
검색과 충분한 고찰로 결론에 다다를 수 있는 일이라는 것을 아시기를 저는 희망합니다.

노골적으로 또 다른 예를 들어보면,
만약 제가,

왜 빌더는 디버깅모드와 릴리즈 모드에서 스택의 시작위치와 증가 방향이 서로 다른거냐
(일관성 없고 디버깅도 힘들게)
왜 누구누구들은 COFF 형 바이너리를 지원하는데 누군 OMF냐 식으로 몰고 가면,

사람들이 적당히 어느 선까지의 조언을 하려고 할 겁니다.

거기서 그런데 왜 그러냐 나도 알껀 안다. 근데 다르지 않냐
왜 컴파일러에서 묵시적 모호성을 받아들이느냐 식으로 이야기를 해 버리면,
(사실 이런분들은 그냥 어셈블리로 짜는게 낫습니다. 고급언어는 모호성을 조금씩 갖게 마련입니다.
왜냐하면, 세상이 10진수로 되어 있는건 아니거든요)
다들 필요이상의 체력을 소모하거나, 나라는 질문자를 생까는게 경제적인 상황인걸로 판단하게 될겁니다.

사람들이 어느정도 선에서 소통의 의지를 보였을 때,
힌트를 얻고, 스스로 차분히 살펴보는게 아주 중요합니다.
하물며 꽤 오래 프로그래밍을 하신 분이라면 또한 앞으로도 계속해 나가실 분이시라면,
컴파일러를 대하는 '자세' 가 보다 스스로 해결가능한 방향으로 가닥이 잡혀 있으셔야 할 것 같습니다.

위에 세상이 10진수로 되어 있지 않다고 쓴 것은,
우리가 정해 놓은 유리수와, 우리가 정해놓은 무리수가, 과연 사실일까? 라는 말입니다.
만약 PI 가 1 이라는 유리수로 정의되어있다면, 원래의 1이라는 숫자가 오히려 무리수가 되는 것이지요.
특히나 저장공간의 제약이 분명한 컴퓨터에서는,
저러한 우리의 정의 조차도 반대가 되곤 합니다.

일희일비하면, 멀리가지 못합니다.
아무쪼록, 하시는 일마다 건승하시길...

p.s. 이것 참.. 쓰고나서 읽어보니 표현이 거칠고...
솔직한 생각을 적어 보았다는 정도로 자위해야 할 분위기군요.
이것도 나이를 먹는걸까요? 저라는 까칠한 사람도 시간이 지남에 따라 점점 회색이 되어가려 하는 듯 합니다.
부디 기분상하진 마세요 우성님.
박지훈.임프 [cbuilder]   2011-04-06 05:45 X
에.. 또 분위기를 무겁게 하시는 건 아닐지... ^^
뭐 결과를 보자면, 저도 평소에 신경을 쓰지 않던 부분에 대해 모처럼 공부 좀 했습니다.

다른 분들도 비슷하시지 않을까 싶은데요.
논의중에 딱히 감정적으로 치달은 것도 아니고,
논의 방식도 지적이고 생산적이었고,
그래서 논의에 참여하신 분이나 지켜보신 분이나 다들 조금씩 공부가 되었고...
뭐 그럼 좋은 거 아닌가요. ^^

가볍게, 즐겁게 갈 수 있는 부분은 그렇게 가자구요~
Lyn [tohnokanna]   2011-04-06 09:06 X
뭐... "정답"이 없는 문제에선.

"왜 그래야만 합니까?" 라는 대답엔 "왜 그러지 않아야만 합니까?" 라고 대답 할 수밖에...
박우성 [solgari]   2011-04-06 09:41 X
저의 호기심이나 궁금증을 해소하기 위하여 이슈를 제기한 것은 어느 정도 맞는 말입니다. 그로 인하여 몇몇 분들을 귀찮게 해드린 것도 사실이구요. 이 글을 빌어 그 분들께 죄송하고, 감사드립니다.

그리고, C++ 빌더를 폄하하려고 글을 올린 것처럼 오해할 수도 있는데, 절대 그런 것이 아니라는 것은 제 글을 다시 읽어 보시면 아실 것입니다.

그리고, Nibble님은 뭔가 제 글의 핵심을 잘 못 파악 하신 듯 하네요. 제가 글 재주가 없어서 오해를 하게 했을 수도 있구요. 제글은 부동소수점만의 문제가 아닌 C++Builder만의 다른 문제가 있는 것으로 생각하고, 의문점을 제기했던 것입니다.

제가 능력이 된다면, 이미 분석을 해서 결론에 도달했겠지만, 그렇지 못하여 여기 분들의 도움을 받고 싶었고요.

제가 내린 결론은 부동소수점 문제와  C++ Builder만의 옵티마이즈 기능의 조합으로 생긴 문제(?)였습니다.

Nibble님 말처럼, 일반적으로 알려진 부동소수점만의 문제라면 제가 문제점을 제기하지 않았을 것입니다.
하지만, 대부분의 C++ 빌더 개발자들이 모를 것으로 생각되는 옵티마이즈 기능이 있었던 것입니다.

저만 그런지 모르겠지만, 많은 개발자들이 부동소수점 특성을 배웠음에도 잊어버리고, 개발을 할 것으로 생각됩니다.
저는 그런 일반적인 개발자의 입장에서 충분히 제기할 수 있는 문제를 제기했다고 보고, 이 문제에 대하여 이번에 정확하게 알고 넘어가자는 생각에 욕도 얻어 먹을 것 알면서 여기에서 글을 올린 것입니다.


결론적으로 저는 잘 했다고 생각 됩니다.
다음에 누군가 이런 문제를 제기한다면, 저는 이제 정확하게 대답해 줄것이 생겼으니까요.
그리고, 다른 분이 물어보면, 제가 올린 글을 링크 거는 것만으로 충분한 대답이 된다고 생각됩니다.

그리고, 옵티마이즈 기능은 임프님이 말씀하신 것처럼 처리속도 향상이라는 긍적적인 면도 있고, 제가 제기한 것처럼 개발자들에게 혼란을 주어 논란이 계속될 수 있다는 부정적인 면이 존재한다는 것입니다.

저는 좋다, 나쁘다를 떠나서,  C++ Builder의 특성(옵티마이즈)을 더 많이 알게 되었고, 이런 문제는 부동소수점을 정확하게 사용한다면 문제가 안 생긴다는 것도, 저를 포함하여 이글을 읽은 많은 개발자들이 알게 되었다는 것에 만족합니다.

이 글을 끝으로 저한테 딴지(^^) 안 걸었으면 좋겠습니다.


여러분~~~~ 저 나쁜 놈 아니예요. 우리 사이 좋게 지네요. ㅋㅋㅋ
박지훈.임프 [cbuilder]   2011-04-06 09:45 X
딴지....
사이 좋게 지네요 (X) ---> 사이 좋게 지내요 (O)
^^;;;;

즐거운 하루 되세요~~
박우성 [solgari]   2011-04-06 10:30 X
임프님... 딴지 걸지 말라니까, 바로 거시네.... ㅋㅋㅋㅋㅋ

제가 오타도 많고 맞춤법에도 약합니다. 그래서, 제가 쓴 글을 몇번 읽어보고, 고친다고 해도 틀린 곳이 엄청나게 나오죠.
같이 일하는 개발자들이 저보고 오타왕이라고 합니다. 제 와이프는 맨날 저보고 맞춤법 틀렸다고 구박하구요.
( 학생 때 공부 안하고, 책 안읽은 부작용 )

주위사람들이 타이핑도 느리고 오타도 많은데, 프로그램을 어떻게 개발하냐고 묻습니다. 타이핑 느린 것은 그런데로 괜찮지만 오타는 프로그래밍 할때 불편하긴 하더군요.


근데, 익히 알고 있었지만, 여기 계신 분들 모두 한가닥(??)하시는 분들이라 실력도 좋으시고, 제가 생각하기에 아주 쎕니다.
글도 아주 강하게 쓰시고, 자기 주장도 아주 강하시네요.


차근차근.. 살살... 이야기해야 알아듣는 저 같은 개발자들도 꽤 있다는 것을 알아주시고,

"틀린 생각을 가진 사람" 이 아닌 "다른 생각을 가진 사람"이라고 생각한다면 얼마든지 좋은 결론을 낼 수 있지 않을까 생각합니다.
Nibble [gameover]   2011-04-06 13:06 X
1. 황당한 C++ Builder (버그??)[15] <- 라고 제목을 뽑으셨군요.
2. 질문이라면 질문과 답변 게시판이 있습니다.
3. 궁금한 부분에 아주 뽕을 뽑으려는 자세는 나쁘지 않습니다만, 그런건 혼자서 하는게 나을때가 많단 이야기죠.
4. 제가 드린 말씀의 핵심은 일희일비하면 멀리 가지 못한다 입니다.
우성님의 글의 핵심을 파악하지 못해서가 아니구요. : )
Nibble [gameover]   2011-04-06 13:12 X
한말씀 더 붙이겠습니다.

옙~ 사이좋게 지냅시다~ ㅋㅋ
박우성 [solgari]   2011-04-06 14:36 X
저도 남들 하는 말장난 좀 해 보겠습니다.

1. 황당한 C++ Builder (버그??)[15] <- 라고 제목을 뽑으셨군요.

   -> 예, 제목이 조금 자극적인 것은 인정합니다. 우리나라 기자들한테 배워서 만든 낚시성 제목인데, 많은 분들이 신경을 써 주셔서 댓글을 달아 주신 것에 "감사드린다"고 했습니다.

2. 질문이라면 질문과 답변 게시판이 있습니다.

   -> 질답게시판에 있는 질문에 답변이 안 달리는 것을 보고, 제가 정리하여, 자게로 옮겼습니다. 질문성 글이 자게에 간혹 올라오며, 이런 글들은 대부분 모르고 올리기도 하지만, 공론화 할 만한 것들을 일부러 자게에 올리기도 합니다. 제가 올린 글이 반드시 자게에 어울리지 않는 글이라고는 보지 않습니다.

3. 궁금한 부분에 아주 뽕을 뽑으려는 자세는 나쁘지 않습니다만, 그런건 혼자서 하는게 나을때가 많단 이야기죠.

  -> 저도 혼자 뽕을 뽑아 보려는데, 능력이 안 되어 여기 계신 고수분들 도움좀 받으려고 했습니다. 볼포가 운영되는 이유중에 하나로 충분히 도움을 요청할 수 있다고 봅니다.

4. 제가 드린 말씀의 핵심은 일희일비하면 멀리 가지 못한다 입니다.

  -> 제가 볼 때는 저와 Nibble님이 하고 있는 말장난이 "일희일비하면 멀리 가지 못한다"에 해당되는 것 같고, 저의 집요한 질문에 제일 고생하신 임프님도 언급하셨듯이 충분히 얻은 것이 있다고 보여 집니다. 뭐 사실 제가 제일 많이 얻은 것 같습니다만.


그리고, Nibble님.. 저보다 연배가 많으신지는 모르겠으나, 성을 뺀 "우성님"이란 호칭은 어색합니다.
일면식도 없는 사이이고, 이런 공간에서는 닉네임을 부러거나 본명을 사용하는 사람에게는 성을 붙여서 불러주는 것이 더 좋지 않을까 싶습니다.

Nibble님이 이런 것을 즐기는 것 같아서 함 적어 보았습니다.


Nibble [gameover]   2011-04-06 14:50 X
친하게 지내시자기에 존중의 님을 붙이고 성을 빼 보았습니다만, 마음에 들지 않으시다면 박우성님,
말장난을 했다고 하시는군요 : )
글쎄요. 저는 진지하게 적었습니다만?
Nibble [gameover]   2011-04-06 14:55 X
덧붙여 우린 더이상 글을 섞지 않는게 좋을 듯 하네요.
억측하신것 처럼 그런것을 즐기지 않고.
비생산적인 시간 낭비는 질색이니까요 : )
박우성 [solgari]   2011-04-06 14:58 X
Nibble님 글을 보면, 처음에는 "박우성님"으로, 중간이후로는 성이 빠져있더군요.
글의 내용에 친근감이 없어서, 호칭 또한 친근감보다는 어색함이 더 들었습니다.

말장난은 Nibble님이 하신 것이 아니고, 제가 Nibble님의 말에 말장난을 해 보았다는 뜻입니다. 오해 없기를 바라겠습니다.
Nibble [gameover]   2011-04-06 15:15 X
-> 제가 볼 때는 저와 Nibble님이 하고 있는 말장난이
정영훈 [allinux]   2011-04-07 18:07 X
길게 갈 문제가 아니라는 것에는 "문제자체로만 두고" 동감합니다.
ieee754 표준이라는게 그러하고 정확한 표현을 위해 각 언어별로 해결책(?)이 있습니다.
자바라면 BigDecimal 을 사용한다던지 파이썬이면 decimal 등...

다만 Nibble 님께서 진행과정을 탐탁치 않게 보신다는 것이 좀 이해가 안됩니다.
정확히는 왜 부정적인 관점에서만 보시는가? 하는 겁니다.
모를수도 있고 서로 나누는 과정을 지켜보는 것 만으로도 많은 것을 얻어갑니다.(물론 포스팅을 하시는 분은 힘드시겠지만 말입니다.)
그런데 이런 진행이 탐탁치 않다...하시면 대체 어떤 진행으로만 되어야 한답니까...?
이런 논의도 서로 감정 안상하고도 충분히 서로 얻을 것 얻고 마무리 할 수 있다고 봅니다.
그런데 댓글 마지막에는 거의 감정싸움 비슷하게 하시는 것 보니 참 안타까운 마음이 듭니다.
Nibble [gameover]   2011-04-07 22:28 X
아마도 이해를 하려고 하셨다가 이해가 되지 않으신게 아니라, 제 표현이 탐탁치 않으신가 보군요 : )
마찬가지 이유라고 할까요?
Nibble [gameover]   2011-04-07 22:31 X
그 마지막이란걸 찬찬히 읽어보시죠. 사이 좋게 지내자. 로 맺을 수 있는 상황이었죠.
허나? 둘이 한게 말장난이랍니다. 그리곤 자신이 말장난이고 제가 말장난 한 것은 아니랍니다.
저는 이런 상황도 이해가 됩니다. 다만 이런경우 말을 섞으면 안된다는걸 경험으로 알고 있지요.
Nibble [gameover]   2011-04-07 22:32 X
서로 안타까운 상황일테니까요. 그렇겠지요?

+ -

관련 글 리스트
19357 C++ Builder 부동소수점 문제, 아직 끝나지 않은 문제점(?) 박우성 7130 2011/04/05
19365     Re:C++ Builder 부동소수점 문제, 아직 끝나지 않은 문제점(?) Nibble 4535 2011/04/06
19359     Re:C++ Builder 부동소수점 문제, 아직 끝나지 않은 문제점(?) 박지훈.임프 4934 2011/04/05
19361         Re:Re:C++ Builder 부동소수점 문제, 아직 끝나지 않은 문제점(?) 박지훈.임프 6376 2011/04/05
19360         Re:Re:C++ Builder 부동소수점 문제, 아직 끝나지 않은 문제점(?) Lyn 5611 2011/04/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.