2025/01 16

[SpringBoot] JPA CORE - JPA란 무엇일까?

애플리케이션에서 DB를 직접 다룰때의 문제점DB 테이블 생성SQL 작성JDBC를 이용하여 SQL 실행 ( jdbcTemplate.update(sql, "Robbie", "오늘 하루도 화이팅!");)SQL 결과를 객체로 직접 만들어줘야함= SQL에 의존적이라 변경에 취약함 (SQL을 직접 수정하고 변환부분도 추가 작성필요) 이에,  ORM(Object-Relational Mapping)이 등장!ORM (Object-Relational Mapping) Object : "객체"지향 언어 (자바, 파이썬) Relational : "관계형" 데이터베이스 (H2, MySQL) 반복적이고 번거로운 애플리케이션 단에서의 SQL 작업을 줄여주기 위해 등장 JPA (Java Persistnece API) - 자바 ORM ..

[SpringBoot] Spring MVC - Jackson, ObjectMapper

JacksonJSON 데이터 구조를 처리해주는 라이브러리Object -> JSON타입의 String으로 변환JSON타입의 String -> Object로 변환 Spring은 3.0버전 이후로 Jacskon과 관련된 API를 제공 SpringBoot의 starter-web에서는 default로 Jackson 관련 라이브러리들을 제공 = 이미 External Libraries에 jackson이 있는 걸 확인가능 = 따로 build.gradle에 추가하지 않아도 됨 Java의 객체를 그냥 반환하면 Spring에서 내부적으로 처리하지만, 직접 JSON 데이터를 처리해야하는 경우에는 Jackson 라이브러리의 ObjectMapper를 사용     1. Object To JSON : objectMapper.writ..

[SpringBoot] Spring MVC - 데이터를 Client에 반환하는 방법(JSON), RestController

웹 생태계가 고도화 되는 과정중에 상대적으로 프론트엔드와 백엔드가 각각 따로 발전하게 되면서, 느슨하게 결합하는 방식을 더 많이 채택하게 되었고, 최근에는 서버가 직접 뷰(html/css/js)를 반환하기 보다는 요청에 맞는 특정한 정보만 반환하는 것을 조금 더 선호하기도 합니다. 그래서 요즘에는 주로 서버에서는 데이터 교환 포맷 중 JSON 형태로 데이터를 반환하기도 합니다. JSON 데이터를 반환하는 방법먼저, Controller생성하고 반환해보자!1. 반환값이 Stringpackage com.sparta.springmvc.response;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annota..

[SpringBoot] Spring MVC - 정적 페이지(thymeleaf, redirect, template)와 동적 페이지(Model)

정적 페이지 생성Hello, Spring 정적 웹 페이지!! (static) Controller 생성 ( static폴더에 있는 html파일에 접근하는 방법 )thymeleaf가 걸려있지 않은 상황에서 http://localhost:8080/hello.html로 직접접근 http://localhost:8080/static-hello로 controller를 타고 찾아서 접근 thymeleaf가 있는 상황에서http://localhost:8080/hello.html로 직접접근  ↓ thymeleaf가 걸려있지 않은 상황 중요! html(정적 페이지)은 이미 변화가 일어나지 않기 때문에, 굳이 controller를 거칠 필요가 없음!= thymeleaf 이용하여 controller를 타지말자!↓ thymele..

[SpringBoot] Spring MVC - 인텔리제이(IntelliJ)를 이용하여 Controller생성, 이해하기

spring에서는 로그인, 로그아웃, 회원가입, 회원가입 처리를 위해서는 3개의 controller를 생성했어야함.하지만 spring MVC에 front controller가 있다면, 하나의 controller에 처리가 가능!유사한 성격의 API를 하나의 Controller로 관리메서드 명도 마음대로 설정이 가능(단, 클래스 내의 중복메서드명은 불가) /api가 중복되기 때문에 @RequestMapping("/api")를 class에 선언!/api로 시작되는 요청은 이 class로 넘어오고,path를 분석하여 각 메서드로 매칭이 됨!

[SpringBoot] SPRING MVC, Servlet, DispatcherServlet

MVC (Model - View - Controller)소프트웨어의 디자인 패턴 중 하나소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리코드의 재사용성과 유지보수성을 높이고, 개발자들간의 협업을 용이하게함1. Model데이터와 비즈니스 로직 담당DB와 연동하여 데이터를 저장하고 불러오는 등의 작업 수행2. View사용자의 인터페이스 담당사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현3. ControllerModel과 View 사이의 상호작용을 조정하고 제어사용자의 입력을 받아 Model에 전달 - Model의 결과를 바탕으로 View 업데이트 SPRING MVCServlet API를 기반으로 구축된 독창적인 웹 프레임워크처음부터 Spring Fr..