쉽게 켜다
close
프로필 배경
프로필 로고

쉽게 켜다

  • 분류 전체보기 (202)
    • 개발 일지 (1)
    • IT (2)
    • DDD (6)
    • 스프링(Spring) (53)
      • Spring (30)
      • MVC (3)
      • JPA (7)
      • WebFlux (10)
      • Testing (1)
      • Security (1)
      • Web Socket (1)
    • 데이터베이스 (15)
      • MySQL (2)
      • Redis (1)
    • 네트워크 (11)
      • 네트워크 프로그래밍 (9)
    • Git (8)
    • HTTP (4)
    • 알고리즘 (67)
      • 알고리즘 (7)
      • BOJ (53)
      • 프로그래머스 (7)
    • JAVA (6)
      • Java (1)
      • 이펙티브 자바 (4)
      • 100가지 질문 (0)
    • Kafka (4)
    • Python (2)
    • CI_CD (1)
    • Azure (3)
    • 컴퓨터망 (11)
    • 운영체제 (0)
  • 홈
  • 태그
  • 방명록

[Java] : Checked Exception과 Unchecked Exception

Checked Exception컴파일 단계에서 확인되는 예외반드시 처리해야 하는 예외e.g.) IOException, SQLExceptionChecked Exception을 유발하는 메서드를 호출하는 경우, 메서드 시그니처에 throws를 사용해 호출자에게 예외를 위임하거나, 메서드 내에서 try-catch를 사용해 해당 예외를 반드시 처리해야 합니다.외부 환경과의 상호작용에서 발생할 가능성이 높은 예외에 적합e.g.) 파일 입출력, 네트워크 통신이러한 예외는 예측 가능하며, 호출하는 쪽에서 적절히 처리할 수 있는 여지가 있습니다.Unchecked Exception런타임 단계에서 발생하는 예외컴파일러가 처리 여부를 강제하지 않습니다. RuntimeException을 상속한 예외들이 해당됩니다.일반적으로 ..

  • format_list_bulleted JAVA
  • · 2025. 2. 26.
  • textsms

[Lombok] : @EqualsAndHashCode

`@EqualsAndHashCode`는 Lombok 라이브러리에서 제공하는 어노테이션으로, Java 클래스의 `equals()`와 `hashCode()` 메소드를 자동으로 생성해줍니다.특징자동 메서드 생성클래스에 `@EqualsAndHashCode`를 적용하면 모든 필드를 고려한 `equals()`와 `hashCode()` 메소드가 자동으로 생성됩니다.필드 선택`of` 속성을 사용하여 특정 필드만 동등성 비교에 포함시킬 수 있습니다.상속 관계 처리`callSuper` 속성을 통해 부모 클래스의 필드를 동등성 비교에 포함할지 여부를 결정할 수 있습니다. 사용 예시@EqualsAndHashCode(of = {"email", "name"}, callSuper = false)public class Member ..

  • format_list_bulleted 카테고리 없음
  • · 2025. 2. 18.
  • textsms
[Java/Spring] ModelMapper

[Java/Spring] ModelMapper

Spring을 이용한 프로젝트를 진행하던 중에 ModelMapper를 사용하게 되어 이에 대해 한 번 정리해보려 합니다.ModelMapper란?ModelMapper는어떠한 Object에 있는 필드 값들을 원하는 Object에 자동으로 mapping 시켜주는 라이브러리이다.즉, Source Object → Destination Object 를 자동으로 해준다고 생각하면 된다.그렇다면, 어떤 경우에 ModelMapper를 사용할까?보통 DTO를 통해 데이터를 받아 다른 Object(엔티티 등...)에 넣거나 이와 반대로 객체를 DTO로 변환할 때, getter와 setter를 이용해 원하는 필드들을 일일이 넣는다. 아니면, of 와 from이라는 정적 메서드(static method)를 만들어 사용한다.이 ..

  • format_list_bulleted 카테고리 없음
  • · 2025. 2. 17.
  • textsms

4-tier Layered Architecture

