2023.08.20 - WIL (JVM, 객체지향이란)

mjjin·2023년 8월 20일
0

이번 한 주 동안 나는
대부분의 시간을 객체지향 복습과 알고리즘 풀이로 보냈다.

객체지향을 이론적으로만 듣다보니, 도대체 언제 이것이 사용되는지
왜 사용해야 하는지 이해가 되지 않아

매니저님께 조언을 구했고, 간단한 것이라도 직접 만들어보기로 했다.
제시해주신 키워드는 "서점"이었다.
실제로 만들어보다 보니 모르는 것들이 속출하기 시작해
해당 부분은 다시 강의를 들으러 가거나, 인터넷에 찾아보고 있다.

오늘의 WIL는 내가 알고 있는
JVM, 객체지향프로그래밍에 대해서 작성해보려고 한다.

JVM (Java Virtual Machine)

자바는 한 번 작성하면 모든 곳에서 돌릴 수 있다는 장점을 가지고 있다.
그를 가능하게 만들어 주는 것이 JVM이다.

예시를 들자면
윈도우에서 실행할 수 있는 exe파일의 경우
리눅스에서 바로 실행이 불가능하다.
리눅스에서 실행하기 위해서는 몇 가지 복잡한 절차가 필요하다.
왜냐하면 각 운영체제끼리 설치된 라이브러리 및 프로그램의 통신방법이 서로 다르기 때문이다.

또 하나의 예시를 들자면,
한국인인 나에게 힌디어로 적힌 자바 자습서를 던져주는 것과 같다.
바로 읽을 수 없기 때문에 번역기를 통해 해당 자습서를 읽어야만 한다.

이처럼 서로 다른 운영체제에서 특정한 파일을 실행하기 위해서는
실행하려는 운영체제에게 맞는 언어로 컴파일 해주어야 한다.

자바는 class라는 파일로 생성이 되고,
JVM은 해당 파일을 각 운영체제에서 설치한 JVM이 설치된 운영환경에 맞게 컴파일 해준다.
덕분에 우리는 자바라는 언어를 실행될 운영체제에 맞춰 코딩을 하지 않아도 된다.

객체지향 프로그래밍(OOP)이란?

실제 어느 사물에 대입해 프로그래밍 하는 것.

객체 지향 프로그래밍의 특징

객체, 클래스

객체 : 현실 세계의 개념을 모델링 한 단위 (상태와 행동을 가짐)
클래스 : 객체의 설계도를 의미하며 객체의 상태와 행동을 정의

상속

클래스로부터 새로운 클래스를 만드는 것
새로운 클래스에 기존 클래스의 상태와 행동을 재사용

추상화

구체적인 세부 사항을 숨기고, 객체의 본질적인 특징만을 표현

캡슐화

객체의 상태를 외부로부터 보호
객체의 상태를 변경하는 것을 제한함

다형성

일반적으로 오버라이딩과 오버로딩을 사용하여
같은 이름의 메서드가 서로 다른 방식으로 동작하게 함.

객체 지향 프로그래밍의 장단점

장점으로는 코드 재사용성, 유지보수가 쉽다는 장점이 있다.
단점으로는 처리 속도가 느리고, 설계시 많은 시간과 노력이 필요하다.

0개의 댓글