자바가 C(or C++?) 보다 8배 느리다?

leonid의 이미지

음 일단 프로젝트는 자바로 하기로 결정했습니다.
무엇보다도 자신에게 익숙한 언어로 프로그래밍을 하는 것이
가장 현명하다고 판단했어요.

제가 어디서 들어보니

자바의 수행 속도가 C(C++이었나)보다 8배가량 느리다고 하는군요.

이 말이 진실인지 헛소리인지 알려주세요.

헛소리였으면 좋겠네요.

소타의 이미지

man strdup 부터 좀 해보시고요
그리고 글 좀 순서대로 잘 읽으세요. 제가 짠 코드라뇨. 어이가 없네요 -_-;
코드에 문제가 있다는건 아닙니다

익명사용자의 이미지

void aaa( char *src )
{
char *s;
for( s = src; *s; s++ )
if( *s != 'd' ) { *src = *s; src++; }
*src = 0;
return;
}

이 코드 말하는 겁니다.

힙 메모리 누수가 않보이세요?

익명사용자의 이미지


혹시 C 언어 기초는 아시고 말씀하시는거져?
그렇다면 정확히 말씀해보시져..

소타의 이미지

그래서 위에서 다 나온 얘기를 님을 위해 또 해야 하나요?
글타래를 잘 읽어 보세요
그냥 단순하게 기능 구현을 위한 단위코드인데 뭘 위해서 업데이트를 해줘야 하죠? 메모리 얘기 하길래 bbb라는 코드도 다른 님이 올리셨고 그걸 왜 유니코드로 또 바꿔줘야 하죠?

익명사용자의 이미지

이 함수는 메모리 할당 전혀 안하고 있구만.
caller가 넘겨준 메모리(string buffer)에서 작업하는건데..
caller가 할당한 메모리는 caller가 해제하는게 원칙이요.
caller가 할당한걸 callee가 해제하는건 왠만하면 안쓰는거죠.
caller가 heap 메모리를 넘겨줄지 local memory를 넘겨줄지 어떻게 알고 해제 코드를 넣는답니까?
컴파일시 할당된 메모리( char a[10]; 식의) 해제하면 segmentation fault 날꺼요.

결론은 힙메모리 할당을 안했는데 어떻게 누수가 됩니까?

보면 볼수록 웃기네요.

익명사용자의 이미지

지금 님 일부러 사람무시하는거져?

다아는데 왜여?

너무 기초를 질문해서 당황했어여..

왜 엉뚱하게 흘러가세여?

익명사용자의 이미지

"abdbabdjfjd" 가 있을때 "d"를 "dd" 로 바꾸는 프로그램을 짜보세요. C로요.

익명사용자의 이미지

char *bbb( char *s )
{
    int i;
    char buf[strlen(s)*2];
 
    for( i = 0; *s; s++ )
        ( *s == 'd' )? ( buf[i++] = 'd', buf[i++] = 'd') : ( buf[i++] = *s);
    buf[i] = 0;
 
    return strdup( buf );
}

요정도만해도 디겠져.
걍 복사개념으로 함수없이 하려하다가 걍넣어봤어여

혹시 이것도 어떻게 쓰는줄모를까봐.
이건 리턴이 char * 이니까..

printf( bbb( a ));
요렇게 쓰면되여.
님들이 좋아하시는 문자열상수조작ㅡㅡ; 하는경우가 잘있을지 몰라도.
printf( bbb( "abdbabdjfjd" )); 이렇게 도말이에요.

narusas의 이미지

C에서 배열은 정적 선언이죠. 거기에다 strlen으로 동적 배열을 만들면 컴파일 않됩니다.

혹시나 시도도 않해보고 뭐라고 하냐 라고 하실까봐 VC++ 6.0에서 테스트 해봤습니다.

#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
 
char *bbb( char *s )
{
    int i;
    char buf[strlen(s)*2];
 
    for( i = 0; *s; s++ )
        ( *s == 'd' )? ( buf[i++] = 'd', buf[i++] = 'd') : ( buf[i++] = *s);
    buf[i] = 0;
 
    return strdup( buf );
}
 
 
void main(){
	char *aa= "dadadasddfsd";
	bbb(aa);
}

이렇게 테스트 해봤는데,

C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Str.cpp(9) : error C2057: expected constant expression
C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Str.cpp(9) : error C2466: cannot allocate an array of constant size 0
C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Str.cpp(9) : error C2133: 'buf' : unknown size

컴파일 에러 납니다.
소타의 이미지

뭘하신 거죠? -_-;

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char *bbb( char *s )
{
        int i;
        char buf[strlen(s)*2];
 
        for( i = 0; *s; s++ )
                ( *s == 'd' )? ( buf[i++] = 'd', buf[i++] = 'd') : ( buf[i++] = *s);
        buf[i] = 0;
 
        return strdup( buf );
}
 
int main( int argc, char *argv[] ){
        char *aa = "dadadasddfsd";
        char *buf;
 
        buf = bbb(aa);
 
        printf( "%s\n", buf );
        free( buf );
 
        return 0;
}
 
root@linux:~# gcc -Wall test.c ; ./a.out
ddaddaddasddddfsdd
root@linux:~#

위와 같이 bbb 함수는 워닝 하나 없는 코드입니다. 자꾸 잘못된 테스트들 하시네요

그리고 그 전의 함수도요
버그코드가 아니죠.. 스택영역의 메모리에 대해서는 처리하는 않는 방식일 뿐입니다 -_-;
man 페이지 안보세요? 상수에 대한 처리가 되어 있다면 원형에 당연히 const 키워드가 붙어있습니다
src, dest가 동일한 void 함수인데 그걸 문법에도 안맞게 사용하고 버그라 하면 어쩝니까? -_-;
위의 잘못된 사용예는 컴파일 해보지 않아도 알수 있을만큼 초보적인 실수를 하고 있습니다. 제가 자바 소스 엉터리로 짜놓고 자바는 실행은 되나요? 라고 물어보면 어이가 제자리에 있겠습니까?

쓴귤의 이미지

두 분 다 맞고 두 분 다 틀렸습니다. char buf[strlen(s)*2]; 같은 표현은 C99부터 표준에 포함되서 VC6.0에서는 지원이 안됩니다.

그리고 저렇게 메모리를 낭비하는 코드가 효율적이라니 참 재밌군요.

