욱 연구소

슬기로운 개발생활

반응형

NEW

more

Chapter 03 역할, 책임, 협력

객체지향 패러다임의 관점에서 핵심은 역할(role), 책임(responsibility) 협력(collaboration)이다. (2장에서 다루었던 클래스, 상속, 지연 바인딩은 구현측면에서 중요하지만 본질과는 거리가 있다.) 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다. 01 협력 영화 예매 시스템 돌아보기 영화 예매라는 기능을 완성하기 위해 협력하는 객체들의 상호작용을 표현한 그림 객체지향 원칙을 따르는 애플리케이션의 제어 흐름은 다향한 객체들 사이에 균형 있게 분배되는 것이다. 다양한 객체들이 영화 예매라는 기능을 구현하기 위해 메시지를 주고받으면서 상호 작용한다. 협력 - 객체들..

객체지향 2022.05.12 0

Mac OS에서 Java(temurin JDK) 설치하기

temurin JDK가 뭐야? Oracle이 Java 소유권을 가지면서 Java 유료화에 대한 논란이 있었다. (Java 유료화에 대한 논란은 구글링 해보면 알수 있다.) 논란과 함께 Open JDK 사용률이 증가하게 되었고 그러면서 등장된 여러 배포버전(구현체)이 존재하게 되었다. (배급사별 배포버전으로 Azul Zulu, AdoptOpenJDK, Amazon Corretto 등이 흔히들 쓰이는 것 같다.) 필자는 위 배포버전에서 AdoptOpenJDK를 선택했다. (AdoptOpenJDK는 여러 기업의 후원을 받아 개발자들이 운영하는 커뮤니티로 추후에도 유료화가 되지 않고 사용할 수 있을 거 같았다.) 그리고 해당 AdoptOpenJDK는 Eclipse에서 Adoptium 프로젝트를 진행함에 따라 D..

Java 2022.04.21 0

[pyspark] 스파크 완벽 가이드 - 파케이(parquet)파일

데이터 소스 스파크는 여섯 가지 핵심 데이터 소스와 커뮤니티에서 만든 수백 가지 외부 데이터 소스가 있다. 핵심 데이터 소스 CSV JSON 파케이 ORC JDBC/ODBC 연결 일반 텍스트 파일 외부 데이터 소스 카산드라 HBase 몽고디비 AWS Redshift (Amazon Redshift는 클라우드에서 완벽하게 관리되는 페타바이트급 데이터 웨어하우스 서비스입니다.) XML 기타 수많은 데이터소스 이중에서도 가장 먼저 알아두어야 할것은 스파크의 기본 파일 포맷인 파케이(parquet)이다. 파케이 파일 파케이란 다양한 스토리지 최적화 기술을 제공하는 오픈소스로 만들어진 컬럼 기반의 데이터 저장 방식 파케이 특징 및 장점 분석 워크로드에 최적화 저장소 공간 절약 전체파일 대신 개별 컬럼을 읽을 수 있..

Spark 2022.03.16 0

HOT

ElasticSearch Alias

Indices Alias Alias는 하나의 indices에 별칭을 주거나 복수개의 indices에 별칭을 주어 사용할 수 있다. ElasticSearch에서 문서들의 집합을 나타내는 indices인덱스는 고유의 이름을 갖게 된다. 하지만 여러 인덱스를 묶어 사용하거나 서비스의 편의성을 위해 Alias별칭를 사용하게 된다. Indices에 Alias 추가하기 URI로 추가하기 PUT /${인덱스명}/_alias/${alias명} 인덱스명의 경우 콤마(Comma)를 구분자로 하여 여러 인덱스에 alias를 추가 할 수 있으며, wildcard-expression(*) 표현식을 통해 일치하는 다수의 인덱스에 alias를 추가 할 수 있다. (모든 인덱스에 alias를 추가하고자 하는 경우에는 _all 을 사..

ElasticSearch 2021.01.09 0

게시판에서 긴제목 CSS로 자동으로 줄이기

CSS ellipsis 처리하기 대부분의 웹개발자가 거쳐야 하는 과정중에 하나는 바로 게시판을 만드는 것이다. 게시판을 만들다보면, 게시판 리스트에서 출력될 텍스트(흔히 TITLE)의 길가 짧은 것도 긴 것도 존재하기 마련이다. 그때 어떤 행은 개행이되고, 어떤행은 안돼서 모양이 이쁘지 않을 때가 있다. 이런경우 CSS를 이용하여 특정 문자열 길이 이후부터는 점(…)처리를 할 수 있다. 리스트 출력시, 출력하는 텍스트가 너무 길 경우 자동으로 점(…) 처리하도록 CSS 설정으로 해보자. .shorttitle { width: 380px; /* 가로 길이 고정*/ text-overflow: ellipsis; /* 생략 처리 ( ... )*/ white-space: nowrap; /* 줄바꿈 하지 않고 잘림*..

ETC 2021.01.06 0

Java 8기준 stream collect에서 unmodifiable객체 만들기

Java11이 LTS로 선정된지 꽤 시간이 지나 현재는 Java 15까지 릴리즈 되었다 (심지 Java16, 17이 개발이 진행중인듯 하다) 개발을 하면서 Java8 과 Java11을 섞어쓰는 시점이 요즘인거 같다. (Java11 쓰는게 빠른건 아닌거 같고 늦은건가 싶기도 하고..) 개발을 하면서 불변(unmodifiable)한 객체를 필요할 때 생성하게 되는데 Java11에서는 편하게 작성했던 소스가 Java8로 하려니 돌아가지 않아 확인을 하게 되었다. Stream 에서 종결 메서드인 collect()시에 unmodifiable한 객체를 만드는 방법에 대해 Java8과 Java11의 차이점을 알아보자 // Java11 class BlogTest { @Test void test() { List test..

Java 2021.01.06 0
반응형