전체 글 55

JDBC

JDBC란?JDBC는 자바 애플리케이션이 관계형 데이터베이스와 상호작용하기 위한 표준 Java API이다. 이 API는 Java 애플리케이션이 데이터베이스 관리 시스템(DBMS)과 연결되어, 데이터를 삽입(C), 조회(R), 수정(U), 삭제(D)할 수 있도록 지원한다. JDBC는 Java 애플리케이션과 데이터베이스를 연결하는 표준 방법으로, 개발자는 이를 통해 데이터베이스와의 연결, 쿼리 실행, 결과 처리 등을 쉽게 다룰 수 있다.JDBC 덕분에 데이터베이스를 변경할 때도 유연하게 대응할 수가 있다.   1️⃣ JDBC 구조      2️⃣ JDBC의 주요 특징표준 APIJDBC는 Java에서 관계형 데이터베이스와 상호작용하기 위한 표준 API이며, 대부분의 관계형 데이터베이스 관리 시스템(RDBMS)..

Spring 2025.03.24

롬복(Lombok)이란?

롬복(Lombok)롬복이란 코드를 간소화해 주는 라이브러리이다. Lombok을 사용하면 코드가 간결해지고 유지보수가 쉬워진다. 개발을 하다 보면 클래스에 포함된 필드에 대한 getter(), setter(), toString(), equals(), hashCode() 등의 메서드를 자주 작성해야 하는 상황이 발생한다.  이러한 메서드들은 객체지향 프로그래밍에서 데이터를 접근하거나 출력할 때 필수적으로 필요한 기능들이지만, 매번 직접 작성하기에는 반복적이고 번거로운 작업이 될 수 있다. 이러한 문제를 해결하기 위해 만들어진 도구가 바로 Lombok이다. Lombok은 이러한 메서드를 자동으로 생성해주어, 개발자는 반복적인 코드 작성을 피하고 핵심 로직에만 집중할 수 있게 도와준다.  ✅ Lombok을 사용..

Spring 2025.03.21

데이터베이스와 트랜잭션의 개념

Database란?여러 사람이 공유하고 사용하는 데이터의 조직화된 집합이다.데이터의 집합 저장소 DBMS란?데이터베이스를 관리하고 데이터를 정의, 저장, 검색, 수정, 삭제하는 시스템이다. 벡엔드 개발자가 되려면 데이터베이스를 잘 알아야 한다. 웹 애플리케이션은 사용자 데이터를 저장하거나 요청을 처리하는 시스템이다. 데이터베이스는 웹 애플리케이션에서 중요한 역할을 하며, 효율적인 데이터 관리와 성능을 보장하기 위해 반드시 필요한 지식이다.✅ DBMS의 주요 기능  데이터 정의: 데이터베이스 구조 정의.데이터 관리: 데이터를 효율적으로 저장하고 쿼리 언어(SQ)로 관리.데이터 보안: 사용자 권한 관리 및 데이터 암호화.트랜잭션 관리: ACID 속성 보장.백업 및 복구: 데이터 손실 방지.동시성 제어: 다수..

Spring 2025.03.20

간단한 CRUD 메모장으로 REST API 알아보기

REST API란?클라이언트 종류에 상관없이 서버의 자원을 사용할 수 있도록 설계된 방식이다. HTTP 요청을 통해 서버의 자원을 반환하며, 모든 기기에서 통용될 수 있는 형식(JSON 등)으로 응답을 제공한다. REST API 동작방식 서버는 클라이언트의 요청에 JSON 형식으로 데이터를 응답하며, 최근에는 JSON이 표준으로 자리 잡고 있다. 다른 형식(XML, YAML 등)도 가능하지만 주로 JSON이 사용된다.HTTP 메서드에 관한 내용은 여기서 알아보자. HTTP 개념과 특징HTTP (HyperText Transfer Protocol) HTTP는 웹 개발의 핵심이며 웹 개발자라면 반드시 알고 있어야 한다. 클라이언트(브라우저)와 서버가 어떻게 데이터를 주고받는지를 모르면 문제를 해결하기가 힘들l..

Spring 2025.03.19

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