Java17 [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] 람다식(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. [Spring] 필터(Filter)와 인터셉터(Interceptor) 정리 및 차이점 Filter란?Java 웹 애플리케이션에서 요청과 응답을 처리하기 전에 또는 처리 후에 특정 작업을 수행할 수 있는 강력한 기능필터는 서블릿과 JSP 기술을 기반으로 한 웹 애플리케이션에서 작동하며, Spring 프레임워크에서도 자주 사용필터는 인증, 로깅, 보안 검사와 같은 비즈니스 로직과는 독립적인 공통 기능을 처리하는 데 주로 사용 Interceptor란?요청이 컨트롤러에 도달하기 전이나 응답이 클라이언트로 반환되기 전에 추가적인 작업을 수행할 수 있게 해주는 기능인터셉터는 주로 인증, 권한 체크, 로깅, 데이터 변환 등의 작업에 사용되지만 전역적이지 않음 Filter 와 Interceptor의 구조Web Context클라이언트의 HTTP 요청을 처리하는 전체적인 환경을 의미웹 서버가 요청을 수신.. 2024. 9. 21. 이전 1 2 3 다음