4 계층 아키텍처4계층 아키텍처는 소프트웨어 시스템을 4개의 주요 계층으로 나누는 구조적 패턴입니다.이 방식은 ‘관심사의 분리’라는 핵심 원칙을 따르며, 각 계층이 특정 역할을 담당하도록 설계됩니다.각 계층 살펴보기1. Presentation Layer사용자와 직접 상호작용하는 최상위 계층입니다.사용자 인터페이스 (UI) 구현사용자 입력 처리 및 기본적인 유효성 검사다른 계층에서 받은 데이터를 사용자에게 표시2. Business Layer애플리케이션의 핵심 로직이 구현되는 곳입니다.비즈니스 규칙 및 워크플로우 관리데이터 처리 및 연산 수행프레젠테이션 계층과 영속성 계층 사이의 중재자 역할3. Persistence Layer데이터의 영구 저장을 담당하는 계층입니다.데이터베이스와의 통신 관리CRUD 작업 수..

  • format_list_bulleted 카테고리 없음
  • · 2025. 2. 14.
  • textsms

[DDD] : 도메인 주도 설계의 애그리거트(Aggregate)

애그리거트(Aggregate)란?애그리거트는관련된 객체들의 집합을 하나의 단위로 취급하는 패턴입니다.즉, 도메인 모델에서 밀접하게 관련된 객체들의 집합을 의미합니다. 이는 복잡한 도메인을 더 작고 관리하기 쉬운 단위로 나누는 데 도움을 줍니다.애그리거트의 주요 목적도메인 모델의 복잡성 감소데이터 일관성 유지트랜잭션 경계 정의애그리거트의 구조애그리거트는 다음과 같은 구조로 이루어져 있습니다애그리거트 루트: 애그리거트의 대표 엔티티로, 외부에서 애그리거트에 접근할 수 있는 유일한 진입점입니다.엔티티: 고유한 식별자를 가진 객체들입니다.값 객체: 식별자가 없고 불변성을 가진 객체들입니다.애그리거트 설계 원칙불변식 보호: 애그리거트 내부의 모든 불변식(invariants)은 항상 일관된 상태를 유지해야 합니다...

  • format_list_bulleted 카테고리 없음
  • · 2025. 2. 13.
  • textsms
[Security/Test] : @WithMockUser, @WithUserDetails, @WithSecurityContext를 활용한 Spring Security Test 작성

[Security/Test] : @WithMockUser, @WithUserDetails, @WithSecurityContext를 활용한 Spring Security Test 작성

