Java 29

[Spring] 전체조회시, 조건 전체조회 (feat.@RequestParam)

처음코드는전체조회만 생각한 코드였음. 근데 과제 중에 작성자명으로 조건 조회가 가능하도록 하라고 되어있었음.작성자명으로 조건조회 할수도있고, 그냥 전체조회만 할 수 있는 메서드가 필요했음. 너무 어려웠당.. 1) 처음 코드@GetMapping("/schedules")public ResponseEntity> getSchedules() { return ResponseEntity.status(HttpStatus.OK).body(scheduleService.findAll());} @Transactional(readOnly = true)public List findAll() { List schedules = scheduleRepository.findAll(Sort.by(Sort.Direction.DESC, "m..

트러블슈팅 2026.06.30

[Spring 입문] 스프링 전체 흐름 정리

스프링은 한마디로사용자의 요청을 받아서 DB와 연결해 데이터를 처리하고 다시 응답하는 구조 이 전체 흐름은 아래 3-Layer 구조로 움직인다.1. 전체 구조 한눈에 보기 2. Controller (입구 / 안내 데스크)Controller는 사용자의 HTTP 요청을 받는 입구@RestController@RequiredArgsConstructorpublic class MemoController { private final MemoService memoService; @PostMapping("/memos") public ResponseEntity createMemo(@RequestBody CreateMemoRequest request) { return ResponseEntity...

Spring 2026.06.29

[Spring 입문] Servlet 이해하기

서블릿(Servlet)이란?클라이언트의 HTTP 요청(Request)을 받아 처리하고, 처리 결과를 HTTP 응답(Response)으로 보내는 자바 프로그램 웹 애플리케이션에서 브라우저와 서버 사이를 연결해 주는 역할 서블릿의 역할서블릿은 다음과 같은 역할을 수행한다.클라이언트의 HTTP 요청(Request)을 받는다.요청 데이터를 읽고 해석한다.요청을 적절한 비즈니스 로직(Controller, Service)으로 전달한다.처리 결과를 HTTP 응답(Response)으로 만들어 클라이언트에게 전송한다. 서블릿 동작 과정브라우저↓HTTP 요청(Request)↓Servlet↓Controller↓Service↓Repository↓DB↓Controller↓Servlet↓HTTP 응답(Response)↓브라우저 ..

Spring 2026.06.26

[Spring 입문] 어노테이션 & Lombok

스프링 시작하면서 처음 들어보는 낯선 용어들..어노테이션, Lombok 1. 어노테이션 (Annotation)어노테이션이란? 자바 코드에 메타 데이터를 추가하여 코드에 특별한 의미를 부여하거나, 컴파일러와 런타임에 특정 동작을 트리거하기 위해 사용. 메타데이터란 데이터를 설명하는 데이터다.어노테이션은 프로그램에게 추가 정보를 알려주는 표시(메타데이터) 라고 보면 된다. 즉, 간단히 말해서 어노테이션은 프로그램이 읽는 표시 정도로 생각하면 될듯. 알고보니 이미 어노테이션을 보고 쓴적이 있었다@Overridepublic String toString() {} 부모의 메서드를 재정의 하는 오버라이드도 어노테이션이었다는거! 2. Lombok Lombok은 반복되는 코드를 자동으로 생성해주는 라이브러리이다. ..

Spring 2026.06.25

[Spring 기초] Spring이란?

Spring은 웹서버 개발을 쉽게 만들어 주는 도구상자이다.Java로 개발할때 많은 코드가 필요하다면, Spring을 사용하면 단 몇줄이면 구현이된다. 딸깍으로 할 수 있다고 한다.. 이제 그 유명한 Spring을 한번 배워 보자!! Spring도 있고, Spring Boot도 있던데 두 개의 차이가 뭐지..? 라는 의문이 있었는데 Spring이 딸깍이라면 Spring Boot는 그 딸깍마저 더 간소화해서 개발자들이 개발 로직에 더 집중할 수 있게 나온거라고 한다..아자쓰! 자주 듣는 용어 중에 라이브러리랑 프레임워크가 있는데 라이브러리란?개발에 필요한 클래스, 함수 들을 모아 놓은 것. 프레임워크란?개발을 편하게 하기 위해 개발환경 틀을 제공하는 것 대충 요약하자면프레임워크 틀 안에서 라이브러..

Spring 2026.06.24

람다(Lambda)와 스트림(Stream) 간단 정리

람다(Lambda)람다는 메서드를 간결하게 표현하는 문법이다. 익명 클래스를 사용하는 것보다 코드가 훨씬 짧고 읽기 쉬워진다.예를 들어 Comparator를 구현할 때 별도의 클래스를 만들지 않고 람다식을 사용해 간단하게 작성할 수 있다.느낀 점코드가 훨씬 간결해졌다.처음에는 문법이 낯설었지만, "메서드를 한 줄로 표현하는 방식"이라고 생각하니 이해하기 쉬웠다.스트림(Stream)스트림은 컬렉션(List 등)의 데이터를 반복하면서 가공하거나 원하는 결과를 얻기 위한 기능이다.대표적으로 다음과 같은 작업을 간결하게 처리할 수 있다.filter() : 원하는 조건의 데이터만 선택map() : 데이터를 다른 형태로 변환forEach() : 각 요소를 순회하며 작업 수행collect() : 결과를 새로운 컬렉션..

TIL 2026.06.22

Java - Enum으로 문자열 입력값과 연산자를 매칭하기

문제 상황계산기 만드는 과제중 연산 기호는 enum으로 처리하도록 코드를 짜보았다.enum 이론만 알고, 실제로 코드 구현은 처음이라 많이 해맸음. 내 자바인생 첫 enum 코드 ㅋㅋ이거면 된거 아니가?? 라고 생각했음 각 연산기호 상수를 만들고 인자에다가 입력값과 동일한 문자열을 넣어줌.사실 여기까지 이해하는데도 좀 오래 걸림;;public enum OperatorType { ADD("+"), SUBTRACT("-"), MULTIPLY("*"), DIVIDE("/"); private String operator; OperatorType(String operator) { this.operator = operator; } public String ..

TIL 2026.06.19

Java 기초정리 - enum(열거형)

enum이란?enum(열거형) 은 미리 정해진 값들만 사용할 수 있도록 만들어주는 자료형이다.선택지가 이미 정해져 있는 타입이라고 생각하면 됨. 예를 들어 주문 상태는 아래 네 가지 중 하나만 존재한다.주문 완료배송 준비배송 중배송 완료이처럼 가능한 값이 정해져 있을 때 enum을 사용하면 된다.enum이 필요한 이유만약 String으로 상태를 관리한다면String status = "배송중"; 다음과 같은 문제들이 발생할 수 있다.status = "배송중";status = "배송 중"; // 띄어쓰기status = "배숑중"; // 오타status = "사과"; // 엉뚱한 값 모두 컴파일 오류 없이 저장된다.즉, 아무 문자열이나 저장할 수 있기 때문에 실수가 발생하기 쉽다.enum ..

Java 2026.06.17

ArrayList 기반 장바구니 구현

1. 문제 발견처음엔 내가 만든 Product 클래스를 자료형에 넣을 수 있다는 생각을 아예 못함..그래서 밤티같이 아래 코드처럼 침 ;; ArrayList items;ArrayList prices; 딱봐도 이건 아닌것 같은데 라는 느낌이 와서.. 짱구를 굴려봄아 이거 Product 넣어도 되는거 아닌가 어차피 참조형 변수니까로 해결 그리고 장바구니 목록 출력하니깐 이래 나옴;; 바로 내용을 보여줄 줄 알았는데 참조 주소값이 나옴..collection.Product@3e25a5 초기 구조 (잘못된 방향)ArrayList items;ArrayList prices; 객체로 묶는 방식으로 변경public class Product { private String item; private i..

트러블슈팅 2026.06.16

Java 기초 정리 - 추상 클래스(abstract class)와 팩토리 메서드

추상 클래스란?추상 클래스(abstract class)는 미완성 설계도라고 할 수 있다.일반 클래스는 객체를 생성할 수 있지만, 추상 클래스는 미완성 상태이기 때문에 객체를 생성할 수 없다.대신 여러 클래스들의 공통 기능을 정의하는 부모 클래스 역할을 한다.abstract class Animal { abstract void sound();}추상 클래스는 흔히 템플릿(Template) 이라고도 부른다.부모 클래스에서 공통 규칙을 정해두고, 자식 클래스가 그 규칙에 맞게 구현하도록 강제하는 역할을 한다.추상 메서드란?추상 메서드는 선언부만 있고 구현부(몸통)가 없는 메서드이다.abstract void sound();일반 메서드와 달리 { }가 없다. 왜냐하면 부모 클래스에서는 어떤 동작을 할지만 정해두..

Java 2026.06.15