일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 삽입정렬
- 코테준비
- collections.sort
- 우선순위 큐
- 트라이
- 코딩테스트
- 거품정렬
- 팀정렬
- 스택
- 퀵정렬
- 15552번
- 힙
- 파싱
- MSA
- 스터디
- LinkedList
- 자료구조
- heap
- Timsort
- 이진트리탐색
- 코테
- divide and conquer
- 프로그래머스
- 해시함수
- 분할정복
- 연결리스트
- 큐
- 백준
- stack
- 선택정렬
- Today
- Total
목록백엔드/Spring (7)
Little bIT awesome

IoC (Inversion of Control)일반적으로 프로그램의 흐름은 각 오브젝트가 능동적으로 자신이 사용할 클래스를 결정하고, 언제 어떻게 그 오브젝트를 만들지를 결정한다. 제어의 역전은 이런 제어 흐름의 개념을 거꾸로 뒤집는 것. 제어의 역전에서는 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하거나 생성하지 않는다. 또한, 자신도 어디서 어떻게 사용되는 지 알 수 없다. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하기 때문 프레임워크는 제어의 역전 개념이 적용된 대표적인 기술프레임워크를 사용하면 객체의 생명 주기를 모두 프레임워크에 위임할 수 있다. 즉, 외부 라이브러리가 애플리케이션 코드를 호출하고, 흐름을 제어한다.라이브러리를 사용하는 애플리케이션 코드는 애플리케이션의 흐름을 직접 제..
스프링 인강을 듣다가 강사님이 Test 코드 작성 시 given - when - then 패턴을 항상 사용하시길래 내가 보려고 정리하는 글 Given - When - Then : [준비 - 실행 - 검증] class MemberRepositoryTest { MemberRepository memberRepository = MemberRepository.getInstance(); @AfterEach void afterEach() { memberRepository.clearStore(); } @Test void save() { // given Member member = new Member("hello", 20); // when Member savedMember = memberRepository.save(me..
Mock 객체 실제 객체를 다양한 조건으로 인해 제대로 구현하기 어려울 경우 가짜 객체를 만들어 사용하는데, 이를 Mock 객체라고 한다. Mock 객체가 필요한 경우 테스트 작성을 위한 환경 구축이 어려운 경우 테스트가 특정 경우나 순간에 의존적인 경우 시간이 걸리는 경우 https://heegs.tistory.com/16 [Mockito] Mock 객체 란? Mock 이란? 실제 객체를 다양한 조건으로 인해 제대로 구현하기 어려울 경우 가짜 객체를 만들어 사용하는데, 이를 Mock 객체라 한다. Mock 객체가 필요한 경우. 테스트 작성을 위한 환경 구축이 어 heegs.tistory.com

새로운 할인 정책 개발 : 10% 할인 정책 RateDiscountPolicy 추가 새로운 할인 정책 적용과 문제점 할인 정책을 적용할 때, 클라이언트인 OrderServiceImpl 코드를 고쳐야 한다. 문제점 OCP, DIP 원칙을 준수하지 않음 DIP : 구현 클래스에 의존하고 있다. OCP : 변경해야 확장 가능하다. ⇒ 누군가 클라이언트인 OrderServiceImpl에 DiscountPolicy의 구현 객체를 대신 생성하고 주입해주어야 한다. 관심사의 분리 객체를 생성하고, 연결하는 책임을 가지는 별도의 클래스가 필요하다! (AppConfig) 생성자를 통해 MemberRepository를 받고 외부에서 AppConfig를 통해 MemberRepository의 구현체를 넣어줌. MemberSe..

비즈니스 요구사항과 설계 회원 회원 가입 & 조회 일반 & VIP 두 가지 등급이 있음 데이터 DB는 미확적 주문과 할인 정책 회원은 주문 가능 회원 등급에 따라 할인 정책 VIP 고정 1000원 할인(이후 변경 가능) ※ 순수 자바로만 개발할 것. 회원 서비스와 회원 저장소는 interface를 사용할 것. 구현 내용을 사용자가 몰라도 된다. 회원 클래스 다이어 그램 구현 회원 등급 💡 enum : 관련이 있는 상수들의 집합. 회원 엔티티 💡 엔티티 : 데이터의 집합 / 데이터베이스의 테이블 회원 저장소 회원 저장소 인터페이스 (메모리, 자체 DB, 외부 시스템 사용할 지 미확정) 메모리 회원 저장소 구현체 자바 컬렉션 (Map)Map의 특징 : Key-Value 의 쌍으로 이루어진 테이터의 집합으로,..

스프링 핵심 개념 자바 언어 기반 → 자바의 핵심 : 객체 지향 ⇒ 좋은 객체 지향으로 어플리케이션을 개발하는 것. 객체 지향의 특징 유연하고, 변경에 용이하다. ex) 레고 블럭을 조립 컴포넌트를 쉽고 유연하게 변경하면서 개발하기 💡 다형성 역할과 구현으로 구분하기 ex) 자동차 역할과 k3, 아반떼 등의 구현으로 구분하기 → 운전자는 1. 자동차의 내부구조를 몰라도 괜찮음 2. 자동차의 내부구조가 바뀌어도 괜찮음 - 역할 : interface - 구현 : 클래스, 구현 객체 역할과 구현을 분리하다 클라이언트 역할만 알면 괜찮음 내부 구조를 몰라도 괜찮음 내부 구조가 변경되어도 영향을 받지 않음. 구현 대상이 바뀌어도 괜찮음 좋은 객체 지향의 5가지 원칙 (SOLID) SRP (단일 책임 원칙) 기준은..