※[컬러잇 자바] 시리즈는 "왜?"라는 질문을 중심으로 자바의 기초문법에서 고급 자바기술까지 알아보는 컬러잇 개발블로그 시리즈입니다.
컬러잇 자바시리즈 1편. 그 시작으로는 왜 자바를 알아야하는지, 그리고 자바의 등장배경에 대해서 알아보려고 합니다.
1. 자바를 왜 써야할까?
1. 많이 쓰고, 처음 배우기 적절하다
제가 자바를 쓰는 이유를 추천할 때 가장 하고 싶은 이야기이기도합니다. 물론 아래내용처럼 자바 언어의 장점도 있고 추가로 몇 가지 자바의 장점들이 더 있지만, 자바를 처음으로 배우는 초심자들은 이를 알기 어렵습니다. 그래서 저는 "많은 사람들이 쓰니까 한 번 써보세요."라는 이유로 자바를 추천합니다.
자바는 문법이 엄격한 편에 속하는 C-like 언어입니다.
그래서 저는 언어를 처음 배울 때 엄격한 문법을 겪어본 후에 파이썬이나 자바스크립트 같은 다소 문법이 엄격하지 않은 언어를 사용하는 것이 좋다고 생각합니다. 반대로 진행하면 문법이 엄격한 언어를 배우기 힘들어지기 때문입니다.
다만 대표적인 엄격한 문법을 가진 언어인 C는 어렵습니다! 기능도 투박한 편이고, 포인터란 개념을 배우기까지에는 초심자 분들이 많이 어려워하는 부분이 있으니까요. 그래서 저는 자바를 추천합니다. 자바는 위에서 말했듯이 배우기 무난한 난이도에 속하고, 추가로 개발 난이도가 다소 낮은 편인 웹개발(백엔드)과 병행해서 배우면 내가 배운 것을 그대로 사용해볼 수 있기 때문에 자바를 추천하는 편입니다.
자바를 배우고 나서는 본인의 선택에 따라 달려있다고 생각합니다. 자바언어 뿐 아니라 자바가 돌아가는 환경에 대해서 깊은 이해가 필요하면 C와 C++을, 웹개발에 더 관심이 있다면 자바스크립트를 배우는 것과 같이 본인의 선택에 따라 달려있다고 생각합니다. 그 시기가 되면 이미 한 언어를 충분히 배운 개발자로서 본인의 선택에 따라 배우는 것이 가능하기 때문입니다. 이 때는 자바를 기반으로 다른 점을 분석해가며 언어를 배울 수도 있을 것입니다.
2. 자바의 장점은?
1. 사용자 독립적이다.
자바는 운영체제에 상관없이 사용자 독립적으로 실행될 수 있습니다.
이를 "이식성"이라고 합니다.
흔히 '프로그래밍 언어'하면 주로 역사와 전통의 C언어를 떠올립니다.
C언어 프로그램을 실행시키면 프로그래머가 짠 코드들을 각 운영체제에 맞는 기계어로 번역한 뒤 실행되며, 이 번역과정을 "컴파일"이라고합니다.
하지만 문제는, 이 "기계어"라는 것은 운영체제마다 다르기 때문에 C언어와 같은 컴파일을 거치는 언어는 컴파일과정을 운영체제마다 다르게 해야한다는 단점이 있습니다. 즉, 윈도우용으로 컴파일된 프로그램을 맥이나 리눅스에서는 실행시키지 못합니다.

반면 자바는 프로그래머가 짠 코드를 기계어가 아닌 '바이트코드'로 컴파일합니다. 이 바이트코드는 JVM(자바 가상 머신)이 해석할 수 있는 언어로, 자바 애플리케이션은 JVM이라는 가상머신에 의해 실행됩니다. 여기서 가상머신이란, 이름은 머신이지만 실제로는 자바 언어를 실행시킬 수 있는 프로그램을 의미합니다.
따라서, 윈도우, 맥, 리눅스 등 다양한 운영체제에서도 JVM이 자바 코드를 실행시키기 때문에 컴퓨터에 운영체제에 맞는 JVM만 있다면 다양한 환경에서 자바 애플리케이션을 실행시킬 수 있다는 장점이 있습니다. 즉, 윈도우용 JVM와 Mac용 JVM만 있으면 언제나 자바코드를 실행시킬 수 있다는 뜻입니다.
그리고 일반적으로 운영체제별로 JVM을 만드는 것이 코드를 운영체제별로 컴파일하는 것보다 훨씬 쉽습니다.
이것이 자바의 최대 장점인 "이식성"입니다.
그래서 자바를 개발할 때 하나의 슬로건으로
Write Once, Run Anywhere
라는, 일단 코드를 작성하기만하면 어디서나 동작하는 하나의 표어가 자바의 주된 특징이자 장점 중 하나입니다.
즉, 자바는 어디서나 JVM만 있으면 돌아갑니다. (가상머신을 사용하지 않는 다른 언어들은 운영체제에 따라서 작동되지 않을 수 있습니다.)
여기 부분은 나중에는 필요하지만 자바 언어를 처음 배우는 입장에서는 굳이 몰라도되는 부분입니다. "자바는 사용자의 컴퓨터가 실행시키는 것이 아니라 가상머신이 실행시키며, 이러한 특성 덕분에 어느곳에서나 자바 코드가 실행될 수 있다."라는 점만 알아두어도됩니다.
그리고 자바의 뛰어난 이식성 덕분에 많은 사람들이 자바를 주로 사용하며, 이는 두 번째 특징인 '개발하기 편하다'와도 연결됩니다.
2. 개발하기 편하다
개발자들은 "프레임워크"와 "라이브러리"라고하는, 개발을 쉽게 만들어주는 도구들을 많이 사용합니다.

