본문 바로가기
관리자

분류 전체보기

(963)
[비공개] Weekly Report - 23/08/28~23/09/03, 1163일차 보호되어 있는 글입니다.
[TIL] prviate, public 메서드 테스트 기준, Exception 테스트 기준 정석인 내용은 아니며, 회사 시니어분들께 배운 내용 기록 1. private, public 테스트 기준 public은 테스트, private은 테스트하지 않는 것을 기본으로 한다. private 일지라도 매우 중요한 로직이고, 테스트가 필요할 것 같다면 public method로 wrapping하여 테스트한다. 테스트 커버리지는 60~80 사이로 한다. 이 사이에서 적절한 커버리지를 찾되, 각 팀원에게 커버리지 정도를 강요하긴 어렵다. 2. Exception 테스트 기준 exception의 결과가 예상 가능하고 정상적인 상황일 때는 테스트한다. 예외적인 케이스에 대해서까지 테스트하는 것은 보통의 프레임워크가 처리해주는 범위를 건드리는 것이고 과한 커버리지 일 수 있다.
[비공개] Weekly Report - 23/08/21~23/08/26, 1156일차(프랑스 여행) 보호되어 있는 글입니다.
[비공개] Weekly Report - 23/08/14~23/08/20, 1149일차(프랑스 여행) 보호되어 있는 글입니다.
[비공개] 프랑스 여행 기록 보호되어 있는 글입니다.
[TIL] DB pagination offset 문제, covering index 문제점 pagination을 하기 위해서 보통 아래와 같은 형식의 쿼리문을 사용한다. select ... from ... where ... limit ... offset limit은 가져올 데이터의 총 개수를, offset은 데이터를 조회할 시작점을 의미한다. 여기서 문제는, 데이터 개수가 많아지면(offset 100만건 이상?) offset 위치를 찾는 것을 마치 연결 리스트처럼 처음부터 쭉 이어나가다가 DB에 부하가 크게 걸릴 수 있다. 해결방법 where절에 조건을 건다. 특정값 이상의 id를 갖는 row만 조회한다던가, 날짜-연도 등을 기준으로 특정일 이후부터만 조회하도록하여 데이터의 개수 자체를 줄여서offset에 드는 부하를 줄여준다. covering index를 갖는 subquery를 실행하..
[TIL] Deepcopy, dict 순서 유지 1. Deepcopy: dict 어떤 원본 값을 변형하지 않고 다음 로직에서 사용하기 위해서는 deepcopy를 사용하여 참조되는 값의 변경이 일어나지 않도록 해줘야한다. some_value = _get_some_value( ... ) # some_value = {"a": 1, "b": 2} another_result = _get_another_result(some_value=some_value) def _get_another_result(some_value): result = some_value result["a"] = 3 return result 위 코드처럼 간단한 경우에는 한눈에 _get_another_result를 실행하면서 some_value 값도 변경된다는 것을 인지할 수 있으나 코드가 복잡해..
[비공개] Weekly Report - 23/08/07~23/08/13, 1142일차 보호되어 있는 글입니다.