[TIL] Java 1일차 1

minami·2021년 1월 27일
0

Java

목록 보기
1/11

작고 소중한 멋직 경험 하나로 일단 프론트엔드 개발자가 되어보자고 마음 먹었는데 AI 활용한 웹 개발과정을 무턱대고 등록했다가 그만 자바를 배우게 되었다. 프레임워크도 스프링을 이용한다고 하니 프론트엔드가 아니라 이건 완전 백엔드 개발자 양성 과정인데 왜 그냥 백엔드 과정이라고 아무도 말해주지 않았냐는 절규는 뒤로 하겠다. 일단 나랏돈으로 공부하는 것이기도 하고 여자가 칼을 뽑았으면 화끈하게 다 썰어버려야 하는 법이니 차근차근 자바를 배워보자.

☕ Java가 뭘까?

내가 알았던 Java

  • 자바(Java)는 현재 정말 많은 개발자들이 사용하고 있는 언어 중 하나!
  • 특히 백엔드 개발자라면 거의 필수적으로 할 줄 알아야 하는 언어이다.
  • 스프링(Spring), 스프링 부트(Spring Boot)와 함께 웹 개발에 많이 쓰인다.
  • 자바스크립트(JavaScript)랑 이름이 비슷하지만 둘은 다른 언어이다.
  • 객체 지향 프로그래밍 언어이다.
  • 오라클이라는 기업에서 소유하고 배포하는 언어이다.

아무래도 제대로 공부하기 전이라 고작 이 정도의 아주 기초적인 지식만을 갖고 있었다.
그럼 자바라는 프로그래밍 언어는 과연 어떤 언어이고, 어떻게 사용해야 할까?

Java 소개와 특징

Java란?

  • 프로그래밍 언어 중에서도 C, C++과 같은 고급 언어에 속하는 언어!
  • 1991년 썬 마이크로시스템즈의 엔지니어들이 개발한 오크(Oak)라는 언어에서 시작해서 인터넷의 발전 이후 인터넷에서 사용 가능하도록 발전시켜 1995년 자바(Java)라는 이름을 달고 발표된 언어이다.

Java의 특징

  • 객체 지향 언어(OOP: Object Oriented Programming)
  • 이식성 높은 언어 - OS에 구애받지 않고 범용으로 사용 가능
  • 함수적 스타일 코딩 지원 - 람다식(Lambda Expressions) 지원!
  • 메모리 자동 관리 - 객체 생성 시 자동으로 메모리를 할당해주고, 객체 사용이 끝나면 Garbage Collector가 사용하지 않는 객체 자동으로 삭제
  • 다양한 애플리케이션 개발 가능
  • 멀티 스레드 구현 가능 - 동시에 여러 가지 작업 및 대용량 작업 처리 빠르게 가능
  • 동적 로딩(Dynamic loading) 지원

    동적 로딩은 필요할 때마다 메모리를 확보하는 방식!
    단점: 실행이 느리다 but 시스템 프로그램으로 커버 가능!
    장점: 유지 보수 시 특정 객체만 쉽게 수정 및 교체 가능
    cf) ↔ 정적 로딩(Static loading): 처음부터 메모리를 확보 후 실행해서 빠르지만 메모리를 많이 잡아 먹는다

  • 오픈 소스 라이브러리가 아주 풍부함!

💻 Java 개발 환경 구축

📌 개발 환경 구축 전에 알아두기

  1. 자바 파일(.java)은 JVM(Java Virtual Machine) 즉, 가상 머신으로만 실행할 수 있다. 전세계에서 아마 99%가 사용하고 있을 윈도우즈나 맥 같은 OS에서는 자바를 실행할 수가 없기 때문이다. JVM으로 자바를 실행하기 때문에 오히려 OS에 구애받지 않는 범용성을 갖고 있다고 할 수도 있다.
  2. 자바 개발을 하려면 자바 개발 도구인 JDK를, 이미 개발된 자바 프로그램을 실행만 하려면 JVM과 라이브러리만 있는 자바 실행 환경인 JRE를 다운하자.

👉이제 자바 설치하러 가자!

참고로 개발자들은 최신판이 아니라 구판을 사용해서 개발한다고 한다. 최신판보다 오히려 안정적이기도 하고 모든 사람들이 최신판을 사용하진 않기 때문에.

