인프런 워밍업 클럽
-
인프런 워밍업 클럽/ BE 7일차 과제 : JPA 마이그레이션인프런 워밍업 클럽 2024. 5. 16. 22:19
7일차 과제문제 1Fruit 도메인JPA를 사용하기 위해 Fruit도메인을 만들어서 Entity로 만들었다.@Entitypublic class Fruit { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id private long id; @Column(nullable = false) private String name; @Column(nullable = false, name = "warehousing_date") private LocalDate warehousingDate; @Column(nullable = false) private long price; @Column(nullable = false) ..
-
인프런 워밍업 클럽/ BE 6일차 과제 : 스프링 컨테이너의 사용인프런 워밍업 클럽 2024. 5. 13. 01:18
6일차 과제기존의 코드를 보면 Controller에서 다 처리해주고 있었다. Controller의 역할인 주소를 연결해주고 요청을 받고 데이터를 내려주고하는 역할을 넘어 비즈니스 로직을 처리하고 DB와 연결까지 하고 있는 것이다. 컨트롤러의 역할과 책임에 맞게 수정을 하게 되면서 컨트롤러는 정확히 요청에서 오는 데이터를 받아주고 요청에 맞는 응답 데이터를 내려주는 역할만 하도록 바꿔줘야한다.FruitControllerpackage com.group.libraryapp.controller.fruit;import com.group.libraryapp.dto.homework.request.FruitRequestDTO;import com.group.libraryapp.dto.homework.request.Fr..
-
인프런 워밍업 클럽/ BE 5일차 과제 : 클린 코드인프런 워밍업 클럽 2024. 5. 9. 18:19
5일차 과제 우선 위의 정리되지 않은 코드를 개선하기 위해 아래와 같이 기능별로 메서드를 나누기로 했다.큰 기능별로 메서드를 나누게 되면 나중에 에러가 발생했을 경우, 어느 메서드에서 에러가 났는지 확인하는 것으로 어떤 기능이 에러인지 바로 확인할 수 있다. 만약 inputNumber 메서드에서 에러가 발생했다면 "아 숫자를 입력하는 로직에서 에러가 발생했구나" 라는 것을 직관적으로 알 수 있게 된다. import java.util.Scanner;public class Main { static Scanner scanner = new Scanner(System.in); static int[] countNumbers; public static void main(String[] args) th..
-
인프런 워밍업 클럽/ BE 4일차 과제 : API 추가인프런 워밍업 클럽 2024. 5. 7. 20:06
이번 과제는 2일차 과제에 이어서 추가적인 API를 만들어 보는 것이다. 문제 1우선 Body로 넘어오는 Json 데이터를 받아주기 위해 DTO를 만들었다.Request Body를 사용해서 만들어준 DTO로 데이터를 받는다.sql문을 만들고 JdbcTemplate객체로 sql문 안에 ? 부분을 채워준다. 결과값5번째 사과가 추가 됐다! 📌Price에 int 대신 long을 사용한 이유는?int 타입은 4바이트로 -2,147,483,648 ~ 2,147,483,647 범위의 값을 표현할 수 있지만,long타입은 8바이트로 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 표현할 수 있다.즉, 나중에 큰 값을 받을 것을 대비해서 long타입을 사용했다고 볼..
-
인프런 워밍업 클럽/ BE 3일차 과제 : 익명 클래스와 람다식인프런 워밍업 클럽 2024. 5. 1. 20:16
익명 클래스란 무엇인가?익명 클래스란 내부 클래스의 일종으로 이름 그대로 이름이 없는 클래스를 말한다.이름이 없다는 것은 앞으로 다시 사용하거나, 기억하지 않아도 된다는 의미로 일시적으로 사용되고 버려지는 클래스라고 할 수 있다. 일반적인 클래스 사용 경우// 부모 클래스class vehicle { public String getName() { return "탈 것"; }}// 자식 클래스class car extends vehicle { @Override public String getName() { return "자동차"; }}public class Main { public static void main(String[] args) { ve..
-
인프런 워밍업 클럽/ BE 2일차 과제 : API인프런 워밍업 클럽 2024. 4. 30. 15:39
문제1Controller@GetMapping("/api/v1/calc")public CalculatorResponseDTO getCalc(@RequestParam int num1, int num2){ return new CalculatorResponseDTO(num1, num2);}@GetMapping을 사용해서 API 주소를 설정해준다.쿼리파라미터를 받아주기 위해 @RequestParam을 사용해서 num1과 num2를 받아준다. 🚨주의 : 쿼리스트링으로 들어오는 변수이름과 @RequestParam으로 설정한 변수이름이 같아야 한다.더보기EX) /api/v1/calc?num1=2&num2=3 이라면 @RequestParam으로 받는 변수 이름도 num1과 num2로 정해야한다.만약 다른 이름으..
-
인프런 워밍업 클럽/ BE 1일차 과제 : 어노테이션인프런 워밍업 클럽 2024. 4. 29. 23:18
어노테이션을 사용하는 이유는 무엇일까?우선 어노테이션이란, 사전적의미로 주석이라는 뜻으로 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종이다. 메타 데이터란 애플리케이션이 처리해야할 데이터가 아니라 컴파일 과정에서 코드를 어떻게 처리해야하는지를 알려주기 위한 추가 정보이다.즉, 우리가 주석을 사용해서 다른 사람에게 추가적인 설명을 하는 것 처럼 코드에 어노테이션을 써서 프로그램에게 간결하고 쉽게 정보를 전달하게 된다. 그렇다면 왜 어노테이션의 역할은 무엇일까?컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공한다.소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다.실행시 특정 기능을 실행하도록 정보를 제공한다.위와 같은 어노테이션의 역할로 코드의 가독성과 ..