본문 바로가기

분류 전체보기125

[Queue/Deque] 큐/덱 - 미팅 주선 프로그램 미팅 주선 프로그램 간단한 미팅 주선 프로그램을 만들고자 한다. 덱 (deque)을 이용하여 남성 큐와 여성 큐를 구현한다 (여기서 덱은 배열을 이용해서 구현해야한다). 매 시간 한명의 고객이 미팅 주선을 요청하기 위해 방문하면 성별에 맞추어 큐의 맨 뒤에 삽입한다. 만약에 해당 고객이 돈을 더 내서라도 순서를 기다리지 않고 즉시 미팅이 주선되길 원하면 큐의 맨 처음에 삽입한다. 매 시간 고객이 대기열에 입장하고 나면, 남성 큐와 여성 큐에서 맨 앞에 있는 남성과 여성의 미팅이 매칭된다. 만약 매칭할 남성 또는 여성이 없는 경우 다음 시간으로 넘어간다. Input 입력의 첫 줄에는 미팅 주선소에 입장하고자 하는 총 인원의 수 n (1 n; // string s; int id; string name; ch.. 2023. 7. 9.
Spring - 스프링 컨테이너 생성 //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext는 스프링 컨터이너이자, 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 참고: 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory , ApplicationContext 로 구분해서 이야기한다. BeanFactory 를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext 를 스프링 컨테이너라 한다. 1. 스프링 컨테이너 생성 new AnnotationConfigAppl.. 2023. 7. 9.
Spring - 지금까지의 전체 흐름 정리 지금까지의 코드 새로운 할인 정책 개발 새로운 할인 정책 적용과 문제점 (dip, ocp 위반) 관심사의 분리 (추상화에만 의존, 구체화에는 의존도 없도록) AppConfig 리팩터링 (전체 앱을 구성하는 기능을 따로 appconfig로 빼둠) 새로운 구조와 할인 정책 적용 새로운 할인 정책 개발 다형성 덕분에 새로운 정률 할인 정책 코드를 추가로 개발하는 것 자체는 아무 문제가 없음 새로운 할인 정책 적용과 문제점 새로 개발한 정률 할인 정책을 적용하려고 하니 클라이언트 코드인 주문 서비스 구현체도 함께 변경해야함 주문 서비스 클라이언트가 인터페이스인 DiscountPolicy 뿐만 아니라, 구체 클래스인 FixDiscountPolicy 도 함께 의존 -> DIP 위반 AppConfig 리팩터링 구성 .. 2023. 7. 7.
Spring - AppConfig 중복을 제거하고, 역할에 따른 구현이 보이도록 리팩터링 하자. package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl.. 2023. 7. 7.