Spring Boot 7

Spring Security OAuth2

안녕하세요. 오늘은 스프링 시큐리티의 OAuth2에 대해 알아볼게요. OAuth2의 필요성 기존 로그인 방식은 어떤 서비스(A)가 다른 서비스(B)의 데이터를 사용하려면 사용자의 아이디 / 비밀번호를 A에게 직접 입력해야 해서 사용자의 전체 권한이 노출되는 위험이 있었어요. OAuth2는 이런 위험을 권한 위임으로 "비밀번호를 주지 않으면서 일부 기능만 허용"하게 해주는 표준 프로토콜이에요. OAuth2의 주요 구성 요소 구성 요소설명Resource Owner(사용자)실제 계정을 가진 사람Client(우리 서비스)정보를 얻고 싶은 서비스Authorization Server(카카오, 구글 등)로그인 인증 + 토큰 발급Resource Server실제 데이터 API 제공 (예: 프로필, 이메일) O..

Backend/Java 2025.12.08

@Transactional

안녕하세요. 오늘은 제가 코딩 연습하다가 하나의 어노테이션 때문에 고생을 했는데요. 이 친구를 소개해볼까 해요. @ Transactional Transactional은 트랜잭션 제어용 어노테이션으로 DB 작업을 하나의 단위로 묶어 처리하는데요. 중간에 오류 나면 롤백(rollback), 문제없으면 커핏(commit)을 해줘요. 그런데 왜 고생을 했으냐고 한다면 이 어노테이션 뒤에 (readOnly = true) 적용 시 읽기 전용 트랜잭션 생성으로 읽기만 가능하고 수정이 불가능하게 돼요. 만약 어노테이션이 적용 후 수정하게 될 경우에 오류가 발생하게 됩니다. // 예제 코드@Transactional(readOnly = true)public void someMethod() { stockRep..

Backend/Java 2025.09.04

Spring Security

안녕하세요. 오늘은 Spring Boot의 중요한 스프링 시큐리티(Spring Security)에 대해 간단히 알아볼게요. Spring Security 란? 스프링 프레임 워크 기반 애플리케이션에서 보안(인증, 인가, 권한)을 담당하는 보안 프레임 워크로 다양한 어노테이션으로 CSRF공격, 세션 고정 공격을 방어하는 친구에요. 인증 방식 (폼 로그인, OAuth2, JWT 등)을 지원함으로써 유연한 확장성을 가지기 때문에 표준화된 구조로 보안코드가 일관되면서 유지보수가 쉽고, 보안 기본기를 자동 제공이 되요. (ex- 비밀번호 암호화, 세션 / 토큰인증, 권한 체크, CSRF 보호 등) Security의 주요 개념 1. 인증(Authentication) 사용자가 누구인지 확인하는 절차로 하나의..

Backend/Java 2025.08.29

Spring Boot - 필터링 & 검색 기능

안녕하세요. 오늘은 스프링 부트의 필터링 & 검색기능의 종류에 알아볼게요. 1. 쿼리 메서드(Query Method) Spring Data JPA가 메서드명을 파싱 하여 JPQL을 자동생성하는데 즉 메서드 이름만으로 자동으로 쿼리 생성으로 가장 간단하고 직관적인 방식이에요. 대신 복잡한 조건에는 권장하지 않아요. List findByUsername(String username);List findByAgeGreaterThan(int age);List findByUsernameContaining(String keyword);List findByUsernameAndStatus(String username, String status); 2. JPQL(Java Persistence Query Langua..

Backend/Java 2025.08.22

Spring Boot - Validation

안녕하세요. 오늘은 스프링부트의 중요한 키워드 중 하나인 Validation에 알아볼게요. Validation Validation(검증, 유효화/유효성)의 뜻으로 즉 유효성 검증을 위해 사용하는 스프링부트의 키워드 잘못된 입력값(DIO)에 대한 DB 저장 방지(데이터 무결성)와 사용자의 잘못된 입력을 빠르게 알려줌으로써 UX가 향상돼요. 주요 어노테이션 Validation의 어노테이션은 message 속성을 가지고 있어 검증 실패 시 사용자에게 보여줄 오류 메시지를 직접 지정해 줄 수 있어요. 1) @NotNull - 값이 null이 아니어야 함 - 단, 빈 문자열("")은 허용됨2) @NotEmpty - 값이 null이 아니고 빈 문자열도 아님 - 단, 공백(" ")은 허용..

Backend/Java 2025.08.20

Spring Boot

안녕하세요. 오늘은 스프링 부트에 대해 알아볼게요. 스프링 부트(Spring Boot) 스프링(Spring)을 쉽고 빠르게 사용할 수 있도록 지원하는 프레임 워크 확장판으로 스프링 부트 스타터를 제공을 해줍니다. (빌드 & 의존성 관리 최소화) XML 설정 없이 Java 코드 기반으로 설정이 가능하고(Annotation 기반), 내장 WAS(Tomcat)를 포함하기 때문에 별도 설치 없이 실행이 가능해요. JAR 파일만으로 서버 실행 및 배포가 가능해요. (외부 서버 설치가 불필요) +% 스프링(Spring Framework)이란? % 엔터프라이즈 애플리케이션 개발을 위한 자바 기반의 강력한 프레임워크로 대규모, 복잡한 데이터 관리를 위한 서버 성능, 안정성, 보안 기능을 제공해 줘요. 그러나 초기 ..

Backend/Java 2025.08.17