📌 자바 개발을 위한 이클립스 설치

멋직에서 파이썬과 장고로 웹 개발하는 방법을 배웠을 때 사용한 개발용 프로그램은 VSC(Visual Studio Code)라는 프로그램이었다. 윈도우즈 환경이라면 더더욱 VSC를 사용할 텐데 자바는 VSC가 아니라 이클립스라는 프로그램을 이용한다. JDK만 깔아둔 상태에서는 재미없는 메모장과 명령 프롬프트창만 봐야 한다(😢). 하지만 이클립스는 클래스나 메소드를 서로 다른 색으로 표시해서 구분하기 좋게 해주고, 오류가 있으면 콘솔창에 빨간 글씨로(!) 띄워준다든지 해서 우리 인간들이 개발하기 수월한 환경을 만들어준다.

👉이클립스도 다운하러 가자!

이클립스는 설치해서 쓰는 프로그램이 아니라 포터블 프로그램처럼 그냥 압축파일을 다운받아서 실행파일(eclipse.exe)을 클릭해서 실행하기만 하면 되는 프로그램이다. 참고로 이클립스와 JDK는 버전을 맞춰야 한다.
ex) Java SE 11 - Eclipse IDE 2020-09

📌 Eclipse에서의 Java 개발 환경 세팅

1. 워크스페이스 생성 및 지정

워크스페이스는 쉽게 말해 Java 프로젝트들을 보관할 폴더이다. 필요에 따라 워크스페이스는 여러 개 둘 수 있으며 이클립스 실행 시 필요한 워크스페이스를 열 수 있다.

2. Preference 셋팅

Window ➡ Preference 창을 켜서 "encoding"을 검색하면 왼쪽 작은 창에 인코딩이 있는 메뉴들이 쭉 뜬다. 왼쪽에 뜬 메뉴들 모두 텍스트 인코딩을 UTF-8로 바꿔야 영어가 아닌 한글 등의 언어가 제대로 뜨게 할 수 있다.

Java 메뉴의 Compiler에서 Compiler compliance level이 내가 사용하는 JDK 버전과 맞는지도 확인해야 한다. 만약 내가 사용하는 JDK 버전과 다르게 되어 있다면 맞게 적용시켜 주자. 만약 설정을 했는데도 컴파일할 때 JDK 버전 때문에 에러가 난다면 이클립스랑 JDK 버전이 안 맞아서 그럴 가능성이 크므로, 둘 중 하나를 삭제해서 다른 것 하나랑 맞는 버전으로 다시 다운해서 사용해야 한다.

3. 새 Project 생성

File ➡ New ➡ Java Project 순서로 누르면 새 자바 프로젝트를 생성하기 위한 창이 뜬다. Project name에 프로젝트명을 쓰고 Next>를 눌러주자.

Create module-info.java file의 체크박스에 체크되어 있는 것을 풀어주고 Finish를 누르면 프로젝트 생성 완료!

4. 새 Class 생성

새로 생성한 프로젝트 폴더 위에 마우스 커서를 대고 마우스 오른쪽 버튼 클릭 ➡ 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 개발의 발걸음을 떼는구나... 새로운 언어와 프로그램을 써보니까 두근두근 재미있으면서도 사실 한시라도 빨리 리액트나 자바스크립트 등등 프론트엔드 분야를 공부해야 하는 것 아닌가? 하는 생각에 그만두고 다른 교육과정을 알아보는 게 맞는지, 그냥 배워두면 어쨌든 쓸 데는 다 있는데다 백엔드를 제대로 해보질 않았으니 일단 해보고 생각하는 게 맞는지 모르겠지만 어디 고민을 토로할 곳이 없다. 근데 좀 더 후자에 가깝긴 하다. 아직 아장아장 걸음마 뗀 수준이기도 하고, 프론트엔드를 지망하더라도 아예 백엔드 분야를 모르면 내가 이해하는 영역이 적어서 서비스 개발에 오히려 치명적일 것 같기도 하다. 그리고 여자가 칼을 뽑았으면 다 썰어야 된다. 일단 시작한 거 눈 딱 감고 열심히 달려봐야지.

profile
함께 나아가는 개발자💪

0개의 댓글