Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Spring Framework/Spring IoC

Spring IoC 컨테이너 이해하기: 제2편

Instantiation BeansBean Definition은 본질적으로 하나 이상의 객체를 생성하기 위한 레시피입니다. 컨테이너는 빈 객체 생성 요청 시에 명명된 빈의 레시피를 확인하고, 해당 빈 정의에 캡슐화된 구성 메타데이터(BeanDefinition의 속성에 저장됨)를 사용하여 실제 객체를 생성(또는 획득)합니다.해당 빈 정의에 캡슐화된 구성 메타데이터란?"해당 빈 정의에 캡슐화된 구성 메타데이터"는 빈을 생성하는 데 필요한 모든 정보를 담고 있으며, 이 정보는 스프링에서 BeanDefinition 객체의 속성들에 저장됩니다.BeanDefinition 객체의 주요 속성들BeanDefinition 객체는 스프링 컨테이너가 빈을 생성하고 관리하기 위해 사용하는 메타데이터를 포함합니다. 여기에는 다음..

2024. 8. 8. 23:51
Note-Taking

Java 클래스 구조 정리

select * from users : users의 모든 레코드(로우)를 ResultSet에 저장select count(*) from users : 갯수가 날라옴 • 소문자 카멜 표기법 (lowerCamelCase): 메서드 이름, 변수명, 메소드 파라미터, 로컬 변수• 대문자 카멜 표기법 (UpperCamelCase): 클래스명, 인터페이스명, 열거형명, 애너테이션 펑셔널 인터페이스는 구현해야할 추상메서드 온리원이기 때문에 람다가 적합. 값은 항상 어디간에 리턴이 된다 (익스프레션이 그 예다.)

2024. 8. 7. 21:44
Spring Framework/TDD

Mockito - 유닛 테스트를 위한 목 객체 활용법

Mockito는 자바에서 사용되는 인기있는 모의(Mocking) 프레임워크입니다. Mockito를 사용하면 테스트 중에 가짜(Mock) 객체를 생성하고, 그 객체의 동작을 설정하고, 동작을 검증할 수 있습니다. 아래에 Mockito를 사용하는 기본적인 방법을 설명하겠습니다.Mockito 설정: Mockito를 사용하려면 먼저 Mockito 라이브러리를 프로젝트에 추가해야 합니다. 일반적으로 Maven, Gradle과 같은 의존성 관리 도구를 사용하여 다음과 같이 의존성을 추가할 수 있습니다: org.mockito mockito-core 5.2.0 test목(Mock) 객체 생성: @Mock 어노테이션을 사용하거나 Mockito.mock() 메서드를 사용하여 목(Mock) 객체를 생성..

2024. 8. 7. 21:03
Spring Framework/TDD

JUnit 5 - 조건부 테스트 실행을 위한 Assumptions 활용법

