Yeop's blog
close
프로필 사진

Yeop's blog

github: @denev6

  • 분류 전체보기 (7)
    • Java (2)
    • Spring (3)
    • Network (2)
  • 홈
  • 태그
  • 방명록

[Spring] AOP 동작 원리

AOP란?AOP(Aspect Oriented Programming)란 관점 지향 프로그래밍으로 코드의 부가적인 관심사를 핵심 비즈니스 로직과 분리해서 관리하는 프로그래밍 기법입니다. AOP의 목적소스 코드 상에서 클래스마다 계속 반복되는 부분을 흩어진 관심사라고 부릅니다. 이런 흩어진 관심사를 Aspect로 모듈화하고 핵심 비즈니스 로직에서 분리하여 재사용 하는 것이 AOP의 목적입니다.핵심 로직에 집중하고,로깅, 트랜잭션, 예외 처리, 보안 같은 반복적인 부가 기능을 Aspect로 따로 빼서 관리AOP가 없으면?모든 서비스에 공통 기능이 중복됩니다.public void placeOrder() { log.info("주문 시작"); // 모든 서비스마다 들어가야함 try { // 핵심 비즈니스..

  • format_list_bulleted Spring
  • · 2025. 5. 23.
[JAVA] Atomic 클래스 - 동시성 처리 원리

[JAVA] Atomic 클래스 - 동시성 처리 원리

Atomic 클래스`java.util.concurrent.atomic` 패키지에 포함되어 있으며 `CAS(Compare-And-Swap)` 알고리즘과 `volatile` 키워드를 사용하여 연산의 원자성과 가시성을 보장해줍니다.이를 통해 비관적 락과 같은 잠금 처리 없이 `Non-Blocking`하게 동시성 처리가 가능합니다. Atomic 클래스 특징하나의 연산이 실행 중 다른 스레드가 개입할 수 없이 완전하게 수행되도록 원자성을 보장합니다.`volatile` 키워드를 통해 메인 메모리로부터 직접 읽기/쓰기 작업을 수행하여 스레드 간 가시성을 보장합니다.락을 사용하지 않고, 내부적으로 CAS 알고리즘을 사용하여 성능을 최적화 합니다.💡 원자성이란?하나의 작업이 중간에 다른 작업에 의해 방해 받지않고 전체..

  • format_list_bulleted Java
  • · 2025. 4. 18.
[네트워크] 전송 계층 - RDT원리 및 흐름제어

[네트워크] 전송 계층 - RDT원리 및 흐름제어

해당 정리글은 KOCW 이석복 교수님의 네트워크 강의를 듣고 요약한 글입니다. TCP가 복잡한 이유는?unreliable 네트워크 위에서 reliable 통신을 구현해야 하기 때문왜 underlying network는 unreliable할까?라우터 큐가 가득차면 패킷 drop트래픽 많으면 지연 발생패킷 유실(loss) & 에러(error) 언제든 발생 가능그런데 TCP 소켓은 무조건 전달을 보장Reliable Data Transfer 버전 업그레이드 과정TCP가 신뢰있는 전송을 하는 매커니즘을 이해하기 위해 가상의 RDT(Reliable Data Transfer)프로토콜을 버전업하며 설명RDT 1.0 - Underlying network가 reliable한 채널이라면?sender는 패킷을 송신receiv..

  • format_list_bulleted Network
  • · 2025. 4. 14.
[네트워크] 전송 계층 - TCP,UDP 원리

[네트워크] 전송 계층 - TCP,UDP 원리

해당 정리글은 KOCW 이석복 교수님의 네트워크 강의를 듣고 요약한 글입니다.1. 전송계층 위치와 역할애플리케이션 계층 바로 아래애플리케이션 계층 = 프로세스 간 메시지 송수신 담당 (데이터 전송 동작 원리 모름, 추상적)전송계층 = 이 메시지를 실제로 전달하기 위한 좀 더 구체화된 계층편지지를 우체통(소켓)에 넣었다면 전송 계층은 그 편지지를 TCP/UDP 세그먼트라는 봉투에 넣고 처리하는 역할2. 계층별 데이터 전달 흐름과 단위계층전송 단위특징애플리케이션 계층메시지 / 데이터프로세스 간 송수신전송 계층(TCP/UDP)세그먼트 / 데이터그램TCP 세그먼트 / UDP 데이터그램네트워크 계층패킷IP 패킷링크 계층프레임실제 물리 전송상위 계층 데이터는 하위 계층의 데이터(payload) 부분에 담기고, 상위..

  • format_list_bulleted Network
  • · 2025. 4. 13.
[Spring] - 공통 예외 처리 적용하기(2)

[Spring] - 공통 예외 처리 적용하기(2)

이전 글 .. [Spring] - 공통 예외 처리 적용하기(1) 공통 예외 처리 적용하기(2)지난 글에서는 프로젝트의 예외 처리 구조를 도메인별로 관리할 수 있도록 개선하였습니다.이번 포스팅에서는 기존에 사용하던 EntityNotFoundException 을 BaseException 을 상속받는 구조로 변경하고, 예외 메시지를 하드 코딩하던 부분을 공통 로직으로 대체하는 리팩토링을 진행해보려 합니다.현재는 프로젝트 초기 단계라 예외 클래스가 많지는 않지만, 이번 작업을 통해 구성한 공통 처리 방식은 앞으로 추가될 예외 클래스에서도 재사용 가능하도록 설계 해두려 합니다.결과적으로 예외 처리 방식의 일관성을 높이고, 코드 중복을 줄이며 유지보수하기 쉬운 구조로 만드는 것이 목표입니다.1. 기존 EntityN..

  • format_list_bulleted Spring
  • · 2025. 4. 6.
[Spring] - 공통 예외 처리 적용하기(1)

[Spring] - 공통 예외 처리 적용하기(1)

공통 예외 처리 적용하기(1)현재 개발 중인 프로젝트에서 기존에 @RestControllerAdvice, @ExceptionHandler 를 통해 CustomApiException 이라는 커스텀 예외를 만들어서 처리하도록 정의해놓은게 있었는데, 모든 도메인의 비즈니스 로직에서 예외 상황에 CustomApiException 예외를 던지도록 하니 유지보수와 가독성 측면에서 불편한 것 같아 도메인 별로 공통 예외 처리를 적용하기로 했습니다.1. 현재 예외처리 구조현재는 RuntimeException 을 상속한 CustomApiException 을 사용하고 있으며, 비즈니스 로직에서 throw new CustomApiException() 을 통해 예외를 던지면, 이를 CustomApiExceptionHandle..

  • format_list_bulleted Spring
  • · 2025. 4. 5.
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (7)
    • Java (2)
    • Spring (3)
    • Network (2)
인기 글
전체 방문자
오늘
어제
Copyright © J Yeop 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바