전체 글 262

Entity vs DTO vs VO

Entity ▶ Entity의 개념 - 실제 DB의 테이블과 1:1로 매핑되는 핵심 클래스(객체)이며, DB의 테이블 내에 존재하는 칼럼만을 필드로 가져야 한다. Entity를 기준으로 테이블 생성되고 스키마가 변경되며, Entity를 요청이나 응답값을 전달하는 클래스로 사용하면 안 되고 상속이나 구현체여서는 안된다! ▶ Entity의 특징 - id를 통해 각각 Entity를 구분 - 비즈니스 로직 포함 가능 - setter를 가지면 가변 객체로 활용가능 하지만 객체의 일관성을 유지해야 유지 보수성이 올라가기 때문에 setter 사용을 지양해야 한다. ▶ Entity 예시코드 DTO ▶ DTO의 개념 - DTO는 계층 간 데이터 교환을 위해 사용하는 객체이며 여러 레이어 사이에서 사용할 수 있다. ▶ D..

카테고리 없음 2023.08.16

DDD 설계와 SQL 중심 설계 비교

DDD 설계 ▶ DDD 설계의 개념 - DDD(Domain-Driven Design) 또는 도메인 주도 설계라고 부르며, 도메인 패턴을 중심에 놓고 설계하는 방식 ▶ DDD 설계의 특징 비즈니스 도메인별로 나누어 설계하는 방식 보편적인 언어의 사용(모두가 공통으로 이해하는 통일된 용어 필요) 모듈 간의 의존성은 최소화시키고, 응집성은 최대화 소프트웨어 엔티티와 도메인 콘셉트를 가능한 가까이 일치시키는 것 개념 설계와 구체적 설계로 나뉜다. 💡 도메인이란? 유사한 업무의 집합 SQL 설계 ▶ SQL 설계의 개념 - 데이터베이스 구조와 데이터의 흐름을 중심으로 설계하고 생성한 후 시스템을 개발하는 것 ▶ SQL 설계의 특징 데이터베이스 설계를 중심으로 개발 프로세스를 진행 데이터베이스 쿼리를 통해 데이터를 ..

카테고리 없음 2023.08.15

싱글톤 디자인 패턴

💡싱글톤 패턴? - 객체의 인스턴스가 오직 1개만 생성되는 패턴. - 애플리케이션이 시작될 때 어떤 클래스가 최초 한번 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴. - 싱글턴 패턴을 이용하면, 하나의 인스턴스를 메모리에 등록해서 여러 쓰레드가 동시에 해당 인스턴스를 공유하여 사용할 수 있기 때문에 요청많은 곳에서 사용하면 효율이 올라간다.! 싱글톤 패턴의 장점 1. 클래스의 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 용이 - 싱글톤 인스턴스 데이터에 동시 접근 시 동시성문제가 발생할 수 있으니 유의해야함! 2. 두번째 이용시 객체 로딩시간이 줄어들어 성능 향상 3. 한번의 new 인스턴스로 메모리 낭비 방지 - 최초의 new 연산자를 통해 고정된 메..

카테고리 없음 2023.08.03

[Java] 상속 vs 합성 vs 위임

객체지향 프로그래밍에서 서로 연관된 객체들의 관계를 표현할 때 상속, 위임, 합성으로 표현하며 가장 많이 사용되는 코드 재사용 기법. 각각의 장단점이 존재하며 사용해야 하는 상황이 다르기 때문에 적절한 곳에 사용하는 것이 중요하다! 상속 📍상속은 부모가 자식에게 물려주는 행위이며 객체지향 프로그램에서 부모클래스의 필드와 메서드를 자식클래스에서 사용가능하다. - is a 관계(Taxi는 Car다)로 extends 키워드를 사용한다. - 일반적인 클래스가 이미 구현되어 있고 좀 더 구체적으로 클래스를 구현하기위해 사용되는 기법! - 자식클래스에 메소드를 정의하지 않아도 되지만 부모와 강한 결합도를 가지게 됨으로 변화에 대응하기가 어렵다. - 정적인 관계로 컴파일 시간에 모든 관계가 결정되고 코드를 실행하는 ..

