Study/SpringBoot 18

간단한 회원 관리 예제로 웹 애플리케이션 계층 구조를 이해하기

목차애플리케이션 기본 계층 구조회원 도메인과 리포지토리 구현단위 테스트 코드 적용단위 테스트란?회원 서비스 로직 구련 애플리케이션 기본 계층 구조 간단히 각 구성 요소를 설명하면:컨트롤러: 클라이언트의 요청을 받아 서비스에 전달하고, 결과를 다시 클라이언트에게 응답한다.서비스: 비즈니스 로직이 있는 계층으로, 요청에 따라 필요한 데이터를 처리하거나 변환하는 역할을 한다.리포지토리: 데이터베이스와 직접 소통하며, CRUD(생성, 조회, 수정, 삭제) 작업을 수행한다.도메인: 애플리케이션의 핵심 데이터를 정의하는 클래스들로, 비즈니스 로직에서 다루는 주요 개념들을 나타낸다.데이터베이스: 실제 데이터를 저장하는 곳이다. 회원 도메인과 리포지토리 구현  Member 클래스는 도메인 모델로서 회원 정보를 나타내며..

Study/SpringBoot 2024.10.31

스프링(Spring)과 스프링 부트(Spring Boot)의 차이점 알아보기

자바 기반 웹 개발에서 많이 사용되는 스프링(Spring)과 스프링 부트(Spring Boot)가 있는데, 간혹 둘이 같은 프레임워크라고 생각하는 사람들도 있고, 나도 정확한 차이점을 정리해두기 위해 이 글을 작성하게 되었다. 스프링(Spring) 프레임워크란?스프링은 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로 복잡한 기업용 애플리케이션 개발을 용이하게 해준다. 주요 특징은 다음과 같다.POJO 기반 개발: 기존의 EJB(Enterprise Java Beans)의 복잡성을 줄이고, 간단한 자바 객체(Plain Old Java Object)로 개발할 수 있다.의존성 주입(DI)과 AOP 지원: 모듈 간 결합도를 낮추고 유연성을 높이는 의존성 주입과 관점 지향 프로그래밍을 지원한다.유연한 모듈화..

Study/SpringBoot 2024.10.15

스프링부트 웹 개발의 주요 종류

1. 정적 컨텐츠정적 콘텐츠는 서버에서 별다른 처리 없이 클라이언트에게 그대로 제공되는 파일이다. 일반적으로 HTML이다.이러한 정적 파일들은 보통 resources/static 폴더에 저장되며 브라우저가 요청하면 서버는 해당 파일을 클라이언트에게 반환한다.이 방식은 동적인 로직이 필요하지 않은 단순한 웹 페이지에 적합하고, 성능이 우수하고 서버 부하가 적다. 그러나 정적인 내용만 제공하기 때문에 사용자와의 상호작용이 많은 웹 애플리케이션에는 적합하지 않다. - 실행 흐름 2. MVC와 템플릿 엔진MVC(Model-View-Controller)는 웹 개발에서 자주 사용하는 패턴으로 데이터를 다루는 Model, 사용자에게 보여주는 View, 그리고 비즈니스 로직을 처리하는 Controller로 구분된다. ..

Study/SpringBoot 2024.10.10

로깅(logging)이란 무엇이며, 왜 중요한가? (SpringBoot의 spring-boot-starter-logging 라이브러리)

1. 로깅이란 무엇인가?로깅(logging)은 소프트웨어 애플리케이션에서 실행 중 발생하는 다양한 이벤트, 오류, 경고, 정보 등을 기록하는 활동이다. 개발자나 운영자는 이러한 로그를 분석하여 애플리케이션의 상태를 파악하고 문제를 진단할 수 있다. 로그는 시스템의 행동을 추적하고 디버깅하는 데 중요한 역할을 하며, 프로덕션 환경에서도 애플리케이션의 정상 작동 여부를 확인하는 데 필수적이다. 일반적으로 로그는 텍스트 파일, 콘솔, 또는 클라우드 서비스에 기록된다. 로그는 시간순으로 기록되며, 각 로그 항목에는 발생 시점, 이벤트의 심각도, 이벤트 소스, 그리고 메시지가 포함된다. 로그는 애플리케이션이 어떻게 동작하는지, 그리고 예상치 못한 상황에서 무슨 일이 일어났는지를 파악하는 데 도움을 줄 수 있다.2..

