나누고 싶은 개발 이야기

Data Engineer로서 기록하고 공유하고 싶은 기술들. 책과 함께 이야기합니다.

전체 글 103

스프링 팁: *Utils 클래스 활용

spring 블로그에 게시되어 있는 spring *Utils 클래스들에 대한 활용 팁이다. 블로그에 youtube 영상과 함께 자세히 설명하고 있다. Spring Tips: The Spring Framework *Utils Classes 크게 보면 아래 Utils들의 설명을 하고 있다.BeanUtils : JavaBean의 util 클래스로 bean의 초기화, property의 검사, property 복사 등의 함수 포함.ClassUtils : Class의 name, method 확인 및 reflection util을 포함. ReflectionUtils와 기능의 차이 비교가 필요하다.SystemPropertyUtils : system property의 값을 손쉽게 가지고 올 수 있는 utilFileCop..

Framework/spring 2017.04.03

강자의 조건

강자의 조건은 무엇일까?EBS 다큐먼터리로 방송되었던 내용인데 역사의 강자로 우뚝선 나라들의 특징을 조명해 봄으로서 강자로서 살아가는 방식을 분석한 책이다. 강자의 조건국내도서저자 : 이주희출판 : MID엠아이디 2014.11.06상세보기 로마, 몽골, 대영제국, 네덜란드, 미국 이렇게 5개 국가에 대한 특징을 살펴보는 순으로 이어진다.책을 읽으면서 각 나라들의 인상 깊었던 특징들만 적어보도록 한다. 1. 로마 - 로마의 시민권 요즘 시대에도 잘 사는 나라에서 살고자 할 때, 시민권을 따기 위해 노력한다.시민권은 무엇인가? 국가에서 주어지는 권리이다.권리는 아무 사람들에게나 주어지지 않는다. 그런데 로마의 인상 깊었던 특징은 정복당한 나라들의 사람에게도 시민권을 나누어 주었다는데 있다. 심지어 정복당한 ..

2017.03.30

Go

표지에서는 유쾌함과 익살스러움이 보여지지만, 책을 읽고 나면 이방인 취급을 받으며 치열하게 살아가는 재일 청소년의 힘겨움이 느껴진다. 그래서 즐겁게 읽기 시작하다가 많은 것들을 생각하게 하는 책이다. GO - 2000년 제123회 나오키상 수상작국내도서저자 : 가네시로 가즈키(Kaneshiro Kazuki) / 김난주역출판 : 북폴리오 2006.02.10상세보기 책을 처음 접하게 된 계기는 네이버 지식인의 서재에 가수 이적이 소개한 내용을 보고 읽게 되었다. (링크 : 지식인의 서재 이적) 그리고 개인적으로 우리나라 소설보다 일본소설을 읽으면서 재밌다고 느낀 적이 많아서 가볍게 읽어보자는 생각이었다. 인물들의 대략적인 관계도는 다음과 같다. 재일교포로 살아간다는 것.태어나고 자란 곳에서 이반인 취급을 받..

2017.03.28

rabbitmq 동접자 수 확인하기

진행하고 있는 프로젝트에서 이벤트가 발생할 때 마다 사용자들에게 메세지를 받게 해야하는 요구사항이 있었다.해당 요구사항을 처리하기 위해서 rabbitmq를 사용하게 되었다.클라이언트는 메세지를 받기 위해 계속 rabbitmq에 연결을 하고 있던 상태였는데, 비즈니스 관점에서 그럼 얼마나 많은 사람이 접근을 하고 있을지가 궁금해졌다. 같은 말로 서비스를 실제로 사용하고 있는 동접수치를 rabbitmq의 연결 수와 동일하게 판단할 수 있는 상황이었다. 요구사항에 맞춰 rabbitmq에 연결 카운트를 얻을 수 있는 기능을 살펴보니 rabbitmq-management plugin으로 처리할 수 있었다.해당 plugin은 연결 상태에 대한 정보를 dashboard 형태로 표현하는 웹 서비스와 함께 일부 api들을..

