꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

JAVA 6

객체 지향의 4대 특성

객체 지향의 4대 특성은 다음과 같습니다. 1. 캡슐화 : 정보 은닉 2. 상속 : 재사용 + 확장 3. 추상화 : 모델링 4. 다형성 : 사용 편의 추상화 : 모델링 추상화란 구체적인 것을 분해해서 관심 영역(Application Boundary)에 있는 특성만 가지고 재조합하는 것입니다. 사람이라는 클래스가 있다면, 관심 영역이 병원이라면 환자에 맞추어 사람 클래스를 구상할 것이고, 은행이라면 고객에 맞추어 사람 클래스를 구상할 것입니다. 이런 모델링은 객체 지향에서 클래스를 설계할 때 필요한 기법이고 또한 데이터 베이스의 테이블을 설계할 때 필요한 기법입니다. 상속 : 재사용 + 확장 객체 지향에서 상속은 계층도가 아닙니다. 분류도로 이해를 해야됩니다. 예를 들어 할아버지 구현 클래스는 인터페이스할..

JAVA 2021.10.03

객체 지향 설계의 5가지 원칙 (SOLID)

SOLID란 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것입니다. SOLID 내용 SRP (single responsibility principle) : 단일 책임 원칙 OCP (open/closed principle) : 개방 폐쇄 원칙 LSP (liskov substitution principle) : 리스코프 치환 원칙 ISP (interface segregation principle) : 인터페이스 분리 원칙 DIP (Dependency inversion principle) : 의존관계 역전 원칙 SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 합니다. 여기서 하나의 책임이란 것이 모호합니다. 클 수도 있고 작을 수도 있고, 문맥과 상황에 따라 달라집니다. 여기서 중요한 ..

JAVA 2021.10.03

자바 프로그램 개발과 구동

JDK -> 자바 개발 도구 JRE -> 자바 실행 환경 JVM -> 자바 가상 기계 JDK를 이용해서 개발된 프로그램은 JRE에 의해 JVM 상에서 구동됩니다. JDK는 자바 소스 컴파일러인 javac.exe를 포함하고 있습니다. JRE는 자바 프로그램 실행기인 java.exe를 포함하고 있습니다. 자바 개발자는 본인이 사용중인 플랫폼에 설치된 JVM용으로 프로그램을 작성하고 배포하면 각 플랫폼에 맞는 JVM이 중재자로서 각 플랫폼에서 프로그램을 구동하는 데 아무 문제가 없게끔 만들어줍니다. 이러한 자바의 특성을 write once run anywhere라고 합니다. JVM 구성 Class Loader .class(byte code)를 실제 메모리에 적재하는 역할을 합니다. Excution Engine..

JAVA 2021.09.14

Java 변수

변수 종류 지역 변수 메소드 내에서 선언된 변수입니다. 해당 메서드 내에서만 유효합니다. 매개 변수 메소드에 넘겨주는 변수입니다. 메소드가 호출될 때 생명이 시작되고, 메소드가 끝나면 소멸됩니다. 메소드가 호출되면서 스택 메모리에 스택 프레임이 생성됩니다. 그리고 해당 스택 프레임 내에 매개 변수를 위한 공간이 확보됩니다. 인스턴스 변수 클래스 내부이면서 메소드 외부에 선언된 변수입니다. static이라는 예약어가 붙어있으면 안됩니다. 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸됩니다. 클래스 변수 인스턴스 변수처럼 클래스 내부이면서 메소드 외부에 선언된 변수입니다. 인스턴스 변수와의 차이점으로는 static 예약어를 사용한다는 점입니다. 클래스가 처음 호출될 때..

JAVA 2021.09.10

클래스와 객체

자바는 객체지향 언어입니다. 클래스와 객체를 통해서 프로그램을 개발해 나가야 됩니다. 이번 시간에 클래스와 객체에 대해서 공부하겠습니다. 클래스와 객체 클래스는 '상태'와 '행위'를 갖고 있는 설계도입니다. 그리고 이 클래스를 이용해서 객체를 만들 수 있습니다. 물론 해당 클래스를 사용하여 여러 객체를 만들 수 있습니다. 예를 들어, 사람을 정의한 클래스가 있습니다. 해당 클래스는 '이름'이라는 '상태'를 갖고 있고, '뛰다'라는 '행위'를 갖고 있습니다. 그리고 사람 클래스를 통해서 여러 사람을 만들 수 있습니다. Java로 코딩을 하면 다음과 같습니다. // Person Class public class Person { String name; // 아래 메서드는 생성자로 다음에 이어서 설명하겠습니다...

JAVA 2021.09.09

객체 지향 언어란? (Object Oriented Language)

1. 객체 지향 언어란 뭘까? 객체지향프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나입니다. 컴퓨터 프로그램의 명렁어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 '객체'들의 모임으로 파악하고자 하는 것입니다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있습니다. 이러한 객체 지향 프로그래밍에서 사용하는 언어를 객체 지향 언어라 합니다. 2. 객체가 뭔데? 객체 지향 프로그래밍을 구성하기 위해서는 '객체'가 필수적입니다. 실제 세상에서 사물의 개념을 프로그램에서 객체라고 볼 수 있습니다. 사람을 예로 들면, 사람 한 명이 있습니다.. 그리고 그 사람은 이름 혹은 나이, 주민등록번호 등의 정보를 갖고 있고, 걷거나 뛸 수 있습니다. 이 예에서 사람 한 명이 하나의 객체가 됩니다..

JAVA 2021.06.17