Java
-
자바 - DIP (Dependency Inversion Principle, 의존 관계 역전 원칙)Java 2023. 11. 22. 22:19
핵심개념: '의존 관계 역전 원칙(Dependency Inversion Principle, DIP)은 고수준 모듈이 저수준 모듈에 의존하면 안되며, 둘 다 추상화에 의존해야 한다는 원칙입니다.'의존 관계 역전 원칙(Dependency Inversion Principle, DIP)은 소프트웨어의 구조를 결정하는 중요한 원칙 중 하나입니다. 이 원칙은 고수준의 모듈이 저수준의 모듈에 직접 의존하는 대신, 중간에 추상화된 인터페이스를 두어 의존성을 역전시키는 것이 이 원칙의 핵심입니다.자세한 설명:DIP는 소프트웨어 컴포넌트간의 의존 관계를 조절하는 원칙입니다. 이 원칙은 추상화와 구체화 사이의 관계를 역전시키는 것을 목표로 합니다. 일반적으로 고수준의 모듈이 저수준의 모듈에 의존하는 관계를 가지지만, DIP..
-
자바 - ISP (Interface Segregation Principle, 인터페이스 분리 원칙)Java 2023. 11. 22. 22:15
핵심개념: '인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다는 원칙입니다.' 인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클라이언트가 필요하지 않은 메서드에 의존하지 않아야 함을 의미합니다. 이 원칙은 클라이언트가 필요로 하는 메서드만을 가진 인터페이스를 구현하도록 권장하며, 이를 통해 불필요한 의존성을 줄이고 모듈 간의 결합도를 낮출 수 있습니다. 자세한 설명: ISP는 '클라이언트에게 필요한 것만 제공해야 한다'는 원칙입니다. 클라이언트가 사용하지 않는 메서드에 의존하면, 그 메서드에 변화가 생겼을 때 클라이언트에도 영향을 줄 수 있습니다. 따라서 ..
-
자바 - LSP (Liskov Substitution Principle, 리스코프 치환 원칙)Java 2023. 11. 22. 22:12
핵심개념: '리스코프 치환 원칙(Liskov Substitution Principle, LSP)은 서브타입은 언제나 기반이 되는 타입으로 교체될 수 있어야 한다는 원칙입니다.' 리스코프 치환 원칙(Liskov Substitution Principle, LSP)은 상속 관계에 있는 클래스들 사이에서 이루어져야 하는 행동의 규약을 정의합니다. 이 원칙은 상속을 사용할 때 부모 클래스와 자식 클래스 사이의 관계를 규정합니다. 기본 클래스가 들어갈 자리에 하위 클래스를 넣어도 프로그램이 정상적으로 작동해야 한다는 원칙입니다. 자세한 설명: LSP는 하위 타입이 상위 타입의 역할을 완전히 대체할 수 있어야 함을 의미합니다. 이는 상위 타입의 인스턴스를 하위 타입의 인스턴스로 대체해도 프로그램의 의미가 변경되지 않..
-
자바 - SRP (Single Responsibility Principle, 단일책임원칙)Java 2023. 11. 22. 22:09
핵심개념: '단일 책임 원칙(Single Responsibility Principle, SRP)은 하나의 클래스가 하나의 책임만을 가지며, 그 책임이 변경되는 이유는 하나만 있어야한다는 원칙입니다.' 단일 책임 원칙(Single Responsibility Principle, SRP)은 소프트웨어 설계 원칙 중 하나로, 각 클래스가 담당하는 책임이 하나여야 한다는 원칙입니다. 이 원칙은 클래스를 변경할 필요가 생기는 이유가 하나여야 함을 의미합니다. 즉, 하나의 클래스가 너무 많은 책임을 가지게 되면 그 클래스의 복잡도는 증가하게 됩니다. 자세한 설명: SRP의 기본 아이디어는 클래스를 수정해야 하는 이유가 단 한 가지만 있어야 한다는 것입니다. 클래스가 두 가지 이상의 책임을 가지고 있다면, 이 책임들은..
-
자바 - OCP (Open Closed Principle / 개방-폐쇄원칙)Java 2023. 11. 22. 21:32
핵심개념 '자바 OCP(Open Closed Principle)는 소프트웨어 엔터티가 개방되어야 하며(확장 가능), 동시에 닫혀 있어야 한다(수정 불가)는 원칙을 의미합니다.' 자바 OCP(Open Closed Principle)는 솔리드(SOLID) 디자인 원칙 중 하나로, 소프트웨어의 설계와 아키텍처에 있어 중요한 역할을 합니다. 이 원칙을 이해하고 적용하면, 유지보수와 확장성이 좋은 소프트웨어를 만드는 데 도움이 됩니다. 자세한 설명 자바 OCP는 '개방-폐쇄 원칙'이라고도 하며, 이는 소프트웨어 구성 요소(클래스, 모듈, 함수 등)가 새로운 기능에 대해 '개방적'이어야 하며, 기존 코드의 수정 없이 기능을 추가하거나 변경할 수 있어야 한다는 원칙을 의미합니다. 동시에, 기존 코드는 '폐쇄적'이어야..
-
BufferedReader, BufferedWriterJava 2021. 5. 21. 19:30
백준 알고리즘 문제를 푸는데 시간초과로 인해 실패하는 경우가 발생했다. 원인은 Scanner, System.in, System.out의 성능때문이었는데, 입출력의 개수가 많은경우 속도가 매우 느려진다. 입력속도비교 출력속도비교 위와 같은 문제를 해결하기 위해 사용하는것이 BufferedReader, BufferedWriter다. BufferedReader 아래와 같이 사용할 수 있습니다. import java.io.*; class Main { public static void main(String args[]) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { String line = br.readLine()..
-
json을 자바 객체로 변환하기Java 2021. 5. 20. 19:30
json형태의 파일 또는 텍스트를 자바 오브젝트로 변환하는 방법을 남깁니다. json을 자바 Object로 변환 간단하게 Member Class를 만들었습니다. //Member Class public class Member { private String id; private String name; private int age; public String getId(){ return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; }..
-
visualVM으로 remote host 모니터링하기Java 2021. 5. 17. 21:33
visualVM을 이용한 remote host 모니터링 remote서버에 존재하는 자바프로세스를 모니터링 하는 방법을 찾아보고 정리했습니다. 성공CASE 테스트 환경 리눅스서버 : CentOS7 JDK : 1.8 Remote서버 JDK 설치 확인 서버에 JDK가 설치되어 있어야 한다. ( JAVA Process 실행을 위해서도 설치 필요 ) 자바버전 확인 : java --version 방화벽 설정 확인 remote서버에 접속할때 사용할 port를 열어놔야한다 포트 추가 : firewall-cmd --zone-public --add-port=1099/tcp 추가한 설정 적용 :firewall-cmd --reload port 등록 확인 :firewall-cmd --zone=public --list-ports..