객체지향
-
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과 같은 중간언어를 해석해주는 추상화(여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출..
-
01-2. JPA 소개JPA 2020. 12. 29. 23:15
1. 지연 로딩 Member와 Order가 서로 연관 되어있다고 했을 때 Member member = jpa.find(Member.class, memberId); //처음 조회 시점에서 SELECT MEMBER SQL 수행 Order order = member.getOrder(); order.getOrderDate(); //Order를 사용하는 시점에서 SELECT ORDER SQL 수행 위의 코드는 지연 로딩을 사용하는 코드이다. 여기서 마지막 줄의 order.getOrderDate() 같이 실제 Order 객체를 사용하는 시점에 JPA는 데이터베이스에 ORDER 테이블을 조회한다. Member를 사용할 때마다 Order를 함께 사용하면, 이렇게 한 테이블씩 조회하는 것보다는 Member를 조회하는 시..
-
01-1. JPA 소개JPA 2020. 12. 1. 21:52
1.1 SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스는 가장 대중적이고 신뢰할 만한 안전한 데이터 저장소다. 그래서 자바로 개발하는 애플리케이션은 대부분 관계형 데이터베이스를 데이터 저장소로 사용한다. 데이터베이스에 데이터를 관리하려면 SQL을 사용해야 한다. 자바로 작성한 애플리케이션은 JDBC API를 사용해서 SQL을 데이터베이스에 전달한다. 1.1.1 반복, 반복 그리고 반복 SQL을 직접 다룰 때의 문제점을 알아보기 위해 자바와 관계형 데이터베이스를 사용해서 회원 관리 기능을 개발해보자. 회원 테이블은 이미 만들어져 있다고 가정하고 회원을 CRUD하는 기능을 개발해보자. 1. 회원 객체 만든다, 2. 회원 객체를 데이터베이스에 관리할 목적으로 회원용 DAO를 만든다. 3. 2번에서 ..
-
고급 객체지향 프로그래밍(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. 소프트웨어 위기와 객체 기술 소프트웨어 위기는 소프트웨어 기술 발전 속도가 컴퓨터 하드웨어 기술 발전 속도보다 뒤떨어짐으로써 발생되는 문제이다. 즉, 하드웨어 품질은 좋아지면서 가격은 성능대비 낮아지고 있는데, 소프트웨어는 품질이 크게 개선되지 않으면서 오히려 개발 및 운영 비용은 증가하고 있다는 것이다. 소프트웨어 위기의 두가지 원인은 점점 증가하는 소프트웨어 복잡도와 높은 비용이다. 소프트웨어의 개발 요구사항은 복잡해져 가는데, 이 복잡도를 효과적으로 해결할 수 있는 기술이 크게 발전하지 못하면서, 개발 및 운영 비용이 증가하는 것이다. 소프트웨어 위기 문제를 해소하기 위해 개..