본문 바로가기

전체 글169

[스프링 기본] 5. 싱글톤 컨테이너 웹 어플리케이션과 싱글톤 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 그리고 웹 애플리케이션은 여러 고객이 동시에 요청을 한다. 요청할때마다 객체를 만들면 낭비가 심하다. 그러므로 싱글톤 패턴으로 설계하는게 효율적이다. 싱글톤 패턴 private static final SingletonService instance = new SingletonService(); public static SingletonService getInstance() { return instance; } 자바에서 배운것과 같이, private static으로 생성하고 getInstance를 통해서만 조회할 수 있도록 하면 된다. 이러면 단 하나의 인스턴스를 여럿이 돌려쓰게 된다. 하지만 이런 싱글톤 패턴은 문제점이 많다. 코.. 2022. 10. 12.
[스프링 기본] 4. 스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext가 스프링 컨테이너이다. ApplicationContext는 인터페이스고, AnnotationConfigApplicationContext가 그 구현체이다. 스프링 컨테이너 만드는 방법 어노테이션 기반 xml 기반(요즘은 잘 사용안함) 우리 예제에서는 AppConfig에 어노테이션을 붙여서 만들었다. 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주야 한다. 여기서는 AppConfig.class 를 구성 정보로 지정했다. 스프링 빈은 빈 저장소에 @Bean이 붙은 애들을 등록한다... 2022. 10. 10.
[스프링 기본] 3. 스프링 핵심 원리 이해2 -객체 지향 원리 작용 새로운 할인 정책 개발 기획자가 말을 바꿔서 VIP 회원 기존 1000원 할인 대신 10% 할인으로 바뀐 상황. DiscountPolicy를 구현한 RateDiscountPolicy를 만든다. 기존 FixDiscountPolicy랑 똑같은데 VIP인 경우 return price * discountPercent / 100; 으로 바뀐다. RateDiscountPolicy discountPolicy = new RateDiscountPolicy(); @Test @DisplayName("VIP는 10% 할인이 적용되어야 한다.") void vip_o() { //given Member member = new Member(1L, "memberVIP", Grade.VIP); //when int discount = d.. 2022. 10. 10.
[스프링 기본] 2. 스프링 핵심 원리 이해1-예제 만들기 프로젝트 생성 https://start.spring.io/ 사이트로 가서 zip 파일을 생성-다운 후 인텔리제이에서 임포트 임포트 방법: 압축 푼 파일 위치로 가서 해당 파일의 build.gradle 선택 후 프로젝트로 열기 일단 순수 자바로 개발하고 추후 점점 스프링의 요소들을 추가해 나갈 것이다.(스프링 부트는 환경 설정을 편리하게 하려고 사용한 것.) 비지니스 요구사항과 설계 & 회원 도메인 설계 회원 회원 가입과 조회 가능. 일반 회원과 VIP 회원 존재. 회원 db는 자체 db로 할지 외부 시스템과 연동할지 미확정. 주문 회원들은 상품을 주문할 수 있는데, 회원 등급에 따라 할인 정책 다름.(VIP는 무조건 1000원 할인) 할인 정책은 회사의 사정으로 변경 가능성이 높은 상태. 변경 가능성이 .. 2022. 10. 7.
[스프링 기본] 1. 객체 지향 설계와 스프링 스프링이란? 이런 애들을 모두 통틀어 스프링 생태계라고 부른다. 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용할 수 있다. '스프링' 이라는 단어는 문맥에 따라 달리 사용한다. 스프링 DI 컨테이너 기술 스프링 프레임워크 스프링 생태계 스프링의 핵심: 스프링은 자바 기반이고 자바는 객체 지향 언어 -> 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체 지향 프로그래밍? 캡 상 추 다 캡슐화 상속 추상화 다형성 객체 지향 프로그래밍은 유연하고 변경이 용이함. 스프링은 다형성이 가장 중요! 역할(인터페이스)과 구현(인터페이스를 구현한 클래스, 구현 객체)를 분리. 클라는 인터페이스만 알면 된다. 내부 구조는 몰라도 됨=내부구조가 바뀌어도 영향 x -> 변.. 2022. 10. 5.
블로그 새단장과 스프링 입문 강의 완강 블로그 새단장 티스토리 스킨을 바꾸고, 익숙한 벨로그와 비슷해지도록 설정을 조금 만졌다. 깃헙 링크도 추가하고 코드블럭 글씨체도 손봤다. 난 중고딩때 기술블로그가 아닌, 오로지 취미생활의 목적으로 네이버 블로그를 하던 사람이었는데...그래서 그런지 블꾸하면서 시간이 아주 잘 갔다. 스프링 입문 강의 완강 인프런 김영한님의 스프링 로드맵 첫 번째인 스프링 입문 강의를 완강했다. 그 다음 강의인 스프링 기본편은 미리 사 둔 상태이다. 기본편부터는 유료 강의인데 블로그에 올려도 되나 해서 찾아봤는데 강의 자료 전체를 올리지 않고 출처를 명확히 하면 상관없다고 한다. 기본편 강의부터는 개인 아이패드에 정리하든지 아니면 입문편보다 큼직큼직한 개념으로 서술하든지 해야겠다. 기본편 강의를 완강할때쯤이면 싸피에서도 스.. 2022. 10. 4.
반응형