분류 전체보기 71

Spring MVC란?

MVC(Model-View-Controller) 패턴이란?웹 애플리케이션을 개발할 때 많이 사용되는 소프트웨어 디자인 패턴으로, 애플리케이션을 세 개의 주요 구성 요소로 분리하여 유지보수성과 확장성을 높인다.✅ MVC 패턴을 사용하는 이유MVC 패턴을 사용하면 코드의 유지보수성과 확장성이 향상되며, 팀 개발이 용이해지고, 테스트가 쉬워지며, 사용자 경험을 최적화할 수 있다.Model, View, Controller✅ MVC 패턴의 구성 요소모델(Model)애플리케이션의 데이터와 비즈니스 로직을 담당데이터의 상태를 유지하고 변경 사항을 관리데이터베이스와 직접 상호작용뷰(View)데이터를 사용자에게 시각적으로 표시하는 역할HTML, JSP, Thymeleaf 같은 UI 렌더링 담당직접 데이터를 변경하지 않음..

Spring 2025.03.18

HTTP 개념과 특징

HTTP (HyperText Transfer Protocol) HTTP는 웹 개발의 핵심이며 웹 개발자라면 반드시 알고 있어야 한다. 클라이언트(브라우저)와 서버가 어떻게 데이터를 주고받는지를 모르면 문제를 해결하기가 힘들 수도 있다.  1. HTTP 개념 ✔️ HTTP란 HyperText Transfer Protocol의 약자로 웹에서 데이터를 주고받을 때 사용하는 통신 규약(Protocol)이다.쉽게 말해 웹 브라우저(클라이언트)와 웹 서버가 서로 소통하는 방법이라고 생각하면 된다.데이터 전송: TEXT, IMAGE, FILE, HTML, JSON 등 다양한 형태의 데이터 전송버전: HTTP/1.1(TCP)이 가장 많이 사용되며, HTTP/2, HTTP/3(UDP) 사용량 증가용도:클라이언트 → 서버..

Spring 2025.03.17

JAVA - 키오스크 트러블슈팅(HashMap 수량 중복 처리)

