Java study 01

go·2024년 7월 15일

Java study

목록 보기
1/4
post-thumbnail

자바란 ?

자바란 썬 마이크로시스템즈의 제임스 고슬링과 연구원들이 개발한 객체지향 프로그래밍 언어이다.
Java는 특히 백엔드 분야에서 가장 많이 쓰인다.

자바로 무엇을 할 수 있을까 ?

🆗 자바로 할 수 있는 일은 아래와 같다.

  1. 웹 프로그래밍
    : 게시판이나 방명록을 웹 프로그램 이라고 한다. 자바는 웹 프로그램 개발에 널리 사용되며 백엔드 개발에 특히 강점이 있다. 예를들어 서블릿, JSP, 스프링 프레임워크 등과 같은 기술로 웹 프로그램을 만들 수 있다.

  2. 안드로이드 애플리케이션 개발
    : 자바는 안드로이드 애플리케이션 개발을 할 때 사용하는 메인 언어이다.

  3. 게임 개발
    : 자바를 이용해 게임 개발도 가능하다. 대표적인 자바 라이브러리로는 LWJGL, 자바 프레임워크로는 libGDX가 있다.

  4. 데이터베이스 처리
    : 데이터를 저장하고 조회하기 위해서는 데이터베이스 시스템이 반드시 필요하다. 자바는 이러한 데이터베이스 시스템에 연결하여 관리하는 데 매우 적합한 언어이다.

  5. 빅 데이터 및 분산처리
    : 빅 데이터는 대규모 복잡한 데이터를 의미하며, 전통적인 데이터 처리 방식으로는 분석이 어렵지만 이를 효과적으로 처리하기 위해서 분산 처리 기술이 사용된다. 자바는 하둡, 스파크와 같은 빅 데이터 처리에 필요한 도구와 프레임워크를 제공한다.

🆖 자바로 할 수 없는 일은 아래와 같다.

  1. 시스템 프로그래밍
    : 시스템을 개발에는 C,C++ 같은 언어가 더 적합하다.

  2. 높은 성능을 요구하는 프로젝트
    : 자바는 가비지 컬렉션과 JIT 컴파일러 같은 기능 때문에 실행속도가 다소 느릴 수 있어 고성능이 중요한 분야에서는 C,C++ 또는 Rust와 같은 언어가 적합하다.

가비지 컬렉션 : 프로그램에서 사용되지 않는 메모리를 자동으로 회수하는 메모리 관리 기법
JIT컴파일: 프로그램 실행 시점에 바이트 코드를 기계어로 변환하는 기술

  1. IOS 애플리케이션 개발
    : 자바는 안드로이드 애플리케이션 개발의 주요 언어이지만 IOS 애플리케이션 개발에 제한적이다. IOS 개발은 주로 스위프트 또는 오브젝티브-C를 사용한다.

main 메서드 이해하기

class 앞에 사용한 public 키워드는 자바 프로그래밍 할 때 사용하는 접근 제어자 인데, class명 앞에 사용하면 조금 다른 의미로 쓰인다. HelloWorld.java 라는 이름으로 자바 파일을 작성하면 파일은 하나이지만 그 안에 클래스를 여러 개 작성할 수 있다. 다만 클래스명과 파일명이 같으면 그 class 앞에 public 을 붙여 주어야 한다는 관례적인 규칙이 있다.

앞서 작성한 HelloWorld 클래스를 실행해 보자. HelloWorld 클래스를 실행하려면 main 메서드를 작성해야한다.

메서드는 함수와 동일한 개념, 클래스 내의 함수는 보통 메서드 라고한다.
자바는 모든 것이 클래스 기반이므로 자바에서 사용하는 함수는 모두 메서드 라고한다.

main 메서드를 추가한 모습이다.

  • public : 메서드의 접근 제어자로, 누구나 이 메서드에 접근할 수 있다는 의미이다.
  • static : 메서드에 static이 지정되어 있으면 이 메서드는 인스턴스를 생성하지 않아도 실행할 수 있다는 의미이다.
  • void : 메서드의 리턴값이 없음을 의미한다.(void는 '텅 빈'을 의미한다.)
  • String[]: String은 문자열을 나타내는 자바의 자료형이다.([]는 값이 여러 개로 이루어진 배열이라는 것을 의미한다.)
  • args : String[] 자료형의 변수명이다.
  • System.out.println : 표준 출력으로 데이터를 보내는 자바의 내장 메서드로 문자열을 화면에 출력한다.

