분류 전체보기 95

[스프링부트 완전정복] 13. RESTful 웹 서비스

1. RESTful 웹 서비스의 개요REST(Representational State Transfer) 원리를 사용하여 HTTP와 웹의 장점을 최대한 활용할 수 있는 아키텍처입니다.특정 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI로 자원을 명시하고, GET, POST, PUT, DELETE 등의 HTTP 방식을 사용하여 요청을 보냅니다.RESTful 웹 서비스의 3대 구성 요소리소스 (Resource): 서버의 고유한 아이디를 가진 자원을 의미하며 URI에 해당합니다.메서드 (Method): 리소스에 대해 요청을 보내는 방식으로 GET, POST, PUT, PATCH, DELETE 등이 있습니다.리소소 형태 (Representation): 클라이..

DEVELOPMENT/Spring 2025.12.30

[스프링부트 완전정복] 12. 로그 기록

1. 로드의 개요실행되는 동안 남긴 로그 기옥은 애플리테이션의 정확한 상황과 상태 정보를 제공합니다. 1.1 로깅 라이브러리로그는 애플리케이션이 실행되는 동안 버그나 성능에 관한 통계 등의 정보를 전달하는 역할을 합니다. 필요한 정보를 직접 로깅하거나, 문제의 원인을 파악할 수 있는 다양한 로깅 라이브러리를 제공합니다. 로깅 라이브러리 유형유형설명java.util.logging자바에서 기본으로 제공하는 로깅 패키지Log4j2015년에 개발이 중단된 가장 오래된 로깅 라이브러리 중 하나LogbackLog4j 이후 출시되었으며, 스프링 부트의 spring-boot-starter-logging에 기본 포함됨Log4j2가장 최근에 등장했으며 Logback과 유사한 기능을 가짐 (Java 7 이상 동작) 로그 ..

DEVELOPMENT/Spring 2025.12.30

[스프링부트 완전정복] 11. 예외 처리

1. 예외 처리의 개요스프링 부트 애플리케이션을 개발하다 보면 웹 요청 처리 중 다양한 예외가 발생합니다. 예외가 발생했을 때 사용자에게 단순히 에러 페이지를 보여주는 것이 아니라, 적절한 HTTP 상태 코드와 메시지를 전달하는 것이 중요합니다.1.1 예외 처리프로그램 실행 중 문제가 발생했을 때, 해당 처리를 중단하고 비정상 종료를 막기 위해 별도의 처리를 하는 것을 의미합니다. 웹 애플리케이션에서는 에러 발생 시 사용자에게 적절한 응답을 주는 것이 핵심입니다.1.2 예외 처리 방법웹 요청에 따라 컨트롤러의 요청 처리 ㅁ서드가 실행되는 중에 발생한 예외를 처리할 수 있는 유용한 애너페이션애너테이션설명@ResponseStatus예외를 특정 HTTP 상태 코드와 매핑하여 응답@ExceptionHandler..

DEVELOPMENT/Spring 2025.12.30

[스프링부트 완전정복] 10장. 시큐리티 처리