AssumptionsJUnit 5에서 Assumptions는 특정 조건이 만족되지 않으면 테스트를 건너뛰도록 설정할 수 있는 기능입니다. 이는 테스트가 실행될 환경이나 조건이 특정 요구 사항을 충족할 때만 테스트를 진행하고, 그렇지 않을 경우 테스트를 무시하는 데 사용됩니다. Assumptions는 테스트 환경의 유연성을 높이고, 불필요한 실패를 방지하는 데 도움을 줍니다.주요 Assumptions 메서드assumeTrue(boolean condition)주어진 조건이 true일 때만 테스트가 실행됩니다. 조건이 false이면 해당 테스트는 실행되지 않고 건너뛰게 됩니다.assumeTrue는 보통 특정 환경 조건(예: 운영체제, 자바 버전 등)에 따라 테스트를 제한할 때 사용됩니다.assumeFalse(..

2024. 8. 7. 21:01
Spring Framework/TDD

JUnit 5 - 강력한 테스트 검증을 위한 Assertions 활용법

AssertionsAssertions는 JUnit에서 테스트의 결과를 검증하기 위해 사용되는 중요한 도구입니다. Assertions는 테스트 메서드 내에서 특정 조건이 참인지 또는 거짓인지를 확인하고, 조건이 충족되지 않을 경우 테스트를 실패로 처리합니다. 이를 통해 코드가 예상대로 작동하는지 검증할 수 있습니다.주요 Assertions 메서드JUnit 5에서 제공하는 주요 Assertions 메서드와 그 역할을 설명하겠습니다.assertEquals(expected, actual):두 값이 서로 같은지 비교합니다.예를 들어, assertEquals(4, 2 + 2)는 2 + 2의 결과가 4와 같은지를 확인합니다.오버로드: assertEquals는 두 객체의 비교 외에도 부동 소수점 숫자의 비교를 위한 버..

2024. 8. 7. 21:01
Spring Framework/TDD

JUnit 5: 현대적 자바 테스트의 새로운 표준

JUnit 5 JUnit은 자바 프로그래밍 언어를 위한 단위 테스트 프레임워크입니다. 이는 개발자가 소프트웨어의 작은 부분을 독립적으로 테스트할 수 있게 해주는 도구로, 소프트웨어 개발 과정에서 중요한 역할을 합니다. JUnit은 테스트 주도 개발(TDD) 면에서 중요하며 SUnit과 함께 시작된 XUnit이라는 이름의 유닛 테스트 프레임워크 계열입니다. JUnit은 컴파일 타임에 JAR로서 링크됩니다. JUnit 프레임워크는 JUnit 3.8 이하의 경우 junit.framework 패키지 밑에 상주하며, JUnit 4 이상의 경우 org.junit 패키지 밑에 상주합니다 최근 조사에 따르면, JUnit은 여전히 Java 개발자들 사이에서 가장 널리 사용되는 테스트 프레임워크로 자리 잡고 있습니다. 2..

2024. 8. 7. 21:00
Spring Framework/TDD

Unit Test: 코드 품질을 위한 첫 번째 방어선

Unit TestUnit Test(단위 테스트)는 소프트웨어 개발에서 개별적인 작은 코드 단위를 독립적으로 검증하는 테스트 기법입니다. 여기서 "단위(Unit)"는 보통 하나의 메서드, 함수, 또는 클래스와 같은 가장 작은 기능 단위를 의미합니다. 단위 테스트는 이러한 작은 코드 단위가 예상한 대로 동작하는지를 확인하기 위해 작성됩니다.Unit Test의 특징작은 범위:단위 테스트는 작은 코드 단위를 대상으로 합니다. 주로 함수나 메서드 수준에서 이루어지며, 하나의 기능을 독립적으로 테스트합니다.독립성:단위 테스트는 독립적으로 실행될 수 있어야 합니다. 각 테스트는 다른 테스트에 의존하지 않으며, 다른 테스트의 실행 여부와 상관없이 동일한 결과를 제공해야 합니다.빠른 실행:단위 테스트는 빠르게 실행되어야..

2024. 8. 7. 20:59
Spring Framework/TDD

TDD(Test-Driven Development): 효과적인 테스트 주도 개발 방법론

TDD (Test-Driven Development)란 무엇인가?테스트 주도 개발(TDD)는 소프트웨어 개발 방법론 중 하나로, 코드를 작성하기 전에 테스트 케이스를 먼저 작성하는 방식입니다. TDD는 개발자가 작성한 코드가 정확하게 작동하는지 보장하기 위해 테스트를 중심으로 개발 프로세스를 조직합니다. 이 방법론은 소프트웨어의 높은 품질을 유지하고, 코드의 유지보수성을 향상시키는 데 매우 유용합니다.TDD의 기본 사이클: Red-Green-RefactorTDD는 보통 Red-Green-Refactor라는 세 가지 단계를 반복하며 진행됩니다.Red (실패하는 테스트 작성):개발자는 먼저 테스트 케이스를 작성합니다. 이 테스트는 아직 작성되지 않은 기능에 대한 것이므로, 실행 시 당연히 실패하게 됩니다. ..

2024. 8. 7. 20:59
Spring Framework/Spring IoC

Spring IoC 컨테이너 이해하기: 제1편

[참조: The IoC Container] The IoC Container Introduction to the Spring IoC Container and Beans이 장에서는 Inversion of Control (IoC) 원칙의 Spring Framework 구현에 대해 다룹니다. 의존성 주입 (Dependency Injection, DI)은 IoC의 특수한 형태로, 객체가 자신이 작업하는 다른 객체들을 생성자 아규먼트, 팩토리 메서드의 아규먼트, 또는 객체 인스턴스가 생성되거나 팩토리 메서드에서 리턴된 후에 설정되는 속성을 통해서만 정의하는 방법입니다. IoC 컨테이너는 빈을 생성할 때 이러한 의존성을 주입합니다. 이 과정은 본질적으로 빈 자체가 클래스의 직접 생성 또는 서비스 로케이터 패턴과 같은..

2024. 8. 6. 17:26
Note-Taking

Dependency Injection,CGLIB 정리

import java.sql.SQLException;import com.jinsu.springframe.dao.UserDao;import com.jinsu.springframe.domain.User;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.Assertions;import org.springframework.dao.EmptyResultDataAccessException;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationC..

2024. 8. 6. 16:11
Note-Taking

Java의 기본 정리

강의 출처: 스파르타코딩클럽 Java 문법 뽀개기 (이윤성 튜터님)Java 언어의 탄생Java는 제임스 고슬링과 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.Write Once, Run Anywhere직역을 하면, '한 번 작성하면 어디에서나 실행된다'는 의미로, 자바로 개발된 프로그램은 자바 실행 환경 JRE가 설치된 모든 환경에서 실행이 가능하다는 것을 의미한다.아래에는 강의를 들으며 복기해야할 문법 개념들을 작성할 것이다.1) 자료형Java의 자료형은 크게 Primitive type(기본자료형)과 Reference type(참조자료형)으로 구분된다.primitive type의 종류:short, int, long, float, double, char, boolean, byte 등이 있다.shor..