💡 Lv. 4~6 기능 요구 사항  🐛 출력예시[ SHAKESHACK MENU ]1. Buger2. DRINK3. DESEERT0. 종료[ ORDER MENU ]4. Orders | 장바구니를 확인 후 주문합니다.5. Cancel | 진행중인 주문을 취소합니다.원하는 숫자를 입력하세요: 1 [ Buger 메뉴 ] 1. ShackBurger - $6.9:토마토, 양상추, 쉑소스가 토핑된 치즈버거2. SmokeShack - $8.9:베이컨, 체리 페퍼, 쉑소스가 토핑된 치즈버거3. Cheeseburger - $6.9:포테이토 번과 비프패티, 치즈가 토핑된 치즈버거4. Hamburger - $5.4:비프패티를 기반으로 야채가 들어간 기본버거주문할 메뉴 번호를 입력하세요 (0: 뒤로 가..

JAVA 2025.03.14

JAVA - 스트림(Stream)

✏️ 자바 스트림(Stream)이란?스트림(Stream)은 데이터를 효율적으로 처리할 수 있는 흐름이며, 기존의 for 문이나 Iterator보다 가독성과 재사용성이 뛰어난 선언형 스타일로 작성할 수 있다.  ✏️ 스트림의 특징선언형 스타일for 문이나 Iterator를 사용하지 않고, 데이터를 변환하고 필터링하는 작업을 간결하게 표현할 수 있다.일관된 방식으로 데이터 처리 가능List, Set, Map, 배열 등 다양한 데이터 소스를 같은 방식으로 다룰 수 있다.데이터 흐름 방식데이터 준비 → 중간 연산 → 최종 연산 순으로 처리된다. ✏️ for 문 vs 스트림 비교각 요소를 10배로 변환 후 출력하는 예시로 알아보자arrayList 의 각 요소를 10배로 변환한다.아래 예시를 보고 for 문과 스트..

JAVA 2025.03.13

JAVA - 동등성과 동일성

1. 동등성(Equality) 동등성은 두 객체가 같은 정보를 가지고 있다는 의미다. 즉, 두 객체들이 다른 메모리 주소를 가리키고 있을 수 있지만, 내용이 같으면 동등하다고 말할 수가 있다.   동등성은 equals() 메서드를 사용하여 비교한다. 이 메서드는 객체의 내용이 같은지를 판단한다.String a = new String("hello");String b = new String("hello");System.out.println(a.equals(b)); // true 두 객체 안에 같은 정보가 들어가 있으므로 true라고 알 수 있다. 2. 동일성(Identity)  동일성은  두 개의 객체가 완전히 같은 경우를 보고 동일성이라 한다.  즉, 두 객체가 사실상 하나의 객체로 봐도 무방하고, 메모리..

JAVA 2025.03.12

JAVA - 키오스크 과제(Lv1, Lv2)

계산기 과제를 마무리하고 바로 키오스크 과제를 하며 복습했다.총레벨은 5까지 있고, 오늘은 2까지 해봤다. Lv 1. 기본적인 키오스크를 프로그래밍레벨 당 기능 요구 햄버거 메뉴 출력 및 선택하기 실행시 햄버거 메뉴가 표시되고, 이후 Scanner로 숫자를 입력받아서 메뉴를 선택할 수 있다. 제시된 메뉴 중 입력받은 숫자에 따라 다른 로직을 실행하는 코드를 작성합니다.반복문을 이용해서 특정 번호가 입력되면 프로그램을 종료합니다.package kiosk.Lv1;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..

JAVA 2025.03.10

JAVA - 추상클래스

미니 프로젝트(계산기)를 하면서 추상클래스에 대해 아직 헷갈리는 부분이 있어 정리하게 됐다. 추상클래스란? 추상 클래스(abstract class)는 여러 실체 클래스(구체적인 클래스)의 공통적인 부분(변수, 메서드)을 추출하여 선언한 클래스다.   사실 학습하면서 이렇게 이론만으로는 추상 클래스가 정확히 어떤 것인지 감이 잡히지 않았다.그래서 먼저 "추상"이라는 단어의 의미를 정확히 이해하는 것이 중요하다고 생각하여 정의를 찾아보았다. 추상의 의미먼저 "추상"이라는 단어는 공통적인 특징을 뽑아내어 개념화하는 것을 의미한다. 즉 여러 개의 구체적인 각 대상에서 서로 공통된 특징을 뽑아내어 하나의 개념으로 정리 하는 것이다. 그림으로 보면 이해하기 쉽다.추상 클래스: 'Animal'은 모든 동물의 공통된 ..

JAVA 2025.03.07

JAVA - Optional

Optional이란?Optional 객체는 null을 안전하게 다루게 해주는 컨테이너 객체이다.주로 NullPointerException(NPE) 방지 및 안전한 값 처리를 위해 사용한다.Optional타입은  다양한 메서드들을 제공한다.  Optional 객체 생성 방법 #️⃣ .empty() 값이 없는 빈 Optional 객체를 생성Optional emptyOpt = Optional.empty();  #️⃣ .of() 값이 있는 Optional 생성 (of)Optional opt = Optional.of("Hello, World!");  #️⃣ .ofNullable() ofNullable()은 null 가능성이 있는 값을 안전하게 감쌀 때 사용 Optional optNullable = Optiona..

JAVA 2025.03.06

JAVA 계산기 트러블 슈팅

🛠️ Trouble Shooting❗문제 발견: 콘솔에서 첫 번째, 두 번째 숫자를 입력할 때 숫자가 아닌 문자 또는 공백으로 입력할 경우 프로그램이 비정상적으로 종료되는 트러블 발생❗문제 원인  부분:  이 문제는 Scanner 클래스에서 발생하는 입력 타입 불일치로 인한 예외 처리 부족으로 발생한다. scanner.nextDouble()이나 scanner.next(). charAt(0) 메서드를 사용하여 값을 입력받을 때, 사용자가 예상되는 타입 (예: int, double, char)과 다른 형식의 데이터를 입력하면, 프로그램은 InputMismatchException과 같은 예외를 발생시킵니다. 이 예외가 발생하면 프로그램은 예외를 처리하지 않으면 비정상적으로 종료된다.int first = sc..

JAVA 2025.03.05

JAVA - Enum

Enum이란?enum(열거형, enumeration)은 서로 연관된 상수들의 집합을 정의하는 특수한 데이터 타입즉, 특정 값들만 가질 수 있도록 제한된 상수들의 묶음 Enum을 사용했을 때 장점한정된 값만 가질 수 있음 ☞ enum에 정의된 값 외에는 가질 수 없음.코드의 가독성과 안정성이 향상됨 ☞ 잘못된 값을 넣는 실수를 방지.객체처럼 동작 ☞ 필드, 메서드, 생성자를 가질 수 있음.switch-case 문에서 유용하게 사용 ☞ 코드 가독성 증가.수정 시 변경 범위가 최소화된다.  ☞  enum만 수정하면 됨  Enum 구현 계산기 과제를 하면서 enum이 어떻게 쓰이는지 이해하게 되었다.아래에 보이는 코드처럼 char타입 연산자를 주면서 비교했다면, 입력할 때 " +",  " / " 같은 공백이 있..

JAVA 2025.03.05