본문 바로가기

분류 전체보기22

어댑터 패턴 (Adapter Pattern) 기존 코드를 클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴 가장 좋은 예시는 110v → 220v 로의 변환 패턴의 구성 요소 타겟이 되는 인터페이스만을 사용하는 클라이언트 Adaptee에 해당하는 구현체 클래스 클라이언트와 구현체를 연결해주는 Adapter 클래스 장점 기존 코드 변경 없이 인터페이스 구현체를 만들어 재사용할 수 있다. 기존 코드가 하던 일과 특정 인터페이스 구현체로 변환하는 작업을 각기 다른 클래스(어댑터)로 분리하여 관리할 수 있다. 단점 새로운 클래스가 생겨 복잡도가 증가할 수 있다. 기존 코드에서 해당 인터페이스를 구현하도록 수정하는 것이 좋은 선택일 수 있다. 사용된 예시 자바 java.util.Arrays#asList(T...) java.util.Collection.. 2022. 8. 15.
[데알] 주어진 시각에서 특정 숫자 찾기(Python) ■ 문제 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다. - 00시 00분 03초 - 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다. - 00시 02분 55초 - 01시 27분 45초 ■ 소스코드 # 1 n = int(input()) count = 0 for i in range(n + 1): for j in range(60): for k in range(60): if '3' in str(i) + str(j) + str(k): count += 1 print(c.. 2021. 8. 16.
다중 검색 구현 Current status : search type을 따로 지정하지 않고 필요한 검색어들만 입력 또는 선택 후 검색 problem 1. 검색 항목이 많은데 쿼리스트링을 어떻게 구성할 것인지?? [solving] get방식으로 보내면 글자수 제한이 있고 uri가 너무 길어지는 게 아닐까하는 생각이 들어서 post로 보내볼까 했는데 잘못된 생각이었다. 글자수 256자 제한은 사실이 아니었다. 크롬만 해도 "Chrome limits URLs to a maximum length of 2MB for practical reasons and..."라고 하는데 한글이라고 해도 1백만인데..? 이건 굳이 크게 고민할 내용이 아니었던 것 같다. param model을 하나 만들어 놓고 form태그에서 get방식으로 보내고.. 2021. 4. 13.
[자바 스터디] #14 - 제네릭 ▣ 목표 자바의 제네릭에 대해 학습하세요. ▣ 학습할 내용 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure ▶ 14-1 제네릭 사용법 ▷ 제네릭스란? 제네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스 컴파일 시 타입 체크를 해주는 기능이다. 객체 타입을 컴파일 시 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄일 수 있다. 타입 안정성을 높인다는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다는 뜻이다. ▷ 제네릭스의 장점 타입 안정성을 제공한다. 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다. ▷.. 2021. 3. 10.