카테고리 없음 2023.07.25

[Java] 객체 타입 변환의 필요성

타입 변환(Type Conversion) - 하나의 타입을 다른 타입으로 바꾸는 것이 '타입 변환' - 자바에서 타입변환은 메모리에 할당받은 크기가 작은 타입에서 큰 타입으로 타입변환은 생략가능 - 메모리에 할당된 크기가 큰 타입에서 작은 타입으로 타입변환 될 때 데이터 손실 발생 ( 컴파일 오류 ) 타입 변환의 종류 1. 묵시적 타입 변환 ( 자동 타입 변환) - 클래스의 변환은 상속 관계에 있는 클래스 사이에서 발생 - 자식은 부모 타입으로 ( 자동 타입변환 가능) - 부모 타입변환 이후 부모 클래스에 선언된 필드 메서드 접근 가능 - 메소드가 자식 클래스에서 재정의된다면 자식 클래스 메서드로 덮어쓰기 1 - 1. 부모 클래스 정의 1 - 2. 부모 클래스 정의 1 - 3. 실행 클래스 ( 자식 클래..

Java 2023.07.24

[Java] 접근제한자

💡접근제한자란? - 접근제한자는 클래스 및 인터페이스와 이들이 가지고 있는 멤버의 접근을 제한하기 위해 사용됩니다. - 클래스와 인터페이스를 다른 패키지에서의 사용, 객체생성 방지를 위해 생성자 호출 , 필드 메서드 사용 등을 막기 위해 접근제한자를 사용하기도 합니다. - 객체 내부적으로 사용하는 변수나 메소드에 접근함으로써 개발자가 의도치 못한 오동작을 일으키기도 하며 이러한 문제로부터 객체 로직을 보호하기 위해서 외부의 접근을 허용하거나 차단하고 의도치 않은 실수를 줄이기 위함과 정보 은닉의 목적으로 사용할 수 있습니다. 💡접근제한자의 종류 Public 접근제한자 Protected 접근 제한자 default 접근제한자 private 접근제한자 접근제한자 적용 대상 접근 가능 접근 불가 private ..

Java 2023.07.14

[UML] 클래스 다이어그램

UML (Unified Modeling Language) - 시스템을 모델로 표현해 주는 대표적인 모델링 언어 - 클래스 다이어그램, 객체 다이어그램, 복합체 구조 다이어그램 등등 여러 종류가 있다. 클래스 다이어그램 - 클래스 내부의 내용 및 클래스 사이의 관계를 표현할 수 있는 다이어그램 - 시간에 따라 변하지 않는 시스템의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램 클래스 다이어그램 툴 - https://app.diagrams.net/ Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it a..

카테고리 없음 2023.07.10

[Java] 기본 자료형 char

자바의 기본 자료형 자바의 기본 자료형은 정수형, 문자형, 실수형, 논리형 네 가지로 분류되어있다. 값의 분류 타입 메모리 크기 정수형 byte 1byte short 2byte int 4byte long 8byte 문자형 char 2byte 실수형 float 4byte double 8byte 논리형 boolean 1byte - 1 byte = 8bit(0과 1이 저장되는 단위) 문자 타입 char - 하나의 문자를 작은따옴표('') 감싸서 나타내는 것을 char이다. - char는 유니코드로 변환되어 저장되고, 유니코드는 세계의 문자를 0 ~65535 숫자로 매핑한 국제 표준 규약 ※ 유니 코드 - 영어나 숫자 그리고 기본적인 기호(아스키코드) 뿐 아니라 각 나라별 언어를 모두 표현하기 위해 나온 코드 ..

Java 2023.07.07