객체지향
-
2주차 과제: 자바 데이터 타입, 변수 그리고 배열객체지향 2021. 1. 19. 23:57
목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입, 영어로 primitive 또는 원시 타입 또는 기본형 타입 이라고 한다. 우선 타입이란 데이터 타입을 줄인 말로 자료형 이라고 한다. 그럼 데이터 타입이란 무엇일까? 컴퓨터 관점에서 타입은 데이터가 메모리에 어떻게 저장될 것이고 또 어떻게 다뤄져야 하는지에 대해 알려주는 것이다. 즉, 데이터 타입을 보면 컴퓨터에서..
-
1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.객체지향 2021. 1. 17. 20:09
목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 1. JVM이란 무엇인가 - Java Virtual Machine '자바 가상 머신'을 뜻하는 말로 바이트코드를 실행하는 주체 - 한번 작성해서 어디서든 실행할 수 있다는 말로, 자바 코드로 작성한 프로그램은 실행할 환경에 독립적으로 실행 - 정해진 약속(Java byte code)만 지켜지면 JVM은 자신의 환경(OS)에 맞게 Java byte code를 실행 JVM과 같은 중간언어를 해석해주는 추상화(여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출..
-
고급 객체지향 프로그래밍(3)객체지향 2020. 1. 20. 21:33
3. 캡슐화 3.1. 객체의 캡슐화 원칙 객체지향 패러다임의 캡슐화는 연관된 속성들과 연관된 오퍼레이션들을 하나의 단위인 객체로 묶어서 정의하는 원칙이다. 객체가 특정 기능을 제공하는 데 필요한 속성 및 오퍼레이션을 한 캡슐에 모아서 정의해야 한다. 3.2. 객체안의 관련성 종류 객체는 관련된 속성들과 오퍼레이션들을 모아놓은 캡슐인데, 여기서 관련이 있다는 것이 구체적으로 무엇을 의미하는지 살펴보자 3.2.1 속성들 간의 관련성 객체는 관련이 있는 여러 속성들로 구성되어야 하는데, 이 속성들 간의 관련성은 두 가지 형태로 나타낸다. * 유형 1 상태 유지 완전성 관점의 관련성 객체는 그 상태 유지를 위해 필요한 속성들의 완전한 집합을 가져야 한다. 예를 들면 원이란 도형 객체의 상태를 유지하기 위해서 x..
-
고급 객체지향 프로그래밍(2)객체지향 2020. 1. 17. 23:04
2. 객체 2.1. 객체의 정의 객체는 객체지향 패러다임에서 프로그램을 구성하는 기본 단위이다. 개발하려는 목표 시스템의 업무 영역에 실제로 존재하는 어떤 사물, 개체 또는 개념이 바로 객체가 된다. - Person: 인사관리 시스템에 사용되며, 조직의 직원을 나타내는 객체 - Car: 자동차 생산관리 시스템에 사용되며, 생산된 자동차를 나타내는 객체 - Book: 서점의 도서판매 시스템에 사용되며, 판매할 책을 나타내는 객체 객체지향 프로그램은 여러 개의 객체들로 구성되어 있으며, 각 객체는 상태(State) 정보를 기록 유지하기 위한 속성들과 이 속성들을 처리하는 오퍼레이션 집합으로 정의된다. 즉, 각 객체는 관련성이 높은 속성들과 오퍼레이션들을 포함하고 있다. 잘 설계된 객체는 재사용의 기본 단위가..
-
고급 객체지향 프로그래밍(1)객체지향 2020. 1. 17. 21:14
객체지향의 개념을 배워보기에 앞서 객체지향 프로그래밍이 어떻게 생겨나게 되었고 이를 왜 사용하는지에 대해서 알아보자 1.1. 소프트웨어 위기와 객체 기술 소프트웨어 위기는 소프트웨어 기술 발전 속도가 컴퓨터 하드웨어 기술 발전 속도보다 뒤떨어짐으로써 발생되는 문제이다. 즉, 하드웨어 품질은 좋아지면서 가격은 성능대비 낮아지고 있는데, 소프트웨어는 품질이 크게 개선되지 않으면서 오히려 개발 및 운영 비용은 증가하고 있다는 것이다. 소프트웨어 위기의 두가지 원인은 점점 증가하는 소프트웨어 복잡도와 높은 비용이다. 소프트웨어의 개발 요구사항은 복잡해져 가는데, 이 복잡도를 효과적으로 해결할 수 있는 기술이 크게 발전하지 못하면서, 개발 및 운영 비용이 증가하는 것이다. 소프트웨어 위기 문제를 해소하기 위해 개..