CS(49)
-
[네트워크/보안] Website Fingerprinting이란? Website FingerPrinting 실습
Website Fingerprinting이 무엇인지 알아보고, Website Fingerprinting이 Tor를 어떻게 우회하는지에 대해 간단하게 알아보도록 하겠습니다.그리고 Website Fingerprinting을 Pycharm Jupyter NoteBook 환경에서실습할 수 있는 있는 방법에 대해서 알아보겠습니다.Pyshark를 통해서 패킷을 캡처하는 과정까지 실습하고,이후 ML/DL로 모델 학습하는 과정은 데이터셋이 많이 필요하다는 한계가 있어시뮬레이션 과정을 설명하도록 하겠습니다. Tor가 기본적으로 제공하는 보호 기능Tor는 사용자의 IP 주소와 접속 대상 웹사이트를 서로 분리하기 위해 다단계 중계 (onion routing) 를 사용합니다. 데이터는 3개의 릴레이 노드(Guard, Midd..
2025.05.20 -
[네트워크] Tor 네트워크란 무엇인가?
오늘은 Tor 네트워크에 대해서 알아보겠습니다.유튜버 Hussein Nasser의 "How Tor Work? (The Onion Router)" 강의를 참고하였습니다.Tor 네트워크를 처음 접하는 입장에서 이해가 잘 되도록 쉽고 직관적으로 설명해 주셔서많은 도움이 되었습니다.유투브 원본 영상 링크를 함께 남깁니다. 더 자세한 설명은 영상을 참고해 주세요https://youtu.be/gIkzx7-s2RU?si=K0v31QNo_CHxMaQU Normal Request사용자가 일반적으로 인터넷에 접속할 때 어떤 흐름으로 진행이 될까요?IP가 5.5.5.5인 사용자가 웹 서버 9.9.9.9로 요청을 보냅니다.TCP 패킷에는 다음과 같은 정보가 담깁니다.Source IP / Port : 5.5.5.5 / 8992..
2025.05.19 -
[Spring/Springboot] @Valid 란?
@Valid스프링에서 입력 데이터의 유효성(Validation)을 자동으로 검사클라이언트가 보낸 데이터를 확인해서 규칙에 맞지 않으면 자동으로 오류를 알려줌1. DTO 클래스에서 사용import javax.validation.constraints.Email;import javax.validation.constraints.NotNull;public class SignUpRequestDTO { @NotNull(message = "이름은 필수") private String name; @NotNull(message = "이메일은 필") @Email(message = "유효한 이메일 주소를 입력") private String email;}//각각 @NotNull, @Email(이..
2024.12.23 -
[Spring/Springboot] Spring Data JPA - Paging/Slice
Spring Data JPA의 PagingSpring Data JPA는 페이징을 위해 2가지 객체를 제공 → Page, SlicePaging사용자가 어떠한 데이터를 요청했을 때, 전체 데이터 중 일부를 원하는 정렬 방식으로 보여주는 방식페이징 파라미터page : 페이징 기법이 적용되었을 때, 원하는 페이지size : 해당 페이지에 담을 데이터 개수sort : 정렬 기법⇒ 해당 파라미터들을 Peageable 구현체에 담아서 페이징 설정계층구조PeageablePagination을 위한 정보를 저장하는 객체interface로 Pageable의 구현체인 PageRequest 객체를 사용PageRequest 생성자의 파라미터에 page, size, sort를 파라미터로 사용 가능Pageable 사용 흐름클라이언트..
2024.12.23 -
[Spring/Springboot] @RestControllerAdvice/API 응답 통일/에러 핸들러
@RestContollerAdviceRestControllerAdvice = ControllerAdvice + ResponseBody@RestControllerAdvice 로 선언하면 컨트롤러에서 리턴하는 값이 응답 값의 body로 세팅되어 클라이언트에게 전달됨@RestControllerAdvice는 애플리케이션 전반에서 발생하는 예외를 전역적으로 처리함@RestController에서 발생하는 예외가 @RestControllerAdvice에 의해서 관리됨@Slf4j@RestControllerAdvice(annotations = {RestController.class})public class ExceptionAdvice extends ResponseEntityExceptionHandler { @Exc..
2024.12.22 -
[Spring/Springboot] N+1 문제 해결 방안 - Batch Size/2차 캐시/Subselect Fetching/DTO
1. Batch Size 설정Hibernate에서는 @BatchSize 어노테이션이나 hibernate.default_batch_fetch_size 설정을 통해 배치 크기(Batch Size)를 지정하여 N+1 문제를 해결할 수 있습니다.배치 크기를 설정하면 한 번에 가져올 연관 엔티티의 개수를 지정하여, 지연 로딩(Lazy Loading)을 사용할 때도 여러 엔티티를 한 번에 가져올 수 있습니다.@Entitypublic class Review { @ManyToOne(fetch = FetchType.LAZY) @BatchSize(size = 10) // 한번에 10개씩 로딩 private Store store; @ManyToOne(fetch = FetchType.LAZY) @B..
2024.12.22