Languague/Java(108)
-
Languague/Java
2025.08.12
3
SOLID 원칙 – 객체지향 설계의 5대 핵심 원칙 이해하기
오늘은 객체지향 설계에서 빠질 수 없는 핵심 개념인 SOLID 원칙에 대해 살펴보려고 합니다. SOLID 원칙은 로버트 C. 마틴이 제안한 5가지 객체지향 설계 원칙으로, 유지보수성과 확장성을 높이기 위한 가이드라인입니다. SOLID란 무엇인가?SOLID는 다음 다섯 가지 원칙의 머리글자를 따 만든 약어입니다.약어원칙명설명 S Single Responsibility Principle (단일 책임 원칙)클래스는 단 하나의 책임만 가져야 한다. O Open/Closed Principle (개방-폐쇄 원칙)확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다. L Liskov Substitution Principle (리스코프 치환 원칙)자식 클래스는 부모 클래스를 대체할 수 있어야 한..
-
Languague/Java
2022.10.25
[Java] 추상클래스와 인터페이스의 공통점과 차이점
이전 포스팅에서 추상 클래스와 인터페이스에 대한 내용을 정리해보았습니다. 추상 클래스와 인터페이스는 사실 용도가 완전히 다른 친구들인데 처음 공부하는 분들이라면 추상 클래스와 인터페이스가 대체 뭐가 다른지 헷갈릴 수 있다고 생각합니다. 그래서 이번 포스팅에서는 추상 클래스와 인터페이스가 어떤 점이 다른지에 대해 한번 써보려고 합니다. [Java] 자바 추상 클래스(Abstract Class) 사용법 & 예제 [Java] 자바 인터페이스(Interface) 사용법 & 예제 추상 클래스와 인터페이스의 공통점 둘 다 자기 자신이 new를 통해 객체를 생성할 수 없고, 오로지 자식만이 객체를 생성할 수 있습니다. 둘 다 추상 메서드(abstract method)를 갖습니다. 둘 다 하위 클래스에서 추상 클래스를..
-
Languague/Java
2022.10.24
1
[Java] 자바 인터페이스(Interface) 사용법 & 예제
인터페이스(Interface)란? 자바에서 인터페이스는 클래스들이 필수로 구현해야 하는 추상 자료형입니다. 쉽게 말하자면 객체의 사용방법을 가이드라인 하는 것이라고 생각하시면 이해가 쉽습니다. 자바의 인터페이스는 추상 메서드와 상수로만 이루어져 있습니다. 구현된 코드가 없기 때문에 당연히 인터페이스로 인스턴스도 사용할 수 없습니다. 인터페이스 특징 다중 상속 가능 -> 인터페이스는 껍데기만 존재하여 클래스 상속 시 발생했던 모호함이 없습니다. 고로 다중 상속이 가능합니다. 추상 메서드와 상수만 사용 가능 -> 인터페이스에는 구현 소스를 생성할 수 없습니다. 고로 상수와 추상 메서드만 가질 수 있습니다. 생성자 사용 불가 -> 인터페이스 객체가 아니므로 생성자를 사용하실 수 없습니다. 메서드 오버라이딩 필..
-
Languague/Java
2022.10.23
[Java] 자바 추상 클래스(Abstract Class) 사용법 & 예제
추상 클래스(Abstract Class)란? 추상(abstract)이란 무엇일까요? 추상의 사전적 의미는 사물이나 표상(表象)을 어떤 성질·공통성·본질에 착안하여 그것을 추출(抽出)하여 파악하는 것이라고 합니다. 프로그래밍적으로 본다면 객체 간의 공통적 특성을 추출한 클래스라고 생각하시면 되겠습니다. 예를 들자면 강아지, 고양이, 염소라는 객체가 있다고 해봅시다. 이 3가지 객체의 공통점은 동물이라는 공통점이 있습니다. 여기서 동물은 구체적인 실체라기보다는 "수명", "짖기"와 같은 필드와 메서드를 가지고 있는 모든 동물 객체들의 공통되는 특성을 갖고 있는 추상적인 클래스입니다. ❓ 추상 클래스는 추상 메서드를 무조건 하나 이상 가져야 할까요? ❌ NOPE!! 👌 추상 클래스는 추상 메소드를 가지지 않아..
-
Languague/Java
2022.10.11
1
[Java] 자바 클래스(Class)의 상속(Extends) 사용법 & 예제
객체지향 프로그래밍에서는 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있습니다. 이렇게 상속하는 과정을 통해 잘 개발된 클래스를 재 사용하여 중복되는 코드를 최대한 줄여주며 부모의 클래스의 수정으로 모든 자식 클래스를 수정할 수 있는 효과를 볼 수 있기 때문에 유지보수를 하는데도 있어 강점이 있습니다. 자바의 상속 방식 클래스 간의 상속은 여러 개의 부모의 정보를 상속하는 다중 상속 방식을 제외하고는 모두 허용하고 있습니다. 주로 다단계 상속, 계층적 상속 두 가지 방식을 띄게 되는데 부모 클래스를 통해 자식, 손자까지 내려가는 방식을 다단계 상속이라고 하며 하나의 부모가 여러 개의 자식을 가지는 것을 계층적 상속이라고 합니다. 자바에서 다중상속이 안 되는 이유 예를 들어 만약, 상속받은 여러 개의 ..
-
Languague/Java
2022.10.10
[Java] 자바 클래스(Class) 사용법(선언, 생성, 사용) & 예제
자바 프로그래밍을 OOP(객체 지향 프로그래밍)이라고도 합니다. 현실 세계에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립해서 제품을 생산하듯이 프로그래밍적으로도 여러 가지 객체(Object)를 각각 만들어서 하나로 조립하는 프로그래밍 기법을 객체 지향 프로그래밍이라고 합니다. 자바에서 객체는 클래스를 통해 생성하실 수 있습니다. 클래스 구조 클래스의 구성 맴버 설명 필드(Field) 객체의 데이터가 저장되는 곳 생성자(Constructor) new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당 메소드(Method) 객체의 동작에 해당하며 클래스의 다양한 동작을 구성 클래스 내부에는 클래스의 속성을 나타내는 필드와 클래스의 동작을 나타내는 메소드 그리고 클래스를 생..
-
Languague/Java
2022.10.03
[Java] 자바 기본 입력문 Scanner 클래스 사용법 & 예제 총정리
자바를 처음 배울 때 콘솔에서 키보드 입력값을 받을 때 가장 많이 사용하는 클래스가 Scanner 클래스입니다. Scanner 클래스를 사용하는 방법이 자바에서 입력값을 받는 방법 중에 가장 간편하기 때문입니다. 가장 간편하기는 하지만 C언어나 파이썬과 같이 다른 프로그래밍 언어에서 사용하는 것보다는 그래도 절차가 까다롭습니다. 이번 포스팅에서는 자바의 Scanner 클래스의 사용법에 대해 알아보도록 하겠습니다. Scanner 클래스의 특징 java.util 패키지에 포함되어 있어 java.util을 import를 해줘야 사용할 수 있다. 기본적인 데이터 타입을 모두 입력받을 수 있다. 토큰(공백, 개행, 탭)을 기준으로 데이터를 입력받는다. Scanner 클래스 사용법 Scanner 사용 순서 impo..
-
Languague/Java
2022.10.02
[Java] 자바 기본 입출력문 System 클래스 (System.out, in, err) 정리
모든 프로그래밍 언어에는 시스템 표준 입력장치와 표준 출력장치가 있습니다. 일반적으로 표준 입력장치는 키보드를 의미하고, 표준 출력장치는 모니터 스크린을 말합니다. 자바에서는 java.lang.System이라는 표준 입출력을 제공하는 클래스가 있고 System의 멤버 변수인 in, out, error를 이용해서 표준 입력, 표준 출력, 표준 에러를 사용할 수 있습니다. 자료형 멤버 변수 설명 static PrintStream out 표준 출력 스트림 static InputStream in 표준 입력 스트림 static OutputStream err 표준 에러 스트림 System.out은 표준 출력, System.In은 표준 입력 스트림이며 System.err는 표준 에러 스트림으로 빨간색으로 오류 메시지..
-
Languague/Java
2022.10.01
2
[Java] 자바의 변수 종류, 크기, 범위 총정리
컴퓨터에는 메모리(RAM)가 있고 이 메모리에는 값을 저장할 수 있는 공간이 있습니다. 이 메모리 공간은 번지(주소)로 그 위치를 가리키게 되는데요. 변수란 "메모리의 특정번지에 이름을 붙인다" 라고 생각하시면 됩니다. 변수를 선언하면 메모리의 어디에 저장하고 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정합니다. 자바의 경우에는 JVM이 결정합니다. 변수(Variable) : 값을 저장할 수 있는 공간 자바 변수 총 정리 정수타입 타입 메모리 사용 크기 값의 범위 byte 1byte 8bit -128 ~ 127 short 2byte 16bit -32,768 ~ 32,767 char 2byte 16bit 0 ~ 65535(유니코드) int 4byte 32bit -2,147,483,648 ~ 2,..
-
Languague/Java
2022.04.13
4
[Java] 많은 기업들이 자바를 사용하는 이유
이번 포스팅에서는 제가 생각하는 자바의 장점과 자바를 왜 배워야 하는지에 대해서 말해보려 합니다. 저의 시각에서 작성된 글이니 가볍게 읽어주시면 감사하겠습니다. 국내 프로그래밍 언어의 점유율 부동의 1등을 지키고 있는 것은 Java입니다. 그렇다면 왜 이렇게 국내에서는 Java의 점유율이 높을까요? 자바는 어떻게 대세가 되었나 자바는 썬 마이크로시스템즈 1995년 5월 23일 발표된 프로그래밍 언어입니다. 지금은 자바와 비슷한 개념을 가지고 있는 언어들이 많지만 최소한 1995년 출시될 그 시절 자바는 획기적인 언어임에는 분명합니다. 자바가 처음에 출시될 때 걸었던 슬로건은 "한 번 프로그래밍한 것은 어떤 플랫폼에서도 실행된다."입니다. 저는 솔직히 이것이 큰 장점이라고는 생각이 들지 않으나 C/C++ ..
-
Languague/Java 2025.08.12 3SOLID 원칙 – 객체지향 설계의 5대 핵심 원칙 이해하기 오늘은 객체지향 설계에서 빠질 수 없는 핵심 개념인 SOLID 원칙에 대해 살펴보려고 합니다. SOLID 원칙은 로버트 C. 마틴이 제안한 5가지 객체지향 설계 원칙으로, 유지보수성과 확장성을 높이기 위한 가이드라인입니다. SOLID란 무엇인가?SOLID는 다음 다섯 가지 원칙의 머리글자를 따 만든 약어입니다.약어원칙명설명 S Single Responsibility Principle (단일 책임 원칙)클래스는 단 하나의 책임만 가져야 한다. O Open/Closed Principle (개방-폐쇄 원칙)확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다. L Liskov Substitution Principle (리스코프 치환 원칙)자식 클래스는 부모 클래스를 대체할 수 있어야 한..
-
Languague/Java 2022.10.25[Java] 추상클래스와 인터페이스의 공통점과 차이점 이전 포스팅에서 추상 클래스와 인터페이스에 대한 내용을 정리해보았습니다. 추상 클래스와 인터페이스는 사실 용도가 완전히 다른 친구들인데 처음 공부하는 분들이라면 추상 클래스와 인터페이스가 대체 뭐가 다른지 헷갈릴 수 있다고 생각합니다. 그래서 이번 포스팅에서는 추상 클래스와 인터페이스가 어떤 점이 다른지에 대해 한번 써보려고 합니다. [Java] 자바 추상 클래스(Abstract Class) 사용법 & 예제 [Java] 자바 인터페이스(Interface) 사용법 & 예제 추상 클래스와 인터페이스의 공통점 둘 다 자기 자신이 new를 통해 객체를 생성할 수 없고, 오로지 자식만이 객체를 생성할 수 있습니다. 둘 다 추상 메서드(abstract method)를 갖습니다. 둘 다 하위 클래스에서 추상 클래스를..
-
Languague/Java 2022.10.24 1[Java] 자바 인터페이스(Interface) 사용법 & 예제 인터페이스(Interface)란? 자바에서 인터페이스는 클래스들이 필수로 구현해야 하는 추상 자료형입니다. 쉽게 말하자면 객체의 사용방법을 가이드라인 하는 것이라고 생각하시면 이해가 쉽습니다. 자바의 인터페이스는 추상 메서드와 상수로만 이루어져 있습니다. 구현된 코드가 없기 때문에 당연히 인터페이스로 인스턴스도 사용할 수 없습니다. 인터페이스 특징 다중 상속 가능 -> 인터페이스는 껍데기만 존재하여 클래스 상속 시 발생했던 모호함이 없습니다. 고로 다중 상속이 가능합니다. 추상 메서드와 상수만 사용 가능 -> 인터페이스에는 구현 소스를 생성할 수 없습니다. 고로 상수와 추상 메서드만 가질 수 있습니다. 생성자 사용 불가 -> 인터페이스 객체가 아니므로 생성자를 사용하실 수 없습니다. 메서드 오버라이딩 필..
-
Languague/Java 2022.10.23[Java] 자바 추상 클래스(Abstract Class) 사용법 & 예제 추상 클래스(Abstract Class)란? 추상(abstract)이란 무엇일까요? 추상의 사전적 의미는 사물이나 표상(表象)을 어떤 성질·공통성·본질에 착안하여 그것을 추출(抽出)하여 파악하는 것이라고 합니다. 프로그래밍적으로 본다면 객체 간의 공통적 특성을 추출한 클래스라고 생각하시면 되겠습니다. 예를 들자면 강아지, 고양이, 염소라는 객체가 있다고 해봅시다. 이 3가지 객체의 공통점은 동물이라는 공통점이 있습니다. 여기서 동물은 구체적인 실체라기보다는 "수명", "짖기"와 같은 필드와 메서드를 가지고 있는 모든 동물 객체들의 공통되는 특성을 갖고 있는 추상적인 클래스입니다. ❓ 추상 클래스는 추상 메서드를 무조건 하나 이상 가져야 할까요? ❌ NOPE!! 👌 추상 클래스는 추상 메소드를 가지지 않아..
-
Languague/Java 2022.10.11 1[Java] 자바 클래스(Class)의 상속(Extends) 사용법 & 예제 객체지향 프로그래밍에서는 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있습니다. 이렇게 상속하는 과정을 통해 잘 개발된 클래스를 재 사용하여 중복되는 코드를 최대한 줄여주며 부모의 클래스의 수정으로 모든 자식 클래스를 수정할 수 있는 효과를 볼 수 있기 때문에 유지보수를 하는데도 있어 강점이 있습니다. 자바의 상속 방식 클래스 간의 상속은 여러 개의 부모의 정보를 상속하는 다중 상속 방식을 제외하고는 모두 허용하고 있습니다. 주로 다단계 상속, 계층적 상속 두 가지 방식을 띄게 되는데 부모 클래스를 통해 자식, 손자까지 내려가는 방식을 다단계 상속이라고 하며 하나의 부모가 여러 개의 자식을 가지는 것을 계층적 상속이라고 합니다. 자바에서 다중상속이 안 되는 이유 예를 들어 만약, 상속받은 여러 개의 ..
-
Languague/Java 2022.10.10[Java] 자바 클래스(Class) 사용법(선언, 생성, 사용) & 예제 자바 프로그래밍을 OOP(객체 지향 프로그래밍)이라고도 합니다. 현실 세계에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립해서 제품을 생산하듯이 프로그래밍적으로도 여러 가지 객체(Object)를 각각 만들어서 하나로 조립하는 프로그래밍 기법을 객체 지향 프로그래밍이라고 합니다. 자바에서 객체는 클래스를 통해 생성하실 수 있습니다. 클래스 구조 클래스의 구성 맴버 설명 필드(Field) 객체의 데이터가 저장되는 곳 생성자(Constructor) new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당 메소드(Method) 객체의 동작에 해당하며 클래스의 다양한 동작을 구성 클래스 내부에는 클래스의 속성을 나타내는 필드와 클래스의 동작을 나타내는 메소드 그리고 클래스를 생..
-
Languague/Java 2022.10.03[Java] 자바 기본 입력문 Scanner 클래스 사용법 & 예제 총정리 자바를 처음 배울 때 콘솔에서 키보드 입력값을 받을 때 가장 많이 사용하는 클래스가 Scanner 클래스입니다. Scanner 클래스를 사용하는 방법이 자바에서 입력값을 받는 방법 중에 가장 간편하기 때문입니다. 가장 간편하기는 하지만 C언어나 파이썬과 같이 다른 프로그래밍 언어에서 사용하는 것보다는 그래도 절차가 까다롭습니다. 이번 포스팅에서는 자바의 Scanner 클래스의 사용법에 대해 알아보도록 하겠습니다. Scanner 클래스의 특징 java.util 패키지에 포함되어 있어 java.util을 import를 해줘야 사용할 수 있다. 기본적인 데이터 타입을 모두 입력받을 수 있다. 토큰(공백, 개행, 탭)을 기준으로 데이터를 입력받는다. Scanner 클래스 사용법 Scanner 사용 순서 impo..
-
Languague/Java 2022.10.02[Java] 자바 기본 입출력문 System 클래스 (System.out, in, err) 정리 모든 프로그래밍 언어에는 시스템 표준 입력장치와 표준 출력장치가 있습니다. 일반적으로 표준 입력장치는 키보드를 의미하고, 표준 출력장치는 모니터 스크린을 말합니다. 자바에서는 java.lang.System이라는 표준 입출력을 제공하는 클래스가 있고 System의 멤버 변수인 in, out, error를 이용해서 표준 입력, 표준 출력, 표준 에러를 사용할 수 있습니다. 자료형 멤버 변수 설명 static PrintStream out 표준 출력 스트림 static InputStream in 표준 입력 스트림 static OutputStream err 표준 에러 스트림 System.out은 표준 출력, System.In은 표준 입력 스트림이며 System.err는 표준 에러 스트림으로 빨간색으로 오류 메시지..
-
Languague/Java 2022.10.01 2[Java] 자바의 변수 종류, 크기, 범위 총정리 컴퓨터에는 메모리(RAM)가 있고 이 메모리에는 값을 저장할 수 있는 공간이 있습니다. 이 메모리 공간은 번지(주소)로 그 위치를 가리키게 되는데요. 변수란 "메모리의 특정번지에 이름을 붙인다" 라고 생각하시면 됩니다. 변수를 선언하면 메모리의 어디에 저장하고 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정합니다. 자바의 경우에는 JVM이 결정합니다. 변수(Variable) : 값을 저장할 수 있는 공간 자바 변수 총 정리 정수타입 타입 메모리 사용 크기 값의 범위 byte 1byte 8bit -128 ~ 127 short 2byte 16bit -32,768 ~ 32,767 char 2byte 16bit 0 ~ 65535(유니코드) int 4byte 32bit -2,147,483,648 ~ 2,..
-
Languague/Java 2022.04.13 4[Java] 많은 기업들이 자바를 사용하는 이유 이번 포스팅에서는 제가 생각하는 자바의 장점과 자바를 왜 배워야 하는지에 대해서 말해보려 합니다. 저의 시각에서 작성된 글이니 가볍게 읽어주시면 감사하겠습니다. 국내 프로그래밍 언어의 점유율 부동의 1등을 지키고 있는 것은 Java입니다. 그렇다면 왜 이렇게 국내에서는 Java의 점유율이 높을까요? 자바는 어떻게 대세가 되었나 자바는 썬 마이크로시스템즈 1995년 5월 23일 발표된 프로그래밍 언어입니다. 지금은 자바와 비슷한 개념을 가지고 있는 언어들이 많지만 최소한 1995년 출시될 그 시절 자바는 획기적인 언어임에는 분명합니다. 자바가 처음에 출시될 때 걸었던 슬로건은 "한 번 프로그래밍한 것은 어떤 플랫폼에서도 실행된다."입니다. 저는 솔직히 이것이 큰 장점이라고는 생각이 들지 않으나 C/C++ ..