
회원가입 시스템 설계(도메인 - member, order, config) enum 생성회원 등급(BASIC / VIP)package member;public enum Grade { BASIC, VIP} Member 클래스 생성package member;public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } // getter, setter public Long getId() { return id; } public void..

스트림 패키지의 구분자바 I/O 스트림데이터를 읽고 쓰는 목적으로 사용됩니다.파일, 네트워크, 메모리 등 다양한 소스에서 바이트나 문자 데이터를 읽거나 쓰기 위한 스트림입니다.InputStream과 OutputStream이 대표적인 I/O 스트림입니다. Stream API와 자바 I/O 스트림은 이름은 비슷하지만, 완전히 다른 개념입니다. Stream API자바 8에서 도입된 중요한 기능 중 하나로, 데이터 컬렉션(자료구조)을 처리할 때 사용되는 강력한 도구입니다.스트림(Stream)은 데이터를 선언적으로 처리할 수 있게 하며, 특히 대용량 데이터 처리 및 데이터 흐름 제어에 매우 유용합니다. Stream API컬렉션(List, Set, Map 등)이나 배열 등의 데이터 소스를 함수형 프로그래밍 스..
사전 기반 지식인터페이스와 다형성: 인터페이스를 사용하여 서로 다른 구현체를 동일하게 처리하는 개념을 이해해야 합니다.메서드 오버라이딩: 상위 클래스나 인터페이스에서 정의된 메서드를 하위 클래스에서 재정의하여 사용하는 방법을 알고 있어야 합니다. 전략 패턴 (Strategy Pattern)동작 방식을 캡슐화하여, 동적으로 전략을 변경할 수 있도록 하는 디자인 패턴 특정 기능을 수행할 여러 방법이 있을 때,그 방법들을 전략(클래스)으로 정의하고 필요에 따라 적절한 전략을 선택하여 사용할 수 있습니다. package strategy;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;i..
사전 기반 지식객체지향 프로그래밍(OOP): 클래스와 객체의 개념, 상속과 인터페이스에 대한 기본적인 이해.다형성: 상위 클래스나 인터페이스를 통해 다양한 하위 클래스를 처리하는 능력.호환성 문제: 서로 다른 인터페이스를 가진 클래스 간의 호환성 문제 해결을 위해 어댑터 패턴을 사용하는 상황을 이해해야 한다. 어댑터 패턴(Adapter Pattern)호환되지 않는 인터페이스를 가진 클래스들을 함께 동작할 수 있도록 변환해주는 디자인 패턴 즉, 기존 클래스의 인터페이스가 요구사항과 맞지 않을 때,새로운 인터페이스를 기존 클래스에 맞추어 주는 역할을 합니다. 이를 통해 호환성 문제를 해결하고, 기존 코드를 수정하지 않고도 새로운 코드와 결합할 수 있습니다. package adapter;public class..
사전 기반 지식객체 지향 프로그래밍: 클래스와 객체 생성에 대한 기본 개념.추상화: 구현과 인터페이스를 분리하는 개념.다형성: 상위 클래스나 인터페이스를 통해 다양한 하위 클래스를 처리하는 능력 팩토리 패턴이란(Factory Pattern)객체 생성 로직을 감추고, 클라이언트(사용자)가 어떤 객체를 생성할지 결정만 하면내부적으로 그 객체를 생성하는 패턴 예를 들어, 자판기는 다양한 음료를 제공하는데, 사용자가 음료를 선택하면 자판기가 내부에서 해당 음료를 준비해줍니다. 사용자는 음료가 준비되는 과정을 신경 쓸 필요 없이, 자판기에 요청만 하면 음료가 나오는 형태 입니다.이것이 팩토리 패턴의 핵심입니다. 팩토리 패턴을 사용하면 객체 생성 과정이 클라이언트 코드로부터 분리되어,클라이언트는 필요한 객체만 요..
빌더 패턴복잡한 객체를 단계적으로 생성할 수 있도록 도와주는 디자인 패턴 특히 많은 옵션이나 매개변수를 가진 객체를 만들 때 유용합니다. 일반적인 생성자는 매개변수가 많아지면 복잡해지기 때문에,빌더 패턴은 각 단계에서 선택적인 매개변수를 추가할 수 있게 해줍니다. 햄버거 예제와 빌더 패턴햄버거를 주문할 때, 특정 업체에서는 다양한 재료 중에서 자신만의 햄버거를 만들 수 있습니다.먼저 빵과 패티 같은 필수 재료를 선택하고, 그다음으로 치즈, 양상추, 토마토 같은 선택적인 재료를 추가합니다.이 과정은 빌더 패턴과 매우 유사합니다. 필수 요소와 선택 요소필수 요소: 햄버거를 만들기 위해선 반드시 있어야 하는 재료가 있습니다. 예를 들어, 빵과 패티는 꼭 필요한 요소입니다. 빌더 패턴에서는 객체를 만들기 위한..
사전기반 지식클래스와 객체: 자바에서 클래스는 객체를 생성하기 위한 틀입니다. 일반적으로 하나의 클래스에서 여러 객체를 생성할 수 있지만, 싱글톤 패턴은 단 하나의 객체만을 보장합니다.생성자(Constructor): 객체가 생성될 때 호출되는 메서드로, 싱글톤 패턴에서는 생성자를 외부에서 호출하지 못하도록 제한합니다.정적 변수와 메서드: 싱글톤 패턴에서 주로 사용되는 정적(static) 멤버에 대한 이해가 필요합니다. 싱글톤 패턴 특정 클래스의 인스턴스를 하나만 생성하고, 이를 전역적으로 접근할 수 있도록 하는 디자인 패턴 주요 목적은 시스템 전체에서 공통된 리소스를 공유하거나, 객체 생성을 제한하여 메모리 낭비를 줄이기 위함입니다. package singleton;// 1. 정적 변수를 선언한다. //..
로버트 C. 마틴(Robert C. Martin), 흔히 "아저씨 보브(Uncle Bob)"로 알려진 소프트웨어 엔지니어가 발표한 객체 지향 프로그래밍 설계 원칙입니다. 즉, SOLID 원칙이란 객체지향 설계의 5가지 중요한 원칙을 뜻하며, 유지보수성과 확장성을 높이기 위해 설계 과정에서 따르는 지침입니다. S 단일 책임 원칙 (Single Responsibility Principle, SRP)클래스는 하나의 책임만 가져야 한다(일을 해야 한다).하나의 책임이란 클래스가 변경되어야 하는 이유가 하나뿐이어야 한다는 의미입니다.예를 들어, 주문을 처리하는 클래스가 있다고 할 때, 이 클래스는 주문과 관련된 기능만 해야하고 사용자 알림 같은 다른 책임도 동시에 맡지 않아야 합니다.이 원칙이 중요한 이유는 여러..
JsonJavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다.JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다.JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다. JSON 특징서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다.자바스크립트 객체 표기법과 아주 유사하다.자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객체로 변환할 수 있는 이점이 있다.JSON 문서 형식은 자바스크..

성능 향상 기법PreparedStatement 사용의 장점연결 풀 (Connection Pool) 사용데이터 소스 (Data Source)의 개념연결 풀의 장점(Connection Pool)캐싱 전략 1. PreparedStatement 사용의 장점SQL 쿼리를 미리 컴파일하고, 동일한 쿼리를 반복해서 실행할 때 효율적으로 사용할 수 있는 인터페이스입니다. 이는 성능과 보안 측면에서 많은 장점을 제공합니다. 성능 향상:쿼리 컴파일: SQL 쿼리를 미리 컴파일하여, 쿼리를 여러 번 실행할 때 컴파일 시간을 절약할 수 있습니다.쿼리 계획 재사용: 동일한 쿼리를 반복적으로 실행할 때, 쿼리 계획을 재사용하여 실행 시간을 단축할 수 있습니다.보안 향상:SQL 인젝션 방지: 쿼리와 데이터가 분리되어 있어 SQL..