http://mentalese.net
http://functional.or.kr

소타의 이미지

VC6이 C99 표준을 준수하지 않는다고 왜 틀린거죠? -_-;
메모리 낭비라뇨? 스택 메모리과 strdup 사용법을 모르시는거 아닙니까? -_-;;

harisoo의 이미지

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char *bbb( char *s )
{
        int i;
        char buf[strlen(s)*2];
 
        for( i = 0; *s; s++ )
                ( *s == 'd' )? ( buf[i++] = 'd', buf[i++] = 'd') : ( buf[i++] = *s);
        buf[i] = 0;
 
        return strdup( buf );
}
 
int main( int argc, char *argv[] ){
        char *aa = "dadadasddfsd";
        char *buf;
 
        buf = bbb(aa);
 
        printf( "%s\n", buf );
        free( buf );
 
        return 0;
}
 
root@linux:~# gcc -Wall test.c ; ./a.out
ddaddaddasddddfsdd
root@linux:~#

위 코드는 잘못된 코드입니다.
자바의 replace()함수가 어떻게 구현된지는 몰라도 어쨋든 어떤 단어를 넣더라도
리플레이스를 해주는 함수겟죠

위 코드는 버퍼크기를 strlen(s)*2로 잡앗는데 이부분이 잘못된거죠
만약 d를 ddddddd로 한다면 세그폴트나는게 아닌가요?

따라서 위 코드는 올바른 replace()함수라고 할 수 없습니다.

혹시나해서 말하지만 전 자바에 대해서 아무것도 모르고

오로지 c만 파고 잇습니다.

pung96의 이미지

'd'를 'dd'로 바꿀경우만을 생각할땐 매우 효율적인 코드인것 같습니다.
주어진 조건에서 최선의 답을 내신것 같네요.
더 긴 단어에 대해서 처리해야한다면 좀더 비효율 적인 코드를 만들어야하겠죠.

말씀하신 것 같은 관점에서 말한다면 4M메모리에서 이코드를 실행하면 10MByte 단어에는 적용할 수 없다. 라고 말할 수도 있는거죠.

언어의 생산성에 대한 개인적인 의견과는 상관없이 틀린코드는 아닙니다.

이하 내용에 대해서는 아무도 물어보지 않길 바라면서
언어의 생산성에 대해서는 중립입니다. low level에서 효율성을 고려하면서 코딩하려면 C가 편할 것이고 대규모 프로젝트를 진행한다면 JAVA가 주는 이점이 있다고 생각합니다. 어떤점이냐고 물으시면.. 자바 모릅니다. 그냥 주워들은 얘깁니다만 믿고있는 얘기죠.

소타의 이미지

에.. 요글에 이제 안쓰려고 했는데 오해하신것 같아서요 ^^;
replace 라는 이름의 함수가 꼭 그 기능을 해야 하는건 아니잖아요?
위에서 나온 코드들은 "d" 를 "dd" 로 바꾸거나 "d" 를 제거하는 것이 요구사항이었구요.
C에서는 요구사항에 맞게 최적화를 할 수 있다거나 그런것을 보여주는 예시입니다
일반적인 다양한 기능을 가진 replace 는 코드가 더 복잡했겠죠. 요구사항에만 딱 충실한 코드입니다
그럼~

익명사용자의 이미지

M$ VC++ 6.0 가표준도 제대로 지원안되는게 가끔있어여..
GCC 에서 해보세여.

notpig의 이미지

VS 2005 에서도 역시 안됩니다.

익명사용자의 이미지

제발..좀..글을재대로...

narusas의 이미지

컴파일가능 여부를 떠나서(malloc으로 바꿔주면 컴파일이 되긴 할테니까요)

님께서 좋아하시는 실무와 성능이라는 측면에서
1메가짜리 문자열에서 딱 한글자만 늘어나는 상황에서도 무조건 2메가로 2배의 메모리를 사용하는 코드네요.

소타의 이미지

2배의 메모리로 처리한 후에 길이를 체크해서 메모리 할당을 다시 해주면 됩니다.
자바는 어떤가요? 자바는 내부에서 어떻게 처리하나요?
실무와 성능을 위해 어떤 방법을 쓰나요?

narusas의 이미지

님의 코드로 한번, strdup에서 한번.

자바에서는 보통 replaceAll을 사용하죠.
내부적으로 정규표현(Regullar Expression)을 사용하고요.

만약 replaceAll을 사용하지 않고 StringBuilder로 직접 만들다면,
메모리 사용을 capacity라는 형태로 지정해줄수도 있고, capacity가 지정되었다 하더라도 필요한만큼 자동으로 늘려줍니다.

이외에도 StringBuffer를 사용하는 방법도 있고 다양합니다만,

님의 코드는 심각한 제약사항이 있습니다.
유니코드를 지원하지 못한다는 거죠. 아니 유니코드까지 않가도 한글만 들어가도 제대로 동작하지 않는 코드죠.

그것때문에 다양한 C++ 스트링과 유니코드 라이브러리나 다양한 컨테이너 사용하게 되는 거죠.

소타의 이미지

님 low level에서 정규표현식 사용해 봤습니까? 그 엄청난 메모리 연산들?
regcomp, regexec 가 얼마나 메모리를 쓰는지 경험해 보셨나요?
메모리 복사 한번이라고 생각하시면 큰 오산이네요. 아는만큼 보인다고 man regcomp 라도 한번 해보시고 구현이라도 한번 해서 성능 비교 해보시죠
참고로 전 DBMS 개발 시 SQL 파서중 일부로 regcomp, regexec를 써봤습니다. 위의 메모리 탐색&대치와는 차원이 다릅니다.
C로도 메모리를 직접 연산하는 것과 reg*를 쓰는것은 큰 성능 차이를 보입니다.. 저는 모르겠습니다만 그렇다고 하시니 JVM이 reg*계열을 바인딩 하고 있다면 얘기 하나 마나죠?
메모리 복사 한번이면 된다 하니 웃음만 납니다..

익명사용자의 이미지

지금 이들타레가 무슨예기 하는지 아시져?

자바가 구현하기 쉽다해서 간단한것(replace 같은함수) 구현해보라해놓고 자기는 버젓이 그함수그냥 떨렁 사용하는게 말이데여?

