전체 글 42

[TIL]Spring boot와 Spring Framework

TIL - 2025.03.18오늘 배운 것 개요Spring 강의 2강, 3강 시청Project 피드백 정리백준 알고리즘: Gold - Fly me to the Alpha Centauri프로그래머스 알고리즘:Lv1 - 최대공약수와 최소공배수프로래머스 SQL알고리즘: Lv1 - 흉부외과 또는 일반외과 의사 목록 출력하기, Lv2 - DATETIME에서 DATE로 형 변환1. Spring 2주차1. 개발 환경 설정Postman 설치 → API 테스트 및 디버깅을 위해 활용 Git 활용 → 원격 저장소 git clone 후 프로젝트 관리 2. 프레임워크와 라이브러리 차이프레임워크 → 소프트웨어 개발의 틀을 제공 (Spring Framework) 라이브러리 → 특정 기능을 제공하며 선택적으로 사용 가능 (L..

TIL 2025.05.14

[Project]Kiosk_Feedback

코딩 과제 평가표구현 사항 평가구현 사항완성도 평가 내용자기 평가튜터 평가필수 Lv 1기본적인 키오스크 프로그래밍 (Scanner 활용한 입력, 반복문과 조건문 활용한 입력 처리)🟩🟩필수 Lv 2객체 지향 설계를 적용한 햄버거 메뉴 클래스 관리 (필드값 존재 여부, List 및 new 키워드 활용 여부)🟩🟩필수 Lv 3객체 지향 설계를 적용한 순서 제어 클래스 관리 (Kiosk 클래스 생성 및 활용, start 메서드 활용한 입/출력 및 종료 흐름 처리)🟩🟩필수 Lv 4객체 지향 설계를 적용한 음식 메뉴 및 주문 내역 관리 (Menu 클래스로 메뉴 카테고리 관리, MenuItem 리스트 포함 여부, 카테고리 이름 반환 메서드 구현 여부)🟩🟩필수 Lv 5캡슐화 적용 (접근 제한자 활용, Ge..

Project 2025.05.14

[TIL]네트워크 기본 개념과 Web 지식

TIL - 2025.03.17오늘 배운 개요Spring Framework를 배우기 전, 필수적인 네트워크 개념과 Web 기초 지식을 학습알고리즘 풀이(프로그래머스-직사각형 별찍기)알고리즘 풀이(백준-Contact)알고리즘 풀이(프로그래머스-경기도에 위치한 식품창고 목록 출력하기)1. 기초 Spring 강의네트워크 기초인터넷과 네트워크 개념컴퓨터 간의 통신 방식인터넷 프로토콜(IP)과 IP 주소 개념데이터 전송 단위: 패킷(Packet)TCP & UDPTCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송 (3-way handshake)UDP (User Datagram Protocol): 빠른 데이터 전송, 신뢰성 보장 없음포트(PORT): 같은 IP 내에서 서비스 구분..

TIL 2025.05.14

[Project]Kiosk

1. Kiosk 프로젝트 Git1. Kiosk 프로젝트 TIL_12. Kiosk 프로젝트 TIL_23. Kiosk 프로젝트 TIL_34. Kiosk 프로젝트 TIL_45. Kiosk 프로젝트 TIL_5Kiosk 프로젝트를 진행하며 생긴 트러블 슈팅을 모아 작성하였다. Lv1 ~ Lv4까지는 막힘 없이 구현 하였으나, Lv5와 추가 기능 구현에서 많은 문제를 맞이하였다.아래의 내용은 막혔던 문제와 그 해결방법을 간략히 정리 한 내용이다.트러블 슈팅1. FileNotFoundException - 사용자 데이터 파일 저장 문제1. 문제 발생UserData.saveUserData() 실행 시 FileNotFoundException 발생원인: 파일 대신 폴더가 생성됨 → 파일을 찾을 수 없음loadUserData..

Project 2025.05.14

[TIL]파일 입출력

### **TIL - 2025.03.12** ## **오늘 배운 것 개요** - **Java Enum 활용**: 사용자 유형별 할인율 적용 - **파일 입출력 적용**: 사용자별 잔액 및 포인트 관리 - **코드 최적화**: `Math.max()`, `AtomicInteger`, `Stream API` 활용 --- ## **1. Kiosk 프로젝트 - 결제 및 사용자 데이터 관리 개선** ### **1. 사용자별 잔액 및 포인트 관리 (파일 입출력)** - 기존 **고정된 변수 방식**에서 **파일을 활용한 데이터 저장 방식**으로 개선 - `UserData` 클래스를 활용하여 **사용자의 잔액 및 포인트를 저장하고 불러옴** #### **코드 개선** ```java public class Use..

TIL 2025.05.14

[TIL]Enum 활용

TIL - 2025.03.12오늘 배운 것 개요Java Enum 활용: 사용자 유형별 할인율 적용Math.max() 활용: 부족한 금액 계산 시 음수 방지코드 최적화: StringBuilder 및 Math.max()를 사용하여 불필요한 연산 제거1. Kiosk 프로젝트 - 할인 및 장바구니 기능 개선1. Enum을 활용한 사용자 유형별 할인율 적용기존 할인율을 상수 값이 아닌 Enum으로 관리하여 가독성을 높임Discount Enum을 활용하여 각 사용자 유형별 할인율 적용수정 코드public enum Discount { PDS(0.1), MILL(0.05), STU(0.03), NON(0.0); private final double discountRate; Discount(double ..

TIL 2025.05.14

[TIL]예외 처리 개선

TIL - 2025.03.11오늘 배운 것 개요코드카타(Code Kata) 진행: 알고리즘 문제 풀이 연습. 장바구니 기능 개선: 장바구니 조회, 특정 상품 제거, 전체 삭제 기능 추가. 예외 처리 강화: 장바구니가 비어 있을 때 특정 동작(4, 5, 6 입력) 실행 방지. 문자열 정렬 최적화: Arrays.sort()와 StringBuilder를 활용한 내림차순 정렬. 1. Kiosk 프로젝트1. 장바구니 기능 개선1. OOP 원칙 점검개선 사항viewCart()를 활용하여 장바구니 상태 출력.order()에서 사용자 유형별 할인 적용 기능 추가 예정.removeCart()에서 Stream API를 사용하여 특정 상품을 효율적으로 제거.1. 예외 처리 강화기존 문제점장바구니가 비어 있는데 4, ..

TIL 2025.05.14

[TIL]객체 지향 원칙과 코드 리팩토

TIL - 2025.03.10오늘 배운 것 개요Java에서 객체 지향 원칙(OOP) 을 적용하여 코드를 리팩토링함.장바구니 기능 개선: 전체 삭제 및 특정 상품 삭제 기능 추가.StringBuilder 최적화: 문자열 결합 시 성능 향상을 위해 StringBuilder 활용.오류 수정: String.append() 오류 해결 및 불변 객체(String)의 문제 해결.1. Kiosk 프로젝트1. OOP 원칙 적용 및 개선1. OOP 원칙 점검SRP (단일 책임 원칙) -> 클래스는 단 하나의 책임만 가져야 한다.OCP (개방-폐쇄 원칙) -> 클래스는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다.LSP (리스코프 치환 원칙) -> 자식 클래스는 부모 클래스를 대체할 수 있어야 한다.ISP (인터..

TIL 2025.05.14

[TIL]Kiosk 프로젝트 구조 정리

TIL - 2025.03.07오늘 배운 것 개요Java 기반의 Kiosk 프로젝트 구조를 정리하고, 메인 메뉴에서 각 Lv 실행 후 다시 돌아오는 방식을 구현각 LvX.Main에서 0 입력 시 src.Main으로 복귀하도록 수정, run() 메서드를 사용하여 객체지향적인 실행 흐름을 유지프로그래머스 알고리즘 풀이1. Kiosk 프로젝트1. Lv1 ~ 3 구현세부 내용LvX.Main.main(args); 직접 호출을 제거하고, new LvX.Main().run(); 형태로 변경0 입력 시 프로그램 종료Scanner를 한 번만 닫도록 수정2. 뒤로가기 구현세부 내용0입력 시 src.Main으로 복귀하도록 return 처리2. 알고리즘 학습1. 가운데 글자 가져오기작성 코드class Solution { pub..

TIL 2025.05.14