[ 분류 전체보기 ]
-
[Spring] HTTPSpring 2025. 3. 18. 23:30
✅ HTTP란? (HyperText Transfer Protocol)웹에서 클라이언트(브라우저)와 서버가 서로 데이터를 주고받기 위해 만든 통신 규약(프로토콜) 💾 HTTP로 주고받는 데이터 예시HTML (웹 페이지)CSS (디자인)JavaScript (동작)이미지, 동영상JSON (서버-클라이언트 API 데이터 교환)📈 HTTP 주요 버전버전특징HTTP/1.1가장 많이 사용, 기본 버전HTTP/2성능 개선 (멀티플렉싱), 대부분 브라우저 지원HTTP/3UDP 기반, 속도 향상 ✅ HTTP 핵심 특징 3가지Stateless (무상태성)서버는 이전 요청의 상태를 기억하지 않음요청할 때마다 필요한 모든 정보를 매번 보내야 함Connectionless (비연결성)요청하고 응답받으면 연결 종료매 요청마다 ..
-
[Spring] Web 기초Spring 2025. 3. 18. 21:35
🔎 DNS (Domain Name System)란?사람이 외우기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 시스템✅ 왜 필요할까?컴퓨터끼리는 IP 주소로 통신하지만 우리는 192.168.0.1 같은 숫자 못 외움google.com, naver.com 같은 도메인 이름으로 쉽게 접속💡 DNS 작동 과정spartacodingclub.kr 도메인을 구매 후 DNS 서버에 등록사용자가 웹 브라우저에 도메인 입력DNS 서버가 해당 도메인에 맞는 IP 주소 반환IP가 바뀌어도 DNS 서버에서 갱신만 하면 끝!📌 핵심 포인트DNS가 없었다면 우리는 매일 IP 외우느라 머리 터짐도메인 주소는 항상 DNS 서버가 해석해준다우리가 입력하는 https://spartacodingclub.kr →..
-
[Spring] 네트워크 기초Spring 2025. 3. 18. 21:29
🌐 인터넷이란?인터넷 = 전 세계 컴퓨터들이 연결된 거대한 통신망TCP/IP 프로토콜 기반으로 동작해저 광케이블, 인공위성을 통해 실제 물리적 연결도 되어 있음 🌐 인터넷 프로토콜(IP)이란? IP(Internet Protocol) = 서로 다른 컴퓨터끼리 데이터를 주고받기 위한 약속우리가 흔히 아는 192.168.0.1 같은 숫자는 IP 주소IP 주소 = 기기의 전화번호 같은 역할패킷(Packet) 전송데이터는 '패킷'이라는 작은 덩어리로 쪼개져서 전송패킷 구조: 소스 IP, 목적지 IP, 데이터'누가 누구한테 보내는지' 명확하게 표시❌ 그런데 IP 방식의 한계점애플리케이션 구분 불가어느 프로그램으로 보내야 할지 IP만으론 알 수 없음비연결성상대방이 받든 말든 그냥 던지고 끝비신뢰성패킷이 유실되거나..
-
[과제] 키오스크 도전 Lv2내일배움캠프/과제 2025. 3. 13. 16:43
✅ Lv2. Enum, 람다 & 스트림을 활용한 주문 및 장바구니 관리 1️⃣ 과제 조건요구사항이 가지는 의도의도 : 고급 자바 기능을 활용해 프로그램의 효율성과 코드의 가독성을 개선하는 것을 목표로 합니다.목적Enum을 통해 상수를 안전하게 관리하고, 프로그램 구조를 간결하게제네릭을 활용하여 데이터 유연성을 높이고, 재사용 가능한 코드를 설계스트림 API를 사용하여 데이터를 필터링하고, 간결한 코드로 동작을 구현Enum을 활용한 사용자 유형별 할인율 관리하기사용자 유형의 Enum 정의 및 각 사용자 유형에 따른 할인율 적용예시 : 군인, 학생, 일반인주문 시, 사용자 유형에 맞는 할인율 적용해 총 금액 계산람다 & 스트림을 활용한 장바구니 조회 기능기존에 생성한 Menu의 MenuItem을 조회 할 때..
-
[과제] 키오스크 도전 Lv1내일배움캠프/과제 2025. 3. 13. 16:30
✅ Lv1. 장바구니 및 구매하기 기능을 추가하기1️⃣ 과제 조건요구사항이 가지는 의도의도: 클래스 간 연계를 통해 객체 지향 프로그래밍의 기본적인 설계를 익히고, 사용자 입력에 따른 프로그램 흐름 제어와 상태 관리를 학습목표클래스 간 역할 분리를 이해하고, 적절히 협력하는 객체를 설계프로그램 상태 변경 및 데이터 저장을 연습사용자 입력에 따른 예외 처리와 조건 분기를 연습장바구니 생성 및 관리 기능사용자가 선택한 메뉴를 장바구니에 추가할 수 있는 기능을 제공합니다.장바구니는 메뉴명, 수량, 가격 정보를 저장하며, 항목을 동적으로 추가 및 조회할 수 있어야 합니다.사용자가 잘못된 선택을 했을 경우 예외를 처리합니다(예: 유효하지 않은 메뉴 번호 입력)장바구니 출력 및 금액 계산사용자가 결제를 시도하기 전..
-
[과제] 키오스크 필수 Lv5내일배움캠프/과제 2025. 3. 13. 15:57
✅ Lv5. 캡슐화 적용하기1️⃣ 과제 조건MenuItem, Menu 그리고 Kiosk 클래스의 필드에 직접 접근하지 못하도록 설정합니다.Getter와 Setter 메서드를 사용해 데이터를 관리합니다. 2️⃣ 구현 포인트1. 사용자의 입력을 관리하기 위한 InputHandler 생성public class InputHandler { public int getUserInput(BufferedReader br, int maxOption) throws IOException { // 반복문 while (true) { try { System.out.print("번호를 선택해주세요 : "); int input = ..
-
[과제] 키오스크 필수 Lv4내일배움캠프/과제 2025. 3. 13. 15:48
✅ Lv4. 객체 지향 설계를 적용해 음식 메뉴와 주문 내역 클래스 기반으로 관리 1️⃣ 과제 조건Menu 클래스 생성하기설명 : MenuItem 클래스를 관리하는 클래스입니다. 예를 들어, 버거 메뉴, 음료 메뉴 등 각 카테고리 내에 여러 MenuItem을 포함합니다.List 은 Kiosk 클래스가 관리하기에 적절하지 않으므로 Menu 클래스가 관리하도록 변경합니다.여러 버거들을 포함하는 상위 개념 ‘버거’ 같은 카테고리 이름 필드를 갖습니다.메뉴 카테고리 이름을 반환하는 메서드가 구현되어야 합니다.구조 예시public static void main(String[] args) { // Menu 객체 생성하면서 카테고리 이름 설정 // Menu 클래스 내 있는 List 에 MenuItem 객체..
-
[과제] 키오스크 필수 Lv3내일배움캠프/과제 2025. 3. 13. 15:20
✅ Lv3. 객체 지향 설계를 적용해 순서 제어를 클래스로 관리1️⃣ 과제 조건요구사항이 가지는 의도객체 지향 개념을 학습하고, 데이터를 구조적으로 관리하며 프로그램을 설계하는 방법을 익힙니다.main 함수에서 관리하던 전체 순서 제어를 Kiosk 클래스를 통해 관리합니다.Kiosk 클래스 생성하기설명: 키오스크 프로그램의 메뉴를 관리하고 사용자 입력을 처리하는 클래스입니다.MenuItem을 관리하는 리스트가 필드로 존재합니다.main 함수에서 관리하던 입력과 반복문 로직은 이제 start 함수를 만들어 관리합니다.List menuItems 는 Kiosk 클래스 생성자를 통해 값을 할당합니다.Kiosk 객체를 생성하고 사용하는 main 함수에서 객체를 생성할 때 값을 넘겨줍니다.요구사항에 부합하는지 검토..