Study/SpringBoot 2024.10.03

MVC 디자인 패턴의 과거와 현재

웹 개발에서 애플리케이션의 구조를 설계할 때 MVC(Model-View-Controller) 디자인 패턴은 오랫동안 사용되어 온 중요한 아키텍처 패턴이다. 이 글에서는 MVC 패턴의 기본 개념부터 시작하여, 현대적인 웹 개발 환경에서 React와 Spring Boot와 같은 프렘워크를 활용하여 MVC 패턴을 어떻게 적용하는지 알아보겠다.1. MVC 디자인 패턴이란?MVC 패턴은 애플리케이션을 세 가지 핵심 구성 요소로 분리하여 개발하는 방법이다.Model(모델): 데이터와 비즈니스 로직을 관리, 데이터베이스와의 상호 작용, 상태 관리 View(뷰): 사용자에게 보여지는 UI를 구성, 모델의 데이터를 시각적으로 표현Controller(컨트롤러): 사용자 입력을 처리하고, 모델과 뷰 사이에서 중개자 역할, ..

Study/SpringBoot 2024.09.29

CORS(Cross-Origin Resource Sharing)에 대해 이해하기

현대 웹 개발에서 CORS(Cross-Origin Resource Sharing)를 이해하고 적절하게 구성하는 것은 애플리케이션이 다른 도메인에 호스팅된 리소스와 안전하고 효율적으로 상호작용할 수 있도록 하는 데 필수적이다. 먼저 동일 출처 정책에 대해 알아보면 동일 출처 정책은 웹 페이지의 리소스가 다른 출처의 리소스와 상호작용하는 방식을 제한한다. 여기서 "출처"는 프로토콜(http 또는 https), 도메인(example.com), 그리고 포트 번호(있을 경우)의 조합으로 정의되는 것이다. 예를 들어, 다음 URL들은 서로 다른 출처를 나타낸다:http://example.comhttps://example.comhttp://example.com:8080이 정책 때문에, http://example.co..

Study/SpringBoot 2024.07.27

Spring Security의 HTTP 필터 이해하기

스프링 시큐리티의 HTTP 필터는 일반적으로 요청에 적용해야 하는 각 책임을 관리하며 책임의 체인을 형성한다.  필터는 요청을 수신하고 구 논리를 실행하며 최종적으로 체인의 다음 필터에 요청을 위임한다.HTTP 필터는 doFilter() 메서드를 재정의해 논리를 구현해야 한다. 이 메서드는 ServletRequest, ServletResponse, FilterChain 매개 변수를 받는다.  ServletRequest - 요청에 대한 세부 정보응 얻는다.ServletResponse - 이 객체를 이용해 응답 클라인언트로 다시 보내기 전에 또는 더 나아가 필터 체인에서 응답을 변경한다.FilterChain - 체인의 다음 필터로 요청을 전달한다. 필터 체인은 필터가 작동하는 순서가 정의된 필터의 모음을 나..

Study/SpringBoot 2024.07.24

OAuth 2 프레임워크

OAuth 2는 권한 부여 프레임워크로 3가지 구성 요소를 가지고 있다.사용자: 리소스를 소유하는 개인클라이언트: 사용자 대신 사용자의 리소스에 접근하는 애플리케이션.권한 부여 서버: 클라이언트가 리소스 서버가 노출하는 사용자의 리소스에 접근할 권한을 부여하는 애플리케이션. 특정 사용자를 식별하고 클라이언트에 승인받았음을 증명하는 방법을 제공한다. OAuth2는 권한 부여에 토큰을 사용한다. 그리고 OAuth 2가 그랜트(grant)라고 하는 토큰을 얻는 여러 방법을 제공한다. 다음은 가장 일반적인 그랜트 유형이다.- Authorization Code Grant (권한 부여 코드 그랜트)- Resource Owner Password Credentials Grant (리소스 소유자 비밀번호 자격 증명 그랜..

Study/SpringBoot 2024.07.13