전체 글42 JWT & Oauth2 예시: bobroad 코드🔒JWT1. JWT란?JWT (JSON Web Token): 로그인한 사용자인지를 증명하기 위해 사용하는 "디지털 신분증" 같은 것비밀번호 대신, 이 토큰을 들고 다니면서 API 요청마다 "나 로그인한 사람이야"라고 증명한다.2. 로그인 방식 비교방식 특징세션 기반 로그인서버가 로그인 정보를 저장함 (메모리/DB)JWT 기반 로그인서버는 아무것도 기억 안 함. 사용자에게 토큰(JWT)을 주고, 그걸 매 요청마다 들고 오게 함3. JWT 인증 흐름단계 어디에서? 무슨 일이 일어나나?① 로그인 요청AuthApiController.signin()사용자가 userAccount - pw 로 POST /signin 호출→ AuthService.login() 호출 ② 토큰 발급AuthSe.. 2025. 9. 8. Spring boot with MongoDB - Spring Data MongoDB를 사용해보자. 목차1. MongoDB란?2. Atlas를 통해 원격 MongoDB 저장소 생성, MongoDB Compass를 통한 편의성 확보3. Spring Data MongoDB를 사용해 보자.4. 패키지 정보(_class 필드)가 데이터에 같이 저장되는 문제 및 해결 본론1. MongoDB란? MongoDB는 NoSQL 데이터베이스로 분류되며 의미 그대로 SQL을 즉, 테이블 기반 관계형 데이터베이스 구조를 사용하지 않는 데이터베이스이다. NoSQL의 특징으로는 유연한 스키마를 제공하고 응답 속도가 빠르며, 배우기 쉽고 간편하게 개발할 수 있으며, 확장성 높은 오픈 소스 문서 지향 데이터베이스다.관계형 데이터베이스는 스케일 업(서버의 크기 확장)보다 스케일 아웃(서버의 개수 확장)을 하는 것이 더욱 어렵지만.. 2025. 9. 8. 관계형 데이터베이스와 비 관계형 데이터베이스의 차이점은 무엇인가요? 관계형 데이터베이스는 고정된 로우와 컬럼으로 구성된 테이블에 데이터를 저장합니다. 그리고 SQL을 사용하여 여러 테이블에 존재하는 데이터와 관계에 따라서 조인하여 합칠 수도 있습니다. 관계형 데이터베이스는 데이터를 중복 없이 한 번만 저장하고, 데이터 무결성을 보장합니다. 관계형 데이터베이스의 경우 일반적으로 스케일 업을 사용하여 확장합니다. 관계형 데이터베이스는 스키마를 유연하게 바꾸기 어렵다는 한계가 존재합니다. 또한, 관계가 존재하기 때문에 비즈니스 요구사항이 더욱 발전하면 복잡한 쿼리가 생기게 됩니다.반면, 비 관계형 데이터베이스는 NoSQL이라고 불리기도 하는데요. 정해진 스키마가 존재하지 않으며 자유롭게 데이터를 저장하고 조회할 수 있습니다. 문서, 키-값, 와이드 컬럼, 그래프 유형이 존재합.. 2025. 8. 14. 프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요? 컨텍스트 스위칭(Context Switching)이란?컨텍스트 스위칭은 CPU나 코어에서 실행 중이던 프로세스나 스레드가 다른 프로세스나 스레드로 교체되는 과정을 말합니다. 이는 멀티태스킹 시스템에서 여러 작업을 효율적으로 관리하기 위해 필수적인 메커니즘입니다.컨텍스트(Context)란?컨텍스트는 프로세스나 스레드의 현재 상태를 의미합니다. 여기에는 CPU의 레지스터 상태(프로그램 카운터, 스택 포인터 등)와 메모리 상태가 포함됩니다. 컨텍스트는 프로세스나 스레드가 실행을 중단하고 나중에 다시 시작할 때 필요한 모든 정보를 담고 있습니다.컨텍스트 스위칭이 필요한 이유멀티태스킹 시스템에서는 여러 프로세스나 스레드가 동시에 실행되는 것처럼 보이도록, CPU가 짧은 시간 단위로 작업을 전환하며 여러 작업을 처.. 2025. 8. 12. ACID 는 무엇인가 ? 중요한 기초. ACID는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)의 약자이며, 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 의미합니다.각 속성은 어떤 의미를 가지나요? 🤔원자성(Atomicity) 은 트랜잭션 내부 연산들이 부분적으로 실행되고 중단되지 않는 것을 보장합니다. 쉽게 말하자면, 트랜잭션은 전체 성공과 전체 실패 중 한 가지만 수행한다는 것입니다. 예를 들면 계좌 이체 트랜잭션은 다음과 같은 연산으로 이루어져 있습니다. 이때 2번 과정에서 에러가 발생하면 1번 과정을 취소해야 합니다.1. A 계좌에 3000원 출금2. B 계좌에 3000원 입금 일관성(Consistency) 은 트랜잭션이 성공적으로 완료되.. 2025. 8. 8. REST란 무엇일까 ? REST(Representational State Transfer) 는 자원의 표현을 이용하여 상태를 주고받는 것을 의미합니다. 여기서 자원이란 소프트웨어가 관리하는 모든 것을 의미하며 자원의 표현은 자원을 나타내기 위한 이름을 의미합니다. 가령, 서버가 관리하는 주문 데이터는 order 라고 표현할 수 있습니다. 최근에는 일반적으로 자원의 상태를 나타내기 위해 JSON 포맷을 사용합니다. REST는 네트워크 상에서 클라이언트와 서버의 통신 방식 중 하나이며, HTTP 프로토콜을 사용합니다. 구체적으로는 HTTP URI를 활용하여 자원을 명시하고 HTTP METHOD를 통해 CRUD 연산을 적용하는 것을 의미합니다.API(Application Programming Interface) 란 컴퓨터 프로그램 .. 2025. 8. 6. 이전 1 2 3 4 ··· 7 다음