본문 바로가기

반응형

분류 전체보기

(696)
조직 현장 입출고 모바일 바코드리더기 연동 개발하기 문제점 조직에서 이동하는 수많은 물류를 수기로 처리하다 보니, 실제 사용하는 제품과 전산 상의 제품 바코드가 안 맞는 경우들이 있었고 엔지니어 재고 분배 시에도 분실하는 경우가 종종 있었습니다.(제품 1개당 약 수백만 원 제품이기 때문에 부품과 달리 엄청난 손해입니다.) 어긋난 재고 전산을 조회하거나 기록할 수 있는 기능을 만들어달라는 여러 가지 개발 요청을 받으면서, 근본적인 문제를 해결하지 않고 계속 부수적인 후처리만 하는 것이 아쉽게 느껴졌습니다. 따라서, 저는 개발자임에도 불구하고 바코드 사용을 강력하게 추진했습니다.(?) 따라서, 현장에서 보다 일을 신속하고 정확하게 처리할 수 있도록 개선했습니다. 바코드리더기 개발 방법 선택하기 바코드를 사용하여 현재 사용하는 시스템의 물류를 개선하는 일은 다..
Value Object 패턴 개요 value object를 왜 사용하는지, spring boot에서 어떻게 사용할 수 있는지 코드를 중점으로 알아보겠습니다. 문제 상황 buy() 메서드를 사용해 물건을 판매하는 어플리케이션이 있다고 가정합니다. 물건 가격과 나의 잔고 금액 2가지를 매개변수로 가집니다. public class Customer { private void buy(Money wallet, Money cost) { // nothing to do } } 현재 Money와 Currency 클래스를 추가해야 합니다. Money 클래스는 현재 가지고 있는 금액을 가집니다 Currency는 USD, JPN, EURO와 같이 국가에서 사용되는 화폐단위를 가집니다. public class Money implements Comparabl..
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)을 얼마나 좁힐 수 있느냐와 밀접하다. 성공하는 사람들은 꼭 해야 하는 일을 잘 알아보는 혜안을 가지고 있다. 그들은 잠시 시간을 내어 무엇이 중요한지 결단을 내리고는, 바로 그 일을 중심으로 하루 일과를 운영한다. 성공하는 사람들은 언제나 뚜렷한 우선순위를 가지고 일한다. 조금만 주의를 기울여 찾아보면 같은 노력이 언제나 같은 결과를 가져오지 않는다는 사실을 금세 알 수 있게 된다. 언제나 수많은 나머지보다 중요한 소수의 것이 있을 것이고, 그 소수 중에서도 가장 중요한 단 하나가 있을 것이다. 어쨋거나, 가장 중요..
생각하는 인간은 기억하지 않는다 *개요 항상 창의적인 아이디어와 뇌를 활용하는 방법에 궁금증이 많습니다. 코딩을 직업으로 가지고 있어 뇌과학에 관심을 가지고 어떻게 효율적으로 뇌를 사용하는지 관심을 가지고 있습니다. 이번 책을 통해서 흥미로운 연구 결과들을 알아보고 싶었습니다. 지식이 많은 것과 지혜를 발휘하는 일은 다르다. '생각해 내기'를 통해 기억을 끌어내 현재 상황에 비춰 편집해야 비로소 지혜가 된다. 이것이 바로 뇌의 구조를 바탕으로 한 생각 해 내기가 중요한 이유다. 나쁜 기억을 바꿀 수 있다 인간의 기억과 감정의 구조를 바탕으로 보면 과거는 변하지 않는 게 아니라 성장하는 것이다. 물론 발생한 일이나 사실은 변하지 않는다. 하지만 그 의미는 바꿀 수 있다. 그리고 과거에 만들어진 의미를 어떻게 바꿀지는 자신의 손에 달렸다...

반응형