Framework 2017.02.18

이름 재사용과 관련된 기술

자바 퍼즐러를 읽는 중에 이름 재사용과 관련되어 개념을 명확히 하지 않으면 버그가 나올 가능성이 많아 정리를 해보았다.(물론 책에 나온 내용을 정리하는 수준이다) 오버라이딩자식 클래스에 있는 인스턴스 메서드가 부모 클래스의 접근 가능한 메서드와 동일한 이름과 매개변수를 가지면 오버라이딩 합니다.오버라이딩되면 동적 디스패치가 가능해집니다. 여기서 동적 디스패치란 무엇인가? 동적 디스패치는 동적바인딩과 동일한 개념이다.동적 바인딩 설명 가상머신은 실행 중에 인스턴스의 자료형에 기반해서 호출할 메서드를 결정한다.class Base { public void f() { }} class Derived extends Base { public void f() { }} 하이딩부모 클래스의 필드, 정적 메서드, 클래스, ..

Language/Java 2016.10.13

[Euler] Highly divisible triangular number

python 공부를 할 때, 실제로 코딩을 하면서 공부하는 방법이 익숙해 지는데 빨라서 간단한 알고리즘을 풀기로 했다.그래서 활용한 방법이 http://projecteuler.net에서 수학 관련 알고리즘 문제를 푸는 것이었다. 첫번째로 풀 문제는Problem 12. Highly divisible triangular number 간단히 설명하면 아래와 같이 연속적인 숫자들의 합으로 구해진 triangle number 중에서 처음으로 소수의 개수가 500개가 넘는 수를 구하는 문제이다. 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28 (연속적인 숫자의 합)1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... (triangle number) triangle number에 대한 소수..

Algorithm 2016.03.25

[spring security] Controller에서 Principal 가져오기

일단 Principal의 개념을 알아보자. Spring Security의 공식 문서를 보면 What is Spring Security Principal은 시스템을 사용하려고 하는 사용자, 디바이스 혹은 시스템을 통칭한다. Request에 대한 로직을 처리하는 과정에서 인증된 사용자에 대한 정보는 계속 필요할 것이다. 가장 간단한 방법으로 Controller의 파라미터로 Principal을 설정해 받을 수 있다.public ModelAndView someRequestHandler(Principal principal) { User activeUser = (User) ((Authentication) principal).getPrincipal(); ... } 하지만, 위와 같이 처리를 하면 .getPrincip..

Framework/spring 2016.03.24

마션

최근 접한 책 중에서 가장 빨리 읽기를 마친 책이다.재밌게 읽기 위한 소설을 찾던 중에 회사 동료의 추천으로 읽기 시작했다. 마션저자앤디 위어 지음출판사알에이치코리아 | 2015-07-31 출간카테고리소설책소개★ 아마존_뉴욕타임스 베스트셀러 ★ ★ 전 세계 29개국 출간,...글쓴이 평점 줄거리는 간단하다.화성 탐사를 갔는데 불의의 사고로 인해서 마크 와트니 혼자 화성에 남게 되었다.살아남았지만 구조를 받을 때까지 식량이 모자른 상황이었고, 지구와 통신도 전혀 안되는 상황이었다.그런데 주인공은 어떻게 살아 남았을까? 이 책을 읽으면서 멈추지 못하는 이유는.상황을 극복해 나가는 과학적 타당성(물론 정확히 맞는지는 모른다)과 어려운 상황에서도 긍정적으로 극복해 나가는 주인공의 유쾌함 때문이다. 어려움이 생길..

2015.10.03

2015 설날 읽을 책

