본문 바로가기

728x90
반응형

전체 글

(694)
Entity vs Value Object 차이점 *개요 Entity와 Value Object는 DDD(Domain-Driven Design)에서 주로 사용하는 용어입니다. 데이터 모델링을 할 때 어떤 것을 Entity로 할지, Value Object로 할지 고민이 필요한데 차이점을 알아보겠습니다. 1. 동등성(equality) 관점 Reference equality(참조 동등성) 만약 2개의 객체가 메모리에 같은 주소를 참조하면 동등하다는 의미입니다 object object1 = new object(); object object2 = object1; bool areEqual = object.ReferenceEquals(object1, object2); // returns true Identifier equality(식별자 동등성) 식별자 동등성은 id..
서브쿼리 의존증 서브쿼리의 문제점 서브쿼리의 성능적 문제는 결과적으로 서브쿼리가 실체적인 데이터를 저장하고 있지 않다는 점에서 기인합니다. 이에 따라서 다음과 같은 문제가 발생합니다. 연산 비용 추가 실제적인 데이터를 저장하고 있지 않다는 것은 서브쿼리에 접근할 때마다 SELECT 구문을 실행해서 데이터를 만들어야 한다는 뜻입니다. 따라서 SELECT 구문 실행에 발생하는 비용이 추가됩니다. 서브쿼리의 내용이 복잡하면 복잡할수록 이러한 실행 비용은 더 높아집니다. 데이터 I/O 비용 발생 연산 결과는 어딘가에 저장하기 위해 쌓아두어야 합니다. 메모리 용량이 충분하다면 이러한 오버헤드가 적지만, 데이터양이 큰 경우에는 DBMS가 저장소에 있는 파일에 결과를 쓸 때도 있습니다. TEMP 탈락 현상의 일종인데 저장소 성능에 ..
UNION을 사용한 쓸데없이 긴 표현 UNION을 사용한 조건 분기는 SQL 초보자가 좋아하는 기술 중 하나입니다. 일반적으로 WHERE 구만 조금씩 다른 여러 개의 SELECT 구문을 합쳐서 복수의 조건에 일치하는 하나의 결과 집합을 얻고 싶을 때 사용하니다. 하지만 이런 방법은 성능적인 측면에서 굉장히 큰 단점을 가지고 있습니다. 외부적으로는 하나의 SQL 실행처럼 보이지만, 내부적으로 여러개의 SELECT 구문을 실행하는 실행 계획으로 해석됩니다. 따라서 테이블에 접근하는 횟수가 많아져서 I/O 비용이 크게 늘어납니다. 따라서 SQL에서 조건 분기는 UNION을 사용해도 좋을지 신중히 검토해야 합니다. UNION의 문제점 WHERE 구에서 조건분기하기 2001년도 이하인 경우 price_tax_ex가 price이고 2001년도 이상인 ..
도파미네이션 *개요 저는 일종의 중독 증세가 있습니다. 한가지에 빠지면 다른 것들을 보지 못하고 깊게 몰두하는 경향이 있습니다. 보통 미디어가 그러합니다. 왜 나는 중독 증세가 있을까, 그 과정에 도파민이 영향이 있다는 것을 알았고 제목에 있다시피 쾌락 과잉시대에서 균형을 찾기 위해 도파미네이션이라는 책을 읽게 되었습니다. *느낀점 쾌락과 고통의 관계를 저울로 비교하여 이해하기 쉬웠습니다. 쾌락이 클수록 저울은 항상성을 유지하기 위해 그만큼 고통을 겪어야 합니다. 또한 쾌락에 노출될수록 내성이 생겨 더 강한 쾌락을 필요로하고 그만큼 고통도 커집니다. 그동안 내가 자극적인 것에 계속 집착하는 것도 결국 쾌락을 계속 맛보려는 것이며, 나의 도파민이 계속 분비되고 있었음을 깨달았습니다. 나의 뇌에서 얼마나 많은 호르몬의 ..
THE ONE THING 내가 큰 성공을 거뒀을 때에는 단 하나의 일에만 모든 정신을 집중했다. 그러나 성공이 들쭉날쭉했을 때는 나의 집중력도 여러 군데에 퍼져 있었던 것이다. 탁월한 성과는 당신의 초점(focus)을 얼마나 좁힐 수 있느냐와 밀접하다. 성공하는 사람들은 꼭 해야 하는 일을 잘 알아보는 혜안을 가지고 있다. 그들은 잠시 시간을 내어 무엇이 중요한지 결단을 내리고는, 바로 그 일을 중심으로 하루 일과를 운영한다. 성공하는 사람들은 언제나 뚜렷한 우선순위를 가지고 일한다. 조금만 주의를 기울여 찾아보면 같은 노력이 언제나 같은 결과를 가져오지 않는다는 사실을 금세 알 수 있게 된다. 언제나 수많은 나머지보다 중요한 소수의 것이 있을 것이고, 그 소수 중에서도 가장 중요한 단 하나가 있을 것이다. 어쨋거나, 가장 중요..
생각하는 인간은 기억하지 않는다 *개요 항상 창의적인 아이디어와 뇌를 활용하는 방법에 궁금증이 많습니다. 코딩을 직업으로 가지고 있어 뇌과학에 관심을 가지고 어떻게 효율적으로 뇌를 사용하는지 관심을 가지고 있습니다. 이번 책을 통해서 흥미로운 연구 결과들을 알아보고 싶었습니다. 지식이 많은 것과 지혜를 발휘하는 일은 다르다. '생각해 내기'를 통해 기억을 끌어내 현재 상황에 비춰 편집해야 비로소 지혜가 된다. 이것이 바로 뇌의 구조를 바탕으로 한 생각 해 내기가 중요한 이유다. 나쁜 기억을 바꿀 수 있다 인간의 기억과 감정의 구조를 바탕으로 보면 과거는 변하지 않는 게 아니라 성장하는 것이다. 물론 발생한 일이나 사실은 변하지 않는다. 하지만 그 의미는 바꿀 수 있다. 그리고 과거에 만들어진 의미를 어떻게 바꿀지는 자신의 손에 달렸다...
왜 나는 사업부터 배웠는가 *개요 유튜브 세바시에서 송성근 씨의 발표를 보고 관심이 생겼습니다. 굉장히 어린 나이에 창업해 맨 땅에 헤딩으로 자라 온 삶이 인상 깊었습니다. 사업을 하면서 겪은 많은 어려움은 어떻게 이겨냈을까? 야수의 심장을 가지는 그의 경험이 무엇이 있을까? 궁금했습니다. '아무리 좋은 제품이라도 고객이 지갑을 열지 않으면 의미가 없구나' 어렵게 만든 제품이었지만 그 아이템은 바로 접었다. 내 것이 아니다 싶으면 과감히 포기할 줄 알아야 한다. 더 큰 가치를 위해 아끼던 것을 미련 없이 희생할 줄 알아야 한다. '내가 만들고 싶은 것을 하면 안 되겠구나. 고객이 지갑을 열고 싶은 것을 만들어야 한다' 실력보다 심리가 승부를 좌우하기도 한다. 졌다고 포기하면 그 자리가 끝이다. 마음가짐이 역량의 한계를 정해버리는 ..
개발자 원칙 *개요 회사 AWS 자격증을 따기 위해서 약 10만 원어치 책을 샀더니 1권의 책을 증정해 준 책이 개발자 원칙 책입니다. 각 CTO급 개발자 리더분들의 자신만의 스토리를 담아낸 책입니다. 이중에 박미정, 박종천, 이동욱(향로)님은 꾸준히 접하고 있었기에 요즘에 어떤 생각을 하시는지 기대가 되었습니다. 또한 잘 알지 못하는 다른 분들의 생각을 엿볼 수 있는 기회였습니다. 책을 읽고 가장 인상 깊었던 장동수님과 김미정 님의 글을 정리해 보겠습니다. 달리는 기차의 바퀴를 갈아 끼우기(09) - 장동수 좋은 코드는 유연성이 있습니다. 그러나 유연성이 있고 어려운 코드보다는 유연성이 없더라도 쉬운 코드가 더 좋은 코드입니다. 유연성에는 추상화가 필요합니다. 유연성을 위해서 시작한 추상화가 재사용성과 잘못 만나면..

728x90
반응형