김영한 38

[Spring] 주문과 할인 도메인 설계

1. OrderService 인터페이스를 생성하여 Impl에서 받게 할 것이다2. Impl 에서 Member 정보를 저장한 interface 와 할인 정책을 가지고 있는 Discount interface에 따를 것이다.  주문과 할인 도메인 개발 discount 개발package hello.springbasic.discount;import hello.springbasic.member.Member;public interface DiscountPolicy { //return은 할인 대상 금액 int discount(Member member, int price);} 할인을 하기 위해서는 price와 member가 필요하다.package hello.springbasic.discount;import h..

Spring 2025.03.16

[Spring] 회원게시판 만들어보기

만들기 전에 비즈니스 요구 사항을 정리해야 한다. 1. 비즈니스 요구사항 정리- 데이터 : 회원ID, 이름- 기능 : 회원 등록, 조회- 아직 데이터 저장소가 선정되지 않음컨트롤러 : mvc의 컨트롤러 역할서비스 : 핵심 비즈니스 로직 구현리포지토리: 데이터베이스에 접근, 도메인 객체를 DB 에 저장하고 관리도메인 : 비즈니스 도메인 객체, 데이터베이스에 주로 저장되는 비즈니스 도메인 객체 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리된다.  회원 도메인과 리포지토리 만들어보기1. 인터페이스 만들기package domain.repository;import domain.Member;import java.util.Optional;public interface MemberRepository ..

Spring 2025.03.02

[Java] 익명 클래스

익명 클래스는 지역클래스의 특별한 종류의 하나이다.익명 클래스는 지역 클래스인데 이름이 없다는 특징이 있다. 익명 클래스(Anonymous Class)란?익명 클래스는 이름이 없는 클래스로, 보통 특정 인터페이스나 클래스를 즉석에서 구현할 때 사용주로 일회성 사용을 위한 목적으로 사용되며, 코드의 간결성을 높일 수 있다.new Printer() {Body}익명 클래스는 클래스의 본문(body)을 정의하면서 동시에 생성한다.new 다음에 바로 상속 받으면서 구현할 부모타입을 입력하면 된다.이 코드는 인터페이스를 생성하는 것이 아니고 Printer 라는 이름의 인터페이스를 구현한 익명 클래스를 생성하는 것이다.예시// 1. 인터페이스 정의interface Animal { void sound();}// ..

JAVA 2025.02.16

[Java] 중첩 클래스, 내부 클래스

클래스안에 클래스를 중첩해서 정의할 수 있는데, 이것을 중첩 클래스라고 한다.중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스내부 클래스 종류내부 클래스지역 클래스익명 클래스중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다.변수의 선언 위치정적 변수(클래스 변수)인스턴스 변수지역 변수중첩 클래스의 선언 위치정적 중첩 클래스내부 클래스지역 클래스 class Outer { ...//정적 중첩 클래스static class StaticNested {...}//내부 클래스 class Inner {... }}내부 클래스는 앞에 static 없이 class를 사용한다.정적 충첩은 정적 변수와 같이 앞에 static 을 붙인다.class Outer {public void..

JAVA 2025.02.09

[Java] 문자열과 타입 안전성

자바에서 제공하는 열거형(Enum Type)에 대해서 정리할 것이다.정리하기 전에 열거형이 생겨난 이유를 알아볼려고한다. 예시 상황Basic --> 10% 할인, Gold --> 20%할인, VIP --> 30% 할인예) 골드회원이 10000원을 구매하면 할인 대상 금액은 2000원이다.회원 등급과 가격을 입력하면 할인 금액을 계산해주는 클래스를 만들어보자.package enumeration.ex0;public class DiscountService { public int discount(String grade, int price) { int discountpercent = 0; if (grade.equals("BASIC")) { discountperce..

JAVA 2025.02.08