본문 바로가기
반응형

Back-end/Spring9

[Spring] 415 Unsupported Media Type 오류 해결 (jackson-databind 누락 문제) ⚠️ 문제 현상Talend에서 API를 호출하면서 JSON 데이터를 전송했는데, 서버가 다음과 같은 오류를 반환했습니다.415 Unsupported Media Type 🔍 원인 분석Spring에서 JSON 데이터를 객체로 변환해 주는 Jackson 바인딩이 동작하지 않은 것이 문제였습니다.jackson-databind 라이브러리가 누락돼 있었습니다.Spring Boot가 아닌 일반 Spring 기반이기 때문에, 자동으로 Jackson이 포함되지 않았습니다. ✅ 해결 방법build.gradle에 명시적으로 Jackson 의존성을 추가해 해결했습니다.implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.3' 2025. 7. 27.
[Spring] MyBatis API 테스트 DB 삽입 오류 해결 API를 개발하면서 많이 마주치는 에러 중 하나는 DB 관련 삽입 오류입니다.Spring + MyBatis 프로젝트에서 API를 테스트하던 중 실제로 겪었던 삽입 오류들과, 이를 해결했던 과정들을 정리해 보았습니다. 1. CannotGetJdbcConnectionException (데이터베이스 연결 실패)문제 현상API 요청을 보냈더니 다음과 같은 에러가 발생했습니다.CannotGetJdbcConnectionException: Access denied for user...원인 분석db.properties 파일에 설정한 DB 연결 정보 중 데이터베이스 이름의 대소문자가 실제 DB 이름과 일치하지 않았습니다.✅ 해결 방법db.properties 파일의 DB URL을 실제 DB 이름과 정확히 일치하도록 수정했.. 2025. 7. 27.
[Spring] Vue와 연동되는 스프링 게시판 백엔드 구조 정리 1. Vue 연동 백엔드 vs 일반 백엔드 구조 비교Vue와 연동되는 백엔드는 일반적인 Spring MVC와 다음과 같은 차이점이 있다.구분 일반 백엔드 Vue 연동 백엔드 뷰 처리 방식JSP로 서버가 HTML을 렌더링Vue가 화면 렌더링, 백엔드는 JSON만 응답컨트롤러 어노테이션@Controller + View 반환@RestController + JSON 반환요청 방식HTML Form 방식Vue의 Axios + JSON 또는 FormData응답 형식HTML 페이지JSON 데이터 (ResponseEntity)인증 처리 방식세션 기반 인증토큰 기반 인증파일 업로드 방식HTML Multipart/form-data로 전송 -> JSP에서 처리Vue에서 FormData로 전송, 백엔드는 DTO + 파일 처.. 2025. 7. 6.
[Spring] 스프링 백엔드 구조 정리: DTO, VO, Mapper, Service 차이와 흐름 📁 구성 요소와 역할구성 요소역할설명Controller웹 요청 처리클라이언트의 요청을 받고 DTO로 전달, 응답도 DTO로 반환DTO (Data Transfer Object)데이터 전달 객체클라이언트 ↔ 서버 간 데이터 전송용VO (Value Object)값 객체DB와 연동되는 진짜 데이터MapperDB 접근 인터페이스SQL 실행을 위한 인터페이스로 Service에서 호출, Mapper.xml과 연결Mapper.xmlSQL 정의 파일Mapper 인터페이스의 메서드에 연결되어, 직접 SQL을 명시하는 XML 파일Service (interface)서비스 정의어떤 기능이 있는지 정의ServiceImpl서비스 구현체DTO ↔ VO 변환, 로직 처리, Mapper 호출 등 작업 수행 ☑️ 전체 구조[클라이언트].. 2025. 7. 6.
[Spring] Model 객체와 @ModelAttribute 1. Model이란?Controller → View로 데이터를 전달할 때 사용하는 객체HTML에서 ${변수이름}으로 출력하고 싶을 때, Model에 값을 담아 전달 예제Controller@Controller@Slf4jpublic class HomeController { @GetMapping("/") public String home(Model model) { model.addAttribute("name", "홍길동"); return "index"; // views/index.jsp로 포워딩됨 }}JSP에서 ${name}으로 사용할 수 있도록 데이터를 전달하는 코드 View (index.jsp) ${name} 환영합니다. 최종 출력 결과홍길동 환영합니다. 2... 2025. 6. 29.
[Spring] DTO와 VO의 차이 1. DTO란? (Data Transfer Object)계층 간 데이터 전달에 사용되는 객체목적: 데이터 전달가변성 - 값을 자유롭게 바꿀 수 있음getter, setter 있음 2. VO란? (Value Object)VO는 '값' 자체를 의미하는 객체 주소(Address), 이메일(Email), 금액(Money)처럼 하나의 의미 있는 값 단위를 묶어서 나타낸다.목적: 의미 있는 값 표현불변성 - 값이 바뀌지 않음 (setter 없음)equals(), hashCode() 재정의 → 값 자체를 비교 3. 예시로 이해하기: 회원가입 기능1) 사용자가 입력한 정보를 서버로 전달할 때{ "name": "홍길동", "email": "hello@example.com", "password": "1234"} 회.. 2025. 6. 27.
반응형