그리고 메모리 복사2번??
효율로따져도 말도안되져.. 자바는 repaceAll 함수가 내부에 어케 돌고 있는지 아시기나하세여?
아마 메모리복사 최소한 제코드보다 두배는더할껄여?
"자동으로 늘려줍니다." ㅎㅎ 너무 개념없는소리해서 말이 안나오네여..자동으로 어케 늘일지 생각해바여.

심각한제약? 말도 안되는소리져.. 님이 요청하신 요구사항에 전혀부족함이 없는함수구여..
유니코드건 한글이건 코드가 같진 않지만 전부다 비슷한방법으로 다되거든여?

소타의 이미지

자동이라는 단어 안에 얼마나 많은 메모리와 시피유가 소모되는지 전혀 감을 못잡으시나 봅니다
C 좀 하다보면 open() 이나 malloc() 같은거나 str* 계열은 좀 더 빠른거, 해당 동작에서 좀 더 빨리 처리하는 놈을 찾기 위해 내부를 들여다 보지 않습니까?
replaceAll 내부에서 뭘 할지 안봐도 비디오지만 그걸 전혀 짐작도 못하시나 봅니다

익명사용자의 이미지

그러니까 유니코드나 한글 지원하면서 해보시라니까요 ^^

자바는 유니코드를 지원하기 위해 성능을 희생시킨면이 있기는 하지요. 덕분에 프로그래머는 쉽게 각국의 문자열을 다룰수 있고요.

쉽다와 빠르다는 일반적으로 상호 트레이드오프 대상입니다.

그리고 지금 토론 대상은 "쉽다"죠,

전체성능에서 자바가 빠르다고 주장하는 사람은 한사람도 없는데, 님이 혼자 갑자기 성능으로 말을 끌고 가고 계실뿐.

익명사용자의 이미지

먼가 크게 착각하시는데..

유니코드나 한글지원한다해서 크게 어려워질것이라 생각하시나본데여..

별반차이 없이되구여 기본개념만 재대로아셔도 왜 별반차이 없는지 아시게되여.

더구나 C도 유니코드나 한글관련 라이브러리들 많거든여? 물론사용하는데도 별어려움없구여.

자꾸 이거해보라 저거해보라 하시는데여 이러다 정말 윈도우 만들어보라고 하시겠네여..

익명사용자의 이미지

어리석군여. 정말 무개념이라고 밖에 할수 없네여..

위함수는 메모리 최대사용가능성을 염두해둔 임시 메모리를 할당한거에여
즉 메모리는 오토변수로 잡히기때문에 일시적인 buf 사용이에여.

당연히 어떤일을하기위해 임시 버퍼가 있듯이 말이에여.

narusas의 이미지

replace(a, b, c) a문자열에서 b문자열을 찾아 c로 바꾸는거.

그럼 메모리 확보를 strlen(a) * strlen(c) 로 하실겁니까? ^^

1메가짜리 a 에 1k짜리 c 면 1기가를 쓰시려고요?

소타의 이미지

다른 사람들이 님처럼 대충 설계하지 않습니다 -_-;
이러다 나중엔 윈도우나 리눅스도 만들라 하겠네요
그래서 그걸 자바는 내부에서 어떻게 처리합니까? 알고는 계신가요?

익명사용자의 이미지

C 로 구현하는방법은 상당히 다양하거든여?
그러한방법들을 님앞에다가 다 나열할순없구여..

익명사용자의 이미지

님이 하는 것과 동일한 로직으로 자바도 됩니다.

public String replace(char[] str) { char[] buf = new char[str.length * 2]; int i=0,p=0; for(; i < str.length; i++){ if ( str[i] == 'd') { buf[p++] = 'd'; buf[p++] = 'd';} else { buf[p++] = str[i]; } } return new String(buf, 0, p); }

에고 정말 모르면 글을 쓰지를 마세요..

익명사용자의 이미지

코드를 다시 올리지요.

