본문 바로가기

전체 글

(381)
[JPA] 💼 PersistentBag 💼 PersistentBagPersistentBag은 Hibernate에서 제공하는 컬렉션 타입 중 하나로, @OneToMany 또는 @ManyToMany 관계에서 사용되는 List 타입의 컬렉션을 관리하기 위한 구현체이다. 이 컬렉션은 지연 로딩(lazy loading)과 변경 감지 기능(dirty checking)을 지원하며, JPA 엔티티에서 List 타입의 필드를 사용할 때 Hibernate가 자동으로 변환하는 컬렉션 타입이다.🤔 PersistentBag이 언제 사용될까?✅ @OneToMany 관계에서 List를 사용할 때@Entitypublic class Member { @Id @GeneratedValue private Long id; private String nam..
[GitHub Actions] GitHub Actions 명령어 GitHub Actions의 YAML 파일에서 자주 사용되는 기본적인 명령어들명령어설명name:GitHub Actions의 워크플로우 이름 설정on:워크플로우 실행 조건 설정 (ex: push, pull_request, schedule 등)jobs:실행할 작업을 정의runs-on:실행 환경 지정 (ex: ubuntu-latest)steps:실행할 단계 정의uses:GitHub Marketplace의 액션을 사용run:직접 명령어 실행 (ex: ./gradlew build)env:환경 변수 설정with:액션에 전달할 인자 설정secrets:GitHub Secrets에서 보안 정보 가져오기 1. Checkout 코드 가져오기(GitHub 리포지토리의 코드를 가져오는 액션)- name: Checkout rep..
[보안] 웹 보안 위협 및 공격 기법 🚨 1. SQL Injection (SQL 삽입 공격) 📌 정의웹 애플리케이션이 사용자 입력을 제대로 검증하지 않고 SQL 쿼리에 포함할 경우, 공격자가 악의적인 SQL을 삽입하여 데이터베이스를 조작하는 공격 방식이다.로그인 우회, 데이터 탈취, 데이터 변경·삭제가 가능함. 💥 공격 예시 (로그인 우회 공격)1. 로그인 폼이 있고, 사용자가 아이디와 비밀번호를 입력해야 한다. 2. 일반적으로 실행되는 SQL 쿼리는 다음과 같다.SELECT * FROM users WHERE username = 'admin' AND password = 'password123'; 3. 공격자는 username 필드에 다음과 같이 입력한다.' OR '1'='1 4. SQL 쿼리가 다음과 같이 변조됨.SELECT * FRO..