WIL - 항해99 2주차

스브코·2021년 11월 14일
0

객체 지향 프로그래밍(Object-Oriented Programming)이란?[출처]

객체 지향 프로그래밍은 문제를 여러개의 객체 단위로 나눠 작업하는 방식

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

어제 공부했던 객체 지향 언어의 장점과 같다

  • 코드의 재사용성이 높다.

  • 코드의 관리가 용이하다.

  • 신뢰성이 높은 프로그래밍을 가능하게 한다.

객체란 물리적으로 존재 하거나, 추상적인것 중에서 자신의 속성과 동작을 가지는 것이며 속성과 메소드로 구성된 자바 객체로 모델링 된다.

객체간의 관계

집합관계 - 완성품과 부품의 관계

사용관계 - 객체가 다른 객체를 사용하는 관계

상속 관계: 종류 객체와 국체적인 사물 객체 관계

객체 지향의 특징 4가지(추상화, 캡슐화 상속, 다형성) [출처]

  1. 추상화(Abstraction)

    객체에서 공통된 속성과 행위를 추출하는것

    ex) 무기 클래스 - 칼 클래스, 삽 클래스, 총 클래스, 활 클래스

  2. 캡슐화(encapsulation)

    연관 있는 변수와 메소드를 묶어주는 작업

    접근 제어 지시자(public, private, protected)를 통해 정보 은닉을 해주고, 프로그램이 외부 클래스에 의존적이지 않게 정보은닉을 통해 결합도를 낮추고 응집도를 높여 주어서 변경이나 오류에 취약해지지 않도록 한다.

  3. 상속(Inheritance)

    부모클래스의 속성과 기능을 이어 받아 사용하는것

    중복 기능을 반복하여 작업하지 않고 작업을 할수 있게 해준다.

  4. 다형성(Polymorphism)

    상속 받은 기능을 다형성을 통해 변경하여 사용할 수 있다.

    프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 동일한 변수, 함수명 등이 다양한 방법으로 기능하는 것을 말하며 오버라이딩, 오버로딩이라 형태로 제공된다.

JVM 이란?[출처]

Java Virtual Machine의 줄임말로 Java Byte Code를 OS에 맞게 해석해주는 역할을 한다. Java Compiler가 .java파일을 Java byte code로 변환해주면 기계어가 아닌 Java byte code를 OS가 이해할수 있도록 JVM에서 해석 해준다. Byte Code는 JVM 위에서 OS 상관없이 실행되기 때문에 OS에 종속적이지 않고 자바 파일을 하나만 만들면 어느 디바이스든 JVM 위에서 실행 할 수 있는 장점을 가지고 있다.

JVM의 메모리 구조[출처 - 항해 99 13일차 TIL]

3가지 주요 영역(method area, call stack, heap)

메서드 영역

프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일을 읽어서 분석하여 클래스에 대한 정보를 이 곳에 저장한다. 이 때, 그 클래스의 클래스 변수도 이 영역에 함께 생성된다.

인스턴스가 생성된느, 공강, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다.인스턴스 변수들이 생성되는 곳이다.

호출 스택

호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 작업을 마치면 할당되었던 메모리공간은 반환되어 비워진다.

호출 스택의 특징

  • 메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당받는다.
  • 메서드가 수행을 마치고 나면 사용했던 메모리를 반환하고 스택에서 제거된다.
  • 호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드다.
  • 아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드이다.

회고

이번주에는 코딩테스트 연습을 많이 하여서 문제 풀이를 거의 70문제 넘게 풀이를 하였는데 집중해서 그룹 스터디로 진행하니 실력이 는게 느껴졌다. 아직 여전히 가야할 길은 멀지만, 혼자서 거의 100문제를 풀고도 실력이 는게 느껴지지 않았던 지난 세월보다는 이번 한주는 확실히 뿌듯했다. 이번주는 아쉬운점은 특별히 없었다. 커리큘럼에 대한 불만족으로 몇몇 수강생들은 아쉬운 한주라고 했지만, 전공자 입장에서는 만족스런 한주 였다. 다음주 주특기 교육이 기대된다.

profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...

0개의 댓글