본문 바로가기

전체 글69

[Java] - 스트림(Stream) API란? 스트림(Stream) API란?스트림 API란, Collection에 추가된 메서드들의 집합을 말한다. 쉽게 말해, 컬렉션에 담긴 데이터들을 흐름으로 처리하는 도구이다. 스트림 API를 활용하면 코드가 간결해지고, 개발자는 데이터를 효율적으로 처리할 수 있다는 장점이 있다. 스트림 API 연산의 3단계Stream 객체는 3단계의 과정을 거쳐 처리되는데, 3단계는 아래와 같다. ① Stream 생성 (Source)stream() 또는 Array.stream() 등의 메서드로 스트림을 생성한다.List list = List.off(1, 2, 3);list.stream();int[] arr = {1, 2, 3};Arrays.stream(arr);  ② 중간 연산 (Intermediate Operations)데.. 2025. 2. 14.
[Java] - 람다 표현식(Lamda expression) 람다 표현식(Lamda expression)이란? 람다 표현식이란, 자바8에서 도입된 기능으로, 익명 함수(Anonymous function)을 지칭하는 용어이다.쉽게 말해, 메서드를 간결한 하나의 식으로 표현한 것이다!→ 메서드의 이름과 리턴값이 없어 익명 함수라고 부른다. 일반적으로 Java에서 메서드를 선언하는 경우를 생각해 보자.자바의 기본적인 문법에서는, 메서드만 따로 선언하는 것이 불가능하며, 하나의 메서드를 선언하더라도 반드시 클래스가 있어야 한다. (클래스 먼저 선언 → 그 안에 함수 선언) 임시로 사용할 함수 하나 때문에 매번 클래스와 메서드를 선언하는 것은 번거롭다. 하지만 람다식을 사용하면, 기존의 메서드 선언 방식보다 코드의 길이를 대폭 줄일 수 있다.코드가 어떻게 간결해지는지 람다.. 2025. 2. 13.
[Spring boot] - DTO와 Entity에 대해 Spring Boot로 개발하다 보면, Entity 형태로 리턴하지 말고, DTO로 변환 후 리턴해야 한다고 나온다.오늘은 DTO와 Entity의 개념을 간단히 정리하고, DTO와 Entity를 분리해야 하는 이유에 대해 포스팅해보겠다. DTO (Data Transfer Object)란?DTO란 계층 간의 데이터 교환 시 사용하는 객체를 의미한다.주로 클라이언트와 서버 간의 데이터 교환을 위해 사용된다.=> 로직을 가지지 않으며, getter & setter 메서드만 가진다. (데이터를 전달하고, 전달받는 메서드들) 아래는 DTO 클래스의 예시이다.@Getter@Setter@NoArgsConstructor@ToStringpublic class MemberDTO { private String Id; .. 2025. 2. 12.
[Spring boot] - Controller, Service, Repository 오늘은 스프링 부트에서 Controller, Service, Repository의 각 역할과 상호작용에 대하여 간단히 포스팅해보도록 하겠다.ControllerClient와 상호작용사용자 요청을 받아 Service로 전달하며, 처리 결과를 응답하여 사용자에게 반환한다. Front-end와 연관지어서 생각한다면, 프론트(웹)으로부터의 요청에서 데이터를 받은 후 Service에 넘기면서 Service를 호출한다고 보면 된다.모든 로직이 수행된 이후에는, 그 결과가 화면에 나타나도록 View에 전달하는 역할도 한다.@Controller@RequiredArgsConstructorpublic class MemberController { // 생성자 private final MemberService mem.. 2025. 2. 11.
[Spring boot] - 스프링 부트 프로젝트 구조 (계층형 vs 도메인형) Spring Boot 프로젝트를 세팅하게 되면, 패키지를  Model, View, Controller로 나누는 MVC 패턴을 일반적으로 사용한다.MVC 패턴은 각 패키지의 역할이 명확하게 구분되어 있어 코드의 관리가 쉽다는 장점이 있다.  이러한 일반적인 계층형 구조가 바로 이 MVC 패턴을 말하는 것이다. 하지만 Spring Boot 프로젝트는 계층형 말고도 도메인형 구조로도 설계할 수 있다.계층형 구조(Layered Architecture)와, 도메인형 구조(Domain-Driven Design)의 특징 및 장단점에 대해 알아보자.계층형 구조 (Layered Architecture)프로젝트를 기능에 따라 계층적으로 나눈다.쉽게 말해, controller 파일들은 전부 controller 디렉토리에, .. 2025. 2. 9.
[Spring boot] - Entity 개념 정리 1. Entity(엔터티)란?Entity 클래스는 실제 DB 테이블과 매핑되는 클래스로, 데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가진다.=> 데이터베이스와의 상호작용을 담당한다고 이해하면 된다!필드의 데이터 타입이 자동으로 데이터베이스의 컬럼과 매핑된다.2. Entity에 쓰이는 annotation 종류@Entity이 클래스를 JPA의 엔티티로 사용하겠다는 것을 명시  @Table 엔티티와 매핑할 데이터베이스의 테이블명을 지정할 때 사용한다.일반적으로 entity와 실제 db의 테이블명이 일치하도록 구성하지만, 간혹 그렇지 못할 경우에 유용한다.@Entity@Table(name="database")public class db_entity {...}예를 들면 db에 저장되어있는 실제 table의 .. 2025. 2. 8.