분류 전체보기 441

[SpringBoot] 인증과 인가 / 쿠키와 세션

인증과 인가의 차이가 무엇일까?간단하게 설명하자면 인증 = 아이디, 비밀번호를 입력하고 제출하여 유저인지 확인하는 절차! (지문인식 같이)인가 = 회원/비회원의 여부에 맞게 특정 리소스에 대한 접근 권한을 주는 것!(관리자 권한처럼) 그렇다면, 웹 애플리케이션 인증은 다를까?서버 - 클라이언트 구조로 되어있는 웹은 Http라는 프로토콜을 이용하여 통신합니다그리고 이 통신은 "비연결성(Connectionless), 무상태(Stateless)"로 이루어지는데비연결성(Connectionless) 서버- 클라이언트가 연결되어 있지 않다는 의미!왜 연결을 안하나요?계속 연결을 해놓으면 서버의 비용이 너무 많이 들기때문!즉, 서버는 하나의 요청 - 하나의 응답 - 연결 종료를 하고 있습니다무상태( Stateless..

[SpringBoot] Bean 수동 등록, 같은 타입 Bean이 2개인 경우엔?

먼저, 프로젝트를 생성하자프로젝트 설정도 추가하는데, 1) build.gradle : Security 추가// Securityimplementation 'org.springframework.boot:spring-boot-starter-security'2) SpringAuthApplication : Security 기능 제한 (추후 security 공부하며 해제예정)package com.sparta.springauth;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure..

[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..