본문 바로가기 메뉴 바로가기

기록하는 개발자

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

기록하는 개발자

검색하기 폼
  • 분류 전체보기 (127)
    • JAVA (6)
    • Spring (38)
    • Django (7)
    • 알고리즘 (28)
    • Network (16)
    • 회고 (17)
      • 우아한테크코스 (11)
    • Linux (11)
    • 이슈 (2)
    • 인프라 (2)
  • 방명록

Spring (38)
[Spring] 스프링 컴포넌트 스캔(Component Scan)

지금까지 스프링 빈 설정을 하는 과정을 살펴보면 AppConfig 클래스에 @Configuration 어노테이션을 설정한 후 @Bean을 통해서 직접 등록할 스프링 빈을 설정했다. 앞서 보인 예제는 몇 개 되지 않아 일일이 입력하였지만, 빈 객체가 많아지는 경우 일일이 선언해주기 어렵다(귀찮다) 또 실수로 빈 설정을 누락하는 경우 스프링 컨테이너에 빈 객체가 등록되지 않을 수도 있다. 그러므로 스프링은 설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔(@Component Scan)을 제공한다. 또한 의존관계를 자동으로 주입하는 @Autowired라는 기능도 제공한다 @ComponentScan, @Autowired 사용하기 우선 컴포넌트 스캔을 사용하려면 @ComponentScan을 설정 정보에..

Spring 2022. 1. 19. 21:24
[Spring] Spring Singleton(싱글톤)

싱글톤 패턴 개념에 들어가기 전, 한 웹사이트에 동시에 50000명의 고객이 접속한다고 하자. 앞서 빈 객체에 관해 공부를 했다. 동시에 5만명의 고객이 접속한다고 하면 50000만개의 객체를 동시에 생성해야될까? Configuration 1개가 1개 이상의 객체를 생성할 가능성이 높은데 객체가 최소한 1개씩만 있다고 하더라도 50000개의 객체를 동시에 만들어야 한다. 이것이 가능할까? 스프링이 없는 순수 자바코드를 이용해 빈 설정 정보를 확인하는 테스트 코드를 작성하였다 package hello.core_review.singleton; import hello.core_review.AppConfig; import hello.core_review.member.MemberService; import org..

Spring 2022. 1. 17. 22:11
[Spring] Spring Container(스프링 컨테이너)

Spring Container 스프링 컨테이너 ApplicationContext를 스프링 컨테이너라 한다. 이전까지는 개발자가 AppConfig를 사용해서 직접 객체를 생성하고 의존관계 주입하는 순수 자바코드만을 사용했다. 지금부터는 스프링 컨테이너를 사용해 개발해보자 ! 스프링 컨테이너란? 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다. 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 부릅니다. 그리고 IoC와 DI의 원리가 이 스프링 컨테이너에 적용됩니다. 스프링 컨테이너는 Class 상단에 @Configuration이 붙은 AppConfig를 구성 정보로 사용한다. Class 내부에 함수들을 선언하기 전에 @Bean으로 ..

Spring 2022. 1. 14. 20:55
[Spring] Spring DI(Dependency Injection)

DI(Dependency Injection) DI란 스프링이 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 것이 아닌 외부 APP에서 생성한 후 객체를 주입 시켜주는 방식이다. DI를 통해 모듈 간의 결합도(Coupling)이 낮아지고 유연성이 높아진다. 좋은 소프트웨어를 설계하기 위해서는 응집도(Cohesion)는 높아야 하고 결합도(Coupling)은 낮아야 한다. 방법 1은 A 객체가 B와 C객체를 직접 생성자를 통해서 생성하는 방법이고 방법 2는 외부에서 생성된 객체를 setter()나 생성자를 통해 사용하는 방법이다 주문 시스템의 클래스 다이어그램을 살펴보면 문제점을 찾을 수 있다. 할인 정책을 고정 할인 정책에서 비율 할인 정책으로 변경하는 경우 클라이언트 코드인 OrderServi..

Spring 2022. 1. 14. 19:14
[Spring] 좋은 객체 지향이란?

본 게시글은 인프런 강의 스프링 핵심 원리 - 기본편 '강의자료'를 정리한 게시글입니다. 게시글 내용의 출처는 모두 해당 강의에 있습니다. 객체 지향 특징 - 추상화 - 캡슐화 - 상속 - 다형성 => 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다 유연하고, 변경에 용이? - 레고 블럭 조립하듯이 - 키보드 마우스 부품 갈아 끼우듯이 - 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 - 역할과 구현으로 구분하는 것이 중요하다! 역할과 구현을 사물로 비유하기 위해 운전자-자동차 예시를 들어보자 운전자는 운전하는 방법만 알고 있으면, 자동차가 K3이건 아반떼이건 테슬라이건 구분하지 않고 운전할 수 있다. 역할과 구현 분리 역할과 구현으로 구분하면 단순해지고, 유연해지며 변경도 ..

Spring 2021. 8. 5. 22:42
[Spring] 스프링이란? (스프링 프레임워크 VS 스프링 부트)

본 게시글은 인프런 강의 스프링 핵심 원리 - 기본편 '강의자료'를 정리한 게시글입니다. 게시글 내용의 출처는 모두 해당 강의에 있습니다. 스프링 프레임워크 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트 웹 기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랙잭션, JDBC, ORM지원, XML지원 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링 테스트 : 스프링 기반 테스트 지원 언어 : 코트린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본적으로 사용한다 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 지원 Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치..

Spring 2021. 8. 5. 22:23
[Spring] 스프링 라이브러리 살펴보기

본 Spring 관련 게시글은 인프런 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 '강의내용'을 정리한 게시글입니다! 게시글 내용의 출처는 모두 해당 강의에 있습니다. 라이브러리 살펴보기 Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다. 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat spring-webmvc : 스프링 웹 MVC spring-boot-starter-thymleaf : 타임리트 템플릿 엔진(view) spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅 spring-boot spring-core spring-boot-starter-logging ..

Spring 2021. 7. 20. 17:39
[Spring] IntelliJ에서 Spring 프로젝트 생성하는 방법

미리 준비할 것 Java 11설치 IDE : IntelliJ or Eclipse 설치 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project : Gradle Project Spring Boot : 2.5.x Language : Java Packaging : Jar Java : 11 Project Metadata groupId : hello (아무거나 가능) artifactId : hello-spring Dependencies : Spring Web, Thymeleaf 다음과 같이 설정한 후 GENERATE를 누르게 되면 파일이 다운로드 된다. 다운로드 된 파일을 IntelliJ에서 새로운 프로젝트를 열기 [File] -> [Ope..

Spring 2021. 7. 19. 23:28
이전 1 2 3 4 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • dm-zoned
  • 알림기능개선기
  • ZNS
  • 파이썬
  • 3차 데모데이
  • 알림개선기
  • 5주차 회고
  • 백준
  • 우테코
  • Spring
  • 2차 데모데이
  • 우테코 회고
  • 피움
  • 8주차 회고
  • 런칭 페스티벌
  • jpa
  • 피움 6주차 회고
  • ZNS SSD
  • 네트워크
  • 환경 별 로깅 전략 분리
  • 프로젝트
  • 스프링MVC
  • java
  • 팀프로젝트
  • 스프링 Logback
  • 스프링 프레임워크
  • CI/CD
  • 스프링 부트
  • 회고
  • dm-zoned 코드분석
more
«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바