프로세스 컴퓨터의 CPU가 프로그램을 실행하기 위해서는 메모리에 load해야한다. 이때 메모리에 load된 프로그램을 프로레스라고 한다. 멀티 태스킹 OS가 여러개의 프로세스들을 운영하는데, 이 여러개의 프로세스들이 동시에 동작하는 상태를 멀티 태스킹이라고 한다. 하지만 정말 '동시에' 실행하는 것이 아니고, OS가 시분할(TIme Share)을 통한 동시 실행을 지원한다. Context 스위칭 Context는 CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들이다. A프로세스를 실행하다가 B프로세스를 실행하고 다음엔 C프로세스를 실행하다 A프로세스를 이어서 실행한다. 이때 그 전에 실행했던 부분에서 그대로 이어가기 위해 기억하는 문맥을 Context라고 하고 다음, 또는 새로운 프로세스로 넘..
자바에서 윈도우를 만들기위해 사용할 수 있는 API에는 총 4가지가 있다. AWT(Abstract Winodw Tookit) -> Swing -> JavaFX -> Android(모바일) 자바 초기에 AWT를 사용, 그 이후 개선해서 나온 것이 Swing, RIA가 나오면서 썼던 JavaFX가 있다. 자바가 제공하는 플랫폼을 이용해서 프로그램을 만드는 경우가 많지 않다. 따라서 위의 플랫폼들을 실무에서 사용할 일은 거의 없다. 하지만 코드연습을 위해 이제부터 위의 플랫폼을 이용해 게임을 만들어보겠다. 아래와 같이 그림이 그려진 화면에는, 사실 우리 눈에는 보이지 않은 좌표체계가 있다. 이러한 좌표체계를 우리는 그래픽시스템 이라고 한다. 시간이 흐르면서 우리가 사용하는 디바이스의 성능이 점점 더 발전하면서..
객체분석 내가 만드는 세상의 주체 또는 대상을 선별하기 메소드 분석 시나리오세서 메서드 식별하기 결과물 클래스 다이어그램 동기 : 순서를 갖는 형식,
플랫폼 : 기반 Java 플랫폼은 Java 프로그래밍 언어로 작성된 응용 프로그램을 실행하는 데 도움이되는 소프트웨어 또는 프로그램 모음( Java 플랫폼은 Java 컴파일러, 라이브러리 세트 및 실행 엔진으로 구성) Java 플랫폼은 다음 구성 요소로 구성됩니다. 자바 언어 JDK (Java Development Kit) JRE (Java Runtime Environment) 자바 컴파일러 자바 가상 머신 (JVM) 위의 주요 구성 요소 외에도 Java 플랫폼에는 Java 응용 프로그램을 효율적으로 실행하는 데 필요한 가비지 수집기, 라이브러리 집합 및 기타 추가 구성 요소와 도구가 포함되어 있습니다. API : 플랫폼을 사용하기 위한 간접 도구(어플리케이션을 프로그래밍하기 위한 인터페이스) 우리가 직..
인터페이스란? *약속된 규칙 *객체를 분리해놓고 나중에 다시 결합하기 위한 약속 즉, 분리와 결합을 위한 하나의 약속 *메서드 인터페이스 *람다 익스프레션 인터페이스 언제 만드나? 1. 전문성을 가지고 협업할대 2. 혼자 일할때에도 나누어서 일하고 싶을때 ->재사용하기 위해서 인터페이스를 구현하는 위치 1. 새로운 클래스에 구현 =>전체 구성요소 중에서 통으로 구현해야 할때 이용 => 메서드 자체를 통으로 구현해 2. 기존 클래스에 구현 문제점 : 구현해야할 메소드와 동일한 이름의 메소드가 있어서... ->메서드 일부분을 구현해야 할때 이용 3.중첩 클래스에 구현 3.1인스턴스 중첩 클래스 -인스턴스 this를 두개를 받는다. -자신의 this -outer객체의 this A>B(B가 inner일 때) =..
추상화 : 무조건 자식이 구현해야하는 수직적인 관계, 인터페이스 : 자식이 아니어도 누군가가 대신 구현해서 꽂아넣어 그것을 이용할 수 있는 수평적인 관계 다형성 : 인터페이스를 서로 다르게 구현한 구현체들을 필요할 때마다 꽂아(결합)넣을 수 있는 것. 어떤 구현체를 꽂아 넣느냐에 따라 출력이 달라지는 것. *추상화를 하게 되면 자식클래스가 늘어나게 되고, 즉 클래스의 개체수가 점점 늘어나게 된다. *하지만 인터페이스도 마찬가지로 구현체를 만들게되면 클래스의 개체수가 늘어나게 된다. 그럼에도 불구하고 인터페이스를 쓰는 이유는? 인터페이스의 구현체를 무조건 새로운 클래스에 구현할 필요 없다. 메인 프로그램의 inner class를 인터페이스의 구현체로써 생성이 가능하다(중첩 클래스,nested class) ..
추상화 : 여기저기 퍼져있는 코드들의 공통점으로 뽑아내는것 추상화 = 코드 집중화 코드 집중화을 해야하는 이유 1. 유지보수를 위해 추상화 : 코드 집중화(X) -> 서비스 집중화(캡슐 단위의 공통 서비스) 추상클래스 특징 *객체로 만들 수 없다. 추상 클래스를 만드는 두가지 상황 1.개체들의 공통서비스를 집중화 공통서비스화로 얻을 수 있는 장점 -코드 집중화 -일괄처리 2.향후 제품을 위한 프레임워크 공통서비스화로 얻을 수 있는 장점 -코드 생산성 향상으로 대량 생산이 가능 추상클래스 => 공통분모클래스 추상메서드 ->공통 자료형이다 추상메서드는 무조건 구현해야한다.