ETC 9

디자인 패턴 (싱글톤 패턴, 팩토리 패턴)

디자인 패턴 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약', 약속 형태로 만들어 놓은 것 싱글톤 패턴 하나의 클래스에 하나의 인스턴스만 가지는 패턴 (예 : DB 연결 모듈) 전역 변수를 사용하지 않고 객체를 하나만 생성함 생성된 객체를 어디서든지 참조할 수 있음 여러번 생성해도, 실제로 생성되는 객체는 하나 최초 생성 이후에 호출된 생성자는 이미 생성된 객체를 리턴 환경설정 클래스, 커넥션 풀과 같이 공통 클래스에 사용하는 것이 일반적 싱글톤 패턴의 특징 하나의 인스턴스를 여러 모듈들이 공유하여 사용 인스턴스 생성할 때 드는 메모리 비용이 줄어듦 여러 모듈에서 사용하기 때문에 의존성이 높아짐 싱글톤 예제 코드 Javascript class..

ETC 2022.07.12

개발 프로젝트 협업 툴

개발자가 좋은 상품, 서비스를 개발하기 위해서는 개발 실력도 중요하지만 프로젝트와 관련된 도구와 시스템, 협업툴을 잘 활용하는 능력 또한 중요하다. 정말 많은 협업 툴이 존재한다. 대표적으로 무엇이 있는지, 어떤 종류가 있는지를 간략하게 소개하고자 한다. 협업 툴 통합개발환경(IDE) IDE의 생산성이 에디터와 비교할 수 없을만큼 좋다. 개발자라면 사용해야할 1순위 툴이다. 하나의 IDE를 통해 개발, 빌드, 배포 등 모든 개발을 최적화시켜주었기 때문에 통합개발환경이라 한다. 객체, 패키지, 클래스 등 상호 참조 확인이 가능하고 Git 내장 등의 편리한 기능도 포함하고 있다. 특히 하이라이팅이 되어 가독성이 좋고, 자동완성 기능, 디버깅!! 등도 상당히 편리하다. IDE는 사용할수록 다양한 기능이 있다는..

ETC 2021.09.03

클린코드 작성하기 Part 2

3. 클린코드를 만드는 규칙들 3.4 착한 함수 (Function) 함수를 만드는 원칙은 가급적 작게 만들어야 한다고 한다. if문이나 while문 안의 내용은 한줄로 처리되도록 하는 것이 이상적이고 블록 안에서 다른 함수를 호출하도록 작성한다. 함수의 크기는 20줄 이내, 한라인당 150문자를 넘지 않도록 한다. 함수 하나당 하는 일은 하나만 하도록 한다. 여기서 하나의 일은 같은 추상화 수준을 의미한다. public void doTheDomesticThings() { takeOutTheTrash(); walkTheDog(); for (Dish dish : dirtyDishStack) { sink.washDish(dish); teaTowel.dryDish(dish); } } // 리펙토링 public ..

ETC 2021.09.02

클린코드 작성하기 Part 1

1. 클린코드란 무엇일까? 클린코드를 올바르게 이해하기에 앞서 소프트웨어 대가들은 클린코드가 무엇이라고 생각할까 우아하고 효율적인 코드를 좋아한다. 논리가 간단해야 버그가 숨어들지 못한다. ··· 클린코드는 한가지를 제대로 한다. - 비야네 스트롭스트룹 (C++ 창시자) 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 짠다. - 마틴파울러 (리팩토링 저자) 클린코드는 단순하고 직접적이다. 클린코드는 잘 쓴 문장처럼 읽힌다. 클린코드는 결코 설계자의 의도를 숨기지 않는다. - 그레디 부치 (객체지향 대가) 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 클린코드라 불러도 되겠다. - 워드 커닝엄 (위키 창시자, 익스트림 프로그래밍 창시자) 대가들은 클린코드를 표현하는데 있어 공통적으로 다음을..

ETC 2021.08.31

티스토리 사이드 목차 TOC(Table of Contents) 추가하기 (오디세이 스킨, 자동 목차 생성)

