❓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
❓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
❓REST API 규칙 🔥 T.G.I.F 🔥 을 맞이해 알아보는 REST API 규칙! REST API는 웹 서버에게 요청을 보내고, 응답을 받아오는 방법을 정해놓은 규칙 REST API 규칙을 지키면, 서버와 클라이언트가 서로 원활하게 통신할 수 있음! 1. URI에는 동사보다는 명사를 사용 - 예를 들어, "사용자 정보 조회"라는 동작을 수행하기 위해서는 /users와 같은 URI를 用 2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현 ex) "/users"에 대한 사용자 정보 전체 조회 : GET /users "/products"에 새로운 제품 등록 : POST /products "/users/1"에 대한 사용자 정보 수정 : PUT /users/1 "/products/2"에.. 개발공간/HW 2023.04.14
❓REST API vs RESTful API ❓REST API vs RESTful API 비슷하지만 다른 둘의 차이를 알아봅시다! REST API와 RESTful API는 비슷한 개념이지만, RESTful API가 REST API의 원칙을 따르면서도 보다 엄격한 제약을 지켜서 설계된 API를 말한다! 즉, REST API는 서버와 클라이언트 간의 데이터를 주고받는 방법을 정의한 것이고, RESTful API는 이 규칙을 보다 엄격하게 지키면서 API를 설계한 것입니다. 💭 예시로 더 쉽게 이해해보기 쇼핑몰에서 상품 목록을 가져오기 위해 REST API를 사용한다면, 예를 들어 /products와 같은 URI를 사용하고 GET 메소드를 사용할 수 있음 서버는 해당 URI에 대한 요청을 받으면 상품 목록을 응답으로 보내게 됨 但, RESTful API.. 개발공간/HW 2023.04.13