본문 바로가기

분류 전체보기

위르헌 아펄로 -Management 3.0 9. 제약 조건을 정렬하는 방법 여러분의 목표와 팀의 목표를 절충하자 팀과 목표가 부딪히면 그걸 해결해야 할 것이다. 팀의 결정을 무시하면 매우 갚기 어려운 동기 부채가 생길 것이고, 그건 상황을 더욱 어렵게 만들 뿐이다. 권한 경계 목록을 만들자 권한 경계 목록을 만들면 사람들이 전기 철조망에 뛰어들지 않아도 되기 때문에 사람들에게 동기를 부여하고 생산성을 유지할 수 있다. 10. 규칙을 만드는 기술 애자일의 맹점 애자일 선언의 애자일은 팀이 훌륭할 때만 훌륭하다. 애자일 선언이 역량 문제를 해결해주지는 않는다. 프로젝트의 치사율을 낮추고 싶은 애자일 관리자라면 아래의 기본 원칙을 응용할 수 있다. 문화 : 사회 시스템의 역량을 높이기 위해 어떤 방법을 적용하든, 결국 모든 것은 사람이 진심으로 관심이..
(PostgreSQL) 쿼리 실행계획 비쥬얼라이징하기 1. PgAdmin에서 실행계획 비쥬얼라이징하기PgAdmin에서 질의 쿼리 앞에 EXPLAIN (ANALYZE, COSTS, VERBOSE, BUFFERS, FORMAT JSON) 쿼리를 추가해주면, 손쉽게 쿼리 실행계획을 비쥬얼라이징해서 볼 수 있다. PgAdmin QueryTool > Explain Tab에서 결과를 확인할 수 있다. Index, Join 방식 등도 비쥬얼라이징해주기 때문에, 복잡한 실행결과를 한눈에 파악하는 데에 도움이 된다. 이런식으로! (참고 - READING PGADMIN GRAPHICAL EXPLAIN PLANS) 2. tatiyants > Pev에서 실행계획 비쥬얼라이징하기tatiyants의 PEV를 사용하면, 온라인에서 실행결과를 비쥬얼라이징할 수 있다.PEV 링크 EXP..
(saleor) 가독성 좋은 함수명 만들 때 유용한 팁 모음집 이 글은 Django E-commerce OpenSource인 Saleor에서 얻은 팁들을 정리한 문서입니다. 1. 값을 증분할 때는 increase / decrease 동사를 prefix으로 붙인다.def increase_voucher_usage(voucher): voucher.used = F('used') + 1 voucher.save(update_fields=['used']) def decrease_voucher_usage(voucher): voucher.used = F('used') - 1 voucher.save(update_fields=['used']) 2. 상태를 확인할 때에는 is 동사를 prefix으로 붙인다. def is_category_on_sale(category, sale): """..
2019년 2월 첫째주 로그 금주의 Pocket#saleor커머스 시스템에 필요한 전반적인 기술을 학습하기에 유용해보이는 장고 오픈소스를 발견했다. 💖 #PATTERNS FOR BUSINESS-TO-CONSUMER ECOMMERCE APPLICATIONS커머스 도메인 다이어그램 자료를 찾았는데, 맘에 든다. 👀 금주의 TOOL #dbdiagram.io ERD 다이어그램 툴을 발견했다. #teamsql 무료 DB GUI툴이다. postgresql, redis, google big query도 지원한다.데이터 시각화도 지원하고, 슬랙 공유, 쿼리문 공유도 가능하다. redash 앱버전 같다.
(Django) 비즈니스 로직을 어디에 모아둘까 비즈니스 로직을 어따모아둘까.. 🤔 루비온레일즈, 장고를 쓸 때마다, 도메인 관리에 대한 프레임이 정해져있지 않은 듯하여 매번 고민이다. But. Djagno엔 QuerySet, Form Object 개념이 기본으로 포함되어 있어서, 좋다. 레일즈에서는 레이어를 만들거나, 라이브러리를 사용해야한다. ( 참고 - 레일즈에 Service/Decorator Layer 적용하기 🐜🐜🐜) 이 고민을 해소하기 위해, 이번 포스팅에서는 Where to Put Business Logic in Django에서 본 글을 요약해보려고 한다. Django에서 비즈니스 로직을 넣을 만한데는 크게 4군데다. 1. model 2. view/form 3. service 4. queryset / manager Model Django에..
2019년 1월 4째주 로그 #Pocket - Django A. Where to Put Business Logic in Django이거슨 길어져서 요기에 정리해두었다. B. Python @property 루비에서는 get_XXX 메서드를 사용하지 않았다. 파이썬에서는 Property와 get_XXX메서드를 구분해서 써서, 어떤 경우에 Property를 써야하는지 궁금해졌다. 요 글을 후르르륵 읽고, 대충 내가 정한 기준은 다음과 같다. property를 사용할 때 -> 속성을 외부에서 직접 변경하지 못하게 할 때 or 외부에서 직접 값을 변경할 때 추가적으로 데이터 가공을 해줘야할 때 사용get 메서드를 사용할때 -> 호출할 때마다 데이터를 가져오는 비용이 들 때 사용 ( 외부 API 통신 or DB 조회 ) #Pocket - Po..
(PostgreSQL) 테이블에 제약사항이 있는 컬럼 추가하기 Postgresql 테이블에 컬럼을 추가하는 작업은 신중하게 처리해야한다. 사이즈가 큰 테이블에 기본값이 있거나, 제약사항이 있는 컬럼을 추가하는 작업은 리스크가 있기 때문이다. 이번 포스트에서는 제약사항이 있는 컬럼을 추가할 때 발생하는 리스크와 이를 분산시키는 방법에 대해서 정리해보고자 한다. PostrgreSQL 컬럼 추가 동작 방식 ALTER ADD COLUMN 명령문을 실행하면, PostgreSQL은 아래와 같은 순서로 테이블을 변경한다. 1. 컬럼 추가하기 2. 신규 컬럼에 default 값 추가하기 ( Option ) 3. 컬럼 제약사항 ( constraint ) 확인하기 PostgreSQL은 3번째 단계에서, 값의 유효성을 확인하기 위해 테이블을 풀스캔한다. 이 때, 테이블 사이즈가 크다면..
(PostgreSQL) JSON VS JSONB RDB에 JSON 포맷을 저장할 때, 평소처럼 텍스트 포맷으로 저장할지, JSON Format을 적용할지 고민하게 된다. 뫼비우스의 띠 같은 삶을 사는 나는 딱 1년전에도 비슷한 고민을 했었다.( 작년에 조사한 글 : 👉 [MariaDB]RDB 속에서 NOSQL 사용하기 👈)작년에는 리서치만 해보고 말았는데, 올해에는 PostgreSQL에 JSON 타입을 실제로 적용해봐야겠다. 🐜🐜🐜고럼 이만 포스팅 시작~ ㅎ.ㅎ PostgreSQL의 JSON 타입은 크게 2가지이다. JSON, JSONB 두가지 유형이다. JSON Type은 9.4 버전부터 추가되었다. 공통점둘다 JSON 포맷 유효성체크를 한다. 차이점데이터 저장 방식JSON은 들어온 그대로 값을 저장한다. 그런데 JSONB는 그대로 저장하지 않는다...