함수의 원형 선언이란?

이러이러한(함수이름, 반환형, 매개변수에 대한 정보) 함수가 뒤에 나오니까. 이러한 함수의 호출 문장이 나오면, 있다고 가정하고 컴파일 하라고 컴파일러에게 건네주는 것이다.


예제)

int add(int a, int b);        -> add 함수의 원형 선언


int main(void) {

    add(3, 4);

    return 0;

}


int add(int a, int b) {          -> add 함수 정의

    int result = a + b;

    return result;

}



함수의 원형을 선언하는 경우 제공해야 하는 정보는 반환형, 함수이름, 매개변수의 자료형과 개수이다. 즉 매개변수의 이름은 사실상 필요 없는 부분이다. 따라서 "int add(int, int)" 대신 할 수 있다.



출처 - 열혈강의 C 프로그래밍



Posted by linuxism
,


불광불급(不狂不及). 미치지 않으면 이르지 못하듯, 자바캔 운영자 최범균씨도 어릴 때부터 컴퓨터에 미쳤고, 결국 고수로 통하는 지금의 위치에까지 이르렀다. 그는 현재 다음의 커뮤니티개발팀에 근무하고 있다. 그의 개발자로서의 이야기 보따리를 풀기 전에 먼저 해주고 싶은 말이 있다. 바로 그의 어릴 적 소망했던 꿈 얘기다.

그는 어릴 적 꿈이 2개 있었다고 한다. 하나는 기능장이 되는 것이었고, 다른 하나는 다른 사람들이 프로그래머가 될 수 있도록 돕는 것.

"중학교 1학년 때 정보처리 기능사 2급을 준비하고 있었는데, 그 당시 기능장이 매우 뛰어난 프로그래머라고 생각했었습니다. 그래서 막연하게 기능장이 되고 싶었죠. 지금 생각해 보면 웃음이 나기도 하지만 사실 프로그래머로서의 꿈은 초등학교 4학년(1987년)때부터 시작되었습니다. 그 당시 시청에 있는 삼성그룹 본사 건물 1층에 컴퓨터 전시실이 있었는데, 그때 SPC-1500과 애플과 같은 컴퓨터를 처음 보는 순간 끌렸죠"

그 당시 북아현동에 살던 그는 집에서 시청까지 걸어서 40분 정도의 시간이 걸리는데도, 컴퓨터를 치고 싶은 마음에 틈만 나면 걸어서 시청까지 갔다오곤 했다고 한다. 그때부터 컴퓨터와의 필연이 시작된 것이다. 애정이 과해지면서 결국 그는 신촌문고에서 컴퓨터 책을 훔치는 대담한 짓을 하기도 했다고 털어놨다.

"그때가 초등학생이었는데 정말 미치지 않고서는 그렇게 하지 못했을 겁니다. 꼬리가 길면 밟힌다고 몇 번 책을 훔치다 결국은 들통이 났고, 어머님께 정말 많이 맞았습니다. 물론 그 덕에 컴퓨터 학원에 다닐 수 있게 됐죠. 이후 어머니와의 협상으로 반에서 10등안에 들면 컴퓨터를 사주겠다고 해서 열심히 공부했죠. 그래서 결국 컴퓨터를 손에 넣었습니다"

이때부터 그는 본격적으로 컴퓨터와 함께 빠져 살게 된 것이다. 그리고 또 하나의 꿈이었던 프로그래머가 될 수 있도록 도와주는 것은 지금 열심히 실천하고 있다. 그 실천의 일환 중에 하나가 자바캔이기도 하다. 많은 개발자들이 좀 더 빠르고 효과적으로 개발을 할 수 있도록 도우기 위해 만들었던 자바캔. 하루 방문객 수만 1500명이 넘을 정도로 인기 커뮤니티다. 특히 자유스럽게 프로젝트를 하면서 겪은 일상적인 내용들을 올리면서 개발자들 사이에게 많은 공감대를 형성하고 있다.

유명 개발자들처럼 그 역시 책에 대한 열정이 많다. 이미 대학생일 때부터 책을 내기 시작해 벌써 횟수로만 9년째 책을 내고 있다. 학생 때 2권을 냈고 이후 사회생활을 하면서 6권을 더 냈다.

