전체 글

전체 글

    Java Collectors.toMap()을 통한 List -> Map 변환

    Java Collectors.toMap()을 통한 List -> Map 변환Java 개발 중 엔티티나 DTO의 키를 통해 List를 Map으로 변환하는 일이 자주 생긴다.그때, Java Collectors.toMap()을 통해 아래와 같이 간단하게 Map으로 변환할 수 있다.// ProductDto의 List를 생성final List productDtoList = getProductDtoList();// ProductDto의 ID를 통해 Map을 생성 // key: ProductDto.id, value: ProductDtofinal Map productDtoMap = productDtoList.stream() .collect(Collectors.toMap( ProductDto::..

    CQS에 관한 고찰 (feat. Side Effect, 참조 투명성 그리고 순수 함수)

    CQS란? CQS는 함수를 크게 두 가지로 분류해서 구현하는 원리이다. Martin Fowler는 그의 블로그에서 CQS의 Command와 Query를 아래와 같이 정의했다. (CQS)의 개념을 최초로 소개한 사람은 Bertrand Meyor이다.) Queries: Return a result and do not change the observable state of the system (are free of side effects). Commands: Change the state of a system but do not return a value. 번역해 보면 아래와 같다. Queries: 관찰 가능한 시스템의 상태를 변경하지 않고, 그 결과를 반환하는 함수 Commands: 관찰 가능한 시스템의 상..

    [2022-12] 객체지향의 사실과 오해를 읽고

    http://www.yes24.com/Product/Goods/18249021 객체지향의 사실과 오해 - YES24『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장www.yes24.com김영한 님의 JPA 강의를 보던 중 이 책을 알게 되어 보게 된 책이다. 생각보다 책이 얇아서 가벼운 마음으로 읽기를 시작했으나, 그 내용은 가볍지 않아 읽는 데 거의 두 달가량 걸린 책이다. 책에서 설명하는 개념이 추상적인 것이 많아서 이해하는데 어려웠다.(사실 몇 페이지 읽다가 책을 덮고, 몇 페이지 다시 읽다가 책을 덮고를 무한 반복하여 오래 걸렸다)이 책을 읽으면서 인상 깊었던 내용을 내..

    [2022-09] Head First SQL을 읽고

    http://www.yes24.com/Product/Goods/2922303 Head First SQL - YES24 기본적인 데이터와 테이블 조작부터 SELECT, DELETE, UPDATE, 조인, 서브 쿼리, 보안 등 주요 문법을 순차적으로 설명한다. 또 착실하게 배운 문법을 확실하게 사용할 수 있도록 수많은 문제와 트랩을 www.yes24.com 딱 데이터베이스 입문용으로 읽기 쉬운 책이다. 데이터베이스에 대해 기초부터 다시 공부할 필요성을 느껴 가볍게 읽기 위해 골랐다. 헤드 퍼스트 부류의 책은 처음 읽었는데, 내용을 전개하는 방식이 처음엔 되게 낯설었으나 읽다 보니 술술 읽혀 좋았다. 그러나 내용이 너무 쉬워 데이터베이스 기초를 다루는 책을 한 권 더 찾아서 읽어야 할 것 같다. 완전 초심자에..

    Mac에서 여러 개의 Java 버전 관리하기 (Mac/Linux 명령어를 곁들인)

    Java 개발을 하다 보면 여러 가지 Java 버전을 바꿔가며 사용해야 하는 경우가 있습니다. 이번 포스트는 Mac 환경에서 여러 개의 Java 버전을 바꿔가며 사용하는 방법을 설명하고자 합니다. 추가로, 필자는 주로 Windows 환경에서 개발을 하다 보니 Mac(혹은 Linux) 환경에서 개발환경을 구축하는 것이 매우 낯설었습니다. 단순히 Java 버전을 바꾸는 것임에도 그 과정에서 궁금한 점들이 많이 발생하였고, 이것저것 찾아보느라 단순히 Java 구성하는데도 시간이 오래 걸렸습니다. 처음 Mac에 Java 개발환경을 구축하려는 분들이 저처럼 잡다한(?) 궁금증 때문에 시간낭비를 하지 않았으면 하는 마음에 이번 포스트를 정리하여 올립니다. 혹시라도 글에 오류가 있다면 댓글로 바로잡아주시면 감사하겠습..

    [자료구조] 선형 자료 구조 - 1 (동적 배열)

    선형 자료 구조 - 동적배열 선형 자료 구조란 연속된 자료를 저장하기 위한 자료 구조입니다.이에 해당하는 가장 기초적인 자료구조는 배열로써, 배열의 원소들은 모두 연속된 메모리 위치에 저장되며, 인덱스를 통해 원소를 참조하거나 변경하는데 걸리는 시간이 O(1)에 수행되는 두 가지 특징을 갖고 있습니다. 배열을 사용하는 데 있어 크게 두 가지 단점이 있습니다. 첫째로는 배열을 사용하기 위해선 먼저 배열의 크기를 정해야 하기 때문에 만약 배열의 크기를 넘겨서 자료를 저장하고 싶다면 더 큰 크기의 배열을 새로 할당받아 사용해야 합니다. 둘째로는 배열의 중간에 원소를 삽입하거나 삭제할 경우, 나머지 원소들의 연속적인 순서를 맞추기 위해 삽입/삭제가 이루어진 위치의 원소 이후부터의 원소들을 (삭제의 경우)앞쪽으로..

    [데이터 분석] 파이썬으로 특정 키워드를 포함하는 신문기사 웹크롤링 & 워드클라우드 시각화 분석 - 4 (단어 사용 빈도 체크하기)

    명사 분리 추출 후, 단어 사용 빈도 계산하기 이번에는 동아일보, 한겨레신문에서 '사드'관련 기사를 크롤링해 저장한 텍스트 파일을 이용해 단어 사용 빈도를 계산하는 프로그램을 만들어보겠습니다. """ 형태소 분석기 명사 추출 및 빈도수 체크 python [모듈 이름] [텍스트 파일명.txt] [결과파일명.txt] """ import sys from konlpy.tag import Twitter from collections import Counter def get_tags(text, ntags=50): spliter = Twitter() nouns = spliter.nouns(text) count = Counter(nouns) return_list = [] for n, c in count.most_com..

    [데이터분석] 파이썬으로 특정 키워드를 포함하는 신문기사 웹크롤링 & 워드클라우드 시각화 분석 - 3 (동아일보, 한겨레 '사드'관련 기사 크롤링하기)

    동아일보, 한겨레 신문에서 '사드'관련 신문기사 크롤링하기 이번 글에서는 지난 글에서 연습한 네이버 신문기사 크롤링 모듈을 응용 확장해, 동아일보와 한겨레 신문에서 특정 키워드와 관련된 신문기사의 본문 내용을 대량으로 긁어오는 크롤러를 만들어보도록 하겠습니다. """ 동아일보 특정 키워드를 포함하는, 특정 날짜 이전 기사 내용 크롤러(정확도순 검색) python [모듈 이름] [키워드] [가져올 페이지 숫자] [결과 파일명] 한 페이지에 기사 15개 """ import sys from bs4 import BeautifulSoup import urllib.request from urllib.parse import quote TARGET_URL_BEFORE_PAGE_NUM = "http://news.dong..

    [데이터분석] 파이썬으로 특정 키워드를 포함하는 신문기사 웹크롤링 & 워드클라우드 시각화 분석 - 2 (네이버 뉴스 크롤링하기)

    네이버 뉴스 크롤링하기 이번 글에서는 동아일보와 한겨레신문에서 특정 키워드를 포함하는 기사를 긁어오기 전 예제로 네이버 포털의 뉴스 기사를 긁어 오는 것을 먼저 연습하도록 하겠습니다. """네이버 뉴스 기사 웹 크롤러 모듈""" from bs4 import BeautifulSoup import urllib.request # 출력 파일 명 OUTPUT_FILE_NAME = 'output.txt' # 긁어 올 URL URL = 'http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=103&oid=055'\ '&aid=0000445667' # 크롤링 함수 def get_text(URL): source_code_from_URL = urllib.request.ur..

    [데이터분석] 파이썬으로 특정 키워드를 포함하는 신문기사 웹크롤링 & 워드클라우드 시각화 분석 - 1

    동일한 키워드를 가지는 신문 기사를 논조가 다른 신문사에서 긁어와 사용된 단어를 워드클라우드로 시각화해 분석해보는 예제입니다. 키워드는 '사드'를 사용했고, 신문사는 동아일보, 한겨레신문 두 신문사에서 각각 150개씩 기사를 긁어왔습니다. 결과는 아래와 같습니다. (왼쪽이 동아일보, 오른쪽이 한겨레신문 입니다.) 키워드가 '사드'인 만큼, 워드클라우드 모양을 미사일로 만들어봤습니다. 워드클라우드를 살펴보면 동아일보는 '중국'을 한겨레신문에서는 '미국'을 가장 많이 사용했음을 알 수 있습니다. 분석환경은 우분투 16.04에서 파이썬 3.5.2버전을 사용했습니다. 다음 글 부터 사용된 라이브러리와 코드를 차근차근 살펴보도록 하겠습니다.