Spring Security를 사용하는 애플리케이션에서 테스트를 작성할 때, 인증된 사용자 컨텍스트를 사용해야 하는 경우가 있습니다. Spring Security는 이를 위해 다음과 같은 어노테이션을 지원합니다.`@WithMockUser``@WithUserDetails``@WithSecurityContext`@WithMockUser`@WithMockUser`는Spring Security 테스트를 위한 가장 기본적인 어노테이션입니다.@Test@WithMockUserpublic void testSecuredMethod() { // 테스트 코드}특징실제 사용자 데이터 없이도 테스트가 가능합니다.기본적으로 필드는 다음과 같이 설정됩니다.`username` : "user"`password` : "passwo..

  • format_list_bulleted 스프링(Spring)/Security
  • · 2025. 2. 11.
  • textsms

[Network] : Multiplexing & Demultiplexing

Multiplexing과 Demultiplexing은 네트워크의 Transport Layer에서 중요한 역할을 하는 프로세스입니다.간단하게,Transport Layer := Process들 간의 논리적인 커뮤니케이션(Process to Process)Network Layer := Host들 간의 논리적인 커뮤니케이션(Host to Host)이라고 할 수 있습니다.Multiplexing여러 개의 데이터 스트림을 하나의 통신 채널로 결합하는 프로세스여러 애플리케이션 프로세스의 데이터를 하나의 전송 계층 세그먼트(Transport Layer Segment)로 결합합니다.송신 Host의 여러 socket으로부터 데이터를 수집합니다.수집된 데이터에 Transport Layer Header를 추가하여 Segment..

  • format_list_bulleted 네트워크
  • · 2025. 1. 21.
  • textsms
[MySQL] : MySQL의 격리 수준(Isolation Level)

[MySQL] : MySQL의 격리 수준(Isolation Level)

트랜잭션의 격리 수준이란,여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것입니다.격리 수준은 크게 아래의 4가지로 나뉩니다.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE아래로 갈수록 각 트랜잭션 간의 데이터 격리(고립) 정도가 높아지며, 동시 처리 성능도 떨어집니다.일반적인 서비스 용도의 데이터베이스는 READ COMMITTED와 REPEATABLE READ 중 하나를 사용합니다.Oracle : 주로 READ COMMITTEDMySQL : 주로 REPEATABLE READ1. READ UNCOMMITTEDREAD UNCOMMITTED 격리 수준에서는각 트랜잭션..

  • format_list_bulleted 데이터베이스/MySQL
  • · 2025. 1. 20.
  • textsms

[Network] : Web과 HTTP

HTTP 개요HyperText Transfer Protocol로Web의 애플리케이션 계층 프로토콜입니다.클라이언트(브라우저)와 서버 간의 Request-Response 모델을 사용합니다.HTTP는 TCP를 사용하며, 기본적으로 80번 포트를 사용합니다.HTTP는 상태를 유지하지 않는 Stateless한 프로토콜입니다.Stateless Protocol어떠한 이전 요청과도 무관한 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프로토콜HTTP의 연결 유형HTTP의 연결 유형에는 2가지 있습니다.Non-persistent HTTP : HTTP/1.0각 객체마다 별도의 TCP 연결을 사용하는 방식입니다.연결 설정, 객체 전송, 연결 종료의 과정으로 이루어집니다.따라서, 여러 Object를 다운로드하기 위해서는..

  • format_list_bulleted 네트워크
  • · 2025. 1. 15.
  • textsms

[MySQL] : MySQL에서의 트랜잭션과 잠금(Transaction & Lock)

트랜잭션(Transaction)은작업의 완전성을 보장해 주는 것입니다. 따라서, 다음과 같은 두 가지 기능을 제공합니다.논리적 작업 셋을 모두 완벽히 처리처리하지 못할 경우 원 상태로 복구잠금(Lock) VS 트랜잭션(Transaction)Lock := 동시성을 제어하기 위한 기능Transaction := 데이터의 정합성을 보장하기 위한 기능격리 수준하나 혹은 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지를 결정하는 레벨 트랜잭션을 지원하지 않는 MyISAM과 트랜잭션을 지원하는 InnoDB의 처리 방식 차이를 살펴봅시다.MySQL에서의 트랜잭션트랜잭션이란,논리적인 작업 셋 자체가 100% 적용되거나 아무것도 적용되지 않아야 함을 보장해 주는 것입니다.결론부터 이야기하면,InnoDB :=..

  • format_list_bulleted 데이터베이스/MySQL
  • · 2025. 1. 14.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • ···
  • 21
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (202)
    • 개발 일지 (1)
    • IT (2)
    • DDD (6)
    • 스프링(Spring) (53)
      • Spring (30)
      • MVC (3)
      • JPA (7)
      • WebFlux (10)
      • Testing (1)
      • Security (1)
      • Web Socket (1)
    • 데이터베이스 (15)
      • MySQL (2)
      • Redis (1)
    • 네트워크 (11)
      • 네트워크 프로그래밍 (9)
    • Git (8)
    • HTTP (4)
    • 알고리즘 (67)
      • 알고리즘 (7)
      • BOJ (53)
      • 프로그래머스 (7)
    • JAVA (6)
      • Java (1)
      • 이펙티브 자바 (4)
      • 100가지 질문 (0)
    • Kafka (4)
    • Python (2)
    • CI_CD (1)
    • Azure (3)
    • 컴퓨터망 (11)
    • 운영체제 (0)
최근 글
인기 글
최근 댓글
태그
  • #백준
  • #spring
  • #network
  • #SpringWebFlux
  • #MPC
  • #리액티브프로그래밍
  • #프로그래머스
  • #CUDA
  • #BOJ
  • #jpa
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바