목록언어 (3)
규도자 개발 블로그
여러가지 언어와 프레임워크들을 써오며 느꼈던 단상 현 상태를 말하자면 이렇다. 나는 국비학원에서 프로그래밍을 처음 접했고 교육 커리큘럼은 C와 Java로 시작해서 학원 수행과제로 Java로 네이티브 앱을 만든 다음 PHP를 이용해 웹 프로젝트를 만들고 해당 결과물을 포트폴리오로 하여 PHP와 워드프레스를 주로 사용하는 회사에 취직했다. 개인적으로는 Python과 Django Rest Framework를 백엔드로, React와 Next를 프론트엔드로 사용하는 프로젝트를 진행 중이며 회사에서는 그간 PHP코드로 쌓아왔던 레거시 코드들을 Java Spring으로 컨버전하는 과정을 겪고 있다. 이러한 과정들 속에서 많은 걸 느꼈고 혹시 언어나 도구를 선택하려는 프로그래머, 프로그래밍을 시작하려는 학생 등에게 도..
일반적으로 메소드보다는 함수라는 말을 많이 사용한다. 그 나름의 이유가 있다. 함수는 말 그대로 어떠한 기능(Function)을 의미한다. 반면에 메소드는 어떤 클래스 내부에 선언된 함수를 의미한다. 단순 의미로만 따지자면 함수가 메소드보다 더 포괄적이기 때문에 많이 쓰이는 것이다. 하지만 자바 같은 객체지향언어의 경우에는 애초에 함수 자체가 특정 클래스 안에 선언되는 경우가 많아 함수보다 메소드라는 말이 더 많이 쓰이기도 한다. 기억해야할 것은 함수와 메소드는 엄밀히 따지면 다른 말이고 함수가 메소드보다 포괄적인 의미를 가진 단어라는 것이다.
그 기원은 프로그래밍 언어를 만들 때로 거슬러 올라간다. 시대는 정확히 모르겠지만 1950년대라고 한다. 타자기가 문명의 주 매체였을 때 말이다. 그땐 컴퓨터에 대한 개념이 명확하지 않아서 printf함수를 만들 때 타자기의 작동원리를 많이 참고했다고 한다. 타자기는 다음줄로 갈 때 줄바꿈레버를 돌리는데 그렇게 하면 커서가 바로 밑의 칸으로 가긴 한다. 하지만 거기에서부터 글씨를 쓸 순 없잖은가. 오른쪽 끝인데. 그때 바로 캐리지 리턴이라는 레버를 통해 종이를 오른쪽으로 옮겨 다시 문서의 왼쪽부터 작성되게 하는 기능이 존재했다. 타자기는 찍는 위치는 항상 그대로이고 종이만 움직이는 원리이니 말이다. 오른쪽의 레버로 줄을 바꾸고 왼쪽의 레버로 종이의 위치를 조절하였다. 그리고 당연하게도 타자기 또한 점점 ..