이번 여름, 새로운 프로그래밍 언어를 배우는 방법

여름을 맞아 어떤 목표를 세우는 것이 좋을까요? "해변에서 읽을 책" 대신, 새로운 프로그래밍 언어를 배우는 것을 목표로 삼는 것은 어떨까요? 그렇다면 어떤 언어를 선택해야 할까요?

EDC의 보고서에 따르면, 전 세계에는 약 2,400만 명의 전문 소프트웨어 개발자가 있으며, 위키피디아에 따르면 주목할 만한 프로그래밍 언어는 약 700개에 달합니다. 저는 감히 말씀드리지만, 특정 프로그래밍 언어를 배울 수 있는 온라인 플랫폼의 수도 거의 그와 동등할 정도로 많을 것입니다. 이미 1,100만 명의 코딩 전문가 중 한 명이시거나, 프로그래밍을 처음 접하는 분이시든, 방대한 양의 정보가 여러분을 기다리고 있습니다.

이번 블로그 게시글에서는 세계의 2021년에 가장 널리 사용된 프로그래밍 언어들, 하지만 데이터 처리 및 질의에 중요한 프로그래밍 언어들도 다룰 예정입니다. 따라서 C와 그 파생 언어(C++, C#, Objective-C), Java, Python, R, JavaScript, Ruby, SQL, 그리고 XQuery에 대해 논의할 것입니다.

어떤 개발 시나리오를 염두에 두고 있는지에 따라 시작점을 결정하는 것이 중요하며, 따라서 사용자가 더 쉽게 이해할 수 있도록 내용을 세분화했습니다. 숙련된 프로그래머로서 새로운 프로그래밍 언어를 배우고 싶어하는 분이든, C, C++, Objective-C, C#의 차이를 아직 모르는 초보자이든 상관없이, 어떤 언어를 다음에 배우면 좋을지 선택하는 데 도움이 되는 설명 목록을 준비했습니다.

각 프로그래밍 언어를 자세히 살펴보기 전에, 오늘날 프로그래밍 언어가 주로 사용되는 여섯 가지 주요 분야와, 어떤 언어가 어떤 상황에서 유용할 수 있는지에 대해 먼저 이야기해 보겠습니다. 이를 통해 여러분은 어떤 언어가 자신에게 가장 적합할지 파악하는 데 도움이 되는 가이드라인과 초기 감을 얻을 수 있을 것입니다.

모바일 앱(들)

스마트폰이나 태블릿용 앱을 개발할 때, 어떤 프로그래밍 언어를 선택할지는 주로 개발하고자 하는 플랫폼에 따라 결정됩니다. iOS 기기를 대상으로 한다면, 일반적으로 Objective-C를 사용하며, Android의 경우 Java가 기본 언어입니다. Microsoft Surface (그리고 일반적으로 Windows 10 또는 11 기기)의 경우 C#을 사용합니다. 또한, 모바일 앱이 클라우드에서 실행되는 서버 백엔드를 필요로 한다면, 아래의 서버 측 개발 관련 내용을 참고하여 추가적인 프로그래밍 언어를 고려해 보세요. 만약 세 가지 모바일 플랫폼 모두를 대상으로 하고 싶지만, 한 번에 모든 것을 배우는 것이 부담스럽다면, Altova MobileTogether와 같은 크로스 플랫폼 도구를 살펴보는 것을 추천합니다. 이 도구를 사용하면 XQuery와 시각적인 ActionTree 스크립트를 사용하여 하나의 소스 코드에서 모든 플랫폼용 모바일 앱을 개발할 수 있습니다.

웹 개발

모바일 웹과 기존 데스크톱 브라우저 모두에서 웹사이트를 개발할 때, 웹 브라우저에서 실행되는 주요 프로그래밍 언어는 자바스크립트입니다. 물론 웹사이트의 주요 내용은 HTML5로 작성되고, 스타일 정보는 CSS3 스타일 시트에 포함될 것입니다. 하지만 이들은 엄밀히 말하면 프로그래밍 언어가 아닙니다. 지금까지는 클라이언트 측 프로그래밍에 대해서만 이야기했습니다.

서버 측 개발

모바일 앱의 백엔드이든, 아니면 전통적인 웹 서버이든, 서버 측 개발에 적합한 다양한 프로그래밍 언어가 존재합니다. 그중에서 자바, C#, 파이썬, PHP, 루비 등이 가장 많이 사용됩니다. 이는 구형 호스팅 웹 서버뿐만 아니라 AWS 또는 Azure 클라우드 플랫폼에서 운영되는 클라우드 기반 서버에도 해당됩니다.

전통적인 PC/데스크톱용 응용 프로그램

자바와 비주얼 베이직 애플리케이션이 기업 환경에서 때때로 사용되기는 하지만, 대부분의 PC 기반 데스크톱 애플리케이션은 여전히 C, C++, 또는 C#으로 개발되고 있습니다. 하지만 파이썬과 같은 언어는 일반적인 작업을 자동화하는 스크립트 언어로 데스크톱 환경에서도 점점 더 인기를 얻고 있습니다.

과학 계산

데이터 분석, 통계, 그리고 고급 수학 분야에서는 주로 다음과 같은 세 가지 특수 목적 언어가 사용됩니다: MATLAB, Mathematica, 그리고 R입니다. 최근 몇 년 동안, 인기를 기준으로 볼 때 R이 다른 두 언어를 압도적으로 앞서고 있기 때문에, 여기서는 R에 대해서만 간략하게 설명하겠습니다.

임베디드 시스템 및 사물 인터넷 (IoT)

임베디드 시스템 분야에서 C와 C++는 여전히 가장 널리 사용되는 언어입니다. 최근 몇 년 동안 임베디드 및 IoT 기기들이 점점 더 정교한 리눅스 기반 컴퓨터로 발전하면서 이 분야는 큰 변화를 겪고 있지만, 하드웨어와 밀접하게 연관된 소프트웨어 개발, 그리고 많은 운영체제 기능 및 장치 드라이버 개발에 있어서 C의 강력함, 속도, 효율성은 여전히 이 분야에서 최고의 선택으로 자리 잡고 있습니다.

데이터베이스 쿼리와 데이터 조작

위에 언급된 어떤 분야를 생각하시든, 대부분의 경우 데이터베이스에서 특정 데이터 집합을 검색할 수 있는 언어에 대한 지식이 필요합니다. 현재 뉴스에서 빅데이터 관련 플랫폼인 Hadoop/MapReduce 등이 많은 관심을 받고 있지만, SQL(구조화된 쿼리 언어)은 1970년대부터 존재해 왔으며, 현재까지도 가장 널리 사용되는 데이터베이스 쿼리 언어이며, 모든 주요 데이터베이스 시스템에서 지원됩니다.

SQL 외에도 XML 쿼리 언어인 XQuery를 살펴보는 것을 추천합니다. 요즘 많은 데이터가 XML 또는 JSON 형식으로 제공되기 때문에, XQuery는 이러한 데이터를 효율적으로 처리하는 데 매우 강력한 기능 언어입니다. 특히, Altova MobileTogether와 같은 고급 모바일 도구들은 XML, JSON, HTML, 그리고 SQL 데이터베이스를 포함한 다양한 데이터 소스에서 데이터를 처리하는 데 XQuery를 사용하여 기능적인 프로그래밍을 지원합니다.

이제 제가 이 언어들이 주로 사용되는 지역에 대한 개요를 설명해 드렸으니, 여러분이 다음에 어떤 언어를 배우는 것이 좋을지 어느 정도 감이 잡히셨을 거라고 생각합니다. 이제 각 언어에 대해 자세히 알아보고, 온라인에서 어떻게 학습할 수 있는지 알아보겠습니다

C

C 언어와 그 파생 언어들(C++, C#, Objective-C)은 범용 프로그래밍 언어이며, C 언어는 1978년에 출간된 중요한 서적 이후로 널리 사용되어 왔습니다 C 프로그래밍 언어 커니건과 리치에 의해 개발된 C 언어는 컴퓨터 과학 분야에서 커리어를 쌓고자 하는 사람들에게 여전히 필수적인 지식입니다. 하지만 초보자에게는 C 언어를 처음으로 배우는 것이 현명한 선택이라고 단정하기는 어렵습니다. 왜냐하면 C 언어는 주로 하드웨어 관련 작업이나 다른 저수준 응용 프로그램 개발에 사용되기 때문입니다. C 언어는 원래 UNIX 운영 체제에서 사용하기 위해 개발되었으며, 현재는 주로 운영 체제, 장치 드라이버 및 임베디드 시스템 개발에 사용됩니다.

C 언어를 배울 수 있는 곳은 다음과 같습니다. https://alison.com/courses/Diploma-in-Programming-in-C https://www.udemy.com/c-programming-for-beginners/ http://c.learncodethehardway.org/book/

C++ (씨 플러스 플러스)

C는 C에서 파생되었으며, 오랫동안 사용되어 왔습니다. 이 언어를 배우기 위해서는 최소한 중급 수준의 프로그래밍 능력이 필요합니다. C는 명령형, 객체 지향, 그리고 제네릭 프로그래밍 기능을 모두 갖추고 있어 매우 강력하지만, 이 언어를 완전히 숙달하기 위해서는 여러 가지 고급 컴퓨터 과학 개념에 대한 이해가 필요합니다. 이 언어는 주로 시스템 소프트웨어, 비디오 게임, 응용 소프트웨어, 그리고 클라이언트/서버 애플리케이션, 그리고 클라우드 기반 서버 소프트웨어 개발에 사용됩니다.

C++를 배울 수 있는 곳은 다음과 같습니다:
http://www.learncpp.com/
http://www.cplusplus.com/doc/tutorial/

C#

C#은 원래 마이크로소프트에서 .NET 프로젝트의 일환으로 개발된 프로그래밍 언어로, 주로 Windows 플랫폼용 소프트웨어 애플리케이션 개발에 사용됩니다. C#은 .NET 프레임워크의 핵심 구성 요소이므로, 마이크로소프트 환경에서 개발을 계획하고 있다면 이 언어가 적합합니다. C#은 자바와 매우 유사하므로, 둘 중 하나를 이미 알고 있다면 다른 언어로 전환하는 것이 어렵지 않습니다. C#은 자바와 마찬가지로, C++의 복잡성을 줄이고 객체 지향 프로그래밍 개념을 C와 유사한 언어에 적용하기 위해 처음 개발되었습니다.

C#을 배울 수 있는 곳은 다음과 같습니다. https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/ https://channel9.msdn.com/Series/C-Fundamentals-for-Absolute-Beginners

Java

자바는 객체 지향 프로그래밍 언어이며, 현재 가장 널리 사용되는 언어 중 하나입니다. 자바는 설계상 이식성이 뛰어나 여러 소프트웨어 플랫폼에서 잘 작동하기 때문에 프로그래머들이 선호합니다. 자바는 다재다능한 언어로서, 모바일 앱, 서버 측 애플리케이션, 그리고 기업용 소프트웨어 개발에 모두 사용될 수 있습니다.

자바를 배울 수 있는 곳은 다음과 같습니다. https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/ https://www.codecademy.com/edn/courses/learn-java/

알파벳 "R"를 의미합니다

R은 통계 분석 및 그래프 작성에 특화된 언어로, 양변수 분석 및 상관관계 분석 등을 포함합니다. 데이터 과학 분야의 높은 수요, 특히 학계와 기업에서 데이터 시각화 및 분석이 프로젝트 진행에 필수적인 요소가 되면서 R의 인기가 높아지고 있습니다. 만약 데이터 마이닝 프로젝트를 수행해야 하거나, 엑셀의 기본적인 기능으로는 데이터 내의 복잡한 상관관계를 충분히 분석하기 어렵다고 느껴진다면, R은 훌륭한 선택이 될 수 있습니다.

R 프로그래밍을 배울 수 있는 곳은 다음과 같습니다. https://cran.r-project.org/manuals.html https://www.edx.org/course/r-programming-fundamentals https://www.datacamp.com/courses/free-introduction-to-r

파이썬

파이썬은 배우기 가장 쉬운 프로그래밍 언어 중 하나로 꼽히며, 범용적인 고수준 스크립트 언어입니다. 웹사이트나 모바일 앱 제작부터 데이터 분석까지 다양한 분야에 활용되며, 방대한 표준 라이브러리를 자랑합니다. 파이썬은 단순하기 때문에 미국 학교에서 가장 널리 가르치는 프로그래밍 언어 중 하나이기도 합니다. 프로그래밍을 처음 접하는 분이라면, 파이썬은 시작하기에 매우 좋은 선택입니다.

파이썬을 배울 수 있는 곳은 다음과 같습니다. https://www.python.org/doc/ http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/ https://developers.google.com/edu/python/?hl=en

루비

루비는 최근 10~15년 동안 인기를 얻었던 훌륭한 스크립트 언어 중 하나이지만, 현재는 다소 인기가 줄어드는 추세입니다. 웹사이트 및 모바일 앱 개발에 사용됩니다. 이 오픈 소스 언어는 헌신적인 커뮤니티를 보유하고 있어, 루비 학습에 필요한 자료를 찾는 것이 훨씬 용이합니다. 루비는 1990년대 중반, 일본의 유키히로 마쓰모토에 의해 개발되었으며, 그는 자신이 좋아하는 여러 언어(Perl, Smalltalk, Eiffel, Ada, Lisp)의 요소를 결합하여 객체 지향적이고 함수형 프로그래밍을 지원하는 새로운 언어를 만들었습니다.

루비 프로그래밍을 배울 수 있는 곳은 다음과 같습니다:

https://www.ruby-lang.org/en/documentation/quickstart/
https://rubymonk.com/

JavaScript

JavaScript는 Java 기반의 프로그래밍 언어로, 주로 HTML 웹 페이지에 기능을 추가하는 데 사용됩니다. 비교적 배우기 쉬운 언어이며, 온라인에서 다양한 실습 자료를 찾아 초보자도 쉽게 시작할 수 있습니다. 일반적으로 웹 브라우저 내에서 실행되지만, 서버 측 애플리케이션에서도 사용할 수 있습니다. 최근에는 모바일 앱 및 일부 임베디드 기기 등 다양한 분야로 JavaScript의 활용이 확대되고 있습니다.

JavaScript는 메모리에 저장된 객체를 디스크나 스트림에 기록하기 위해 내장된 직렬화 형식을 사용하는데, 이를 JSON (JavaScript Object Notation)이라고 합니다. JSON은 XML과 유사한 방식으로 컴퓨터 간에 데이터를 전송하는 데 널리 사용되며, 빠르고 효율적인 데이터 전송 방식으로 인정받고 있습니다. 따라서 JavaScript를 익히면 JSON과 JSON 스키마에 대한 숙련도를 높일 수 있으며, 이는 웹 및 웹 서비스 애플리케이션 개발에 필수적인 요소입니다.

JavaScript를 배울 수 있는 곳은 다음과 같습니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide https://www.codecademy.com/tracks/javascript

SQL

SQL, 또는 구조화된 쿼리 언어는 관계형 데이터베이스에서 데이터를 관리하는 데 사용되는 데이터베이스 쿼리 언어입니다. SQL을 배워야 할 사람은 누구일까요? 누구에게나 필요합니다! SQL은 어디에나 존재하며, 배우기에도 그렇게 어렵지 않습니다. 데이터베이스에서 데이터를 검색하거나 조작해야 하는 상황이 있다면 (그리고 솔직히 말해서, 이 능력이 도움이 되지 않을 사람은 없을 겁니다), SQL은 배우기에 아주 좋은 언어입니다.

SQL 학습 자료: https://www.codecademy.com/learn/learn-sql http://www.sqlcourse.com/ http://www.w3schools.com/sql/ http://www.tutorialspoint.com/sql/

XQuery

XQuery는 XML 및 JSON 데이터를 쿼리하고 변환하는 데 사용되는 함수형 프로그래밍 언어입니다 W3C (World Wide Web Consortium, 월드 와이드 웹 컨소시엄), XQuery는 복잡한 Java 또는 C++ 프로그램을 몇 줄의 코드로 대체할 수 있기 때문에 사용하기 쉽고 유지 보수가 용이합니다. 또한, XQuery는 모바일 플랫폼에서 다양한 데이터 소스로부터 강력한 데이터 처리를 수행하는 데 가장 적합한 언어로 자리 잡고 있습니다. 예를 들어, 다음과 같은 경우에 활용됩니다 알토바 모바일투게더. XQuery는 매우 강력한 기능들을 제공하며, 배우기에도 어려운 언어가 아닙니다.

XQuery 학습 자료: https://www.altova.com/training/xquery3/ https://www.w3schools.com/xml/xquery_intro.asp http://www.tutorialspoint.com/xquery/

위에 언급된 온라인 자료 외에도, 아마존에는 이 모든 언어에 대한 훌륭한 책들이 많이 나와 있습니다. 구매 결정을 내리기 전에, 해당 책들을 확인해 보시고, 구매자 리뷰를 참고하시는 것이 좋습니다.

어떤 프로그래밍 언어를 배우든, 실력 향상에 도움이 될 것이므로 실패할 가능성은 없습니다. 오히려 각 언어는 여러분의 경쟁력을 높여줄 것입니다. 그러니 망설이지 말고, 이번 여름에 새로운 프로그래밍 언어를 배우기 시작하세요!