본문 바로가기

Spring5

Spring Bean 이란? Spring에서 Bean은 Spring 컨테이너가 직접 생성하고 관리하는 Java 객체를 의미합니다.일반적인 Java 객체는 개발자가 new 연산자를 통해 생성하고 관리하지만, Spring Bean은 스프링 컨테이너가 생성, 의존성 주입, 초기화, 소멸까지의 생명주기(Lifecycle)을 전적으로 관리합니다.제어의 역전(IoC)과 의존성 주입(DI)스프링이 Bean을 관리하는 원리를 이해하기 위해서는 IoC와 DI라는 개념을 알아야 합니다.제어의 역전(IoC : Inversion of Control)객체의 제어권이 개발자가 아닌 **프레임워크(Spring)**에 있는 것을 말합니다.전통적인 프로그래밍에서는 개발자가 직접 객체를 생성하고 흐름을 제어했지만, 스프링에서는 프레임워크가 객체의 생명주기(생성, .. 2026. 1. 5.
Maven vs Gradle vs Ant : 빌드 방식의 변화 Java 개발을 시작하면 가장 먼저 마주하는 것이 바로 빌드 도구입니다.pom.xml, build.gradle, build.xml… 각 파일들은 대체 무엇이고, 왜이렇게 많은 빌드 도구들이 존재할까요? Spring 프로젝트 빌드에 사용되는 다양한 도구들의 차이점과 빌드 방식을 알아보려고합니다.우선 빌드 도구인 Ant, Mave, Gradle을 도입하게 된 배경과, 목적을 한번 정리해봤습니다.Java 빌드 도구의 역사와 배경Ant (2000년 출시)배경 : Unix의 Make를 Java 세계로 가져오려는 시도, Java의 “Write Once, Run Anywhere”의 철학에 맞춰 플랫폼 독립적 빌드 필요특징절차적(Imperative) 방식의 XML 기반 빌드 스크립트의존성 관리 기능이 없음Maven (.. 2025. 12. 27.
Springboot 공통 예외처리를 위한 로직 이번 글에서는 사이드 프로젝트를 진행하며 구성했던 전역 예외 처리(Global Exception Handling) 로직에 대해 정리 후 공유해보려고 합니다.프로젝트 초기, “어떻게 하면 Error Code를 템플릿화하여 모든 도메인에서 공통적으로 사용할 수 있을까?”라는 고민이 가장 컸습니다. 특히 추후 Spring 프레임워크나 라이브러리에서 발생하는 표준 예외에도 적용할 수 있도록 확장성을 고려한 설계를 목표로 했습니다.아래의 방법이 정답이라고 할 수는 없지만, 제가 고민하고 구현했던 기록을 공유합니다.설계 목표 : 일관된 에러 응답 및 관심사 분리이번 설계의 핵심 목표는 두 가지입니다.일관된 에러 응답 제공: 애플리케이션 전체에서 발생하는 다양한 예외를 잡아 클라이언트에게 표준화된 형식의 JSON 에.. 2025. 12. 13.
Spring에서 기상청 API 사용하기 프로젝트 개발을 진행하면서 공공데이터 API를 사용하며 API 통신으로 받아온 Json 데이터를 변환하는 방법을 정리한 글입니다. 현재 날짜의 최고 기온과, 최저 기온, 현재 시각의 습도를 조회하기 위해 기상청 단기예보 조회서비스를 사용한다.단기예보조회 API의 상세기능명세는 다음과 같다. 상세기능명 단기예보조회상세기능 설명단기예보 정보를 조회하기 위해 발표일자, 발표시각, 예보지점 X좌표, 예보지점 Y 좌표의 조회 조건으로 발표일자, 발표시각, 자료구분문자, 예보 값, 예보일자, 예보시각, 예보지점 X 좌표, 예보지점 Y 좌표의 정보를 조회하는 기능Call Back URLhttp://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/get.. 2023. 9. 8.
Jackson 라이브러리란? 프로젝트 개발을 진행하면서 공공데이터 API를 사용하며 API 통신으로 받아온 Json 데이터를 변환하는 방법을 정리한 글입니다.Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변환하는데 사용할 수 있는 라이브러리인 jackson을 사용했습니다.Jackson-databindJackson 라이브러리는 Java 객체와 JSON 간의 변환 및 직렬화/역직렬화 작업을 수행하는데 사용된다.Jackson은 Java의 JSON 처리를 단순화하고 유연성을 제공하여 다양한 애플리케이션에서 데이터를 효과적으로 다룰 수 있도록 도와준다.jackson 라이브러리 dependency추가implementation group: 'com.fasterxml.jackson.core', name:.. 2023. 9. 7.