❓SpringBoot @NotEmpty 적용 안될때 프로젝트를 진행하다가 @NotEmpty 어노테이션을 사용하려고 하니 import도 안되고, 빨간 줄만 계속 뜨길래 뭔가 했다 ,, 근데 알아보니? 2.3 이상 버전부터는 의존성을 추가 해줘야 적용이 된다고 한다! 그래서 build.gradle에 냉큼 implementation 'org.springframework.boot:spring-boot-starter-validation'를 추가했더니 바로 import가 완료되었다! 개발공간/Project 2023.04.25
❓ORM이 뭘까 😶🌫️ ORM 너는 누구야? ORM은 "Object-Relational Mapping"의 약자로, 객체와 관계형 데이터베이스 간의 데이터 매핑을 자동으로 처리하는 기술 예를 들어, 학생 정보 관리 프로그램에서 학생 정보를 객체로 표현하고, 이를 데이터베이스에 저장하려면 객체와 데이터베이스 간의 데이터 변환 작업이 필요하다. 이때 ORM을 사용하면 객체와 데이터베이스 간의 데이터 매핑을 자동으로 처리해줌! 즉, ORM을 사용하면 개발자는 SQL 쿼리를 직접 작성하지 않아도 되고, 객체를 이용하여 데이터베이스 작업을 수행할 수 있습니다. 또한 ORM을 사용하면 객체와 데이터베이스 간의 매핑을 일일이 작성하지 않아도 되므로 생산성이 향상됨 따라서 ORM은 객체 지향 프로그래밍과 관계형 데이터베이스 간의 불일.. 개발공간/Spring 2023.04.24
💭 JPA란? 😶🌫️ JPA 대체 뭔데? - 자바 ORM 기술에 대한 API 표준 - 객체와 관계형 데이터베이스를 매핑해주는 것 즉, "Java Persistence API"의 약자로, 자바 언어로 작성된 프로그램에서 데이터베이스와 연동하여 데이터를 저장, 수정, 삭제, 조회할 수 있는 기능을 제공하는 인터페이스 예를 들어, 만약 학생들의 정보를 저장하고 관리하는 학생 정보 관리 프로그램을 만든다고 가정해보자! 이 프로그램에서는 학생들의 이름, 학번, 전공, 학점 등의 정보를 데이터베이스에 저장해야 한다. JPA를 사용하면 자바 언어로 작성된 코드에서 이러한 데이터베이스 관련 작업을 간편하게 처리할 수 있다. 즉, JPA를 사용하면 복잡한 데이터베이스 쿼리를 작성할 필요 없이, 자바 객체를 이용하여 데이터베이스 작업.. 개발공간/Spring 2023.04.24
🛒 Controller - Service - Repository 만들기 배달 API를 만들기 위한 Controller - Service - Repository를 만들고, 각 계층에게 필요한 의존성 주입 하기! 💪🏻 갑자기 Controller, Service, Repository를 만들려고 하니 막막하고 어디부터 설계해야할까 고민이 되었지만 차근 차근 해보자! 🍴 FoodRepository package com.delivery.repository; import com.delivery.entity.Food; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface FoodReposito.. 개발공간/Project 2023.04.19
❓DI를 구현하는 가장 좋은 방법?! 1번 과제가 수월하다고 했더니만 2번 과제를 보고 머리가 띵 ~ 했다,, ㅎㅎㅎㅎ 아침인 탓이겠지? 🙄 Controller는 클라이언트의 요청을 받아와 처리하는 역할을 함 그리고 비즈니스 로직을 처리하는 Service가 존재! 그리고 Service는 데이터베이스와 직접적으로 연결되는 Repository를 用 但, 이렇게 각각의 객체를 직접 생성해서 사용한다면, 코드의 유지 보수나 기능 변경 시 많은 문제가 발생할 수 있음 따라서 이 문제를 해결하기 위해 스프링 프레임워크에서는 의존성 주입(DI)이라는 개념을 도입하게 됨 DI를 구현하는 방법으로는 크게 아래 3가지가 존재함 1️⃣ 어노테이션 사용하기 2️⃣ 생성자 사용하기 3️⃣ Setter 사용하기 그 중 어떤 방법이 제일 좋을까? 💭 내 생각에는 2번.. 개발공간/HW 2023.04.19
💭 본격 프로젝트 table 설계하기 1. 필요시 설계해둔 Entity 수정 2. 해당 Entity를 담을 mariadb Table 설계 3. 설계한 테이블 DB에 Create 4. 테이블 생성 후, 예시 데이터 insert 🔥 일단 내가 설계해 둔 Entity 살펴보기 package com.delivery.entity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; @Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Food { @Id @GeneratedVa.. 개발공간/Project 2023.04.18
❓List vs Array 💭 리스트와 어레이는 어떤 차이가 있을까요 ~~ ? List와 Array는 모두 여러 개의 값을 저장할 수 있는 자료구조 크기: 배열(Array)은 크기를 지정해주고 초기화한 후에는 크기를 변경할 수 없음 반면에 리스트(List)는 크기를 동적으로 변경할 수 있음 타입: 배열은 같은 종류의 데이터를 저장할 수 있음 -> 예를 들어, 정수형 배열은 정수형 데이터만 저장할 수 있음. 하지만 리스트는 다른 종류의 데이터를 함께 저장할 수 있음 삽입/삭제: 배열은 중간에 데이터를 삽입하거나 삭제할 때, 그 위치 이후의 모든 데이터를 이동시켜야 함. 하지만 리스트는 중간에 데이터를 삽입하거나 삭제할 때, 그 위치 이후의 데이터를 이동시키지 않고도 가능 접근 방법: 배열은 인덱스를 이용하여 특정 위치에 있는 데이터.. 카테고리 없음 2023.04.16
❓List, Set, Map, Stack, Queue List 데이터를 순서대로 저장하는 자료구조 중복된 값을 허용 인덱스를 사용하여 요소에 빠르게 접근 가능 ArrayList, LinkedList 등이 있음 Set 중복된 값을 허용하지 않는 자료구조 요소의 순서가 보장되지 않음 HashSet, TreeSet 등이 있음 Map 키(key)와 값(value)으로 데이터를 저장하는 자료구조 키는 중복될 수 없고, 값은 중복될 수 있음 HashMap, TreeMap 등이 있음 Stack 후입선출(LIFO) 구조 push() 메서드를 사용하여 데이터를 삽입하고, pop() 메서드를 사용하여 데이터를 삭제함 함수 호출 스택, 수식의 괄호 검사 등에 사용됨 Queue 선입선출(FIFO) 구조 enqueue() 메서드를 사용하여 데이터를 삽입하고, dequeue() 메.. 카테고리 없음 2023.04.16
❓DAO와 DTO ❓DAO와 DTO DAO(Dat Access Object)와 DTO(Data Transfer Object)는 데이터베이스와 자바 클래스 간에 데이터를 전달하거나 저장하기 위해 사용되는 패턴 DTO(Data Transfer Object) - DTO는 데이터를 저장하거나 전달하기 위해 사용되는 객체 - 데이터를 저장하기 위해 클래스를 사용할 때, 멤버 변수를 직접적으로 사용하는 것은 권장 X - DTO는 멤버변수로 데이터를 저장하고, 생성자와 getter/setter 메서드를 제공하여 데이터에 접근하고 수정할 수 있도록 함 - DTO는 일반적으로 로직을 가지고 있지 않고, 순수한 데이터 객체로 사용됨 DAO(Data Access Object) - DAO는 데이터베이스에 접근하기 위한 객체 - DAO는 데이터.. 개발공간/Java 2023.04.16
💭 Stack & Queue (스택 & 큐) 🙄 스택과 큐란 뭘까? 스택 LIFO(Last In First Out) 구조 : 맨 마지막에 추가한 데이터가 가장 먼저 꺼내지는 구조 이 구조를 사용해 역순 문자열을 만들거나 수식의 후위 표기법 변환 등의 작업에 사용할 수 있음 스택에서 데이터를 추가할 때는 push()를 사용하고, 꺼낼때는 pop()을 사용 스택의 예시로는 시스템 스택이 있음 시스템 스택은 함수 호출과 복귀 순서를 스택의 구조를 응용해 관리 큐 FIFO(First In First Out) 구조 : 큐는 스택과 반대로 가장 먼저 추가한 데이터가 가장 먼저 꺼내지는 구조 우선순위가 같은 작업 예약이나 선입 선출이 필요한 대기열 등에서 사용될 수 있음 선형 큐(Linear Queue)는 배열을 이용하여 구현되며, 새로운 데이터를 추가하면 r.. 개발공간/Java 2023.04.16