Backend/Spring
-
[Spring] 스프링 부트 살펴보기Backend/Spring 2023. 8. 15. 13:16
스프링 부트는 실무 환경에서 활용 가능한 독립실행형 애플리케이션을 빠르게 개발할 수 있도록 스프링 기반의 다양한 도구와 기술을 제공하는 플랫폼입니다. 이는 개발자들에게 복잡한 설정 고민 없이 빠른 개발을 도와주는 개념으로 큰 의미를 지닙니다. 스프링 부트가 아닌 스프링을 활용한 개발은 때때로 어떤 기능을 어떻게 활용해야 하는지에 대한 불확실성으로 인해 초기 진입이 어려울 수 있습니다. 이런 어려움을 해소하기 위해 등장한 것이 바로 스프링 부트입니다. 이 도구는 이러한 고민을 더 이상 걱정하지 않아도 된다는 안도감을 주는 역할을 합니다. 스프링과 스프링 부트는 서로 다릅니다. 게다가, 각각의 버전도 독립적으로 존재하며, 스프링 부트는 스프링의 버전을 결정하는 역할을 수행합니다. 스프링 부트의 핵심 목표 매..
-
[Spring] Spring batch (프로젝트 셋팅, Batch Job 실행)Backend/Spring 2022. 4. 4. 17:29
Spring batch에 대해서 궁금하여 실습을 통해 Spring batch에 대해 알고 싶어 실습을 하려고 포스팅하였습니다.. 하면서 에러와 알아야 되는 사항을 정리하며 포스팅을 진행하겠습니다. 참고한 내용은 개발자 이동욱님의 https://jojoldu.tistory.com/ 기억보단 기록을 Java, TypeScript, ORM, RDBMS, AWS 를 주로 다루고 공유합니다. jojoldu.tistory.com 에서 참고하였습니다. 코드는 저의 깃허브 https://github.com/MojinHyeok/SpringBoot_Study 에서 Spring_batch에 올렸습니다. 첫 과정인 프로젝트 생성과정입니다. 1. 프로젝트 생성 첫 셋팅은 위와 같이 진행하였습니다. 프로젝트 빌드 관리도구로는 G..
-
[Spring] War Jar 차이점Backend/Spring 2022. 3. 9. 17:34
Spring을 사용하면서 Jar과 War에 대해서 많이 듣게 되면서 둘의 차이점과 개념에 대해 알고 싶어 포스팅해보려 합니다. JAR WAR의 용도 Backend를 공부하시다 보면 JAR과 WAR을 많이 보셨을 겁니다. 하지만 저는 어떠한 용도로 사용되는지는 정확히 알지 못했습니다. 그래서 정확한 용도는 다음과 같습니다. JAR, WAR 모두 Java의 jar 툴(java -jar 명령어)을 이용하여 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일)들을 패키징 해주는 것이 용도입니다. 저는 주로 배포할 때 Jar파일을 Build 하여 배포한 경험이 있었습니다. 최근에는 STS를 다운로드할 때 공식 사이트에서 Jar파일로 제공하여 jar 툴을 ..
-
[Spring]스프링 핵심원리_컴포넌트 스캔Backend/Spring 2022. 2. 24. 12:06
컴포넌트 스캔과 의존관계 자동 주입 시작하기 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 의존관계 자동으로 주입하는 @Autowired라는 기능도 제공한다. 코드 AppConfig package hello.core; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filte..
-
[Spring] 스프링 핵심 원리_싱글톤 컨테이너Backend/Spring 2022. 2. 22. 15:36
웹 애플리케이션 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청한다. 고객이 요청할 때마다 새롭게 생성해서 객체를 반환합니다. 스프링이 없는 순수한 DI컨테이너 테스트 package hello.core.singleton; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import hello.core.AppConfig; import hello.core.mem..
-
[Spring]스프링 핵심원리_스프링 컨테이너와 빈Backend/Spring 2022. 2. 17. 15:18
스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정을 알아봅시다. ApplicationContext applicationContext=new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정 클래스를 기반으로 스프링 컨테이너(ApplicationContext)를 만들어보자 new AnnotationConfigApplicat..
-
[Spring]스프링 핵심 원리 _기본편_객체 지향 원리 적용Backend/Spring 2022. 2. 15. 15:19
새로운 할인 정책 개발 기획자: 서비스 오픈 직전에 할인 정책을 지금처럼 고정 금액 할인이 아니라 좀 더 합리적인 주문 금액당 할인하는 정률% 할인으로 변경하고 싶어요. 예를 들어서 기존 정책은 VIP가 10000원을 주문하 든 20000원을 주문하 든 항상 1000원을 할인했는데, 이번에 새로 나온 정책은 10% 로지 정해두면 고객이 10000원 주문 시 1000원을 할인해주고, 20000원 주문 시에 2000원을 할인해주는 거예요! 순진 개발자: 제가 처음부터 고정 금액 할인은 아니라고 했잖아요. 악덕 기획자: 애자일 소프트웨어 개발 선언 몰라요? “계획을 따르기보다 변화에 대응하기를” 순진 개발자: … (하지만 난 유연한 설계가 가능하도록 객체지향 설계 원칙을 준수했지 후후) 참고: 애자일 소프트웨..
-
[Spring] 스프링 핵심원리 _예제 만들기Backend/Spring 2022. 2. 14. 15:30
프로젝트 만들기. 프로젝트는 start.spring.io에서 프로젝트를 만들겠습니다. 위와 같이 셋팅을 마친 이후에 Sts에서 Imort를 진행 후 Add Gradle Nature를 클릭하여 Gradle환경을 만듭니다. 그 이후 Refresh Gradle Project를 클릭하시면 프로젝트 생성은 완료가 됩니다. 비즈니스 요구사항과 설계 회원 회원을가입하고조회할수있다. 회원은일반과 VIP 두가지등급이있다. 회원데이터는자체 DB를구축할수있고, 외부시스템과연동할수있다. (미확정) 주문과할인정책 회원은상품을주문할수있다. 회원등급에따라할인정책을적용할수있다. 할인정책은모든 VIP는 1000원을할인해주는고정금액할인을적용해달라. (나중에변경될수 있다.) 할인정책은변경가능성이높다. 회사의기본할인정책을아직정하지못했고, ..