TiL 12

Spring MVC의 ArgumentResolver 등록하고 사용하기

1. ArgumentResolver란?Argument = 메서드의 매개변수Resolver = 해결해주는 객체ArgumentResolver는 Spring MVC가 컨트롤러 메서드를 호출할 때 필요한 매개변수(Argument)를 어떻게 만들어서 넣어줄지 결정하는 역할을 한다. @GetMapping("/users/{userId}")public UserResponse getUser(@PathVariable Long userId) { ...}Spring MVC는 요청 URL에 있는 userId 값을 가져와서 메서드의 Long userId 파라미터에 넣어준다. @PostMapping("/users")public void createUser(@RequestBody SignupRequest request) { ..

TIL 2026.07.27

Java Enum 활용하기 - 계산기 과제로 이해하는 Enum

계산기 과제를 복습하면서 사칙연산 기호를 관리하기 위해 Enum을 사용해보았다.처음에는 단순히 +, -, *, /를 switch문에서 직접 비교했지만, 도전 과제에서는 Enum을 활용하여 연산자 정보를 하나의 타입으로 관리해보았다.이번 글에서는 계산기 과제에서 사용한 코드를 기준으로 Java의 Enum을 어떻게 활용할 수 있는지 정리해보자.1. Enum이란?Enum은 서로 관련된 상수들을 하나의 타입으로 묶어서 관리할 수 있도록 해주는 문법이다.이 값들은 프로그램이 실행되는 동안 갑자기 다른 연산자로 변경될 필요가 없다.이처럼 정해진 값들을 하나의 그룹으로 관리하고 싶을 때 Enum을 사용할 수 있다. 계산기 과제에서는 OperatorType이라는 Enum을 만들었다.public enum Operator..

TIL 2026.07.24

[트러블슈팅] 고객 조회 시 주문 통계(총 주문 수 / 총 구매 금액) 추가하기

1. 문제 상황요구사항기존 고객 조회 API에 다음 정보를 추가해야 했다.총 주문 수총 구매 금액2. 처음 구현한 방법처음에는 OrderRepository에 메서드를 만들었다.countByCustomerId(customerId)sumTotalPriceByCustomerId(customerId) 그리고 CustomerService에서orderRepository.countByCustomerId(customer.getId());orderRepository.sumTotalPriceByCustomerId(customer.getId()); 를 호출하여 응답 DTO에 담았다.장점구현이 간단하다.이해하기 쉽다.3. 고민했던 부분하지만 고객 목록 조회에서는고객이 100명이라면? 고객마다count()sum() 를 각각 ..

TIL 2026.07.14

[IntelliJ IDEA 기능] Compact Middle Packages / 패키지 설정

스프링 실습을 하는데인텔리제이에서 패키지를 만들때패키지 안에 패키지를 만들면 아래 그림처럼 되어서 너무 불편했다.나는 데모 패키지 안에 엔티티랑 서비스 등등의 패키지를 넣고 싶은데데모 패키지 안이 비어있으면 데모 안에 엔티티 안에 서비스패키지가 만들어졌음 .. ㅠㅠ 혹시 나랑 같은 불편함을 겪고 있을지도 모르는 분들을 위해 작성해봅니다. 해결방법완전 간단함 ㅋㅋ프로젝트 옆에 점점점에서 Appearance > CompactMiddle Packages 이거 체크 해제하면됨 해결완료이제 데모 패키지 안에 여러 패키지가 잘 만들어진다!

트러블슈팅 2026.07.07

Java 리스트(List) 활용 & 반복문 리팩토링

1. 기본 구조 - List 사용먼저 상품들을 관리하기 위해 List를 사용함.List products = new ArrayList();Product product1 = new Product("Galaxy S25", 1200000, "최신 안드로이드 스마트폰", 10);Product product2 = new Product("iPhone 16", 1350000, "Apple의 최신 스마트폰", 10);products.add(product1);products.add(product2); 2. 향상된 for문으로 출력하기처음에는 향상된 for문을 사용해서 데이터를 출력함for (Product item : products) { System.out.println( item.getProductNa..

TIL 2026.06.23

TIL - 코드 리팩토링 (중복된 코드 메서드로 만들기)

오늘 계산기 과제를 하면서지난번에 내가 짠 코드를 보니 중복된 부분이 있어서,이걸 좀 중복안되게 할 순 없을까? 라는 고민을 하게 되었다. 튜터님께 물어보니 중복된 코드들을 하나의 메서드로 만들면 어떠냐고 해서 하나의 메서드로 만들어 보았다. 기존 코드try { System.out.print("첫번째 숫자를 입력하세요: "); num1 = sc.nextInt(); sc.nextLine(); if (num1 여기에서 숫자입력 받는 부분들이 중복이 많았고, 뭔가 되게 보기가 싫었음그래서 입력받는 메서드를 만듦. 초기 메서드 코드,,,ㅋㅋstatic int input(String notice, int..

TIL 2026.06.18

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] Scanner 사용 시 nextInt(); 주의점!

간단한 계산기 만드는 과제 진행 중 다음과 같은 에러를 만났다.사칙연산 기호를 입력해야하는데, 입력하기 전에 번째 숫자를 입력하라는게 바로 나온것임 ㅠㅠ // num1, num2, 사칙연산 입력받기System.out.print("첫번째 숫자를 입력하세요: ");num1 = sc.nextInt();System.out.print("사칙연산 기호를 입력하세요(+, -, *, /): ");String cal = sc.nextLine();System.out.print("두번째 숫자를 입력하세요: ");num2 = sc.nextInt(); 이게 당시 내 코드였는데..처음에는 뭐가 잘못됐는지 몰랐다 ㅠㅠ알고보니 nextInt()에 숫자 입력 후 뒤에 엔터는\n 개행문자로 인식해 그 다음줄에 나오는 nextLine(..

트러블슈팅 2026.06.04

자바입문 첫 코드카타 썰 푼다..

오늘은 코드카타라는 걸 처음 해봤다. 코드카타란?반복되는 연습이라는 뜻을 가진 `Kata` 와연결하여 "매일매일 코딩을 반복하여 연습한다"는 의미라고 한다. 매일 코드카타 시간을 가지면서자바랑 더 친해지길 기대해본다! 처음 풀어본 문제는 "두 수의 차 구하기" 였음.정수 `num1`과 `num2`가 주어질때, `num1`에서 `num2`를 뺀 값을 return하도록 함수를 완성하는 간단한 거였다. 여기에 제한사항으로-50000 있었지만 나는 무시했음..ㅋㅋㅋㅋ아 그냥 범위가 넓게 주어지나보다(?) 라고만 생각함.. 그리고 내가 푼 코드class Solution { public int solution(int num1, int num2) { int minus = num1 - num2..

TIL 2026.06.02

서버와 HTTP 정리 - 백엔드 개발자의 핵심 개념

서버(Server)란?서버는 크게:하드웨어 서버소프트웨어 서버두 가지로 나뉜다. 백엔드 개발자는 소프트웨어 서버를 만드는 사람이라고 볼 수 있다. 1. 하드웨어 서버하드웨어 서버는 실제 물리적인 컴퓨터이다. 쉽게 말하면:고성능 컴퓨터 본체24시간 켜져 있는 컴퓨터라고 이해하면 된다.특징항상 켜져 있어야 함고정 IP 주소 사용인터넷 어디서든 접근 가능해야 함 1) 고정 IP란?고정 IP는 서버의 고유 주소같은 개념이다. 택배 주소처럼:주소가 계속 바뀌면 찾기 어렵다.서버도 주소(IP)가 고정되어 있어야 사람들이 찾아올 수 있다.2) 클라우드 서비스란?클라우드 서비스는 서버를 빌려주는 서비스이다. 대표적으로:Amazon Web ServicesNaver Cloud같은 회사들이 제공한다.직접 서버 컴퓨터를 구..

웹 개발 기초 2026.05.27