너무 오랜만인듯...정처기 실기와 방통대 과제를 끝내고 돌아왔습니다.그동안 갠프젝을 안했던건 아닌데 상대적으로 투자할 시간이 확 줄어서ㅠㅠ이제 정처기가 끝났으니 그동안 못했던 기록들을 천천히 기록해보겠습니다. JWT를 이용하는 방식을 다시 한 번 정리하자면(1) 유저가 로그인할 때 (2) 서버가 인증 정보를 보내주는데, 암호화나 시그니처 추가가 가능한 데이터 패키지안에 인증 정보(accessToken과 refreshToken)를 담아 보내줍니다.(3) accessToken과 refreshToken이 이후 유저 인증에 사용되는데 (4) 이 정보를 클라이언트에 저장해둡니다. (5) 이 accessToken을 유저에게만 보여줄 수 있는 정보에 접근할 때 서버에 보내면 (6) 서버는 그 토큰이 유효한지 확인하..
💡 운영체제 개념 운영체제 (OS ; Operating System) 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임 다중 사용자와 다중 응용 프로그램 환경 하에서 자원의 현재 상태를 파악하고, 자원 분배를 위한 스케줄링 담당 CPU, 메모리 공간, 기억장치, I/O 장치 등 자원 관리 I/O 장치, 사용자 프로그램 제어 운영체제의 목적 (1) 처리 능력 (Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양 (2) 반환 시간 (Turn Around Time) : 시스템에 작업 의뢰한 시간 ~ 처리 완료 시간 (3) 사용 가능도 (Availability) : 시스템 사용할 필요가 있을 때, 즉시 사용..
시큐리티와 jwt를 사용한 로그인 기능까지 구현한 후, JWT를 어디에 저장하는 것이 좋을지에 대해 고민해보게 되었습니다. JWT 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰. JWT 정보를 request에 담아 사용자의 정보 조회, 수정 등의 작업을 수행할 수 있습니다. XSS (Crose Site Scripting) 악의적인 사용자가 웹 애플리케이션에 악성 스크립트를 삽입하여 사용자 브라우저에서 실행되도록 하는 공격 기법입니다. 저장형 XSS, 반사형 XSS, DOM 기반 XSS 등의 유형이 있습니다. CSRF (Cross Site Request Forgery) 정상적인 request를 가로채 피해자인 척 하고 백엔드 서버에 변조된 request를 보내 악의적인 동작을 수행하는 공격 기..
권한까지 구현되었으니 이제 로그인 기능을 구현해보겠습니다. 먼저, 서버 쪽을 하나씩 살펴보면 기본적으로 UserEntity와 UserDTO 그리고 LoginDTO가 있습니다. LoginDTO.java package com.example.demo.dto; import lombok.*; @Getter @Setter @ToString @NoArgsConstructor @Data public class LoginDTO { private String userId; private String password; } UserRepository.java package com.example.demo.repository; import com.example.demo.entity.UserEntity; import org.spr..
Hibernate: select r1_0.user_id, r1_0.role from user_role r1_0 where r1_0.user_id=? 2024-04-08T12:15:58.231+09:00 WARN 23656 --- [nio-8082-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1054, SQLState: 42S22 2024-04-08T12:15:58.231+09:00 ERROR 23656 --- [nio-8082-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : Unknown column 'r1_0.role' in 'field list' org.springframework.security.a..