목록분류 전체보기 (44)
디지안의 개발일지
개요 카카오페이손해보험에 입사하게 되면서 손해보험이 무엇인가에 대해 공부하려고 한다. 손해보험 기초 일상에서의 위험 손해보험은 일상에서의 위험에 대해 금전적으로 대비하는 것을 의미한다. 그러면 일상에서의 위험의 범위는 무엇일까? 대표적인 예시로는 다음과 같다. 화재 위험 교통사고 위험 질병/상해 위험 이 위험들을 보면 언제 어디서 일어날지 모르고 얼마나 큰 재산 피해를 일으킬지 모른다. 사고 예방 자체를 모두 할 수 있으면 가장 좋지만 할 수 없기 때문에 이를 경제적으로나마 대비하는 것이 손해보험에 해당한다. 보험에서의 돈 관리 보험은 어떻게 보면 계모임과 비슷한 면이 있다. 여러 사람이 돈을 모아두고 자기 순번이 되면 돈을 받는 것처럼 여러 보험 가입자들이 보험회사에 보험료를 납부하여 돈을 모아두고 이..
[책] 도메인 주도 설계 철저 입문 이 글은 도메인 주도 설계 철저 입문을 소개한다. 특징 이 책을 읽으면서 느낀 것은 DDD에 사용되는 개념을 잘 정리해놔서 이해하기 쉽다는 것과 실제 코드로 어떻게 구현할 것인지를 예제로 잘 표현했다는 것이다. 그렇다보니 그 이전에는 약간 추상적으로 이해하고 있었던 개념들을 좀 더 명확하게 이해라 수 있었던 기회가 되었던 것 같다. 하지만 그에 비해서 현재 왜 DDD가 유행하게 되었는지, DDD의 역사등에 대한 설명은 설명을 해주지만 약간은 부족한 느낌이 들긴 하였다. 책 내용 1장 도메인 주도 설계란? DDD가 무엇인지에 대한 설명을 해준다. 책을 읽는 것에 대한 방향성을 제시해준다. 이 장에서 이런 이야기도 들어갔으면 좋겠다라는 생각이 들었다. DDD는 기존에는 소..
[MySQL] 인덱스를 활용한 쿼리 튜닝 개요 JPA를 사용하여 쿼리를 사용하다보면 의도하지 않은 인덱스를 사용하거나 못하는 경우가 있다. 회사에서 이런 경험을 하고 튜닝했던 과정을 소개하려고 한다. 배경 아래는 내가 겪었던 상황과 비슷한 느낌을 살려서 가정을 해보겠다. SELECT * FROM student s WHERE s.created_at BETWEEN '2022-06-03' AND '2022-09-03' AND s.grade = '1학년' AND s.status = '재학중' ORDER BY s.created_at DESC student : 학생 테이블 created_at : 학생 정보가 생성된 날짜 컬럼 grade : 학생의 학년 정보 컬럼 1학년 2학년 3학년 4학년 status : 학생의 ..
회사에서 자바 성능 최적화를 읽으면서 스터디를 진행하고 있다. 책 제목만 보고 성능 튜닝을 엄청나게 잘할 수 있는 비법이 있지 않을까? 라는 기대감을 가졌지만 이 책에서 느낀 것은 자바가 어떤 시각을 가지고 개발하게 되었는지, 어떤 방향으로 개발이 되고 있는지 그리고 어떻게 동작하는지에 대해 초점을 맞춰서 소개를 해주고 있다. 1장에서는 성능 최적화가 어떤 것을 의미하는지에 대해 소개를 해준다. 2~3장은 자바의 JVM, 컴퓨터의 하드웨어를 소개하면서 자바를 이해하기 전에 자바가 실행되는 환경이 어떻게 발전되었고 되고 있는지에 대해서 설명을 해준다. 4~5장은 성능 테스트를 하는 방향성과 툴에 대해서 설명을 해주고 6~8장은 GC에 대한 설명을 자세하게 해준다. 이 장을 읽으면서 느낀 것은 GC를 최적화..
이 글은 이펙티브 코틀린 4장을 보면서 배운 것에 대해서 요약합니다. 코드 예제, 자세한 설명은 생략되어 있기 때문에 이펙티브 코틀린을 구입해서 보시는 것을 적극적으로 추천합니다. 추상화 설계 위키피디아에서 추상화에 대한 정의는 다음과 같다. 컴퓨터 과학에서 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다. 쉽게 말하면 추상화라는 것은 어떤 형태든지 복잡한 것을 숨기기 위해 사용되는 단순한 형식을 의미한다. 가장 쉬운 예는 인터페이스다. 추상화는 다양한 형태로 될 수 있고 객체에서 무엇을 감추고 무엇을 노출해야하는지를 결정해야 한다. 프로그래밍에서의 추상화 프로그래밍에서의 추상화는 다양한 곳에서 하고 있다. 예는 다음과 같다. 숫자는 입력될 때 숫자라는..
이 글은 이펙티브 코틀린 3장을 보면서 배운 것에 대해서 요약합니다. 코드 예제, 자세한 설명은 생략되어 있기 때문에 이펙티브 코틀린을 구입해서 보시는 것을 적극적으로 추천합니다. 재사용성 API, 프레임워크, 라이브러리등을 통해 이미 만들어진 기능을 다시 활용하는 것을 재사용성이라고 한다. 재사용성은 공통적인 부분을 뽑아서 만들었기 때문에 활용하기는 좋지만 공통적인 부분을 수정했을 때 활용하는 곳에서 모두 문제가 발생할 수 있다. 이런 것을 고려하면서 재사용성을 활용하는 것은 어려운 일이다. 이 장에서는 재사용성을 극대화하기 위해서 어떻게 연습해야하고 코드를 개선하는지에 대해서 살펴본다. knowlege를 반복하여 사용하지 말라 책의 저자가 생각하는 프로그래밍의 가장 큰 규칙은 다음과 같다. 프로젝트에..
이 글은 facebook에서 kotlin study 그룹을 이끌고 계신 그룹장님과 kotlin in action의 역자분께 질문 드린 내용을 정리하였습니다. 그리고 코틀린 인 액션의 내용을 많이 참고하였습니다. 코틀린 완벽 가이드라는 책을 읽다가 문득 이런 생각이 났다. 왜 코틀린은 Void 라는 클래스를 사용하지 않고 Unit 라는 타입을 새로 만들었을까? 아무리 생각해봐도 찾아보다 내가 아는 지식 안에서는 답이 나오지 않아서 kotlin study에 질문을 올렸다. 내가 완벽하게 이해한 것이 아니기 때문에 틀린 내용이 있을 수 있지만 코틀린이 가진 철학을 다시 살펴볼 수 있는 내용인 것 같아 정리해보려고 한다. 현대 언어에서의 프로시저 현대 언어에서는 프로시저를 가르키는 예약어가 존재하지 않지만 베이..
이 글은 [코틀린 완벽가이드](https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=289792512)을 읽고 페이스 북 스터디를 한 이후에 3장의 정리 문제에 대한 답을 정리하였습니다. ### 식이 본문인 함수란 무엇인가? 블록이 본문인 함수 대신 식이 본문인 함수를 쓰면 어떤 경우 더 좋을까? 간단하게 식으로 표현할 수 있는 경우에는 식을 사용하는 것이 가독성 측면에서 더 좋아보인다. ### 디폴트 파라미터와 함수 오버로딩 중 어느 쪽을 써야 할지 어떻게 결정할 수 있을까? 파라미터의 형이 같고 갯수가 다른 경우에는 디폴트 파라미터를 사용할 수 있지만 갯수가 같은데 다른 형을 넣어야하는 경우에는 절대 디폴트 파라미터를 사용할 수 없다. ### 이름 붙은 인자를 사..