자바는 순수한 자바 뿐 아니라 프레임워크와 라이브러리도 발달한 언어입니다.
웹 개발에서 광범위하게 쓰이는 "스프링(Spring)"이 대표적인 예시입니다. 이처럼 자바는 웹개발을 넘어서 다양한 분야에서 개발이 이루어지는 언어이기 때문에 많은 분야에서 다양한 프레임워크와 라이브러리들이 제공되고 있습니다. 이 도구들을 다양한 개발자들이 자유롭게 누릴 수 있다는 것이 자바의 또다른 큰 특징입니다.
또한 자바는 컴파일 과정에서 오류를 찾을 수 있기 때문에 프로그램이 실행되기 전부터 오류를 발생시켜 실시간으로 오류가 발생하는 것을 막아줍니다. 이는 초보자가 개발하기 편하다는 특징도 가지고 있습니다.
이렇게 자바 언어를 사용하면 자바개발을 도와주는 도구들과, 초보자들이 실수를 일으킬 가능성도 적어 안정적인 코드를 작성할 수 있습니다. 대표적인 예시로, C언어를 배울 때 나오는 "포인터"라는 초보자들에게 하나의 벽이 되는 부분이 있는데, 자바는 난이도에 대한 부담 없이 무난하게 배울 수 있다는 특징들이 있습니다.
3. 유지보수가 편하다
코드를 다 짜고 대중들에게 서비스를 공개하는 것이 끝이 아니라, 여러가지 문제점들이 남아있습니다. 개발과정에서 미처 확인하지 못했던 버그들도 고쳐야하고, 추가 기능이 필요한 경우 그 기능을 추가해 원래 서비스에 이어붙여야하기 때문입니다. 이를 '유지보수'라고합니다.
자바는 대표적인 '객체 지향 프로그래밍 언어'입니다. (객체와 객체 지향 프로그래밍은 나중에 다룰 예정입니다.)
이 객체 지향 프로그래밍의 가장 큰 특징은 코드가 잘 짜여진 경우 유지보수가 쉽고 자바 특유의 문법과 (이것도 나중에 나옵니다.) 함께 어우려지면 코드 중복을 줄이고 코드를 더 효율적으로 짤 수 있습니다. (이를 나중에는 '디자인패턴'이라고 부릅니다.)
이처럼 자바는 어디서든 실행되고, 개발 난이도가 높은 편이 아닐 뿐더러 다양한 도구가 제공되기 때문에 편리한 개발환경을 갖출 수 있다는 장점이 있습니다. 처음에는 아직 자바에 대해 잘 모르므로 그 장점을 파악하기 쉽지 않지만, 점차 자바를 배워나가면서 이 글을 읽다보면 무슨 내용인지 이해가 될 수 있고, 언젠가는 이러한 점 말고도 또다른 자바의 장점에 대해서도 터득할 수 있는 기회가 올 것입니다.
컬러잇 자바 첫 번째 시간으로는 자바를 왜 배워야하는지에 대해 다뤄봤습니다.
두 번째 시간에서는 본격적으로 자바 세계에 들어와 자바 세계의 근간인 '객체'가 무엇인지, 그리고 그 객체의 설계도, '클래스'에 대해서 알아보겠습니다. 자바 세계에 들어오시고 계시는 이 글을 읽고 있는 모든 분들 환영합니다!
'Language > ColorIt_Java' 카테고리의 다른 글
| [컬러잇자바] #6. 왜 main 메서드를 사용할까? (0) | 2026.02.02 |
|---|---|
| [컬러잇자바] #5. 왜 생성자를 사용할까? (0) | 2026.01.26 |
| [컬러잇자바] #4. 왜 메서드를 사용할까? (1) | 2026.01.19 |
| [컬러잇자바] #3. 왜 변수와 타입을 사용할까? (1) | 2026.01.12 |
| [컬러잇 자바] #2. 왜 객체를 사용할까? (1) | 2026.01.05 |
