📌 요약이번 강의에서는 업로드된 파일들을 목록으로 조회하고 삭제할 수 있는 API를 만들어봅니다.프론트엔드에서 파일 선택 후 삭제하거나 전체 목록을 보여주는 기능을 위해 필수예요!📁 파일 목록 조회 API@GetMapping("/files")public ResponseEntity listFiles() throws IOException { try (Stream paths = Files.list(uploadDir)) { List fileNames = paths .map(Path::getFileName) .map(Path::toString) .collect(Collectors.toList()); return Respo..
📌 요약이번 강의에서는 업로드한 파일을 다운로드하거나 이미지로 미리보기하는 API를 만들어 봅니다.정적 파일 서빙 + 직접 다운로드용 API도 구현해서, 프론트엔드에서 파일을 자유롭게 사용할 수 있어요!🚀 정적 파일 서빙 설정`application.properties`에 업로드 폴더를 정적 리소스로 등록해요. ```properties spring.web.resources.static-locations=classpath:/static/,file:./uploads/📥 파일 다운로드 API (Content-Disposition 사용)@GetMapping("/download/{filename}") public ResponseEntity downloadFile(@PathVariable String filen..
🧠 개념 설명1️⃣ 생성자란?생성자는 객체를 만들 때 자동으로 호출되는 특수한 메서드입니다.클래스 이름과 같고, 리턴 타입이 없습니다.2️⃣ this 키워드this는 현재 객체 자신을 가리키는 참조입니다.필드와 매개변수의 이름이 같을 때 구분하는 데 사용돼요.3️⃣ 생성자 오버로딩여러 개의 생성자를 정의해서 다양한 방식으로 객체를 초기화할 수 있습니다.조건은 매개변수의 개수나 타입이 달라야 합니다.💻 예제 1 – this 사용public class User { String name; int age; public User(String name, int age) { this.name = name; // this로 필드 구분 this.age = age; } ..
🧠 개념 설명1️⃣ 클래스란?클래스는 설계도입니다. 객체를 만들기 위한 틀, 청사진이에요.예를 들어 Person이라는 클래스를 만들면, 사람이라는 공통 개념을 정의하는 거예요.2️⃣ 객체란?객체는 클래스에 따라 실제 메모리에 만들어진 실체(instance)에요.하나의 클래스에서 여러 개의 객체를 만들 수 있어요.3️⃣ 클래스의 구성요소필드(field): 객체의 속성(변수)메서드(method): 객체의 동작(함수)생성자(constructor): 객체를 만들 때 호출되는 특수한 메서드💻 예제 1 – 클래스 정의와 객체 생성public class Person { String name; int age; void introduce() { System.out.println("안녕하세..
🧠 개념 설명1️⃣ 메서드란?메서드는 어떤 작업을 수행하는 코드 덩어리에 이름을 붙여서 나중에 호출할 수 있도록 만든 구조예요.함수처럼 동작하지만, 자바에서는 클래스 안에 정의되기 때문에 메서드라고 부릅니다.2️⃣ 왜 메서드를 쓰는가?코드 재사용 가능가독성 향상유지보수 편리매개변수와 반환값으로 다양한 입력/출력 구현3️⃣ 메서드의 기본 구조리턴타입 메서드이름(매개변수들) { // 실행 코드 return 결과값;}💻 예제 1 – 기본 메서드 정의와 호출public class MethodExample1 { public static void main(String[] args) { sayHello(); // 메서드 호출 } public static void sayHel..
🧠 개념 설명1️⃣ String은 객체다!자바의 문자열은 String 클래스의 객체예요."Hello"라고 써도 사실 내부적으로 new String("Hello")처럼 동작해요.2️⃣ 문자열은 불변이다!String은 한 번 만들어지면 내용이 바뀌지 않아요!문자열을 바꾸면 기존 문자열이 수정되는 게 아니라 새로운 문자열이 생성되는 구조예요.3️⃣ String vs StringBuilder문자열을 자주 수정할 땐 StringBuilder를 사용하면 성능이 훨씬 좋다!💻 예제 1 – 문자열 선언과 출력public class StringExample1 { public static void main(String[] args) { String greeting = "안녕하세요"; Sy..