목록분류 전체보기 (79)
영권's
Iterator 패턴이란? 내부 표현 방법을 노출하지 않고 집합체(리스트, 스택, 트리 등)의 원소를 순차적으로 접근할 수 있는 방법을 제공하는 패턴 컬렉션은 프로그래밍에서 가장 많이 사용되는 데이터 유형중 하나인데 객체를 담을 수 있는 컨테이너입니다. 어떤 요소를 리스트, 스택, 트리 등 다양한 데이터 구조를 기반으로 한 컨테이너에 담을 수 있습니다. 하지만 컬렉션이 어떻게 구조화되든 간에 다른 코드가 이러한 요소를 사용할 수 있도록 해당 요소에 접근할 수 있는 방법을 제공해야 합니다. 하나의 요소에 계속 접근하는 것이 아닌 컬렉션의 요소를 순차적으로 접근하는 방법이 있어야 합니다. 리스트 형태를 기반한 컬렉션은 이 작업이 쉽울수 있지만, 트리나 다른 형태의 컨테이너에서는 쉽지 않을 수 있습니다. 그러..
JOIN SQL 조인은 두 개 이상의 테이블들을 공통 필드를 가지고 통합 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용 JOIN의 결과로 양쪽의 필드를 모두 가진 새로운 테이블을 만들어짐 조인의 방식에 따라 다음 두 가지가 달라짐 어떤 레코드들이 선택되는지? 어떤 필드들이 채워지는지 JOIN 문법 SELECT A.*, B.* FROM raw_data.table1 A _/* INner, LEFT, RIGHT, CROSS */ JOIN raw_data.table2 B ON A.key1 = B.key1 and A.key2 = B.key2 WHERE A.ts >= '2019-01-01'; JOIN 시 고려해야 할 점 먼저 중복 레코드가 없고 Primary key의 uniqueness가 보..
Command 패턴 명령 패턴은 요청을 요청에 대한 모든 정보를 포함하는 "독립 실행형 개체"로 변환하는 동작 설계 패턴입니다. 예를 들어 클래스가 일을 할때는 자신의 클래스나 다른 클래스의 메서드를 호출합니다. 메서드를 호출한 결과는 객체의 상태에 반영이 되지만, 일의 이력은 남지 않습니다. 이때 '이 일을 실행하시오'라는 '명령'을 표현하는 클래스가 있으면 편리합니다. 실행하고 싶은 일을 '메서드를 호출'하는 동적인 처리로 표현하는 것이 아니라, 명령을 나타내는 클래스의 인스턴스로 하나의 '물건'처럼 표현할 수 있기 때문입니다. 이력을 관리하고 싶을때에는 그 인스턴스의 집합을 관리하면 됩니다. 명령의 집합을 저장해 두면 같은 명령을 재실행할 수도 있고, 또는 복수의 명령을 모아서 새로운 명령으로 재이..
MySQL 소개 1995년 스웨덴 회사였던 MySQL AB에 의해 개발된 관계형 데이터베이스 오픈소스로 시작됨 My는 개발자 중 한 사람의 딸의 이름이었음 2008년 썬 마이크로시스템이 MySQL AB를 $1B를 주고 인수 2009년 오라클이 썬을 인수하면서 MySQL이 유료화 여부가 쟁점이 됨. 2010년 MySQL의 처음 개발자였던 Monty가 MySQL과 호환이 되는 MariaDB라는 오픈소스 개발 MySQL 특징 한동안 웹개발 표준 기술 스택 중의 하나였음 LAMP : Linux, Apache, MySQL, PHP 지금도 PostgreSQL와 함께 가장 널리 쓰이는 프로덕션용 관계형 데이터베이스 용량 증대(Scaling) 방식 Scale-Up : 서버에 CPU와 Memory 추가 Scale-Out..
이 글은 한기용님의 요즘 세상에서의 배움이란 어떤 것인지에 대해서 말씀을 듣고 여러가지 생각이 들어서 10일동안의 회고 및 앞으로의 다짐과 나중에 데브코스 과정중 혹은 취업 이후에라도 스스로 나태해졌을 때 다시 한번 나의 마음을 다잡을 수 있기 위해 쓰게 되었다. 배움에는 정체기가 항상 존재한다. 가장 중요한 것은 이걸 즐기면서 해당 구간을 버틸 수 있어야한다. 내가 뭘 모르는지 생각해봐야 한다. 내가 어디서 막혔는지 구체적으로 질문할 수 있나? 잘 하는 사람 보고 기죽지 않기 한기용님이 말씀해주신 것중 첫 번째로 잘 하는 사람보고 기죽지 않기라고 하셨는데 나도 예전에 이런부분을 실제로 많이 느낀부분이 있었다. 그 경험이 무엇이냐면 나는 운동을 좋아해서 고양시 보디빌딩 대회에 나가서 입상을 한 적이 있다..
데이터베이스가 왜 필요한가? 모든 IT서비스는 데이터를 만들어내고 이는 기록되어야 함 예) 쿠팡에서 회원 가입시 회정정보 저장 필요, 구매 관련 정보 저장 필요 등등 어디에 이런 데이터를 저장할까? 프로덕션 관계형 데이터베이스 어떤 서비스의 운영에 필요한 데이터를 저장하는 곳(MySQL, PostgreSQL ,... ) 빠른 처리속도가 중요함 vs 데이터 웨어하우스 관계형 데이터베이스 데이터를 구조화된 테이블들의 집합으로 구성하여 저장하고 관리 개발자라면 잘 알아야하는 기본 기술 관계형 DB의 프로그래밍 언어가 SQL 데이터 분석을 위한 데이터베이스 데이터 웨어하우스 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 이용 BigQuery, Snowflake, MySQL ... 처리속도 ..