본문 바로가기

전체 글

(62)
Spring JWT와 React 화면 연결 JWT로 로그인을 구현하면 다음과 같이 이미 제공되는 login 경로를 사용한다. 여기서 중요한 점은...파라미터로 꼭 username, password만 요청해야 한다는 점(꼭 FormData로 전송해야 한다. )Controller를 거치지 않아도 작동한다! (이미 제공된 /login 경로를 사용하기 때문)Cross Origin 문제가 발생할 수 있다. 이는 JWTFilter에서 해결! 이를 바탕으로 React와 연결해보자. 먼저 react-bootstrap으로 간단히 로그인 폼을 구현해보면 LoginForm.jsximport React from 'react'import "bootstrap/dist/css/bootstrap.min.css";import { Button, Form, InputGro..
KOSA fullstack 교육 (SecurityConfig, Password 암호화) SecurityFilterChain에서 인증/권한 이 작동한다~! 바로 SecurityConfig 실습으로 넘어가자 @EnableWebSecuritySpring Security 활성화를 선언하는 어노테이션.Spring Boot는 기본적으로 Security 모듈을 의존성에 추가하면 자동 설정을 해주지만,우리가 직접 커스텀 Security 설정 클래스를 만들고 싶을 때 이걸 붙여야 함.내부적으로 WebSecurityConfiguration, SpringWebMvcImportSelector 등을 Import해서,필터 체인(SecurityFilterChain)을 구성할 수 있게 해줌. @Configuration이 클래스가 **스프링 설정 클래스(Bean을 정의하는 클래스)**임을 알려줌.사실상 Java 기반의..
KOSA fullstack교육(Spring Security) Spring Security는 6.x부터 람다 기반 DSL이 본격적으로 도입되었기 때문에, 최신 패턴에 적응하기 위해 6.x 버전을 기준으로 학습/구현을 진행한다. Spring Security란,스프링 기반의 어플리케이션 보안(인증과 권한)을 담당하는 프레임워크이다.스프링 시큐리티는 필터 기반으로 동작하기 때문에 스프링 MVC와 분리되어 관리 및 동작한다. 필터는 서블릿으로 가기 전에 적용됨으로 가장 먼저 URL요청을 받는다. 인증 작업의 Flow1. HttpSession기반으로 로그인 인증(Cookie 사용)2. Spring Security 필터 기술 로그인 인증 → 세션 방식3. JWT Token 방식을 결합한 로그인 인증 ❗️ 클라이언트의 요청은 여러 개의 필터를 거쳐서 서블릿(Disp..
KOSA fullstack 교육(RestController) Controller를 POJO로 만들어보자 GetMapping 예제 코드package com.spring.rest01.controller;import com.spring.rest01.entity.Member;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestCon..
KOSA fullstack 교육(JPQL 정리 및 Native Query) JPQL 정리1. Java Persistence Query 작성하는 Language2. select ... from Board, Custom, Orders3. @Query(value = "~~~~") Long getBoardCount();4. 함수명은 주로 getXxxx로, findXxx는 사용하지 말라모든 게시글을 검색하는 쿼리문 작성@Query(value = "select b from Board b join fetch b.custom c")List getBoardList(); 특정 고객이 작성한 모든 게시글을 검색@Query(value = "select b from Board b join fetch b.custom c where c.name = :customName")List getBoardL..
리눅스마스터 1급 - 운영체제 개요 운영체제란?사용자와 하드웨어 간의 상호작용을 위해 사용자 인터페이스를 제공하는 시스템 소프트웨어하드웨어(CPU, 메모리 및 주변 장치 등)를 효율적으로 관리응용 프로그램이 동작할 수 있는 환경(=프로그래밍 인터페이스) 제공 운영체제 목적처리능력의 향상반환 시간 최소화 신뢰도(주어진 문제를 정확하게 처리하는 정도) 향상사용 가능도의 향상 운영체제의 구조 사용자는 응용프로그램을 실행하거나 shell, GUI, betch 작업을 통해 운영체제의 기능을 사용한다.응용 프로그램은 시스템 호출을 통해 커널의 서비스를 이용할 수 있다.다양한 하드웨어에 대한 이식성을 향상하기 위해 하드웨어 추상 계층(HAL)을 제공한다.새로운 하드웨어가 추가되어도 하드웨어 추상 계층만 지원을 해준다면 소프트웨어는 수정 없이 동작할 수..
KOSA fullstack 교육(JPA Entity 관계 설정, Fetch Type) 다대다 관계일 때 식별 관계로 UserRole을 생성하였는데 이렇게 생성하게 되면 User 에도 roles가 있고, Role에도 users가 있는 양방향 매핑이 생성될 수 있다.하지만 단방향이 훨씬 좋기 때문에 단방향으로 하도록 하자. lombok에서 toString을 제외한 이유package com.spring.jpa04.entity;import jakarta.persistence.*;import lombok.*;import org.hibernate.annotations.CreationTimestamp;import java.time.LocalDateTime;import java.util.HashSet;import java.util.Set;@AllArgsConstructor@NoArgsConstruct..
KOSA fullstack 교육(JPA Entity 관계 설정) JPA 엔터티 관계 설정하기식별관계와 비식별 관계를 정리한 내용이다.RDB 관계 개념을 정확히 짚고 넘어갈 것이다. 데이터가 많을 때는 1 : 1 관계로 나누는 경우가 있는데, JPA 에서는 나누지 않는 것이 좋다.다 : 다 / 1 : 다 / 다 : 1 → 3가지를 모두 JPA로 표현할 수 있다면 다 표현한 것이다~~! 엔터티와 엔터티 간의 주입 관계를 설정방향성 1 : m / m : m일반적으로는 이렇게 User ↔ Role과 같이 양방향 관계일 때 둘 다 넣어줄 수 있고, 한 곳에서만 넣어줄 수 있다.여기서는 고객을 통해 권한 정보를 획득해야 하므로 Custom에 양방향 매핑을 하는 것이 맞다. Entity를 작성해보자package com.spring.jpa04.entity;import jak..