프로그래밍에 대한 기초적인 개념을 잡는 것으로 코스를 시작해 봅시다. 프로그래밍은 만들고 싶은 것을 만들기 위한 도구입니다. 하지만 프로그래밍 자체를 잘 하는 것에 강박을 가질 필요는 없습니다. 프로그래밍은 개발의 과정 중 하나일 뿐입니다. 아직 의미가 알쏭달쏭 하겠지만, ‘개발자가 코딩만 하는 건 아냐’ 라고 말하는 사람이 많습니다.

개발자에게 프로그래밍이란, 요리사가 되기 위해 칼질을 배우는 것과 같습니다. 분명 필요하고, 칼질을 매우 잘 한다면 요리에 도움이 되겠지만, 적당히 할 줄만 알아도 좋은 음식을 만들 수 있습니다.

그러니 프로그래밍 배우는 건 금방 넘어가도록 합시다. 문법이나, 일급 객체, 익명 함수, 어노테이션, … 같은 이론 공부는 전 별로 안 맞습니다. 문법이 틀려서 프로그램이 안 돌아가면 뭐, 구글링 해서 고치면 되죠. 기초 공부는 금방 넘기고, 뭘 만들기 시작하며 그때 그때 배워 봅시다.

과제

프로그래밍 언어 선택하기

세상에는 많은 프로그래밍 언어가 있습니다. 그러나 아쉽게도, 모든 분야에 적합한 언어는 없습니다. 대부분의 프로그래밍 언어는 특별한 목적이 있는 채로 태어나며, 기술의 발전에 따라 새로운 언어가 대체하기도 합니다.

혼란을 주고 싶지 않아 여기서 언급하진 않겠지만, 안드로이드 앱 개발, iOS 앱 개발, 게임 개발, 백엔드 개발에 사용되는 언어를 찾아보면 서로 겹치는 게 별로 없는 것을 알 수 있습니다. 우리는 백엔드 개발에 적합한 언어들 중 하나를 골라 시작하면 됩니다.

앞으로의 과제에서 사용할 프로그래밍 언어를 선택합시다. 개인적으로 Java, Kotlin, Python, Node.js 중 하나를 선택하는 것을 추천합니다. 해당 4가지 언어는 백엔드 개발에서 주로 사용되고, 입문하기에도 비교적 쉬우며, 채용 시장에서 활발하게 다뤄지고 있습니다. 또한 커리큘럼 내에서 조금의 가이드도 주고 있으니, 학습에도 도움이 될 것입니다.

인터넷을 통해 기초적인 문법을 확인한 뒤 마음에 가는 것으로 골라도 좋고, 본인이 가고 싶은 회사가 있다면 채용 공고를 찾아보는 것도 좋습니다. 중간에 바꿔도 상관 없으니, 편한 마음으로 골라 봅시다.

프로그래밍 입문을 다른 언어로 했다거나 등의 이유로, 앞의 4가지 언어 중 하나를 사용하기 싫다면 본인에게 익숙한 언어를 사용해도 괜찮습니다. 다만, 백엔드 커리어에 있어서 해당 언어를 계속해서 사용할 수 있을지 알아볼 필요는 있습니다. 다음은 백엔드에서 사용하는 사례가 있으나, 오늘날에 주류로 꼽히지 않거나, 입문하기 어려워 제외한 언어들입니다.

과제

개발 환경 준비하기

옛날에는 ‘메모장 코딩’이나 ‘손코딩’이 유행이었습니다. 개발 환경의 도움을 하나도 받지 않고, 작성한 게 한 번에 잘 실행되면 으쓱했던 기억이 납니다.

개인적으로 비효율적인 공부 방법이라고 생각합니다. 평생 손코딩 할 게 아니라면, 처음부터 개발 환경을 설정해 익숙해지는 게 좋습니다. 경고 표시가 어떻게 생겼는지, 에러가 나면 어떻게 보이는지, 자동완성이 어떤 메커니즘으로 돌아가는지 등을 알아두는 게 좋죠.

개발은 편해야 합니다. 똑같은 결과물을 4시간 걸려서 내는 것보다, 2시간 걸려서 내는 게 당연히 좋습니다. 그래서 개발자들은 개발 환경에 정말 많은 투자를 합니다. 키보드와 모니터같은 하드웨어를 비롯해, Copilot이나 ChatGPT같은 소프트웨어에 많이들 결제하곤 하는 것처럼요.

과제