본문 바로가기

코딩독학

열거형 - ENUM [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] ENUM  자바는 타입 안전 열거형 패턴"(Type-Safe Enum Pattern)을 매우 편리하게 사용할 수 있는 열거형(Enum Type)을 제공한다.쉽게 이야기해서 자바의 열거형은 앞서 배운 타입 안전 열거형 패턴을 쉽게 사용할 수 있도록 프로그래밍 언어에서 지원 하는 것이다. 영어인 `enum` 은 `enumeration` 의 줄임말인데, 번역하면 열거라는 뜻이고, 어떤 항목을 나열하는 것을 뜻한다. "Enumeration"은 일련의 명명된 상수들의 집합을 정의하는 것을 의미하며, 프로그래밍에서는 이러한 상수들을 사용하 여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.    주요 메서드  values()**: 모든 ENUM 상수를 포함하는 배열을 반환한다.valueOf(String name).. 더보기
[JAVA | 영상스크립트 | 백문이 불여일타!!] 메서드(리팩토링) https://youtu.be/Duk3XobIiOU 1. 문제 설명다음은 입출금을 나타내는 코드이다. 코드를 보면 한 클래스 안에 입금로직과 출금로직이 섞여서 진행되고 있다.입금(deposit)과 출금(withdraw)을 메소드로 만들어서 리팩토링하면서 JAVA의 입출력,반복문, 조건문을 함께 공부할 수 있다.public class RefactoringQ { public static void main(String[] args) { int balance = 10000; // 잔액 // 입금 1000 int depositAmount = 1000; balance += depositAmount; System.out.println(depositA.. 더보기
[HTTP | HTTP 웹 기본지식 | HTTP 헤더2 - 캐시와 조건부 요청] 캐시, 프록시 캐시 HTTP 헤더의 캐싱은 웹 성능 최적화의 핵심적인 부분이다. 캐싱은 서버와 클라이언트 간의 데이터 전송량을 줄여주며, 페이지 로딩 시간을 단축시켜 사용자 경험을 개선한다. 이 과정에서 사용되는 주요 HTTP 헤더를 살펴보자.Cache-Control: 이 헤더는 캐시의 동작을 제어한다. 예를 들어, Cache-Control: no-store는 어떠한 캐시도 사용하지 않도록 지시하며, Cache-Control: max-age=3600은 리소스를 3600초 동안 캐시로 저장하고 사용할 수 있음을 나타낸다.Expires: 이 헤더는 리소스가 언제 만료되는지를 나타내는 날짜와 시간을 제공한다. Expires 헤더가 설정되어 있으면, 그 시간 이후에는 캐시된 복사본을 사용하지 않고 서버로부터 새로운 복사본을 요청해.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 컨테이너와 스프링 빈]스프링 컨테이너에 등록된 빈 조회 public class ApplicationContextBasicFindTest { // 스프링 빈 조회 기능을 테스트하는 클래스 정의 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); // 스프링 컨테이너를 초기화하고, AppConfig 클래스의 설정 정보를 로딩 @Test // JUnit 테스트 메소드임을 나타내는 어노테이션 @DisplayName("빈 이름으로 조회") // 테스트의 이름을 설정 void findBeanByName() { // 빈 이름으로 조회하는 테스트 메서드 MemberService memberService = ac.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해2 - 객체 지향 원리 적용]리팩터링, 새로운 구조와 할인 정책 적용 리팩터링 전public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository());} public OrderService orderService() { return new OrderServiceImpl( new MemoryMemberRepository(), new FixDiscountPolicy());}public class AppConfig { public MemberService memberService() { return new Memb.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기]회원 도메인 실행과 테스트 package hello.core.member;// 이 줄은 패키지 이름을 선언합니다. 패키지는 Java에서 관련된 클래스와 인터페이스를 조직화하는 데 사용됩니다.public class MemberApp {// 이 줄은 'MemberApp'이라는 public 클래스를 선언합니다. public static void main(String[] args) { // Java 애플리케이션의 진입점인 'main' 메서드를 선언합니다. 이 메서드는 'String' 배열을 매개변수로 받으며, 프로그램이 실행될 때 실행됩니다. MemberService memberService = new MemberServiceImpl(); // 'MemberService' 인터페이스의 구현체인 'Mem.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기] 도메인 개발 package hello.core.member;// 이 줄은 패키지 이름을 선언합니다. 패키지는 Java에서 관련된 클래스와 인터페이스를 조직화하는 데 사용됩니다.public enum Grade {// 이 줄은 'public' 접근 제어자로 선언된 'enum' Grade를 정의합니다. 'enum'은 열거형으로, 한정된 상수 값만을 멤버로 가지는 특수한 클래스 타입입니다. BASIC, // 'BASIC'은 Grade 열거형의 첫 번째 상수입니다. 이는 회원 등급 중 기본 등급을 나타냅니다. VIP // 'VIP'는 Grade 열거형의 두 번째 상수입니다. 이는 회원 등급 중 높은 등급을 나타냅니다.}package hello.core.member;// 이 줄은 패키지 이름을 선언합니다... 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 객체 지향 설계와 스프링] SOLID SOLID 원칙은 객체 지향 설계를 위한 다섯 가지 기본 원칙으로, 소프트웨어 설계의 품질을 향상시키고 유지보수를 용이하게 하며 확장성을 높이는 데 목적이 있습니다. 각 원칙은 소프트웨어 아키텍처의 결함을 줄이고, 유연성과 재사용성을 증가시키기 위해 고안되었습니다. 다음은 SOLID 원칙의 각 요소를 설명합니다:1. Single Responsibility Principle (단일 책임 원칙)하나의 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스를 변경하는 이유는 오직 하나여야 합니다. 이 원칙을 적용하면 클래스가 변경되는 이유를 명확히 알 수 있으며, 시스템의 다른 부분에 영향을 미치지 않고 독립적으로 클래스를 개선하거나 수정할 수 있습니다.2. Open/Closed Principle (개방-폐쇄 원.. 더보기