"1999년도에 처음 책을 내고나서부터 지금까지 총 8권을 냈습니다. 사회생활을 하면서 책을 내기란 쉽지 않았습니다. 시간이 부족해서 새벽 4시에 일어나서 출근 전에 책을 썼습니다. 쓰는 동안에는 너무나 힘이 들지만 쓰고 나면 마라톤과 비슷한 성취감이 있습니다. 커뮤니티에서와 마찬가지로 책을 통해서도 지식을 많이 나누려고 노력하고 있습니다. 아직은 보잘 것 없는 것들에 불과하지만 이런 노력이 이어진다면 언젠가 많은 사람들에게 도움을 주고 보탬이 되고, 나아가 또 다른 꿈을 심어줄 수 있을 거라 생각합니다"

그는 2003년도에 출간한 ’MVC 프레임워크로 구현한 JSP 실전 Know-How’과 ’웹 개발자를 위한 스프링 2.5 프로그래밍’이라는 책에 애착이 남다르다. 자신이 가진 모든 지식을 한 번에 정리해준 책이었기 때문이다.

그는 10년 뒤에도 계속적으로 책을 내고 싶다고 한다. 누군가가 책을 보고서 관련 업계에 입문하고, 또 본인 스스로도 발전할 수 있는 계기가 되기 때문이다. 그리고 교육 센터도 운영해 보고 싶다고 한다. 현재는 세미나 등에 참가하면서 연습하는 자리를 만들고 있는 셈.

"1년에 한번씩 자바캔에서 정기 세미나를 개최하고 있습니다. 규모가 크진 않지만 그러한 자리들이 참으로 의미있다고 판단됩니다. 10년 뒤에는 소규모 강의 일지라도 교육 관련 일도 하고 싶습니다. 그리고 무엇보다 객체 지향쪽으로 잘 해 보고 싶습니다. 객체 지향이 좋다는 것을 알면서도 어떻게 해야 하는지 몰라서 많은 사람들이 못하고 있습니다. 객체 지향에도 한번 미쳐 보겠습니다"

그는 또 국내 개발자 현실에 대해서도 냉철하게 비판했다.

"국내 산업 구조 자체도 불만이긴 하지만 특히 나이를 먹은 개발자를 가만히 놔두지 않는 것이 안타깝습니다. 회사와는 상관없이 고도로 숙련된 개발자들이 살아남게 해주진 않는 한 국내 SW 개발에 발전은 없을 것입니다.

성현희 기자 ssung@ittoday.co.kr

  자바캔(http://javacan.madvirus.net)

자바캔은 자바와 관련된 컨텐트를 제작하는 사이트로서 실용적인 자료가 체계적으로 게시돼 있다. 처음 설립당시엔 자바와 JSP 관련 정보를 무료로 제공해주는 사이트였지만 향후에는 무료로 전환됐다. 현재 하루에 1500명이 넘는 방문객들이 찾을 정도로 인기 커뮤니티 중에 하나다. 현재 1년에 한번씩 정기 세미나를 개최하고 있으며, 운영자인 최범균씨는 자바와 JSP 관련 책을 지속적으로 출간하면서 인기를 끌고 있다.


출처 - http://www.ittoday.co.kr/news/articleView.html?idxno=3938



Posted by linuxism
,


Maven의 기본 라이프사이클에서 compile 시기에 실행되는 compiler 플러그인은 별도 설정이 없을 경우, 자바 1.3 버전 기준으로 컴파일 할 소스 코드를 파싱하고 자바 1.1 버전에 호환되도록 클래스 파일을 생성한다. 따라서, 제너릭(generic)이나 어노테이션(annotation)과 같이 자바 5 이상 버전에서만 유효한 문법이 코드에 포함되어 있을 경우 컴파일 과정에서 문법 에러가 발생하게 된다.



maven-compiler-plugin 설정하기

Maven이 기본적으로 사용하는 소스 및 생성 클래스의 자바 버전을 변경하려면 pom.xml 파일에서 maven-compiler-plugin의 <configuration> 영역에서 <source>와 <target>을 이용해서 소스 코드 및 생성 대상 자바 버전을 지정할 수 있다. 아래 코드는 설정 예를 보여주고 있다.

<project>
    ....
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            ...
        </plugins>
    </build>
</project>

만약 소스 코드의 인코딩이 운영체제의 기본 인코딩과 다르다면 <encoding> 속성을 이용해서 소스 코드의 인코딩을 지정해주면 된다.

위와 같이 maven-compiler-plugin 에서 소스 및 대상 자바 버전을 명시하면 eclipse:eclipse를 이용해서 생성한 이클립스 프로젝트도 설정한 자바 버전을 사용하도록 설정된다.

관련 자료:


출처 - http://javacan.tistory.com/entry/HowToSetJavaVersionOfMavenCompilerPlugin



Posted by linuxism
,