JAVA

· JAVA
객체지향 프로그래밍 설계시 좋은 객체지향 설계를 위한 SOLID 라고 불리는 5가지 원칙이 있다. SOLID 원칙은 소프트웨어를 설계함에 있어 이해하기 쉽고, 유연하며, 유지보수 및 확장이 편하다는 장점이 있다. 1. SRP(Single responsibility principle) : 단일 책임 원칙 2. OCP(Open-closed principle) : 개방-폐쇄 원칙 3. LSP(Liskov substitution principle) : 리스코프 치환 원칙 4. ISP(Interface segregation principle) : 인터페이스 분리 원칙 5.DIP(Dependency inversion principle) : 의존관계 역전 원칙 1. SRP - 단일 책임 원칙 한 클래스는 하나의 책임..
· JAVA
참조 문서 https://yozm.wishket.com/magazine/detail/2077/ 자바 어댑터 패턴은 어떻게 쓰일까? | 요즘IT 이번 글을 시작으로 실제 자바 프로젝트에서 디자인 패턴을 어떻게 사용하는지 정리하고자 합니다. 첫 번째 주제로 자바 라이브러리와 프레임워크에서 자주 쓰이는 어댑터 패턴(Adapter Pattern)에 yozm.wishket.com 어댑터 패턴 어댑터 패턴은 한 클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환하는 패턴입니다. 이를 통해 인터페이스 호환성 문제를 해결할 수 있습니다. (구조패턴) 1) 어댑터 패턴 정의 어댑터 패턴(Adapter Pattern)은 호환되지 않는 인터페이스들을 연결하는 디자인 패턴을 말합니다. 이 패턴은 기존의 클래스를..
· JAVA
빌더 패턴 빌더 패턴을 사용하면 복잡한 객체를 다양한 방식으로 조립할 수 있습니다. 클라이언트 코드는 필요한 부분만 선택하여 구성할 수 있습니다. 가독성 향상 - 빌더 패턴은 생성자에 많은 매개변수가 있는 복잡한 객체를 생성할 때 특히 유용합니다. 각 매개변수의 의미를 명확하게 파악하기 어렵고 코드를 읽는데 어려움이 있을 수 있는데, 빌더 패턴을 사용하면 이러한 문제를 해결할 수 있습니다. 불변성 유지 - 빌더 패턴을 사용하면 객체의 불변성을 유지하는 것이 더 쉬워집니다. 모든 매개변수를 생성자에 전달하고, 이후에는 객체의 상태를 변경하지 않도록 할 수 있습니다. 물론 setter 를 만들어 주면 상태 변경 가능 유연성 - 빌더 패턴을 사용하면 객체를 생성하는 과정을 단계별로 분리할 수 있습니다. 이는 ..
· JAVA
참조 문서 https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/ 싱글톤(Singleton) 패턴이란? 이번 글에서는 디자인 패턴의 종류 중 하나인 싱글톤 패턴에 대해 알아보자. 싱글톤 패턴이 무엇인지, 패턴 구현 시 주의할 점은 무엇인지에 대해 알아보는 것만으로도 많은 도움이 될 것이라 tecoble.techcourse.co.kr https://greatzzang21.tistory.com/38 Spring에서 싱글톤을 사용하는 이유 [ Spring에서 싱글톤을 사용하는 이유 ] 애플리케이션 컨텍스트에 의해 등록된 빈은 기본적으로 싱글톤으로 관리된다. 즉, 스프링에 여러 번 빈을 요청하더라도 매번 동일한 객체를 돌려준다는 것 greatzzang21.ti..
· JAVA
디자인 패턴(자바) 디자인 패턴은 소프트웨어 디자인에서 발생하는 일반적인 문제에 대한 해결책을 포괄적으로 설명하는 재사용 가능한 설계 아이디어입니다. 디자인 패턴은 경험적으로 검증된 솔루션을 제공하여 코드를 더 유연하고 재사용 가능하며 유지보수가 쉽도록 만듭니다. 장점 개발자간의 원활한 소통 소프트웨어 구조 파악이 용이 재사용을 통한 개발 시간 단축 설계 변경 요청에 대한 유연한 대처 단점 객체지항 설계에 대한 깊은 이해도가 필요 간단한 문제에 대해 디자인 패턴을 적용하는 것이 오히려 더 복잡하고 비효율적일 수 있습니다. 모든 문제에 대해 디자인 패턴을 적용하는 것은 적절하지 않습니다. 디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behavioral) : GoF 디자..
· JAVA
문서 https://www.devkuma.com/docs/java/timestamp/ Java 날짜 - java.sql.Timestamp 클래스 자바의 Timestamp에 설명, Timestamp를 String으로 변환, String을 Timestamp로 변환 www.devkuma.com Java 날짜 - java.sql.Timestamp 클래스 자바의 Timestamp에 설명, Timestamp를 String으로 변환, String을 Timestamp로 변환 Tags: Java Timestamp 클래스 java.sql.Timestamp는 SQL의 TIMESTAMP 타입에 대응하기 위해 만들어 졌다. Timestamp 클래스로 날짜, 시간과 관련한 데이터의 조작을 행하는 경우에 이용한다. Timestam..
· JAVA
Thread 클래스 상속 이용 예제 ( 1 ) run() 오버라이딩 public class 클래스명 extends Thread { @Override public void run() { // 작성 } } ( 2 ) Thread start() 실행 다형성 이용 Thread thread = new 클래스명() thread.start() ( 3 ) main Thread 작성 및 실행 ( 아무거나 작성하면 되겠지만 .. ㅎ.. 예제로.. ) for (int i = 0; i < 5; i++) { System.out.println("띵"); try { Thread.sleep(500); // 0.5초 지연 }catch (Exception e){} }
· JAVA
Runnable 인터페이스 상속 예제 ( 1 ) run() ( Toolkit 은 멀티 미디어 객체이다. 소리가 나옴 ) public class 클래스명 implements Runnable { @Override public void run() { Toolkit toolkit = Toolkit.getDefaultToolkit(); for (int i = 0; i < 5; i++) { toolkit.beep(); // 컴퓨터 삐소리 try { Thread.sleep(500); // 0.5초 지연 그후 삐 소리 } catch (Exception e) { e.printStackTrace(); } } } } ( 2 ) Thread 생성자의 매개변수로 전달 Runnable runnable = new 클래스생성자();..
· JAVA
프로세스 현재 실행중인 프로그램 ( 메모리에 올라간 프로그램 ) 쓰레드 프로세스 안에 여러가지 작업 단위를 의미한다. ( main 함수도 쓰레드이다. ) 병렬 처리 이 쓰레드를 동시에 실행시키는 것 \ 주의 / 동기화 문제 병렬 처리의 문제점 여러 쓰레드에서 1가지 함수를 동시에 접근하면 결과가 겹치거나 하는 등 이상해질 수 있음 synchronized ( 한명이 있다면 다른 한명은 기다리는 식 ) 를 사용할 수도 있으나.. 따라서 쓰레드를 잘 안 씀(?) ( 채팅 프로그램때 쓰레드가 쓰임 ) 생성 방법 how? Interface or Class Method() 재정의 인터페이스 상속 이용 Runnable run() 부모 클래스 상속 이용 Thread run() 두가지가 있다
· JAVA
Anonymous Class 활용 상속관계 또는 특정 위치(코딩 라인)에서 1번만 사용될 경우 한마디로 익명 클래스는 자식 클래스인것이다. 정의 부모클래스 객체변수 = new 부모생성자함수() { 익명클래스 (자식클래스) }; // 또는 인터페이스도 가능 인터페이스 인터페이스변수 = new 인터페이스() { 익명클래스 (자식클래스) }; 사용법 자식클래스 child = new 자식클래스 child.객체변수.(속성 , 함수 등) ♠ \ 참조 / ♠ 주의점 지역변수 => 상수 (자동으로..) 만약 method 부분이 이런 코딩이 있다면..? arg 와 var 가 자동으로 상수가 되어버린다.. ( 내부 클래스와 비슷하게 되어버림.. ) int method(int arg) { int var = 0; 부모클래스 ..
· JAVA
로컬 클래스 함수 안의 클래스 정의 public class Outer { void method() { public class MethodInner { // MethodInner 의 Attribute , Constructor , Method } } } Main 함수 에서의 사용법 안에서 클래스가 자동 생성이 된다. Outer outer = new Outer(); outer.method(); 외부 클래스의 속성 / 함수 접근 this 를 사용 외부클래스명.this.속성[함수] Outer.this.Attribute; Outer.this.method(); public class Outer { String field = "Outer-field"; // 외부 속성 void method() { System.out.p..
· JAVA
정적( 공유 ) 속성 클래스 [ 내부 ] \ 특징 / 일반 (속성 , 메소드 , 함수) 과 정적 (속성 , 메소드 , 함수) 둘다 정의가 가능함 정의 public class Outer{ // Outer 의 Attribute , Constructor , Method public static class Share { // Share 의 Attribute , Constructor , Method } } Main 함수 에서의 사용법 외부클래스.내부클래스.속성 (Attribute , Constructor , Method) Outer.Share.속성 외부클래스에서의 내부클래스 사용법 정적 ( 공유 ) 내부클래스를 일반 속성으로 정의 ( 전부 사용 가능 ) public class Outer { public class..
별이춤추는밤
'JAVA' 카테고리의 글 목록