1. 스프링 시큐리티의 개요시큐리티: 허가된 사용자만 특정 웹페이지에 접근할 수 있도록 제한하는 보안 기능을 쉽게 구현할 수 있다. 1.1 스프링 시큐리티스프링 시큐리티: 스프링을 기반으로 하는 애플리케이션에서 보안을 담당하는 프레임워크.로그인 및 로그아웃 기능인증 및 승인사용자의 URL 접근 허용 또는 차단OAuth 구현통합 인증, 경량 디렉터리 액세스 프로포콜 구현역할 기반 액세스 제공1.2 기본 설정Build.gradle파일에 의존 라이브러리를 등록해야 합니다. dependencies { implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'} 2. 시큐리티 세부 구성 설정@Configuration@EnableWebSecu..

DEVELOPMENT/Spring 2025.12.16

[스프링부트 완전정복] 9. 유효성 검사

1. 유효성 검사의 개요폼데이터를 전달할때 유효하지 않은 값이 전송 될 수 있다. 이를 방지하기 위해 유효성 검사는 폼 페이지의 입력 값이 서버로 전송되기전 정해진 규칙에 따라 입력되어 있는지, 값이 타장한지 검사합니다. 1. 유효성 검사를 위한 설정@Valid의존 라이브러리 등록implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 유효성 검사의 유형Bean Validation: 특정 도메인 클래스의 멤버 변수 → 제약사항 애너테이션ConstraintValidation: 멤버 변수에 사용자 정의 애너테이션을 정의 → 유효성 검사 수행, 클래스 제약 조건 부여Validator: 스프링부트에서 제공하는 Validator 인..

DEVELOPMENT/Spring 2025.11.21

[스프링부트 완전정복] 8. 다국어 처리

1. 다국어 처리의 개요다양한 언어로 작성된 메시지를 웨 브라우저에 따라 각언어에 대당하는 메시지로 표현할 수 있다. 2. MessageSource를 이용한 다국어 처리1. 메지시 리소스 파일 작성언어 대한 메시지 리소스 파일(.properties)을 생성하고 출력 메시지를 작성합니다.key=value 쌍으로 messages.properties// 파일이름_ko.propertiesPersom.form.Enter.message = 당신의 정보를 입력하세요. 2. 기본 환경 설정Spring Boot는 MessageSource라는 인터페이스를 제공하며, 이를 통해 messages.properties와 같은 메시지 리소스 파일에서 언어별 메시지를 가져와 출력합니다.웹 브라우저의 언어 설정(Locale)에 따..

DEVELOPMENT/Spring 2025.11.15

[REACT] 반응형 웹 구현하기 (react-responsive)

1. 반응형 웹이란?PC, 태블릿, 모바일 등 다양한 화면 크기에서 보기 좋게 보이도록 다양한 디바이스로 접근이 가능사용자 편의성이 높은 UI 2. REACT 시작1. 패키지 설치npm install react-responsive # npmyarn add react-responsive # yarn 2. 기본 사용법react-responsive는 Media Query를 컴포넌트로 사용할 수록 도와주는 라이브러리입니다. 모바일 화면에서는 특정 컴포넌트를 숨기고, 데스트답에서 다른 컴포넌트를 보여주고 싶을 때 유용하게 쓰인다.import React from "react";import { useMediaQuery } from "react-responsive";const ResponsiveExample ..

DEVELOPMENT/react 2025.11.13

[스프링부트 완전정복] 7. 파일 업로드 처리

1. 파일 업로드 개요파일 업로드: 파일을 웹 브라우저에 서버로 전송하여 저장하는 것텍스트 파일, 바이너리 파일, 이미지 파일, 문서 파일웹 페이지에서 폼태그를 사용하고, 파일을 서버로 업로드.1. 파일 업로드를 위한 설정별도의 라이브러리 추가 없이 application.properties파일에 설정spring.servlet.multipart.enabled=true # 멀티 파트 업로드 지원 여부spring.servlet.multipart.file-size-threshold=2KB # 파일이 메모리에 기록되는 임계값spring.servlet.multipart.location=C:/upload # 업로드된 파일의 임시 저장 공간spring.servlet.multipart.max-file-size=20..

DEVELOPMENT/Spring 2025.11.10

[스프링부트 완전정복] 6. 폼 태그

1. 폼 태그 개요폼태그: 사용가의 입력이나 선택 정보를 웹 서보로 전달하는 폼태그1. 폼입력 받은 데이터를 서버로 전송하고 서버는 데이터를 처리하고 결과에 따라 다른 웹 페이지로 보여준다.사용자와의 상호작용: 사용자가 뭘 원하는지 파악 가능 2. 태그 사용법form 태그의 속성속성설명action데이터를 받아 처리하는 웹 페이지의 URL 설정method데이터를 전송하는 HTTP 방식 설정name폼을 식별하는 이름 설정target폼 처리 결과를 응답할 프레임 설정enctype폼을 전송하는 콘텐츠 MIME 유형 설정accept-charset폼 전송에 사용할 문자 인코딩 설정 입력 태그 양식}">>속성값설명typetext한 줄 텍스트 입력radio라디오 버튼으로 열거된 것 중 하나만 선택checkbox..

DEVELOPMENT/Spring 2025.11.03

#2 트러블 슈팅 [스프링부트 완전정복] 6장 실습2

교재를 보면서 실습을 따라하는데, 실습1에서 오류가 발생했다 ㅜㅜㅜ 400 Bad Request 오류의 원인원인:BookController.java의 submitAddNewBook 메서드는 바인딩 대상인 @ModelAttribute Book book만 받고, 오류를 처리할 BindingResult 파라미터가 없었습니다. 1. BookController.java 수정 (오류 검사 및 모델 속성 추가) BookController의 POST 메서드를 수정하여 BindingResult를 추가하고, 오류가 발생했을 때 400 에러 대신 폼 페이지(addBook.html)로 다시 포워딩하도록 했습니다.@GetMapping("/add")public String requestAddBookForm(Model m..

DEVELOPMENT/Spring 2025.11.03