BackEnd/Spring & Spring Boot(10)
-
[Spring] 스프링과 스프링 부트
1. 스프링의 등장엔터프라이즈 애플리케이션은 대규모의 복잡한 데이터를 관리하는 애플리케이션을 말한다. 소프트웨어 분야가 발전하며 엔터프라이즈 애플리케이션은 점점 복잡해졌다. 예를 들어 은행 시스템을 생각해보면 몇 백만, 아니 몇 천만의 사람이 한꺼번에 잔고 조회를 하고, 입금이나 출금 요청을 하거나 새로운 통장을 개설하기도 한다. 이렇듯 엔터프라이즈 애플리케이션은 많은 사용자의 요청을 동시에 처리해야 하므로 서버 성능과 안정성, 보안이 매우 중요하다. 그런데 이런 것들을 신경쓰면서 사이트 기능, 즉, 비즈니스 로직까지 개발하기는 매우 어렵다. 누군가 엔터프라이즈 애플리케이션을 위한 개발 환경을 제공해서 기능 개발에만 집중할 수 있다면 얼마나 좋을까? 이런 상황에서 2003년 6월에 스프링 프레임워크가 등..
2024.08.10 -
[Spring] 컨테이너에 등록된 빈 조회 방법
public class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("모든 빈 출력하기") void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName); //타입을 모..
2024.07.16 -
[Spring] Entity 클래스에서 생성자, getter, setter를 선언하는 이유
public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void s..
2024.07.13 -
[Spring] Service를 Interface로 생성하는 이유 4가지
영한님 강의를 듣던 중 서비스를 인터페이스로 생성하고 이에 대한 구현체를 따로 만드시는 것을 보고 이렇게 하는 이유에 대한 궁금증이 생겼다. 참고로 위의 사진을 설명하자면인터페이스: MemberService는 서비스가 제공해야 할 기능(메서드)을 정의한다.구현체: MemberServiceImpl은 그 기능을 실제로 구현하는 클래스이다. 이렇게 서비스 단에서 인터페이스와 그에 대한 구현체를 만드는 이유는 4가지가 있다.1. 유연한 설계 및 느슨한 결합코드를 변경하는 범위가 최소화되어 유지보수가 쉬워진다. 나중에 MemberService의 구현체를 변경해야 하는 상황을 생각해보자.예를 들어, 현재 데이터베이스를 MySQL에서 MongoDB로 변경하고 싶을 때, 인터페이스가 없다면 모든 클라이언트 코드에서 M..
2024.07.13 -
[Spring] IntelliJ Live template
Live template란? 특정 문자와 템플릿을 매핑해놓고 내 마음대로 사용할 수 있는 기능이다. 예를 들어 tdd라는 것을 만들고 tab키를 누르면 아래의 템플릿이 자동완성된다. @Test public void () throws Exception { //given //when //then } 사용 방법 1. IntelliJ IDEA > Settings > Live Templates 각종 언어별로 template를 설정할 수 있다. 왼쪽의 +버튼을 누르면 두가지 메뉴가 나오는 것을 볼 수 있다. 1. Live template: 템플릿을 추가한다. 2. Template Group...: 원하는 템플레이트 그룹이 없다면 추가한다. 2. Template group 추가 원하는 그룹이 없다면 'Template..
2024.04.18 -
[Spring Boot] WebSecurityConfigurerAdpater 지원 안함
책을 보며 코드를 작성하다가 WebSecurityConfigurerAdpater에 'Cannot resolve symbol 'WebSecurityConfigurerAdpater'라는 오류가 발생했다. 그 원인은 spring security 5.7 이상에서 더 이상 WebSecurityConfigurerAdpater의 사용을 권장하지 않기 때문이었다. 그 대신에 컴포넌트 기반 설정으로 변경할 것을 권장한다고 한다. [변경 전] package com.dan.springbootwebservice.config.auth; import lombok.RequiredArgsConstructor; import org.springframework.security.config.annotation.web.builders.Ht..
2024.03.18