전체 글 (73) 썸네일형 리스트형 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #2 목차 프로젝트 2단계 목표 1. 출근 기능 등록된 직원은 출근을 할 수 있어야 한다. 출근의 경우 이름은 동명이인이 있을 수 있으므로 DB에 등록된 id를 기준으로 처리된다. 2. 퇴근 기능 출근한 직원은 퇴근을 할 수 있어야 한다. 퇴근 역시 DB에 등록된 id를 기준으로 처리된다. 특정 직원의 날짜별 근무시간을 조회하는 기능 특정 직원 id와 2024-01과 같이 년/월을 받으면, 날짜별 근무 시간과 총 합을 반환해야 한다. 이때 근무 시간은 분단위로 계산된다. 예를 들어, 1번 id를 갖는 직원에 대해 2024-01을 기준으로 조회하면, 다음과 같은 응답이 반환되어야 한다. 경우의 수. - 등록되지 않은 직원이 출근하려는 경우 - 출근한 직원이 또 다시 출근하려는 경우 - 퇴근하려는 직원이 출근하지.. 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 (직원 조회 기능) 목차 1. 직원 조회 기능 스펙 HTTP Method: GET HTTP Path: /emp 2. 구현 2-1. DTO 생성 직원의 Role을 가져올 때 ENUM으로 상수 집합을 만들어 가져왔다. ENUM을 사용하면 가독성과 확장면에서도 좋고 컴파일 시 타입 오류를 알게해줘서 잘못된 값이 들어오는 것을 방지해준다. package com.miniproj.management.dto.employee.response; import com.miniproj.management.domain.employee.Employee; import com.miniproj.management.domain.employee.EmployeeRole; import lombok.Getter; import lombok.NoArgsConstru.. 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 (팀 조회 기능) 목차 1. 팀 조회 기능 스펙 HTTP Method: GET HTTP Path: /team 2. 구현 2-1. DTO 생성 팀 목록을 반환할 때 팀이름, 매니저, 직원 수를 전달해야 되기 때문에 생성자 파라미터에 Team을 넣어주었다. package com.miniproj.management.dto.team.response; import com.miniproj.management.domain.team.Team; import lombok.Getter; import lombok.NoArgsConstructor; @Getter @NoArgsConstructor public class TeamResponse { private String name; private String manager; private int.. 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 (직원 등록 기능) 목차 1. 직원 등록 기능 스펙 HTTP Method: POST HTTP Path: /emp/save Http Body: { name: String teamId: long role: String birthday: Date workstartDate: Date} 2. 직원 테이블 생성 직원 테이블의 필수 정보는 직원 이름, 팀 매니저 여부, 입사일자, 생일이다. 그리고 어떤 팀에 소속되었는지 확인할 수 있게 team_id 컬럼도 추가해주겠다. create table employee ( id bigint auto_increment primary key, team_id bigint not null, name varchar(25), is_manager tinyint(1), birthday DATE, work_st.. 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 (팀 등록 기능) 목차 1. 팀 등록 기능 스펙 우선 팀 등록 기능의 스펙을 정해야 된다. 데이터를 넘겨야 하니까 Method는 POST로 하고, httpBody로 팀명을 보내야 된다. HTTP Method: POST HTTP Path: /team/save Http Body: { name: String } 2. 팀 테이블 생성 팀 데이터를 저장할 수 있도록 테이블을 생성한다. 각 데이터의 고유성을 보장하기 위한 id 컬럼과 팀명을 저장하기 위한 name 컬럼을 정의한다. id컬럼을 primary key로 지정하고, name컬럼은 null 값이 들어올 수 없도록 not null 제약 조건을 주었다. create table team ( id bigint auto_increment primary key , name varcha.. 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 (프로젝트 설정) 목차 1. 프로젝트 설정 자바 17 버전 Spring Boot 3.x.x 버전 JPA MySQL 2. 스프링 프로젝트 생성 새로운 스프링 프로젝트를 만들기 위해 https://start.spring.io/로 접속을 했다. 과제에서 요구된 환경에 맞게 자바 17버전과 Spring Boot 3.2.3버전을 선택하고, Spring Web, Thymeleaf, Lombok 라이브러리를 추가해주었다. PostMan을 통해서 API를 날렸을 때 제대로 동작하는지 확인해보고, 추후에 Thymeleaf를 이용해 화면도 붙여보고 싶어서 Thymeleaf를 추가했다. 그리고 사용법을 잘 모르지만 이번 기회에 Lombok을 사용하는 방법도 배우고 싶어서 Lombok도 추가했다. 3. MySQL, JPA 설정 프로젝트에 My.. 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 목차 프로젝트 1단계 목표 1. 프로젝트 설정 자바 17 버전 Spring Boot 3.x.x 버전 JPA MySQL 2. 팀 등록 기능 회사에 있는 팀을 등록할 수 있어야 합니다. 팀이 가져야할 필수 정보는 다음과 같습니다. 팀 이름 3. 직원 등록 기능 직원을 등록할 수 있어야 합니다. 직원이 가져야할 필수 정보는 다음과 같습니다. 직원 이름 팀의 매니저인지 매니저가 아닌지 여부 회사에 들어온 일자 생일 4. 팀 조회 기능 모든 팀의 정보를 한 번에 조회할 수 있어야 합니다. 5. 직원 조회 기능 모든 직원의 정보를 한 번에 조회할 수 있어야 합니다. 구현 1. 프로젝트 설정 인프런 워밍업 클럽 - BE 0기, 미니프로젝트 #1 (프로젝트 설정) 1. 프로젝트 설정 자바 17 버전 Spring Boo.. 인프런 워밍업 클럽 - BE 0기, 과제 #7 목차 과제 문제1. 과제#6에서 만들었던 Fruit 기능들을 JPA를 이용하도록 변경해보세요. 문제2. 과일 Entity Class를 이용해 특정 과일을 기준으로 지금까지 가게를 거쳐간 과일 개수를 세보세요. 더보기 문제3. 아직 판매되지 않은 특정 금액 이상 혹은 특정 금액 이하의 과일 목록을 받아보세요. 더보기 풀이. 문제1 더보기 study_fruit 테이블에 매핑되도록 Fruit 객체를 생성해준다. package com.group.libraryapp.domain.study; import javax.persistence.*; import java.util.Date; @Entity @Table(name = "study_fruit") public class Fruit { @Id @GeneratedVal.. 이전 1 2 3 4 ··· 10 다음