프로필 로고 차가운 개발노트
close
프로필 배경
프로필 로고

차가운 개발노트

  • 분류 전체보기 (125) N
    • Java (23)
    • SQL (11)
    • Spring (23) N
    • React (15)
    • Next (5)
    • CS (16)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
  • 홈
  • 태그
  • 방명록
다양한 의존관계 주입 방법

다양한 의존관계 주입 방법

의존성 주입 ( DI )의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 객체 간의 관계를 설정하는 방식 중 하나입니다.객체가 필요한 의존성( 다른 객체 )을 직접 생성하지 않고 외부에서 주입받는 방식을 말합니다.이를 통해 객체 간의 결합도를 낮추고, 유연한 코드와 테스트 가능성을 높일 수 있습니다. 만약 우리가 자동차를 만들고 있다고 했을 때, 자동차는 엔진, 타이어, 핸들 등 여러 부품이 필요합니다. 만약 자동차가 엔진을 스스로 만들어야 한다면, 자동차 클래스 내부에서 엔진을 직접 생성해야 합니다. 이 경우, 자동차와 엔진이 강하게 결합되어 있어서 자동차를 테스트하거나 엔진을 교체하는 것이 매우 어렵습니다. 하지만 의존성 주입을 사용하면, 자동차가 엔진을 외부에서 ..

  • format_list_bulleted Spring
  • · 2025. 1. 7.
  • textsms
Spring 웹 애플리케이션 계층구조

Spring 웹 애플리케이션 계층구조

계층구조Spring 에서 웹 애플리케이션을 만들 때, 코드를 체계적으로 관리하기 위해 계층 구조를 사용합니다.이 구조는 역할에 따라 프로그램을 세 부분으로 나누는 방식으로, 우리가 건물을 지을 때 기초, 벽, 지붕처럼 각각의 역할을 나눈 것과 비슷하다고 생각하시면 됩니다. 개발자 입장에서는 이렇게 세분화함으로써 효율적으로 개발을 하고자 함인데요, 기본적인 계층으로는 크게 컨트롤러, 서비스, 리포지토리, DTO, 모델등으로 구성되어 있습니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있습니다.  계층컨트롤러 ( Controller )컨트롤러 계층은 HTTP 요청을 받아들이는 진입점입니다.클라이언트의 요청에 따라 어떤 처리를 할지 결정하고, 요청..

  • format_list_bulleted Spring
  • · 2024. 12. 23.
  • textsms
Spring - @Value

Spring - @Value

간단한 설명프로젝트를 진행하다 보면 시크릿 키와 같이 외부에 노출해서는 안되는 값들을 사용할 때가 있습니다.만약 코드 내부에 시크릿 키를 저장하고 사용할 경우 외부에 노출될 위험이 커집니다.이럴 경우 application.properties 와 같은 파일에 보안이 필요한 값들을 넣어 두고 .gitignore 로 등록하여 외부에 노출이 되지 않게 하며 필요할 때 꺼내 쓰면 외부에 노출될 위험이 줄어듭니다. 이렇게 application.properties 에 보안이 필요한 값들을 꺼내오는 어노테이션이 바로 @Value 입니다.사용@Value 를 사용하기 전에 우리는 보안이 필요한 값을 저장할 수 있는 파일을 만들어야 합니다.Spring 에서는 애플리케이션에서 사용하는 설정 값을 외부 파일인 test.prop..

  • format_list_bulleted Spring
  • · 2024. 12. 20.
  • textsms
Spring Bean 을 등록하는 3가지 방법

Spring Bean 을 등록하는 3가지 방법

Spring BeanSpring Bean은 Spring Framework에서 관리하는 객체를 의미합니다. Spring IoC (Inversion of Control) 컨테이너는 애플리케이션에서 객체의 생명 주기와 의존성 주입(Dependency Injection)을 관리합니다. Spring에서 관리하는 객체는 모두 Bean이라고 부르며, 이는 Spring 컨테이너가 생성하고 관리하는 객체입니다.Spring Bean을 등록하는 방법고전적인 방법 - Spring Bean XML 설정먼저 등록하고 싶은 Bean 파일을 만들어야 합니다.MyService 객체가 MyRepository 의존성을 갖고 있다고 가정하겠습니다.public class MyService { private final MyRepository..

  • format_list_bulleted Spring
  • · 2024. 12. 19.
  • textsms
스프링 빈(Bean) 이란?

스프링 빈(Bean) 이란?

빈 - Bean빈( Bean ) 은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트입니다.즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리합니다. 빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 합니다.쉽게 이해하자면 new 키워드를 대신 사용한다고 보시면 됩니다.IHelloService helloService = new IHelloService()스프링 빈을 사용하는 이유정말 간단하게 말하자면 효율적이고 안전한 객체 관리를 위해서입니다. 객체의 효율적인 관리첫 번째로 객체를 효율적으로 관리하기 위해서입니다.우리가 프로그램을 만들 때, 여러 클래스들이 서로 도와서 일을 합니다. 이때 객체( 클래스를 통해 만들어지는..

  • format_list_bulleted Spring
  • · 2024. 12. 16.
  • textsms
Spring - 경로 변수

Spring - 경로 변수

경로변수path variable 이며, 요청 경로를 동적으로 표현이 가능한 경로 패턴으로 지정할 수 있습니다.URL 경로 상의 변하는 값을 경로 변수로 취급하여 경로 변수에 해당하는 값을 파라미터 변수에 설정할 수 있습니다. 간단하게 사용법을 말하자면 URL 경로에 중괄호 { } 안쪽에 변수를 담고, 그 변수를 @PathVariable(" ") 로 받아서 사용할 수 있습니다.기본 사용법요청 : http://localhost:8080/member/detail/123 JSP... Controller@RequestMapping("/detail/{memberid}") public String detail(@PathVariable String memberid) { //... }변수명을 다르게 설정Path..

  • format_list_bulleted Spring
  • · 2024. 12. 12.
  • textsms
[Spring MVC] - QueryString

[Spring MVC] - QueryString

QueryStringURL로 전달되는 문자열사용자가 "list? p=1"과 같이 URL에 쿼리 스트링을 사용해 특정 조건을 요청할 경우 request 객체를 가져와 사용할 수 있습니다.Servlet Programming 에서는 다음과 같은 방식으로 HTTP 요청의 파라미터를 얻을 수 있습니다.@RequestMapping("/index")public void index(HttpServletRequest req) { String p = req.getParameter("p"); int value = Integer.parseInt(p);} 하지만 Spring MVC 는 위와 같은 방식보다 조금 더 편한 방식을 제공해주고 있습니다. 사용 방법은 아래와 같습니다.@RequestMapping("/index..

  • format_list_bulleted Spring
  • · 2024. 12. 12.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (125) N
    • Java (23)
    • SQL (11)
    • Spring (23) N
    • React (15)
    • Next (5)
    • CS (16)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
최근 글
인기 글
최근 댓글
태그
  • #react
  • #Spring
  • #Java
  • #데이터베이스
  • #NEXT
  • #라이브러리
  • #Next.js
  • #CS
  • #SQL
  • #React-Native
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바