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

IoC (Inversion of Control)일반적으로 프로그램의 흐름은 각 오브젝트가 능동적으로 자신이 사용할 클래스를 결정하고, 언제 어떻게 그 오브젝트를 만들지를 결정한다. 제어의 역전은 이런 제어 흐름의 개념을 거꾸로 뒤집는 것. 제어의 역전에서는 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하거나 생성하지 않는다. 또한, 자신도 어디서 어떻게 사용되는 지 알 수 없다. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하기 때문 프레임워크는 제어의 역전 개념이 적용된 대표적인 기술프레임워크를 사용하면 객체의 생명 주기를 모두 프레임워크에 위임할 수 있다. 즉, 외부 라이브러리가 애플리케이션 코드를 호출하고, 흐름을 제어한다.라이브러리를 사용하는 애플리케이션 코드는 애플리케이션의 흐름을 직접 제..

도커 Go언어로 작성된 리눅스 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼 다시 말해, 특정한 서비스를 패키징학 배포하는데 유용한 오픈소스 프로그램이다. 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는데 필요한 모든 것이 포함되어 있다. 가상 머신에 비해 꼭 필요한 것만 담겨서 구동되기 때문에 이미지를 만들 경우 용량이 대폭 줄어들게 된다. 하이퍼바이저 vs 컨테이너 하이퍼바이저 호스트 하드웨어에 설치되어 호스트와 게스트를 나누는 역할을 하고 각각의 게스트는 하이퍼바이저에 의해 관리되며 시스템 자원을 할당받게 된다. 이 때, 하이퍼바이저에 의해 생성된 게스트는 호스트나 다른 게스트와 상호 간섭하지 않고 완전히 분리된 환경에서 구동된다. 하이퍼바이저를 활용하면 마치 하드웨..
스프링 인강을 듣다가 강사님이 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

HTTP 쿠키(Cookie) 하이퍼 텍스트의 기록서의 일종으로 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각 서버에 요청한 사람이 누구인지 표시하기 위해 클라이언트에 남김 HTTP 통신은 stateless하기 때문에 필요 ※ HTTP의 stateless: 상태가 없다는 의미, 서버 입장에서 동일한 클라이언트의 요청이라도 각 요청은 독립적이다. 주로 세션 관리, 개인 설정 유지, 사용자 트래킹 용도로 사용됨 HTTP 쿠키의 특징 한 개에 4kb 까지 저장 가능하며, 최대 300개까지 저장할 수 있는 텍스트 파일 클라이언트에 저장됨 이름, 값, 만료날짜, 경로 정보를 포함한다. 웹 브라우저가 종료되면 삭제됨 (만료 날짜 지정 가능) 웹 브라우저에 해당 서버의 쿠키 정보가 있으면 HTTP 요청에 담..
Parse : 문법적으로 해부 한다. 하나의 프로그램을 런타임환경이 실제로 행할 수 있는 내부 포맷으로 분석하고 변환하는 것. 문서의 내용을 토큰(token)으로 분석하고, 문법적 의미와 구조를 반영한 파스트리(parse tree)를 생성하는 과정 ※ 토큰 : 언어가 사용하는 기본 '단어', 구문적으로 의미를 갖는 최소의 단위 ※ 파스트리 : 어떤 문장을 트리구조로 나타낸 것을 의미 ex) 브라우저는 HTML을 DOM 트리로 파싱한다. HTML 토큰에는 시작태그와 마침태그, 속성이름, 속성 값이 포함된다. 파서는 토큰화된 입력값을 문서에 파싱하며, 다큐먼트 트리를 구성한다.
보호되어 있는 글입니다.

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