Spring MVC
·
BackEnd/Spring Framework
웹 애플리케이션을 개발하다 보면 많은 요청과 응답을 처리해야 합니다. 이런 복잡한 과정을 효율적으로 관리하기 위해 스프링 프레임워크는 MVC 패턴을 기반으로 한 모듈을 제공합니다. 스프링 MVC의 기본 구조와 동작 원리, 그리고 실제 개발에서 어떻게 활용하는지 알아보겠습니다.스프링 MVC란 무엇인가?스프링 MVC는 Model-View-Controller(Model2) 아키텍처를 기반으로 하는 스프링 프레임워크의 하위 모듈입니다. 이 구조는 애플리케이션의 관심사를 효과적으로 분리하여 유지보수성과 확장성을 높여줍니다.주요 구성 요소스프링 MVC는 크게 세 가지 영역으로 구성됩니다.DispatcherServlet: 스프링 MVC의 핵심 컴포넌트로, 모든 클라이언트 요청을 가장 먼저 받아 적절한 컨트롤러로 전달..
Spring AOP
·
BackEnd/Spring Framework
AOP는 코드의 중복을 획기적으로 줄이고 핵심 비즈니스 로직에 집중할 수 있게 해주는 강력한 기술입니다. 제가 이해한 AOP의 개념과 실제 활용법에 대해 공유하려 합니다.AOP가 왜 필요할까일반적인 서비스 클래스의 메서드를 살펴보면, 크게 두 부분으로 구성됩니다.비즈니스 로직 - 실제로 우리가 수행하려는 핵심 작업 (데이터 생성, 조회 등)부가 기능 - 핵심 작업을 수행하기 위해 필요한 보조 작업 (로깅, DB 접속, 트랜잭션 처리, 예외 처리 등)문제는 이러한 부가 기능들이 여러 메서드에서 계속 반복된다는 점입니다. 예를 들어, 모든 DB 작업 전후로 로깅을 해야 한다면, 각 메서드마다 로깅 코드를 중복해서 작성해야 하죠. 이런 중복 코드는 유지보수를 어렵게 만들고, 핵심 비즈니스 로직을 파악하기 어렵..
SpringBoot
·
BackEnd/Spring Framework
Spring Framework의 확장인 SpringBoot는 Spring 애플리케이션을 빠르고 쉽게 구성할 수 있도록 도와주는 도구입니다. 복잡한 설정을 간소화하고 개발자가 비즈니스 로직에 집중할 수 있게 해주는 SpringBoot의 주요 특징과 사용법을 알아보겠습니다.SpringBoot 프로젝트 구조SpringBoot 애플리케이션은 일관된 디렉토리 구조를 가지고 있어 프로젝트 관리와 개발을 용이하게 합니다.src/main/java일반적인 자바 코드가 위치하는 디렉토리컨트롤러, 서비스, 모델 등 애플리케이션의 핵심 로직이 이곳에 위치패키지 구조를 통해 관심사를 분리하고 코드를 체계적으로 관리src/main/resources자바 이외의 리소스 파일들이 위치하는 디렉토리정적 웹 리소스 (static): CS..
SLF4J와 JUnit
·
BackEnd/Spring Framework
SLF4J & 로깅(Logging)로깅은 디버깅의 한계를 극복하고 장기간 동작에 대한 기록을 남기는 데 사용됩니다. 디버깅만으로는 파악하기 어려운 문제나 실행 중인 애플리케이션의 상태를 모니터링하는 데 큰 도움이 됩니다.SLF4J (Simple Logging Facade for Java)SLF4J는 Java에서 로깅을 위한 파사드(facade) 패턴을 구현한 라이브러리입니다.파사드 패턴 | 라이브러리의 복잡한 구조를 단순화해 인터페이스로 제공하는 패턴SLF4J 구현체 | log4j, logback 등이 있습니다SLF4J의 주요 특징심각도에 따른 로그 레벨trace (낮은 순에서 높은 순)사용자 설정에 따른 로그 레벨 결정개발 과정과 운영 과정을 분리할 수 있습니다로그 레이아웃 설정Log Layout: ..
Spring Framework 개요
·
BackEnd/Spring Framework
프레임워크란?프레임워크는 Frame을 가지고 하는 작업 또는 구조물의 뼈대입니다. 소프트웨어 측면에서는 비즈니스 로직이 빠진 뼈대만 갖춰진 반제품 형태의 애플리케이션이라고 볼 수 있습니다.개발자는 이 뼈대 위에 필요한 기능을 구현하기만 하면 되므로, 기본적인 구조를 매번 처음부터 만들 필요가 없습니다. 이는 마치 집을 지을 때 기초 공사와 골조가 이미 완성된 상태에서 내부 인테리어만 진행하는 것과 비슷합니다.라이브러리 vs 프레임워크라이브러리는:재사용 가능한 코드(함수, 클래스 등)의 모음개발자가 필요할 때 호출하여 사용제어 흐름이 개발자에게 있음 (개발자가 라이브러리를 호출)특정 기능을 수행하기 위한 도구 모음예를 들어, Java의 Apache Commons나 JavaScript의 jQuery는 개발자..