본문 바로가기

Book & Lesson61

[클린코드] 2장. 의미 있는 이름 노마드코더 '클린코드' 북클럽 (노개북) 앞으로 3주간 완독하는게 목표! 과연..! 이 책을 읽고 코드 리팩토링하는 스킬을 UP하면서 나만의 코드 스타일이 생겼으면 좋겠다. 2장에서는 이름을 잘 짓는 간단한 규칙을 소개한다. 개인적으로 네이밍에도 골치아파하는 나에게 큰 도움이 될것 같은 부분이다. 책에서 기억하고 싶은 내용을 써보세요. 의도를 분명하게 밝혀라 의도가 분명한 이름이 정말 중요하다! 주석이 필요하다면 의도를 분명히 드러내지 못했다는 것이다. 변수 혹은 함수나 클래스의 존재이유는? 수행기능은? 사용방법은? 이에 대한 답을 모두 할 수 있는게 이름! 그릇된 정보를 피하라 나름대로 널리 쓰이는 의미가 있는 단어를 함부로 축약하거나 다른의미로 사용해선 안된다. 유사한 개념은 유사한표기법을 사용한다... 2022. 3. 2.
[클린코드] 1장. 깨끗한코드 노마드코더 '클린코드' 북클럽 앞으로 3주간 완독하는게 목표! 과연..! 이 책을 읽고 코드 리팩토링하는 스킬을 UP하면서 나만의 코드 스타일이 생겼으면 좋겠다. 책에서 기억하고 싶은 내용을 써보세요. 코드는 요구사항을 정확히 표현하는 수단 기계가 실행할 정도로 상셍하게 요구사항을 명시하는 작업이 프로그래밍, 이렇게 명시한 결과가 코드다. 회사가 망한 원인은 바로 나쁜 코드 탓이었다. 나쁜 코드를 헤쳐나가는건 엉킨 덩굴과 숨겨진 함정으로 가득한 늪지대를 힘겹게 해쳐나가는것. 급해서?서두르느라? 제대로 짤 시간이 없다고 생각해서 쓰레기 코드를 짠다. 하지만 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 안돌아가는 것보다 돌아가는 쓰레기가 좋다고 안도한다. 다시 돌아와 나중에 정리하겠다고 다짐하지만 .. 2022. 3. 2.
노마드 개발자 북클럽 신청! 노개북 클린코드(Clean Code) 개발자 필독서로도 유명해서 원래 항상 읽어봐야지~읽어봐야지 했던 책이다. 내일 3월부터 새출발한다는 마음으로 도서관에서 갑자기 책을 빌려왔다. 두둥! 그런데 생각보다 책 두께가 상당했고, 나는 뒷심이 부족하기에 벌써부터 끝까지 못읽을것 같은 느낌이 들었다. 그래서 찾아보다가 마침 유명한 노마드 코더님이 운영하시는 커뮤니티를 발견했고, 거기에서 지금 한창 클린코드 책으로 북클럽을 운영하고 있는걸 발견했다!! 노마드 코더 챌린지 그래서 바로 냅다 챌린지 신청해버림.. >> https://nomadcoders.co/challenges 노개북 클린코드 클린보드 북클럽 안내 보기 >> https://nomadcoders.co/clean-code 언제부터 시작일을 보는지는 모르겠지만, 3주완성이라고 스케쥴이 짜져있.. 2022. 2. 28.
[데엔스터디5] Airflow Deep Dive 데이터엔지니어링 스타터 키트 -5주차 후기 아래의 내용은 직접 유료강의를 수강하고, 배운점 및 추가로 공부한 내용을 기록한 내용입니다. 프로그래머스에서 진행하는 실리콘밸리에서 날아온 데이터엔지니어링 스타터키트 강의추전! 트랜잭션 상태를 변화시키는 하나의 작업단위 - AutoCommit 이 True인 경우 기본적으로 작성한 SQL 한줄한줄이 다 자동으로 커밋이 되서 DB에 바로바로 적용이 된다. 명시적으로 트랜잭션을 구현하기 위해선 BEGIN과 END구문 사이에 몇가지 쿼리를 넣는다. 그래서 그 몇가지 쿼리들을 하나의 작업단위(하나의 트랜잭션)으로 취급해서 다같이 성공해야 커밋이 되서 DB에 적용. - AutoCommit이 False인 경우 한줄한줄이 다 트랜잭션이 되서 BEGIN~END구문이 필요하지 않.. 2021. 9. 8.
[데엔스터디4] ETL/Airflow소개 데이터엔지니어링 스타터 키트 -4주차 후기 아래의 내용은 직접 유료강의를 수강하고, 배운점 및 추가로 공부한 내용을 기록한 내용입니다. 프로그래머스에서 진행하는 실리콘밸리에서 날아온 데이터엔지니어링 스타터키트 강의추전! ETL이란? ETL : Extract, Transform, Load 하나의 데이터 소스에서 어떤 데이터 하나를 읽어다가, (Extract) 원하는 포맷으로 바꿔서, (Transform) 그걸 DW에 테이블로 로딩하는 작업 (load) ELT : Extract, Load, Transform 하나의 데이터 소스에서 어떤 데이터 하나를 읽어다가, (Extract) Transform작업 없이 다 '데이터레이크'에 복사하고, (Load) 데이터레이크 중에서 의미가 있고 최근 데이터만 원하는 포맷으.. 2021. 9. 3.
[데엔스터디3] 데이터엔지니어를 위한 SQL 실습 데이터엔지니어링 스타터 키트 -3주차 후기 아래의 내용은 직접 유료강의를 수강하고, 배운점 및 추가로 공부한 내용을 기록한 내용입니다. 프로그래머스에서 진행하는 실리콘밸리에서 날아온 데이터엔지니어링 스타터키트 강의추전! 0. SQL실습 전 기억해야할 점 현업에선 깨끗한 데이터란 존재하지 않는다 -> 데이터의 품질을 의심하고 체크하는 버릇이 필요하다! 중복되는 레코드 체크 최근 데이터의 존재여부 체크 PK가 유니크한지 체크 NULL값 있는지 체크 아예 unit 테스트 형태로 만들어서 매번 체크할 수 있도록 data discovery 문제해결 점점 테이블이 많아지게 되서 데이터를 수집하고 통합하는 그 과정에 문제가 발생 어떤 테이블이 중요하고, 메타데이터가 어떤것이고, 어떤 테이블이 무슨역할을 하는지 등 관.. 2021. 8. 25.
[Spark강의4-2] Spark 데이터처리 실습2 -DF Transformation 아래의 글은 T아카데미 아파치 스파크 입문 강의를 듣고 정리한 내용입니다 4강. Spark 데이터처리 실습2 tip : 데이터프레임 명령어가 맞는지 확인하는 방법 -> 쿼리로 짜보고 그 실행결과가 같은지 확인 1.데이터 다운로드 및 확인(shell) 2. spark로 데이터로드 및 스키마확인 (base RDD) 3. 필요한 데이터만 데이터프레임으로 로딩(Transformation) 4. row 추출 및 생성 5. 컬럼 select df.select("컬럼명", "컬럼명).show(N) 6. 컬럼 drop df.drop(컬럼명).columns -> 근데 왜 컬럼이 살아있지? 7. 컬럼 filter 또는 where df. filter( col(컬럼명) 조건) df.where( 조건) 8. join df , .. 2021. 8. 23.
[Spark강의4-1] Spark 데이터처리 실습2-DAG개념 아래의 글은 T아카데미 아파치 스파크 입문 강의를 듣고 정리한 내용입니다 4강. Spark 데이터처리 실습2 DAG 단방향을 가지는 Acyclic 그래프 각각의 데이터프레임들이 그래프의 노드, 방향은 Transformation이 된다. 그래서 C에서 문제가 생겼으면 B부터 다시 실행이 되도록 Spark에 Action이 날라가면, Spark 대시보드에 job 생성 N개의 Stage로 나뉘고, 각각의 Stage에서 N개의 Task로 구성. operation 종류에 따라 같은 Transformation단계면 같은 Stage로 구분된다. 사용가능한 core갯수에 따라 task로 구분된다. 예를 들어 파일을 읽고, 토크나이징 하는 Transformation단계로 stage1, 새로운 파일을 읽어서 stage2로,.. 2021. 8. 23.
[Spark강의3-2] Spark 데이터처리 실습1 - RDD개념 아래의 글은 T아카데미 아파치 스파크 입문 강의를 듣고 정리한 내용입니다 3강. Spark 데이터처리 실습1 RDD Spark의 기본 데이터구조 계속해서 가공을 하면 계속 변환되면서 새로운 RDD가 생긴다(Transformation) DataFrame과 성능도 동일하다 예를 들어 log mining을 한다면 처음에 초기에 받아온 로그데이터들은 base RDD가 되고, 에러만 뽑아오는 Transform단계를 거치면 새로운 error RDD가 생성. 이제 그 에러메세지 중에서 원하는 Action을 수행하는 단계애선 필터에 대해서 count하고 싶다던지, spark dirver로 이벤트를 보낸다. RDD V DataFrame RDD : Spark의 low-level interface, 직접 데이터를 핸들링하는.. 2021. 8. 22.
[Spark강의3-1] Spark 데이터처리 실습1 아래의 글은 T아카데미 아파치 스파크 입문 강의를 듣고 정리한 내용입니다 3강. Spark 데이터처리 실습1 실습환경 : docker로 zeppline실행해서 SparkSession연결 사용언어 : Scala (기본 Spark 연습) 1.필요한 데이터 다운로드 및 데이터프레임 변환 2. 데이터 조작 (실행계획 확인/ 정렬/임시view생성) 2-1. SQL : GROUP BY 결과 %sql로 SQL내용만 따로 확인 할 수 있음 2-2. SQL : SUM, order 결과 %sql로 SQL내용만 따로 확인 할 수 있음 (sql결과를 간단한 그래프로도 제공) 참고로, sql과 같은 결과를 dataframe으로 구현할 수도 있다. 3. 데이터프레임 생성하기 4.SQL이 아니라 Scala를 통해 집계구하기 2021. 8. 22.