2024. 8. 5. 22:16
Spring Framework/Toby's Spring 3.1

자바 개발에서의 핵심 개념: 아티팩트, DAO, 그리고 자바빈

1. 아티팩트 🗂️ 자바 개발에서 “아티팩트(Artifact)“라는 용어는 빌드 과정에서 생성되는 파일이나 결과물을 의미합니다. 이 아티팩트는 소스 코드, 설정 파일, 라이브러리, 컴파일된 클래스 파일 등 다양한 형태를 가질 수 있으며, 자바 개발의 중요한 산출물입니다. 자바 아티팩트의 종류:  • JAR 파일 (Java Archive File) 📦: JAR 파일은 자바 클래스 파일과 애플리케이션 또는 라이브러리에 필요한 리소스 파일들을 압축한 아카이브 파일입니다. 자바 애플리케이션을 배포하거나 라이브러리를 공유할 때 흔히 사용됩니다. • WAR 파일 (Web Application Archive File) 🌐: 웹 애플리케이션의 배포를 위해 사용되는 아티팩트입니다. JSP, 서블릿, 자바 클래스, ..

2024. 8. 5. 17:12
Spring Framework/Toby's Spring 3.1

UML: 소프트웨어 설계의 시각적 언어, 통합 모델링 언어

[참고] UML은 다이어그램을 사용하여 시스템이나 데이티베이스를 시각화하는 방법입니다.소프트웨어 개발에서 소프트웨어 시스템을 계획하기 위해 자주 사용됩니다. UML Diagram Type   UML Class DiagramUML (Unified Modeling Language) 클래스 다이어그램은 소프트웨어 시스템의 클래스들과 그들 간의 관계를 시각적으로 표현하는 도구입니다. UML 클래스 다이어그램은 주로 객체 지향 소프트웨어 개발 과정에서 사용되며, 시스템의 구조를 분석하고 설계하는 데 중요한 역할을 합니다.클래스 다이어그램은 시스템의 초기 설계 단계에서 매우 유용하며, 개발자들이 시스템의 구조를 명확하게 이해하고, 객체 간의 상호작용을 쉽게 파악할 수 있게 도와줍니다. 또한, 클래스 다이어그램은 시..

2024. 8. 5. 17:11
Spring Framework/Toby's Spring 3.1

SOLID: 객체 지향 설계의 5대 원칙으로 탄탄한 소프트웨어 만들기

http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod ArticleS.UncleBob.PrinciplesOfOodThe Principles of OOD What is object oriented design? What is it all about? What are it's benefits? What are it's costs? It may seem silly to ask these questions in a day and age when virtually every software developer is using an object oriented languagebutunclebob.comSOLID는 객체 지향 프로그래밍에서의 다섯 가지 원칙을 의미합니다...

2024. 8. 5. 17:10
Spring Framework/Toby's Spring 3.1

OCP (Open-Closed Principle): 변화에 강하고 확장에 유연한 소프트웨어 설계 원칙

OCP (Open-Closed Principle): 변화에 강하고 확장에 유연한 소프트웨어 설계 원칙 OCP는 객체지향 설계의 중요한 원칙 중 하나로, 소프트웨어 모듈이 확장에는 열려 있고, 수정에는 닫혀 있어야 한다는 원칙입니다. 이는 새로운 기능이나 요구사항이 추가될 때 기존 코드를 수정하지 않고도 시스템을 확장할 수 있도록 해줍니다. OCP를 통해 시스템의 유지보수성과 확장성을 크게 향상시킬 수 있습니다. 🎯 OCP의 핵심 개념  1. 개방 (Open): • 모듈은 확장에 대해 열려 있어야 합니다. 새로운 요구사항이나 기능을 추가할 때 기존 코드를 수정하지 않고도 새로운 코드를 추가할 수 있어야 합니다. • 예시: UserDao 클래스는 DB 연결 기능을 확장할 수 있도록 ConnectionMak..

2024. 8. 5. 17:10
  • «
  • 1
  • ···
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바