TOC Table of Contents 즉, 목차이다. 내가 작성한 markdown 형식의 파일에서 헤더 태그를 목차로 엮어 보기 쉽게 제공한다. 적용 방법 티스토리의 html과 css를 편집하여 TOC 기능을 추가할 수 있다. tocbot에서 제공하는 API를 사용하고자 한다. Ref: https://tscanlin.github.io/tocbot/ 1. HTML 편집 블로그 관리 > 스킨 편집 > html 편집 으로 이동한다. 2. CDN 추가 바로 위 부분 로 끝나는 바로 위 부분에 다음의 script 코드를 추가한다. 해당 contentSelector: 부분에 자신의 글 본문이 작성되는 class명을 적용해야 한다. 전번에 Github markdown style 을 적용하느라 class 이름을 수정..

ETC 2021.03.29

티스토리 코드 블럭 지원 언어 추가, 테마 변경 (highlightjs)

최근 티스토리에 django 코드를 추가하는 중 코드 블럭의 하이라이트가 제대로 적용이 되지 않는 것을 확인하였다. Typora로 markdown을 작성해서 옮기는 편인데, Typora에서는 django의 코드블록을 인식한다. 하지만 티스토리 코드블록은 인식하지 못한다.... 물론 티스토리에서 html 코드 블럭으로 활용하면 가능하긴 하나, django의 variable, filters, tags가 제대로 하이라이팅되지 않는 점이 매우 불-편-하다. 해당 방법을 검색해서 간단하게 기록해놓고자 한다. 1. 코드 문법 강조 플러그인 티스토리에서 지원하는 Syntax Highlight 기능이다. atom 등 몇 가지 테마를 지원하고 있다. 블로그 설정 ▶️ 플러그인 ▶️ 코드 문법 강조를 활성화 하면 된다. ..

ETC 2021.03.23

(Jupyter Notebook) 폰트 바꾸기 / Naver D2coding 폰트

Jupyter Notebook을 사용하다 보면 기본 폰트의 가독성이 떨어진다는 것을 느낀다. 숫자 1, 영어 소문자 l, 영어 대문자 I, 특수문자 | (shift+\)를 구분하기 어렵다. (현재 육안으로도 차이점이 거의 느껴지지 않는다.) 그래서 input과 output의 폰트를 바꿀 수 있는지 구글링하여 찾던 중 괜찮은 방법을 찾게 되어 기록하고자 한다. 폰트 : Naver/d2codingfont 폰트는 아래 링크를 통해서 설치할 수 있다. - https://www.github.com/naver/d2codingfont naver/d2codingfont D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on..

ETC 2020.09.21

(Mark Down) README.md 마크다운 작성법

코드를 설명하고 정리하는 방법 중 하나로 "마크다운"이라는 것을 알게 되었다. 이전에는 "주석"을 사용해서 코드에 설명을 추가하곤 했다. 하지만 더욱 깔끔한 코드 정리를 위해선 마크다운 작성이 필요하다. 특히 깃허브 README.md 파일을 통해 해당 리포지토리를 설명할 때, 마크다운을 깔끔하게 작성해야 가독성이 좋다. 그렇기에 마크다운의 정의에 대해서 알아보고 작성 문법에 대해서 기록하고자 한다. 마크다운 마크다운이란 일반 텍스트 기반의 경량 마크업 언어이다. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라..

ETC 2020.09.19

Google Colab과 Google BigQuery 연동하기

프로젝트를 진행하는 과정에서 데이터 적재 필요성을 느꼈다. 다양한 SQL 툴에 적재가 가능하지만, Google Cloud로 엮인 "Colab"과 "BigQuery"를 연동하고자 한다. 방법은 매우 간편하다. 1. 라이브러리 호출 from pandas.io import gbq 2. BigQuery 데이터 세트 및 테이블 만들기 다음과 같은 구색이 맞춰져 있어야 한다. "Project_id"를 눌러 화면 오른쪽의 "데이터 세트 만들기" "데이터세트"를 만든 후, 화면 오른쪽의 "테이블 만들기" (무료 계정은 BigQuery 사용에 제한이 있다. 하지만 나와 같은 초보자들이 사용하기엔 큰 문제없으니 괜찮다.) 3. Google Cloud API 연결, DataFrame 업로드 df.to_gbq(destinat..

ETC 2020.09.17