JAVA 22

[라이브러리] lombok의 @Builder 동작원리

@Builder란?- 객체 생성 시 Builder 패턴을 자동으로 구현해 주는 Lombok 어노테이션 사용이유?- 생성자를 사용해 객체를 만들면 매개변수가 많아질 때 가독성이 떨어지고 어떤 값이 어떤 필드에 매핑되는지 알기 어렵다.- Builder 패턴은 필드명을 직접 지정하며 객체를 만들 수 있어 가독성과 유지보수성이 높다. Lombok 없이 Builder 패턴 구현public class User { private Long id; private String name; private String email; private User(Builder builder) { // private 생성자 this.id = builder.id; this.name = bui..

JAVA 2025.08.30

SpringBoot - RESTAPI 만들때 사용되는 어노테이션 정리

♦︎ 어노테이션(annotation)이란?클래스, 메서드, 변수 등에 특별한 의미를 부여해서 Spring 플임워크가 자동으로 특정 동작을 수행하도록 도와주는 도구이다.어노테이션을 사용하면 복잡한 설정을 간단하게 처리할 수 있고 코드가 명확해진다는 장점이 있다. ♦︎ RESTAPI를 만들 때 사용된 어노테이션@RestController - 해당 클래스가 REST API 요청을 처리하는 컨트롤러임을 나타낸다.- 내부적으로 @Controller + @ResponseBody가 합쳐진 형태로 반환값이 JSON 또는 XML 형태의 응답 본문으로 자동 변환된다. @RequestMapping("/경로")- 클래스 레벨에서 공통 URL 경로를 지정한다.- 이후의 메서드별 매핑 경로 앞에 이 경로가 자동으로 붙는다. @G..

JAVA 2025.07.20

Spring Boot로 간단한 RESTAPI-POST 구현해보기

💡 먼저 알고 넘어가기 @RequestBody : 클라이언트가 요청 HTTP 본문(body)에 JSON형식 등으로 보낸 데이터를 자바 객체 자동 변환할 때 사용스프링은 해당 데이터를 컨트롤러의 파라미터로 자동 매핑 해준다. POST구현해 보기// 클래스package com.example.self_api.model;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class BookRequest { private String name; private String number; private String..

JAVA 2025.07.20

Spring Boot로 간단한 RESTAPI-GET 구현해보기

💡 먼저 알고 넘어가기 @?? : @로 시작하는 것은 어노테이션(annotation)으로, Spring이 특별한 방식으로 처리하도록 지시하는 역할을 한다.@RestController : 해당 클래스가 RESTAPI요청을 처리하는 컨트롤러임을 선언한다.@RequestMapping("/경로") : 클래스 레벨(즉 클래스 전체)에서의 공통 URL 경로를 지정 이후 메서드들이 URL 앞에 /api가 붙는다.@GetMapping("/경로") 또는 @GetMapping(path = "/hello") : 메서드 레벨에서 요청을 어떤 HTTP 메서드로 받고, 어떤 경로일 때 실행할지 정한다.@PathVariable : : URL 경로에 포함된 값을 변수로 받아오기 위해 사용하는 어노테이션으로 예시 ) /api/us..

JAVA 2025.07.20

[문제] 로또 출력프로그램

사용자는 로또를 구매할 때 구매할 금액을 입력하고 입력한 금액에 맞게 로또번호를 출력한다. (단, 로또 한 장의 금액은 1000원이고 거스름돈도 계산하여 출력한다.) ========================== Lotto 프로그램 -------------------------- 1. Lotto 구입 2. 프로그램 종료 ========================== 메뉴선택 : 1 Lotto 구입 시작 (1000원에 로또번호 하나입니다.) 금액 입력 : 2500 행운의 로또번호는 아래와 같습니다. 로또번호 1 : 2,3,4,5,6,7 로또번호 2 : 20,21,22,23,24,25 받은 금액은 2500원이고 거스름돈은 500원입니다. ========================== Lotto 프로그램..

[문제]다형성 활용

문제) Game 인터페이스를 생성 및 활용하여 게임실행(start) 시마다 다른 게임이 실행되도록 하는 예제를 구현하시오. (a. 홀짝게임, b. 가위바위보게임, c. 주사위 숫자 맞추기 게임) 1. 인터페이스 생성package kr.model;public interface Game { public void start();} 2. 각 게임 클래스 생성// 홀짝 게임package kr.basic;import kr.model.Game;public class OddEvenGame implements Game { @Override public void start() { System.out.println("홀짝 게임을 시작합니다."); }}// 주사위 게임package kr.b..

[문제] 계산기 프로그램

문제) do while문을 이용하여 사칙연산(+,-,*,/)이 가능한 계산기를 만들어 보시오.실행예시) =============================================== 계산기 프로그램 =============================================== 메뉴를 선택하세요. 1. 더하기연산 2. 빼기 연산 3. 곱하기연산 4. 나누기연산 0. 프로그램 종료 번호입력 >> 1 더하기 연산을 위한 두 수를 입력하세요. 입력 >> 10 20 == 연산결과 출력 == 10 + 20 = 30 메뉴를 선택하세요. 1. 더하기연산 2. 빼기연산 3. 곱하기연산 4. 나누기연산 0. 프로그램 종료 번호입력 >> 0 프로그램을 종료합니다... 1차 코드package kr.basic;..

[문제] 가위바위보게임

문제) 컴퓨터와 가위 바위 보를 진행하는 프로그램을 작성하시오.조건 1. 컴퓨터의 가위 바위 보는 난수를 이용하여 구하고조건 2. 사용자의 가위 바위 보는 Scanner 객체를 이용하여 입력받는다.조건 3. 입력이 완료되면 승패를 출력한다.결과예시)=== 결과 ===컴퓨터 : 가위당 신 : 바위결과 : 당신이 이겼습니다. 1차 코드package kr.basic;import java.util.Random;import java.util.Scanner;public class RockPaperScissorsGame { // 문제 : 컴퓨터와 가위 위 보를 진행하는 프로그램을 작성한다. public static void main(String[] args) { Scanner scanner ..