본문 바로가기

전체 글89

JAVA의 OOP - 객체, 인스턴스, 클래스 책 소개 현재 읽고 있는 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 중의 일부를 적은 내용입니다. 추상화는 모델링이다 추상화란 구체적인 것을 분해해서 관심 영역에 있는 특성만을 가지고 재조합하는 것이다. 즉, 모델링이다. 클래스 설계에서 추상화가 사용되며, 객체 지향에서 추상화의 결과는 클래스이다. 객체, 인스턴스, 클래스 객체 세상에 존재하는 유일무이한 사물이다. 인스턴스 클래스를 통해 object를 만들었다는 것을 강조할 때 사용한다. 클래스 분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념이다 => 객체는 유일무이하게 존재하는 실체로 속성에 값을 가지며, 클래스는 개념이자 분류체계로 속성에 값을 가질 수 없다. 하지만 만약 쥐의 꼬리는 1개, 승용차의 바퀴는 4개처럼 항상 같은 .. 2022. 2. 3.
JAVA의 OOP - 메서드의 블랙박스화, 전역변수 비권장이유 책 소개 현재 읽고 있는 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 중의 일부를 적은 내용입니다. 메서드의 블랙박스화 메서드 간 값을 전달하거나 반환할 수 있는 방법은 메서드를 호출할 때의 인자와 메서드가 종료될 때의 반환 값을 통해서만 가능하다. 다시 말하자면, 메서드들이 서로 내부의 변수들을 확인할 수 없다. 물론, static을 사용하여 전역 변수를 사용하면 메서드 간 값을 공유할 수 있지만, 가급적 지역변수를 사용하는 것이 좋다. 전역 변수는 쓰지말자 T메모리는 스택, 힙, static영역 3가지로 구분된다. static: 클래스들의 공간 스택: 메서드들의 공간 힙: 객체들의 공간 static이 붙은 변수로 코드 어느 곳에서나 접근할 수 있어 전역 변수라고 부른다. 또한, 메서드들이 공.. 2022. 2. 3.
JAVA의 OOP - 절차적, 구조적 프로그래밍의 유산 책 소개 현재 읽고 있는 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 중의 일부를 적은 내용입니다. 절차적/ 구조적 프로그래밍 객체 지향 프로그래밍은 절차적/ 구조적 프로그램을 포함하고 있다. 1. 절차적 프로그래밍 절차적 프로그래밍은 goto를 쓰지 말라는 것으로, 자바에서도 이를 사용하지 못하도록 예약어로 선점해두었다. goto를 쓰면 실행 순서 즉, 제어 흐름을 이리저리 움직일 수 있다. 이렇게 되면 사람이 프로그램의 실행 순서를 이해하기에 너무 복잡해질 우려가 있기 때문에 사용을 금지한다. 2. 구조적 프로그래밍 함수를 사용하라는 것이다. 함수를 사용하면 좋은 점은 중복 코드를 한 데 모아 관리할 수 있으며, 논리를 함수 단위로 분리할 수 있어 이해하기가 쉬운 코드가 되기 때문이다. 추가.. 2022. 2. 2.
JAVA의 OOP - 자바 개발 환경 JDK, JRE, JVM 책 소개 현재 읽고 있는 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 중의 일부를 적은 내용입니다. 자바 프로그램의 개발과 구동 현실의 컴퓨터 구동 자바 소프트웨어 개발도구 JDK(자바 개발 도구) JVM용 소프트웨어 개발 도구 운영체제 JRE(자바 실행 환경) JVM용 OS 하드웨어(물리적 컴퓨터) JVM(자바 가상 기계) 가상의 컴퓨터 자바 소프트웨어 1) 개발 도구인 JDK를 이용하여 개발된 프로그램은 2) JRE에 의해 3) 가상의 컴퓨터인 JVM상에서 구동된다. 이는 마치 실제 컴퓨터에서 개발자가 1) 개발 도구를 이용하여 프로그램(= 소프트웨어)을 개발하고 2) 운영체제를 통해 3) 물리적 컴퓨터인 하드웨어 상에서 구동되는 것과 같다. 각각의 역할 1) JDK(Java Developm.. 2022. 2. 2.