[ 내일배움캠프/과제 ]
-
[과제] 일정 관리 앱 JPA내일배움캠프/과제 2025. 4. 4. 05:43
✅ 기본 구현 요구사항 (필수)1️⃣ 일정 CRUD일정 등록 시 저장 데이터:할일 제목할일 내용작성자명작성일/수정일 (날짜와 시간 포함)일정 고유 ID 자동 생성작성일과 수정일은 JPA Auditing 활용2️⃣ 유저 CRUD유저 등록 시 저장 데이터:유저명이메일작성일/수정일 (날짜와 시간 포함)유저 고유 ID 자동 생성작성일과 수정일은 JPA Auditing 활용일정과 작성 연관관계 구현3️⃣ 회원가입유저 비밀번호 필드 추가4️⃣ 로그인(인증)Cookie/Session을 활용해 로그인 기능을 구현이메일과 비밀번호를 활용해 로그인 기능을 구현회원가입, 로그인 요청은 인증 처리에서 제외예외처리로그인 실패 시 401 반환 🚀 도전 기능 (선택)1️⃣ 다양한 예외처리 적용Validation 적용 ex) @V..
-
[과제] 일정 관리 앱 만들기 도전 Lv5, Lv6내일배움캠프/과제 2025. 3. 25. 18:24
✅ Lv5. 일정 생성 및 조회1️⃣ 과제 조건설명예외 상황에 대한 처리를 위해 HTTP 상태 코드(링크)와 에러 메시지를 포함한 정보를 사용하여 예외를 관리할 수 있습니다.필요에 따라 사용자 정의 예외 클래스를 생성하여 예외 처리를 수행할 수 있습니다.@ExceptionHandler를 활용하여 공통 예외 처리를 구현할 수도 있습니다.예외가 발생할 경우 적절한 HTTP 상태 코드와 함께 사용자에게 메시지를 전달하여 상황을 관리합니다.조건수정, 삭제 시 요청할 때 보내는 비밀번호가 일치하지 않을 때 예외가 발생합니다.선택한 일정 정보를 조회할 수 없을 때 예외가 발생합니다.잘못된 정보로 조회하려고 할 때이미 삭제된 정보를 조회하려고 할 때 기존에 구현을 하면서 Exception을 처리하고 있어서 Lv5는 ..
-
[과제] 일정 관리 앱 만들기 도전 Lv4내일배움캠프/과제 2025. 3. 25. 18:15
✅ Lv4. 페이지네이션1️⃣ 과제 조건설명많은 양의 데이터를 효율적으로 표시하기 위해 데이터를 여러 페이지로 나눕니다.페이지 번호와 페이지 크기를 쿼리 파라미터로 전달하여 요청하는 항목을 나타냅니다.전달받은 페이지 번호와 크기를 기준으로 쿼리를 작성하여 필요한 데이터만을 조회하고 반환조건등록된 일정 목록을 페이지 번호와 크기를 기준으로 모두 조회조회한 일정 목록에는 작성자 이름이 포함범위를 넘어선 페이지를 요청하는 경우 빈 배열을 반환Paging 객체를 활용할 수 있음 2️⃣ 목록 조회 시 조건 매개변수 변경1. Paging 객체 생성public class CustomPageable { @Schema(description = "페이지 번호 (1부터 시작)", defaultValue = "1") ..
-
[과제] 일정 관리 앱 만들기 도전 Lv3내일배움캠프/과제 2025. 3. 25. 18:01
✅ Lv3. 연관 관계 설정1️⃣ 과제 조건작성자와 일정의 연결설명동명이인의 작성자가 있어 어떤 작성자가 등록한 ‘할 일’인지 구별할 수 없음작성자를 할 일과 분리해서 관리합니다.작성자 테이블을 생성하고 일정 테이블에 FK를 생성해 연관관계를 설정해 봅니다.조건작성자 테이블은 이름 외에 이메일, 등록일, 수정일 정보를 가지고 있습니다.작성자의 정보는 추가로 받을 수 있습니다.(조건만 만족한다면 다른 데이터 추가 가능)작성자의 고유 식별자를 통해 일정이 검색이 될 수 있도록 전체 일정 조회 코드 수정.작성자의 고유 식별자가 일정 테이블의 외래키가 될 수 있도록 합니다.2️⃣ 작성자 등록먼저 작성자 일정과 작성자를 연결하려면 작성자 정보가 있어야해서 작성자를 등록해준다. 1. Writer Entity 작성p..
-
[과제] 일정 관리 앱 만들기 필수 Lv2내일배움캠프/과제 2025. 3. 25. 13:09
✅ Lv2. 일정 수정 및 삭제1️⃣ 과제 조건선택한 일정 수정선택한 일정 내용 중 할일, 작성자명 만 수정 가능서버에 일정 수정을 요청할 때 비밀번호를 함께 전달합니다.작성일 은 변경할 수 없으며, 수정일 은 수정 완료 시, 수정한 시점으로 변경합니다.선택한 일정 삭제선택한 일정을 삭제할 수 있습니다.서버에 일정 수정을 요청할 때 비밀번호를 함께 전달합니다. 2️⃣ 트러블 슈팅이번엔 먼저 수정사항이 생각이 났다.Repository는 오직 DB와의 연결만을 구현하도록 하고 다른 로직을 제외하고 싶다는 생각이 들었다. 1. Repository기존에는 ScheduleResDto 를 return 해주었는데 Entity를 return 해주도록 변경하였고, findScheduleById에서 데이터가 없을 시 th..
-
[과제] 일정 관리 앱 만들기 필수 Lv1내일배움캠프/과제 2025. 3. 25. 12:41
✅ Lv1. 일정 생성 및 조회1️⃣ 과제 조건일정 생성(일정 작성하기)일정 생성 시, 포함되어야할 데이터할일, 작성자명, 비밀번호, 작성/수정일을 저장작성/수정일은 날짜와 시간을 모두 포함한 형태각 일정의 고유 식별자(ID)를 자동으로 생성하여 관리최초 입력 시, 수정일은 작성일과 동일전체 일정 조회(등록된 일정 불러오기)다음 조건을 바탕으로 등록된 일정 목록을 전부 조회수정일 (형식 : YYYY-MM-DD)작성자명조건 중 한 가지만을 충족하거나, 둘 다 충족을 하지 않을 수도, 두 가지를 모두 충족할 수도 있습니다.수정일 기준 내림차순으로 정렬하여 조회선택 일정 조회(선택한 일정 정보 불러오기)선택한 일정 단건의 정보를 조회할 수 있습니다.일정의 고유 식별자(ID)를 사용하여 조회합니다. 2️⃣ 일정..
-
[과제] 키오스크 도전 Lv2내일배움캠프/과제 2025. 3. 13. 16:43
✅ Lv2. Enum, 람다 & 스트림을 활용한 주문 및 장바구니 관리 1️⃣ 과제 조건요구사항이 가지는 의도의도 : 고급 자바 기능을 활용해 프로그램의 효율성과 코드의 가독성을 개선하는 것을 목표로 합니다.목적Enum을 통해 상수를 안전하게 관리하고, 프로그램 구조를 간결하게제네릭을 활용하여 데이터 유연성을 높이고, 재사용 가능한 코드를 설계스트림 API를 사용하여 데이터를 필터링하고, 간결한 코드로 동작을 구현Enum을 활용한 사용자 유형별 할인율 관리하기사용자 유형의 Enum 정의 및 각 사용자 유형에 따른 할인율 적용예시 : 군인, 학생, 일반인주문 시, 사용자 유형에 맞는 할인율 적용해 총 금액 계산람다 & 스트림을 활용한 장바구니 조회 기능기존에 생성한 Menu의 MenuItem을 조회 할 때..
-
[과제] 키오스크 도전 Lv1내일배움캠프/과제 2025. 3. 13. 16:30
✅ Lv1. 장바구니 및 구매하기 기능을 추가하기1️⃣ 과제 조건요구사항이 가지는 의도의도: 클래스 간 연계를 통해 객체 지향 프로그래밍의 기본적인 설계를 익히고, 사용자 입력에 따른 프로그램 흐름 제어와 상태 관리를 학습목표클래스 간 역할 분리를 이해하고, 적절히 협력하는 객체를 설계프로그램 상태 변경 및 데이터 저장을 연습사용자 입력에 따른 예외 처리와 조건 분기를 연습장바구니 생성 및 관리 기능사용자가 선택한 메뉴를 장바구니에 추가할 수 있는 기능을 제공합니다.장바구니는 메뉴명, 수량, 가격 정보를 저장하며, 항목을 동적으로 추가 및 조회할 수 있어야 합니다.사용자가 잘못된 선택을 했을 경우 예외를 처리합니다(예: 유효하지 않은 메뉴 번호 입력)장바구니 출력 및 금액 계산사용자가 결제를 시도하기 전..