욱 연구소

슬기로운 개발생활

반응형

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

[pyspark] 스파크 완벽 가이드 - 다양한 데이터 타입 다루기

표현식을 만드는 방법과 다양한 데이터 타입을 다루는 방법 DataFrame을 먼저 하나 생성하자 df = spark.read.format("csv")\ .option("header", "true")\ .option("inferSchema", "true")\ .load("/data/retail-data/by-day/2010-12-01.csv") df.printSchema() df.show(5, False) df.createOrReplaceTempView("dfTable") 스파크 데이터 아비을 변환하기 위한 lit 함수 스파크 데이터 타입으로 변환하는 방법은 반드시 알아두어야 한다. 바로 lit 함수 from pyspark.sql.functions import lit df.select(lit(5), lit..

Spark 2022.03.16 0

오브젝트:코드로 이해하는 객체지향 설계 Ch.01

Chapter 01 객체, 설계 소프트웨어 유지보수에 대해 중요도가 낮음 소프트웨어 모듈이 가져야 하는 세가지 기능(로버트 마틴) 실행 중에 제대로 동작하는 것 변경을 위해 존재하는 것 코드를 읽는 사람과 의사소통하는 것 변경에 취약한 코드 의존성(dependency): 어떤 객체가 변경될 때, 그 객체에 의존하는 객체도 변경될 수 있음 결합도(coupling)가 높은 코드 결합도가 높다: 의존성이 강하다 결합도가 낮다: 합리적인 수준으로 의존한다 객체지향 설계의 목표: 객체 사이의 결합도를 낮춰 변경이 용이한 설계는 만드는 것 변경에 유연한 코드 자율성을 높이자 캡슐화(encapsulation) 개념적이나 물리적으로 객체 내부의 세부적인 사항을 감추는 것을 캡슐화 내부로의 접근을 제한하면 -> 객체와 ..

객체지향 2022.01.22 0
반응형