작고 소중한 멋직 경험 하나로 일단 프론트엔드 개발자가 되어보자고 마음 먹었는데 AI 활용한 웹 개발과정을 무턱대고 등록했다가 그만 자바를 배우게 되었다. 프레임워크도 스프링을 이용한다고 하니 프론트엔드가 아니라 이건 완전 백엔드 개발자 양성 과정인데 왜 그냥 백엔드 과정이라고 아무도 말해주지 않았냐는 절규는 뒤로 하겠다. 일단 나랏돈으로 공부하는 것이기도 하고 여자가 칼을 뽑았으면 화끈하게 다 썰어버려야 하는 법이니 차근차근 자바를 배워보자.
아무래도 제대로 공부하기 전이라 고작 이 정도의 아주 기초적인 지식만을 갖고 있었다.
그럼 자바라는 프로그래밍 언어는 과연 어떤 언어이고, 어떻게 사용해야 할까?
Java란?
- 프로그래밍 언어 중에서도 C, C++과 같은 고급 언어에 속하는 언어!
- 1991년 썬 마이크로시스템즈의 엔지니어들이 개발한 오크(Oak)라는 언어에서 시작해서 인터넷의 발전 이후 인터넷에서 사용 가능하도록 발전시켜 1995년 자바(Java)라는 이름을 달고 발표된 언어이다.
Java의 특징
- 객체 지향 언어(OOP: Object Oriented Programming)
- 이식성 높은 언어 - OS에 구애받지 않고 범용으로 사용 가능
- 함수적 스타일 코딩 지원 - 람다식(Lambda Expressions) 지원!
- 메모리 자동 관리 - 객체 생성 시 자동으로 메모리를 할당해주고, 객체 사용이 끝나면 Garbage Collector가 사용하지 않는 객체 자동으로 삭제
- 다양한 애플리케이션 개발 가능
- 멀티 스레드 구현 가능 - 동시에 여러 가지 작업 및 대용량 작업 처리 빠르게 가능
- 동적 로딩(Dynamic loading) 지원
동적 로딩은 필요할 때마다 메모리를 확보하는 방식!
단점: 실행이 느리다 but 시스템 프로그램으로 커버 가능!
장점: 유지 보수 시 특정 객체만 쉽게 수정 및 교체 가능
cf) ↔ 정적 로딩(Static loading): 처음부터 메모리를 확보 후 실행해서 빠르지만 메모리를 많이 잡아 먹는다- 오픈 소스 라이브러리가 아주 풍부함!
참고로 개발자들은 최신판이 아니라 구판을 사용해서 개발한다고 한다. 최신판보다 오히려 안정적이기도 하고 모든 사람들이 최신판을 사용하진 않기 때문에.
멋직에서 파이썬과 장고로 웹 개발하는 방법을 배웠을 때 사용한 개발용 프로그램은 VSC(Visual Studio Code)라는 프로그램이었다. 윈도우즈 환경이라면 더더욱 VSC를 사용할 텐데 자바는 VSC가 아니라 이클립스라는 프로그램을 이용한다. JDK만 깔아둔 상태에서는 재미없는 메모장과 명령 프롬프트창만 봐야 한다(😢). 하지만 이클립스는 클래스나 메소드를 서로 다른 색으로 표시해서 구분하기 좋게 해주고, 오류가 있으면 콘솔창에 빨간 글씨로(!) 띄워준다든지 해서 우리 인간들이 개발하기 수월한 환경을 만들어준다.
이클립스는 설치해서 쓰는 프로그램이 아니라 포터블 프로그램처럼 그냥 압축파일을 다운받아서 실행파일(eclipse.exe)을 클릭해서 실행하기만 하면 되는 프로그램이다. 참고로 이클립스와 JDK는 버전을 맞춰야 한다.
ex) Java SE 11 - Eclipse IDE 2020-09
워크스페이스는 쉽게 말해 Java 프로젝트들을 보관할 폴더이다. 필요에 따라 워크스페이스는 여러 개 둘 수 있으며 이클립스 실행 시 필요한 워크스페이스를 열 수 있다.
Window ➡ Preference 창을 켜서 "encoding"을 검색하면 왼쪽 작은 창에 인코딩이 있는 메뉴들이 쭉 뜬다. 왼쪽에 뜬 메뉴들 모두 텍스트 인코딩을 UTF-8로 바꿔야 영어가 아닌 한글 등의 언어가 제대로 뜨게 할 수 있다.
Java 메뉴의 Compiler에서 Compiler compliance level이 내가 사용하는 JDK 버전과 맞는지도 확인해야 한다. 만약 내가 사용하는 JDK 버전과 다르게 되어 있다면 맞게 적용시켜 주자. 만약 설정을 했는데도 컴파일할 때 JDK 버전 때문에 에러가 난다면 이클립스랑 JDK 버전이 안 맞아서 그럴 가능성이 크므로, 둘 중 하나를 삭제해서 다른 것 하나랑 맞는 버전으로 다시 다운해서 사용해야 한다.
File ➡ New ➡ Java Project 순서로 누르면 새 자바 프로젝트를 생성하기 위한 창이 뜬다. Project name에 프로젝트명을 쓰고 Next>를 눌러주자.
Create module-info.java file의 체크박스에 체크되어 있는 것을 풀어주고 Finish를 누르면 프로젝트 생성 완료!
새로 생성한 프로젝트 폴더 위에 마우스 커서를 대고 마우스 오른쪽 버튼 클릭 ➡ New ➡ Class를 누르면 새 클래스를 생성할 창이 뜬다. 클래스 제목을 쓰고, public static void main(String[] args) 체크박스에 체크를 해주자. 그리고 Finish를 누르면 새 클래스 생성 완료!
🚩 public static void main(String[] args) 체크박스에 체크해 주면 일어나는 일
public class FirstJava { public static void main(String[] args) { } }
- 기본 코드를 자동으로 생성해준다!
이렇게 Java 개발의 발걸음을 떼는구나... 새로운 언어와 프로그램을 써보니까 두근두근 재미있으면서도 사실 한시라도 빨리 리액트나 자바스크립트 등등 프론트엔드 분야를 공부해야 하는 것 아닌가? 하는 생각에 그만두고 다른 교육과정을 알아보는 게 맞는지, 그냥 배워두면 어쨌든 쓸 데는 다 있는데다 백엔드를 제대로 해보질 않았으니 일단 해보고 생각하는 게 맞는지 모르겠지만 어디 고민을 토로할 곳이 없다. 근데 좀 더 후자에 가깝긴 하다. 아직 아장아장 걸음마 뗀 수준이기도 하고, 프론트엔드를 지망하더라도 아예 백엔드 분야를 모르면 내가 이해하는 영역이 적어서 서비스 개발에 오히려 치명적일 것 같기도 하다. 그리고 여자가 칼을 뽑았으면 다 썰어야 된다. 일단 시작한 거 눈 딱 감고 열심히 달려봐야지.