Java16 [Java] Entity, DTO, VO 무슨 차이점을 가지고있을까? 최근 프로젝트 세팅을 하며, 아키텍처를 어떻게 구성하고 계층간의 역할을 분리하여 진행해볼까 고민을 하면서Entity, DTO, VO 등의 개념들에 대해서 확실하게 이해를 해놔야겠다 싶어서 이번 포스팅을 작성하게 되었습니다.이것들은 무엇이고 차이점은 무엇인지 알아봅시다. EntityEntity는 실제 DB 테이블과 1:1로 매핑되는 클래스이며 테이블내에 존재하는 컬럼만을 필드로 지정해야한다.객체의 불변성을 보장해야 하므로 setter 메서드를 지양하고 생성자 또는 Builder 패턴을 사용하는 것이 일반적이다. Entity는 조심히 다뤄야하며, 요청 그리고 응답 값을 전달하는 역할을 수행해서는 안된다.그 이유는 Entity는 실제 DB 테이블과 매핑 되어 중요한 정보가 응답 값으로 유출된다면 보안상 치명적.. 2025. 5. 11. [Java] 싱글톤 패턴(Singleton Pattern) 개념 및 사용 방법 싱글톤 패턴(Singleton Pattern)싱글톤 패턴은 특정 클래스가 단 하나만의 인스턴스를 생성하고, 그 인스턴스에 접근 할 수 있는 전역적인 접근 방법을 제공하는 디자인 패턴 입니다.생성자를 여러번 호출 하더라도 하나의 인스턴스만 존재하도록 보장하며 어플리케이션에서 동일한 인스턴스에 접근하도록 합니다. 싱글톤 패턴을 사용하는 이유 [예시 1] 1. 1대의 정수기를 여러 사람이 공유하며 함께 사용한다.2. 여러대의 정수기를 여러 사람이 각각 사용한다. 이 2가지의 상황에서의 일반적인 경우는 1대의 정수기를 여러 사람이 공유해서 사용하는 것이 일반적인 사용 방법이라고 할 수 있겠죠?일반적으로 사무실에는 1대의 정수기만 존재 할 것이므로, 2번째 방법은 비효율적이며 불가능한 방법 일지도 모릅니다. 시스.. 2025. 4. 6. [Java] 멀티쓰레드 Callable, Executor, ExecutorService 알아보기 Runnable 인터페이스 Runnable 인터페이스의 run()메서드는 void 타입을 반환하므로 결과를 반환할 수 없다는 단점이 있습니다. 반환 값을 얻기위해 복잡한 작업을 거쳐야하는데 그 작업이 매우 번거롭기에 이러한 문제를 개선하기 위해 추가된 Callable과 Future가 있습니다.@FunctionalInterfacepublic interface Runnable { void run();}public class RunnableExample { public static void main(String[] args) throws InterruptedException, ExecutionException { // Runnable을 실행할 스레드 생성 Runnable t.. 2024. 11. 30. [Java] Thread와 Runnable의 개념 및 사용법 Thread 클래스Thread는 자바에서 멀티스레드를 지원하기 위해 제공되는 클래스이다.Thread 클래스를 상속받아서 스레드가 실행할 작업을 정의한다 Thread 클래스의 주요 메서드start()새로운 스레드를 생성하고, 내부적으로 run() 메서드를 호출run()스레드가 실행할 작업을 정의sleep()현재 스레드를 지정된 시간 동안 대기상태로 만든다join()현재 스레드가 종료될 때까지 다른 스레드가 대기하게 만든다public class ThreadExample extends Thread { @Override public void run() { // 스레드에서 실행할 작업 for (int i = 1; i Runnable 인터페이스Runnable 인터페이스는 Thr.. 2024. 11. 28. [Java] 람다식(Lambda) 개념 및 사용 예제 람다식이란?람다식(Lambda Expression)이란 함수를 하나의 식(Expression)으로 표현한 것.함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수의 한 종류.Java8 버전부터 제공. [익명 함수란?]이름이 없는 함수.함수이지만 함수를 따로 만들지 않고, 코드한줄에 함수를 써서 그것을 호출하는 방식 [람다식 작성법]// 람다식 기본 형태(매개변수) -> {함수 로직}//기존 함수 정의public string helloWorld(){ System.out.println("Hello World!");}// 람다 함수 정의() -> { System.out.println("Hello World!"); }public static void main(String[] ar.. 2024. 10. 16. [Java] 스트림(Stream) 특징, 사용 예제 Stream이란?Java 8부터 Stream이 Java에 도입되었다.Stream의 주 목적은 복잡한 데이터 처리 간소화, 코드 가독성 향상, 쉬운 병렬 처리 적용이다.Stream의 사전적 의미는 흐르다이다. 어떠한 것이 흐르는 것이 아니고 데이터의 흐름을 말한다. [스트림의 데이터 흐름 참고 사진] [Stream의 데이터 흐름]1. 위 그림은 어부가 물고기를 그물로 잡고, 여러 마리를 일정한 기준으로 모아서 상자에 넣고, 이들을 하나로 모은 뒤 트럭에 실어서 운반하는 과정을 나타내고 있다.2. 위 그림에서의 물고기와 같은 어류의 이동을 stream이라고 정의할 수 있다.3. 어부가 어류 중에서도 고등어를 잡고 싶어서 그물로 고등어를 잡았다. 이 행위를 filter라고 하고, 이 연산자를 중간 연.. 2024. 10. 11. 이전 1 2 3 다음