책을 e-book으로 많이 보는 편인데, 설날에 집에서 책을 볼 수 있는 시간이 많을 것 같아서 종이책으로 몇권 구입했다.구입한 책은 '걸리버 여행기', '기적이 일어나기 2초전', '허삼관 매혈기' 3권이다.선택한 책들은 일단 편한히 읽을 수 있는 소설책으로 선정했다. 설날인데 머리 아픈 책들은 왠지 읽기 싫고 가볍게 읽기 위함이다. '걸리버 여행기'와 '허삼관 매혈기'는 네이버 지식인의 서재라는 곳에서 가수 이적이 선정한 책들 중 2권이다.허삼관 매혈기는 최근에 영화로도 제작이 되어서 (영화를 볼지는 모르겠지만...) 그 원작을 먼저 접하고 싶어서 구매했다.소설이 원작으로 만들어진 영화들 대부분이 원작의 느낌이 좋았던 적이 많아서 이번에도 영화화 된 소설을 먼저 읽고 싶어서다. '기적이 일어나기 2초..

2015.02.19

에디톨로지

올해 한달에 2권씩 책 읽기가 목표인데, 읽기만 하고 정리하지 않으니 남는 것이 없는 것 같아 정리하기로 했다. 올해 첫 책은 베스트셀러에 올라 있는 에디톨로지다. 에디톨로지저자김정운 지음출판사21세기북스 | 2014-10-24 출간카테고리인문책소개유쾌한 인문학으로 돌아온 김정운의 신작!에디톨로지Editolog... 이 책은 새해 첫 KBS '오늘 미래를 만나다'라는 프로그램에서 '편집'에 대한 새로운 시선으로 접근한 강의를 듣고서 흥미를 느껴 구입해서 읽게 되었다. 책을 읽어 보니 강의 내용이 모두 책에 수록되어 있었다. 1. 지식과 문화의 에디톨로지 2. 관점과 장소의 에디톨로지 3. 마음과 심리학의 에디롤로지 일상의 모든 부분이 편집으로 진행되며, 사람의 생각의 편집에 따라 사고하는 방식, 생활하는..

2015.02.13

[분할정복] 카라츠바 알고리즘

두 n자리 수의 곱셉은 n2 의 연산이 필요하다. 1의 자리부터 n자리까지 연속에서 곱을해서 더했던 방법이 우리들에게 익숙하다. 왼쪽과 같이 2자리수의 곱을 계산했을 때 22의 곱의 합으로 이루어짐을 볼수 있다. 카라츠바 알고리즘은 두 수 x,y의 곱을 x,y의 절반인 수들의 곱 3번과 덧셈으로 계산하는 방식이다.큰 문제를 반으로 분할해 가며 해결하는 방법으로 분할정복의 대표 알고리즘이다. 아래는 wikipedia에 나온 알고리즘 단계의 내용이다.http://en.wikipedia.org/wiki/Karatsuba_algorithm [카라츠바 알고리즘 정리]x와 y를 B진법의 n자리수라고 했을 때, n보다 작은 양수 m에 대해 x,y를 쪼갤 수 있다. x = x1Bm + x0y = y1Bm + y0(단,..

Algorithm 2014.06.21

분할정복

분할정복 2개 이상의 부분 문제로 나눈 뒤 각 문제에 대한 답을 재귀 호출을 이용해 계산하고, 각 부분 문제의 답으로부터 전체 문제의 답을 계산해 낸다. 즉, 해를 구할 수 있을 만큼 충분히 나누어서 해결하는 방법이다. 하향식 접근법 (top-down) [세가지 구성요소] 문제를 더 작은 문제로 분할하는 과정(divide) 각 문제에 대해 구한 답을 원래 문제에 대한 답으로 병합하는 과정(merge) 더 이상 답을 분할하지 않고 곧장 풀 수 있는 매우 작은 문제(base case) 분할의 의미로 전체 n을 반으로 나누어 생각할 수 있다(n/2). 병합을 의미하는 n번의 작업(b는 임의 상수). [분할정복의 대표 알고리즘] 병합정렬, 퀵 정렬 [분할정복의 예] 아래 그림은 병합정렬의 진행 과정을 도식화 한..

Algorithm 2014.04.04
반응형