🔽출력화면

자바의 8가지 특징

  1. 간단하다.
    : 자바는 고급 언어에 들어있는 여러 요소 중에서 불필요하다고 판단되는 것을 모두 제거했다.

  2. 객체 지향적이다.
    : 자바는 숫자(int,float,long 등)나 논릿값(true,false)를 제외하면 거의 모두 객체로 구성된다. 실제로 자바는 Object 클래스에서 모든 클래스를 파생한다.

  3. 인터프리터 언어이다.
    : 자바는 정확하게 말하면 컴파일 언어인 동시에 인터프리터 언어이다. 인터프리터 언어는 코드를 한 줄씩 작성하고 실행하여 결과를 바로 확인할 수 있다.

  4. 강력하다.
    : 자바는 포인터 연산을 지원하지 않는다. 이는 잘못된 주소를 가리킬 가능성을 사전에 없앤 것이다. 자바는 모든 메모리 접근을 자바 시스템이 관리하고 제한하며, 또한 예외 처리까지 하므로 시스템 붕괴될 우려가 없다.

  5. 안전하다.
    : 자바는 프로그램을 작성할 때 자료형 타입에 매우 민감하다. 그래서 자바는 컴파일만 되면 실행할 때 오류 발생률이 다른 언어에 비해 현저히 낮다.

  6. 플랫폼이 독립적이다.
    : 자바의 실행 파일은 이전 코드(클래스) 이므로 자바 런타임을 설치한 시스템에서는 어디서나 실행할 수 있다. 즉, 자바로 작성한 프로그램이라면 운영체제와 상관없이 어디서든 실행할 수 있다는 뜻이다.

  7. 멀티 스레드를 지원한다.
    : 멀티 스레드를 지원하면 프로그램 단위가 같은 스레드를 동시에 수행할 수 있다. 자바는 멀티 프로세스 하드웨어를 지원하도록 설계되었으므로 멀티 CPU 시스템에서 효율이 높다.

  8. 동적이다.
    : 자바 인터페이스를 이용하면 모듈을 갱신할 때, 다른 모듈까지 모두 갱신할 필요가 없다. 인터페이스가 인스턴스 변수와 도구의 실행문을 모두 배제한 채 객체 간의 상호 작용을 정의하기 때문이다.


✨ 느낀점

국비학원을 다닌지 두달이 조금 넘었다. 비전공자인 나는 학원 수업에 따라가기에만 바빠서 제대로 복습하는 습관도 가지지 않은 채 집에 오면 늘어지는 일상만 반복했다. 그렇게 세미프로젝트1이 어떻게 지났는지 모를정도로 시간이 금방 지나갔고 세미프로젝트2를 앞두고 있는 시점이다. 세미프로젝트1 에서는 팀장을 맡았음에도 불구하고 다른 능력있는 조원들의 도움을 많이 받아서 조금 무능력한 팀장이 된 것 같아 우울하기도 했다.(결과적으로는 좋은 결과물을 만들어냈다) 그래서 세미프로젝트2 에서는 내가 직접 다른 조원들에게 도움을 주는 역할을 하고 싶다고 생각했다. 그러기 위해서는 아직 기초가 부족하다고 판단되어 '점프 투 자바' 라는 책으로 기초를 다시 잡기로 했다. '점프 투 자바'로 복습한 첫 날 이지만 책이 술술 읽히고 설명이 재미있게 되어있어서 나름 흥미를 가지고 공부를 하고있다. 또 한번 배웠던 내용이라 그런지 잘 읽히는게 즐겁다. 아예 자바를 모르는 사람들에게도 추천할 수 있는 책인 것 같다. (광고X 내돈내산O) 열심히 복습해서 세미프로젝트2 에서는 더 좋은 퀄리티의 결과물을 내고싶다! 화이팅!

📖 출처 : 점프 투 자바

profile
안녕하세요!

0개의 댓글