public String replace(char[] str) {
  char[] buf = new char[str.length * 2];
  int i=0, p=0;
  for(;i < str.legnth;i++) {
    if ( str[i] == 'd' ) { buf[p++] = 'd';buf[p++] = 'd';}
    else { buf[p++] = str[i];
  }
  return new String(buf,0,p);
}
익명사용자의 이미지

자바 기본도 안되신분이네요..
제발 공부좀하시고 말씀하시길..

익명사용자의 이미지

>> 모가 쉬워요?

>> 그럼간단히 스트링내의 원하는 문자 제거하는 함짜보세여 예를들면 스페이스라던가..
>> 아니그냥 간단히 "skdkglsldslfldsf dskfkfsls ** dflsdf" d 제거하여 "skkglslslflsf skfkfsls ** flsf" 요렇게 되는거 만들어보셔요. 말만하지마시고. 얼마나 쉽게 되나 함바여..

이말 하신게 누구시더라. ^^

이말 해놓고

#include<stdio.h>
 
void aaa( char *src )
{
char *s;
for( s = src; *s; s++ )
if( *s != 'd' ) { *src = *s; src++; }
*src = 0;
return;
}
 
int main(){
 
printf("%s",aaa("asdsdhfgyujdtyhsdrfasdfafr"));
 
}

이 코드 올리신건 누구시더라 ^^

익명사용자의 이미지

위코드는 문제가 없지만.

님이작성하신 자바코드 정말 맞다고 생각하세요?

익명사용자의 이미지

쉽다 않쉽다 논의에서 자꾸 엉뚱한거 끌고 오시는 거 보니...

익명사용자의 이미지

메모리는 자동할당 해제되요.. 즉 원문+ a 가 될 a 에해당하는 임시버퍼라고 보시면되요..
물론 함수가 끝난후에는 즉시 메모리 반환되구요..

쓴귤의 이미지

님이 짜신 코드가 바로 정확히 자바가 인기를 얻게 된 이유라고 할 수 있습니다. 컴파일해서 한 번 돌려보시기 바랍니다. 어떻게 되는지.

http://mentalese.net
http://functional.or.kr

익명사용자의 이미지

자신이 사용할줄모른다고 엉뚱하시게 판단하시면안됩니다. 위에 정확한 사용법으로 사용된코드를 보세요.

익명사용자의 이미지

UTF-8로 되어 있는
"가나다라abcd마바사라가라" 에서 "라", 또는 지정된 문자만 빼는 함수를 C로 만들어 보세요.

익명사용자의 이미지

저기 윗쪽코드 aaa()함수 ...

거기서 d 비교부분을 대신 strncmp로 "라" 와 비교하고 같은것찾으면 s를 strlen( "라" )만큼증가시키면되요.. 나머지는 다똑같고.

이제 자꾸발전시켜 jvm도 만드어보라하시겠네여?

별차이도 없는거 엉뚱하게 무슨한글이면 안되는줄아세여?
개념이 없으니까 이런소리 나와여..

익명사용자의 이미지

아마 C와 비교하시는 것 같습니다만

여러 전문 리서치 기관 및 많은수의 논문에서 자바가 C++보다 높은 생산성을 낸다고 보고했고, 실제 결과로도 그렇습니다.

아마 착각하시는게 자바가 성장하는 시기가 웹이 폭발적으로 성장하면서 기존보다 처리해야 하는 일이 급격히 커진 시기와 맞물리기 때문에 전체 규모가 커진 것을 보고 생각하시는 것 같습니다, 비슷한게 아닐겁니다.

다만 공부가 더 필요하다라는 것은 부정하기 어렵지요,

환경구축은 언어의 차원이 아니라, 개발 도구의 차원에서 차이가 나겠죠.
JDK + Eclipse는 설치와 사용이 매우 간편한 편이지만, 압축파일을 못푸는 사람에게는 어렵게 느껴질수 있습니다.

neogeo의 이미지

교육 비용이 더 큰 경우엔 당연히 포기하는게 기본입니다.

프로젝트 투입 시간에 어느 갑도 교육시간을 포함시키고 싶어하지 않는게 당연합니다.

익숙한 것을 놔두고 단순히 Java 가 나중에 더 개발시간을 단축시켜줄 것이라는 막연한 믿음으로 현 프로젝트를 망치는건 정말 말도 안되는 행동입니다. ( Software Design 책들을 봐도 C 가 좋다고 cobol 을 버릴수는 없다라는 같은 논리를 담은 내용이 많습니다. 그만큼 미국엔 cobol 에 익숙했던 사람이 많았었죠 예전에.. )

메모리 참조는 C/C++ 중급이상 되면 스스로 다 해결합니다. 수많은 메모리 leak 검출 툴을 한번이라도 써보면 , 혹은 이미 표준화가 대세로 되어버린 smart pointer 를 조금만 사용해 보면 메모리 누수/검사 문제로 C/C++ 을 매도하는 것은 정말 모른다는 말 듣기 딱 좋습니다. ( smart pointer 의 구현이 각기 프로그래머 마다 달라도 어차피 "개념" 이 근본적으로 같기에 프로젝트내부에서 협업하기에 그다지 나쁘지 않았습니다. )

3D , 게임은 절대로 Java 가 못 쫓아 오고 있습니다. -_- 적어도 DirectX 의존적인 현업에서 다른 대안이 전혀 없는데 Java 라는건 현실을 무시하는 처사입니다.( 저는 개인적으로 OpenGL 기반의 Linux 에서도 돌아가는 엔진에서 작업중입니다. 대안이 없다고 하는건 DirectX 를 빼고선 게임 업계가 절대 수익성이 없기 때문입니다. )

DirectX 를 Java 로 연동해서 쓰는 방법은 글쎄요...

심지어 게임에선 C++ 도 여러가지 게임제반에 쓸뿐 HLSL 같은 쉐이더가 그래픽 코어 알고리즘의 50% 이상을 잠식해 가고 있습니다.

수많은 물리엔진도 C++ 을 주로 지원하지 Java 는 거의 지원에서 빠져있습니다. 게임엔진들 역시 마찬가집니다.

게임 개발은 이제 엔진 의존도가 매우 높아져서 ( 최근 2,3년내에 ) 거의 언리얼 2,3 엔진으로 게임제작을 추구하는게 대세입니다.

( 물론 게임브리오 같은 엔진도 영향력이 큽니다. 다만 대규모 대자본 게임들은 거의 그렇다는 이야기입니다. )

게임엔진들이 Java 지원을 하지도 않을 뿐더러 엔진 자체가 C/C++ 로 이루어져 있는데 다른 방안이 없지요

( 참고로 엔진을 만드려면 우수한 프로그래머 + 수학자 + 공학도 등등이 모여있어야 합니다. 국내에서 제작한 엔진은 90% 이상 실패했죠 )

그리고 게임쪽은 "웬만큼" 속도가 나와서는 절대 쓸모가 없습니다.......

이래도 Java 를 게임쪽에 쓸수 있다라는건 , 일부 성능이 크리티컬하지 않는 게임이나 엔진이 필요없는 게임에 해당 됩니다.

퍼블리셔의 대부분은 무조건 게임은 로우엔드에서도 돌길 원합니다. 그만큼 시장이 커지니까요...

그렇다고 해서 웹이나 비지니스 로직 , 여러가지 어플을 C++ 로만 짜야한다는 소린 당연히 아닙니다.

글서두에 밝혔듯이 이미 어느정도 어떤 프로젝트엔 이걸 쓰는게 좋다 라는게 점점 굳어져가는 추세에 굳이 이런 플레임이 의미가 있냐는 말이지요.

C/C++ 을 쓰는건 결코 어리석지 않습니다.

JVM 자체도 어차피 C/C++ 가지고 '주로' 만들지 않습니까?

( Java 만든 VM 이 성능이 별로 좋지 않다는 이야기만 들은 상태라 근거가 없어서 -ㅅ- )

Java 가 느리다 빠르다 문제는 결코 다툴이유가 없는 둘이 괜히 다투는 논점거리밖에 안된다는게 일단 제 생각입니다.

다만 자신이 하고 싶은 분야가 무엇인지 구체적으로 파고 들어갈 필요가 있습니다.

C/C++ 이 필요한 분야가 있는가 하면 Java 가 필요한 분야가 분명히 있지요.

글서두에서도 밝혔듯이 개발 속도가 빠르다 앞으로 편하다 만 가지고 Java 로 프로젝트를 무조건 해야한다는 논리는 오류가 있다는 생각입니다.

개발하다 보면 Java 역시 풀어야할 문제가 많을겁니다. 단순히 포인터 다루는 문제로 C/C++ 이 프로젝트를 고생스럽게 한다는 막연한 의견은 저로써는 찬성하기 힘듭니다.

( 개인적으로 Sping , struts , hibernate 등등에 많이 고생했었습니다. 개념도 모르고 손대느라 -_-. Java 역시 단순히 Java 언어나 플랫폼을 아는것 뿐만아니라 저런것도 익혀야 한다는 오버헤드도 같이 존재하지요. )

Neogeo - Future is Now.

익명사용자의 이미지

지금까지의 글을대충보니.. 결론이 나오네요...

결국은 C로하는것이 최상이라는결론이네요..

그이유가..

첫번째..일부 인정하지 않는사람도 있지만 전반적으로 C가 빠르다라는건 어쩔수 없는 사실인것으로 결론이 나네요..

또한 아직 자바가 일반적으로 c를 능가하기 힘들다는것도..

두번째..자바가 C보다 개발이 빠르다라는건 근거없는소리였네여.. 최소한 소스를 보니.. 어차피 비슷하네요..
오히려 C가 간결성 함축성 기호화 면에서 훨씬 유리하네여...

세번째..활용가능성이네요.. C로는 거의 안되는것이 없지만.. 유닉스커널에 자바자체를 만들어버리니.. 자바는 그렇지 않네요...

따라서 결론은 일단 C를하면 손해볼일은 없겠네요..

익명사용자의 이미지

-- 첫번째..일부 인정하지 않는사람도 있지만 전반적으로 C가 빠르다라는건 어쩔수 없는 사실인것으로 결론이 나네요..

일단 인정. 자바는 열심히 따라가고 있습니다.

--두번째..자바가 C보다 개발이 빠르다라는건 근거없는소리였네여.. 최소한 소스를 보니.. 어차피 비슷하네요..

C 가 더 개발이 빠르다는 근거는???

--세번째..활용가능성이네요.. C로는 거의 안되는것이 없지만.. 유닉스커널에 자바자체를 만들어버리니.. 자바는 그렇지 않네요...

널리 사용되는 Server side script 나 client side script 중에 C 문법쓰는거 알려주세요
아님 대규모 웹 사이트중에 데이타 처리 부분이 C 만으로 만들어 진거 하나만 알려주세요.
그것도 아님 C언어로 Back-end 데이타 처리하는 은행 한군데만 알려주실래요??

그럼 인정하죠.

-- 따라서 결론은 일단 C를하면 손해볼일은 없겠네요..

인정.
그런데 자바를 해도 손해는 없어요. 이건 인정 못하시나요??

익명사용자의 이미지

스크립트나 자바스크립트 등등 자바 자체도 사실은 C 문법을 따라한거죠..
즉, C만할줄알면 다른건 그냥 저절로 되죠... 그러나 자바한다해서 C할수 있는건 아니죠.

은행들 주요 핵심부분은 다 C 입니다. 아직 코볼도 많구요. 모르세요? 은행뿐아닙니다. 이동통신사나 ISP 업체나 모두 대부분 데이터처리는 Pro*C 많이 사용합니다.

웹부분에서도 대부분 C로 처리된데이터를...웹출력 에서만 자바사용합니다. 그것도 최근몇년전에 와서 그런추세요.. 과거에는 웹출력조차도 C로 했었죠..
멀모르셔도 한참모르시네.

익명사용자의 이미지

-- 스크립트나 자바스크립트 등등 자바 자체도 사실은 C 문법을 따라한거죠..
-- 즉, C만할줄알면 다른건 그냥 저절로 되죠... 그러나 자바한다해서 C할수 있는건 아니죠.

여기서 대략 난감..ㅡㅡ;;;;;
이딴 사고 방식 가지고 있는 사람이랑 더이상 이야기 해서 뭐하나 하는 생각합니다.

익명사용자의 이미지

사실인데 멀그러세요..

익명사용자의 이미지

DB 도 C 로 개발 되었다고 DB 서버 사용하는 모든 프로그램 C 로 개발 된거라고 말하시고요
JVM 로 C 로 개발 되었으니까 자바 프로그램도 C 언어로 개발 되었다고 이야기 하시죠

익명사용자의 이미지

참고 -- k 은행 다니는 후배....요즘 자바만 한다고 합니다...

익명사용자의 이미지

참고 -- 제가 아는 은행다니는 후배 개발은 안하고 그저말로만떼웁니다.
자신도 인정하고요.. 대부분 대기업 정규직은 개발안합니다.

그리고 자바를 오랫동안 개발한 실력있는사람이 한예긴데요..

스스로도 자바계열은 말로만 너무 아는체~ 하는게 문제라고 합니다.

익명사용자의 이미지

그래서 그 후배 다니는 은행에서는 C 언어를 사용한다는 이야기 인가요? 안한다는 이야기 인가요??

(논점이탈의 오류)

익명사용자의 이미지

s telecom ngm 프로젝트 참여했던 동기
DB 서버 같은 거 빼고 C 언어로 작성된 프로그램 사용안한답니다.

익명사용자의 이미지

S 텔레콤 DB 서버가 대부분의 차지하고 있답니다.

익명사용자의 이미지

제가 잘 몰라서 그러는데
거기서 쓰는 DB 서버
JVM 없이 설치 할수 있나요???

익명사용자의 이미지

뭐 C로 대규모 웹 어플리케이션 만들겠다고 10만라인 넘는 코드에서 메모리 관리 때문에 몇개월간 밤세우시기를 즐겨 하신다면 말리지는 않겠습니다.

결론은 요구사항에 적합한 언어를 사용하는 것이다입니다.

대규모 과학연산에 C보다 근 8~15배 빠른 포트란을 않쓰고 뭘 쓰실렵니까?

게시판 하나 간단하게 만들려는데 PHP등의 스크립트 언어 말고 뭘쓸까요?

간결성, 함축성, 기호화 측면에서는 J 언어(http://www.jsoftware.com/)를 한번 보시기 바랍니다. 아마 C나 자바등 왠만한 언어는 상대가 안될겁니다.

C가 프로그래밍상 활용가능성이 높다는 것은 사실입니다만, 대부분의 경우 로우레벨쪽으로 활용성이 높고, 하이레벨로 갈수록 활용성이 떨어지죠.

그리고 현재 어플리케이션 개발의 주 세력인 웹 개발에서는 거의 못쓸지경이고요. C로 웹 어플리케이션 만드는 사람도 거의 없고, 자료도 별로 없고..

그런데 시장에서의 Job opportunity 의 7~80%는 웹 개발이죠. 그런 측면에서 보자면 활용 가능성이 매우 떨어지는군요.

결론은? 말씀드렸죠. 요구사항에 적합한 언어를 사용하는 것이다입니다.

문제는 많은 사람들이 요구사항에 뭐가 적합한지 모르고 자기가 아는 언어만 밀어 붙이는 거죠.

익명사용자의 이미지

무슨얼토당토 안한소리.. 님이 쓰시는 윈도우나 익스플로러나 게임이나 워드나 파워포인트 DB ftp클라이언트 mp3 아파치, 웹데몬,
게시판(이것도 C로 된것많죠..) 외국싸이트보쇼.. cgi로된것 많죠..

눈감고사세요? 현실과 맞는소리하세요..

익명사용자의 이미지

요구사항에 맞는 언어나 기술을 사용해라가, 얼토당토 안한 소리가 되나요 ^^

윈도우, 익스플로러, 게임, 워드 파워포인트 모두 C/C++로 만든거 맞습니다.
그런데 그런 류의 프로그램 만드는 곳에서 일하는 사람은 얼마나 될까요?

C로 만들어진 웹어플리케이션과 다른 스크립트류로 만들어진 웹어플리케이션중 어느쪽이 압도적으로 많을까요?

반대로, 하드 리얼타임 임베디드 시스템에서 C, 어셈(C++도 잘 않씁니다) 말고 다른 대안이 있나요?

요구사항에 맞는 언어나 기술을 사용해라가 얼토당토 안한 소리라는 주장은 참으로 오랫만에 들어 보는군요 ^^
한 언어나 기술이 막 뜰때 무턱대고 믿어 대는 사람이나 하는 소리인데 말이죠.

익명사용자의 이미지

이상한소리 하시는군요.

요구사항에 맞는 언어나 기술을 사용하는건 당연한거구요..

님이 C/C++로 된게 뭐가 있나? 했기에 말도 안된다 한거구요..

C와 다른 전체비교해서 어느쪽이 많을까 하는건 왜묻는지모르겠근여.

그리고
>> "윈도우, 익스플로러, 게임, 워드 파워포인트 모두 C/C++로 만든거 맞습니다.
그런데 그런 류의 프로그램 만드는 곳에서 일하는 사람은 얼마나 될까요?"

일하는사람도 작은데 참으로 많은 결과가나오죠..
즉,님 말에서도 작은인력으로 큰효과를 본다는걸 님스스로 알고 계시네요.

익명사용자의 이미지

뭐 숫하게 봐온거라 새롭지는 않습니다만.. Job opportunity 라는 단어의 의미는 알고 계신가요?

C만 하는 사람하고
C,PHP,Java를 다할수 있는 사람하고
어느 사람이 일을 얻기가 쉬울까요?

C만을 죽어라 파온 사람이 오늘날 대규모 웹 어플리케이션 SI 회사로 이직이 쉬울까요?

C로 만들어지 레가시 코드와 파이썬으로 만들어진 레가시 코드와 어느것이 유지보수가 쉬울까요?

오늘날 C로 대규모 프로젝트를 시작하는 것을 승인하는 회사는 그 비율이 얼마나 될까요?

저는 C/C++로 된게 뭐가 있냐라고 물은 적은 없습니다.
제가 말하고자 했던건, 어느 언어든지간에 약점은 있고 그 약점만 죽어라 강조하자면 얼마든지 가능하다는 겁니다.
그럼 그 단점때문에 그 언어를 않쓸겁니까? 아니지요. <- 오해 하실까봐.이게 하고자 하는 이야기입니다.

제대로된 개발자라면 언어와 기술의 장점과 단점을 파악하고, 어느 곳에 적절한지를 파악할수 있는 능력을 가져야 하지요. <- 오해 하실까봐.이게 하고자 하는 이야기입니다.

그런 이야기를 하고 있는 건데,
>> 님이 C/C++로 된게 뭐가 있나? 했기에 말도 안된다 한거구요..
라는 이야기라니...

행간을 읽거나 문맥을 파악하라는 말까지도 않하겠습니다. 왜곡만 하지 말아주세요.

익명사용자의 이미지

자바밖에 모르는사람하고.

C도 하고 자바도 하고 php 도할줄아는사람이 취직이 잘될까요?

자바가 빠르다고 자꼬 우기시는분들많은데 님도 그런지 몰라도... 언어마다 특징이 있거든여?

일단 자바가 느립니다. 그런데 그특징을무시하고 빠르고 쉽고 안되는게 없고 식으로 우기면 누가 믿을까요?

다른사람은 다바보라서 모든방면에 다자바로 하면되겠네여?

다특징을 이해하고 사용할것에 사용해야지...

이쓰레드도 물론 일부 성능이 비슷하게 나오는코드도 있겠지만 전반적으로는 자바가 느리다는건 사실인데..

궂이 아니라고 우기시는분들 참으로 어이없는사람들이네여..

익명사용자의 이미지

예~~
평균적으로 10~20 % 정도까지는 성능차가 나옵니다...
하지만...이정도가 실무에 쓰기 힘들정도로 느리다고 생각 하지는않습니다.
많은 C 옹호 하시는 분들이...그거 느려서 어떻게 쓰냐는 말을 많이 하고 있습니다.

그 10~20% 가 중요한 프로그램에서 C 쓰면 되는거고
다른게 중요한 분야에선 자바나 C# 같은거 쓰면 됩니다....

이게 이해가 안됩니까???

익명사용자의 이미지

전반적으로 자바가 느리다 이거 부인하는 사람 아무도 없습니다.

다만, 일부 영역에서 실행시간 최적화에 의해 C/C++보다 빠르게 나오는 부분이 있다 라는 거죠.
(간단한 참고는 http://kldp.org/node/73324#comment-361727 )

어떤 분이 "부가 비용을 지출해서 딴 짓을 하면 원래 보다 절대로 빨라질수 없다"라는, 이상한 주장을 하니까 논쟁이 길어졌을 뿐이죠.

>> 빠르고 쉽고 안되는게 없고 식으로 우기면 누가 믿을까요?

C 옹호자 몇분이 그렇게 주장하시긴 합니다만..자바 옹호자 쪽에서 그렇게 주장하는 사람은 없습니다. 최소한 이 토론 중에서는 요.

익명사용자의 이미지

그러면

웹 게시판 만드는데 C로 코딩해보세요.
아마 apache module 형태로 만들면 되겠죠?
단 시중에 공개된 그 어떤 HTML및 HTTP/FTP 등등 자주 쓰는 프로토콜에 대한 라이브러리 하나도 안 쓰고
맨땅에 헤딩해서 제로보드 같은거 C로 만들어보세요.
DB도 아무것도 쓰지 마세요.
직접 구현하시는 B+ Tree나 ISAM이 더 빠를수 있을테니까요.
아마 실행 속도는 꽤 빠르겠죠?

근데 개발속도는?

익명사용자의 이미지

먼소리하쇼?

그럼 자바도 DB 하나도 쓰지마시고 라이브러리도 쓰지마시고 구현해보쇼..
자바로 맨땅에 헤딩해서 B+ 트리구현하시고 해보쇼.. 개발도 느리고 속도도 느리고 오류투성이고 개념없고 가관이겠죠?

참웃기는게 자신위주로만 생각하시는구랴...

daybreak의 이미지

이거 익명 허용되니까 바로 전쟁터로 변하는군요!

이 많은 익명으로 글을 쓰시는 분들이 왜 로그인을 안하실까요?

진짜루 진짜루 궁금해지네요.

pung96의 이미지

죄송합니다. 답글을 썼다가 쓰레드와 상관없는것 같아 삭제합니다.
줄거리는 저도 그렇게 생각한다.. 였습니다.^^

익명사용자의 이미지

상용, 오픈 라이브러리가 많아서 DB, 메모리관리, 네트워크 같은걸 요즘은 쉽게 하지 않나요??

요즘은 유닉스, 윈도우에서 동시에 또는 따로따로 쓸수 있는 라이브러리 들이 많아서

괜찮게 프로그래밍 하고 있습니다만...

제일 문제가 gcc가 안되는곳은 상용 컴파일러가 필요한데 안사주는게 제일 문제이죠.

해당 고용인이 컴파일러와 라이브러리는 공짜라는 인식이 짜증라더군요.

죠커의 이미지

포인터에 대한 잘못된 글이 많아 하나 지적하고 넘어갑니다. 포인터는 주소를 가리키는 것이 아닙니다. 포인터를 구현하는 방법 중의 하나가 주소를 이용하는 것입니다.

- CN의 낙서장 / HanIRC:#CN

사랑천사의 이미지

이거 언제 까지 하실 건지.. 다 비슷 비슷한 내용 같은데 따지고 보면...으음... 비슷한 결론 쪽ㅇ로 다들 가시는 거 처럼 보이진 않지만 그래도 이제 서로 ㅅ생각 하시는 거 쯤은 다들 아시지 않나요 으음...
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

사랑천사의 이미지

흐흠... 자바를 써 본 적은 없지만...

쓰래기 처리 기능이나, 새로 알게 된 자동 분기 뭐시기 하는 기능이나... 좋은 기능인 거 같습니다...

그리고, 제가 생각 하기에도, 2보 전진을 위한 1보 후퇴가 잇을 수 있다는 논리로 생각 해 볼 때, 부가 비용이 든다고 해서 무조건 C/C++보다 느리다 라고 할 수는 없을 거 같다는 겁니다. 아... 저도 여기 끼어 드는 건가요? 하지만 되도록 답은 더 안 달기로 하겠습니다. 그냥 이 정도에서 마쳐야 할 듯... 하지만 자바나 C나 C++나 좋은 언어라고 생각 합니다. C++나 자바는 써보지 않앗찌만..

C는 일단 제가 익숙하고 어느 정도는 필요한 일을 할 수 잇고 하드웨어 레벨에서의 제어가 강력하다는 것에 대해서(뭐 ASM보다야 아닐 수 잇찌만...) 좋은 언어라고 생각 하고요.

C++는 string라는 자료형이 잇고 객체 지향이 가능하기 때문에 여러모로 좋을 때가 많을 거 같다는 생각이 들고요... C에 비해서 메모리 쪽도 강화 된 거 같은데.. 으음.. 여기 쓰여진 글들 보면서 느낀 거고요 요 부분은.

자바는 역시 저같은 사람에겐 어쩌면 객체 지향 프로그래밍 이란게 불편 하긴 하지만.. 이런게 알맞고 필요한 곳도 많은 것으로 알고 잇습니다. 여러가지로 좋기도 하다고 알고 잇고요.. 그리고 위에 말 한 쓰래기 처리라던가 그 밖에 여기 여러번 나온 여러가지 기능들.(성능 향상이나 개발자 편의를 위한...) 그리고 VM만 잇으면 어디서나 돌아간다는 호환성 측면으로 볼 때 좋은 언어란 생각이 듭니다.

물론, 제가 알기로 자바는 로딩이 느린 거 같은 느낌이 들고...(프로그램들을 서 본 결과...) 그래서 다른 이들에게 자바 어떠냐 그럼 일단 VM로딩 시간이 걸리기 때문에 시작 시에 좀 느리긴 하지만 전반적으로 느린 편이 아니라고 말 하고 잇습니다. 잘 한 건지 아닌진 모르겟찌만, 제가 보기엔 그게 맞는 거 같고요..

아무튼 다 쓰이는 곳이 잇고 그런 거죠... 인간 관계도 그렇지 않나요??? 자신과 비슷하고 생각이 맞는 사람 기리는 잘 어울릴 수가 있죠.. 하지만 솔직ㅎ 잘 안 맞는 사람들과는 깊은 관계 형성 하는게 그렇게 쉬운건 아닙니다 상대적으로.. 언어와 사용되는 대상도 마찬가지겠지요...

뭐 많은 분들이 하신 말씀을 제가 다시 하는 거 같군요 아무튼..

그럼...
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

leonid의 이미지


몇개월 전에 철없이 올린 포스트가 이렇게 성지가 되버리다뇨 -_-;;;

무섭잖아요 ㅠ 글은 생각하면서 써야겠습니다.

(지금은 자바와 C++을 모두 비슷하게 하고 있습니다..)

쓴귤의 이미지

쓴귤의 이미지

결국 replace 함수 쓰면 되는 것을 메모리 할당하고 해제하고 루프 돌고.. 뭐하는 짓입니까? 그런 식으로 따지면 VB는 엄청나게 어려운 언어겠네요.

http://mentalese.net
http://functional.or.kr

익명사용자의 이미지

제발 더큰 실망을 안겨주지마세여..

개념없다없다 이제 대화도 이런식으로 하실거에여?

자바가 쉽다쉽다해서 머가 쉽나 그럼간단히 기존의 replace 같은함수구현해보자 해서 했더니..
자바는 repalce 함수쓰면된다..ㅡㅡ;; 정말 대화도 무개념식으로 나가실꺼에여?
애초님코드는 왜 보여주셨나여?
위에서 여테 코드비교해본건 먼가여?
그것도 그렇게하지..

자바의 replace 함수는 뭐 내부에서 아무것도 안하고 바로되는줄아세여?
정말 뭐라할말을 잃게 만드네여..

인정할건 하면안되나여? 왜그렇게 자꾸 말로만 이기려드세여.

익명사용자의 이미지

Replace 말고 두번째 소스코드에서 append 사용한건 C 로 비유하면 strcpy 사용한건데
strcpy 도 사용하지 말고 모든걸 처음부터 만들자는 이야기인가요?
제가 이해하기는 자바의 기본형인 스트링도 사용하지말고 char 배열로 만들어야지 만족하시겠네요

소타의 이미지

잘못 이해하신것 같네요
C로도 replace()라는 함수를 사용자가 만들거나 만들어진 라이브러리 쓰면 됩니다
C에서도 걍 가져다 쓰면 되는데요 C는 뭐가 어떻다고 계속 그러는거죠?
모른다고 없는게 아니거든요

쓴귤의 이미지

C에서는 사용자가 직접 만들거나 따로 구해야하는 라이브러리가 자바에는 상당수가 기본API로 들어있습니다. 이것이 자바의 개발편의성을 증대시켜주는 것이죠. 저 '익명 사용자'는 그걸 인정 못하겠다는군요.

http://mentalese.net
http://functional.or.kr

쓴귤의 이미지

처음에 요구사항은 "자바로 스트링내의 원하는 문자 제거하는 것"을 해보라는 것이었죠. 그래서 제 답변은 "자바에서는 API를 쓰면 된다"는 것입니다. 그러니까 댁이 요구한 건 "직접 구현을 해보라"는 것이죠. 그래서 제 대답은 "직접 구현해도 어렵지 않지만, 왜 일일이 구현하느냐"는 것이었습니다. 그리고 댁이 C로 구현한 것은 메모리 관리에 관한 부분은 다 빠진 코드였습니다. 그 다음에 C에서 메모리 잡아주고 해제하고 그래도 간단하던가요? 바로 그런 메모리 관리와 일일이 구현할 필요없는 방대한 라이브러리가 자바를 쉽게 만드는 것이죠. 만약 일일이 다 구현해야 한다면 VB는 쉽겠습니까?

그리고 간단히 구현하는 걸로 치면 자바나 C보다 하스켈이 더 쉽죠. 글자 두 배로 만드는 것도 한 줄이면 되네요. 그럼 하스켈이 훨씬 쉬우니까 바닥부터 전부 만들어서 쓰면 되겠군요.

doubleD = concatMap (\x -> if x == 'd' then "dd" else [x])

http://mentalese.net
http://functional.or.kr
익명사용자의 이미지

라이브러리 사용할수도 있고 직접 구현해도 쉬운 언어가 좋을까요?

라이브러리 아니면 하기 직접구현하기도 힘들고 딱맞는 라이브러리 찾기도힘들고
라이브러리 사용해도 어쩔수 없이 비효율적으로 사용해야되는 언어가 좋을까요?

쓴귤의 이미지

"라이브러리 아니면 하기 직접구현하기도 힘들고 딱맞는 라이브러리 찾기도힘들고 라이브러리 사용해도 어쩔수 없이 비효율적으로 사용해야되는 언어"가 시장에서 널리 쓰인다면 그 이유는 뭘까요?

http://mentalese.net
http://functional.or.kr

익명사용자의 이미지

말을 번지르~ 하게 잘해서 아마도 살아남은듯..^^

익명사용자의 이미지

유니코드 지원하는 문자열 치환을 한번 보여주세요.

정말 쉽나 한번 보죠 ^^

익명사용자의 이미지

일단 자바도 한번보여주시죠.. 아니면 지금까지는 보여드린것부터 인정할건 하시든가.

익명사용자의 이미지

일단 자바는 유니코드 기본지원입니다...

그리고 지금까지 보여주신게 뭐죠??

익명사용자의 이미지

바꿀필요 없이요.
자바의 char은 유니코드 글자 하나입니다.

replaceAll이든 StringBuilder를 이용하든 모두 유니코드를 지원하죠.
추가적인 라이브러리 필요 없이요.

익명사용자의 이미지

public String replace(char[] str){
		char[] buf = new char[str.length * 2];
		int i=0;
		for( i = 0; i < str.length; i++ ) {
			if (str[i] == 'd') {
				buf[i++] ='d';
				buf[i++] = 'd';
			}
			else {
				buf[i++] = str[i];
			}			
		}
		return new String(buf, 0, i);
	}

자바로 님의 로직과 동일하게 짤수 있어요.

익명사용자의 이미지

public String replace(char[] str){
  char[] buf = new char[str.length * 2];
  int i=0,p=0;
  for( ; p < str.length; p++ ) {
    if (str[p] == 'd') {
      buf[i++] ='d';
      buf[i++] = 'd';
    }
    else {
      buf[i++] = str[p];
    }			
  }
  return new String(buf, 0, i);
}
익명사용자의 이미지


아무튼 동일한 로직이면서 유니코드 지원하는 코드입니다.

한번 C로 유니코드 지원하면서 해보세요.

익명사용자의 이미지

정말 하면 님 어쩌실래여?

마지막입니다. 님이 하도 개념없어서 걍넘어가려했는데 알려드리지여..

위에작성된 C코드는 한글이건 유니코드 UTF-8 이든 전혀수정없이 요구사항을 완벽히 지원하는 소스입니다.

님이 얼마나 개념없는지 이제 아셨져?

의심나면 문자열에 "유니코드도d되나d 한글도되나d dd.." 넣고 해봐여.

페이지

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.