일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- k8s #kubernetes #쿠버네티스
- 개성국밥
- Spring Batch
- vfr video
- 겨울 부산
- PersistenceContext
- JanusWebRTCGateway
- tolerated
- terminal
- 달인막창
- taint
- table not found
- JanusWebRTC
- pytest
- 코루틴 컨텍스트
- 티스토리챌린지
- kotlin
- Value too long for column
- 코루틴 빌더
- 깡돼후
- 오블완
- VARCHAR (1)
- preemption #
- JanusGateway
- PytestPluginManager
- python
- 자원부족
- JanusWebRTCServer
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- mp4fpsmod
목록분류 전체보기 (583)
너와 나의 스토리
배경 두 함수의 로직이 아주 비슷하고 단지 리터럴 값만 다르다면, 그 다른 값만 매개변수로 받아 처리하는 함수 하나로 합쳐서 중복을 없앨 수 있다. Before After function tenPercentRaise(aPerson) { aPerson.salary = aPerson.salary.multiply(1.1); } function fivePercentRaise(aPerson) { aPerson.salary = aPerson.salary.multiply(1.05); } function raise(aPerson, factor) { aPerson.salary = aPerson.salary.multiply(1 + factor); } 절차 비슷한 함수 중 하나를 선택한다. 함수 선언 바꾸기로 리터럴들을 ..
배경 고객 리스트가 있다고 할 때, 이름과 같은 정보가 적혀있지 않은 미확인 고객이 있을 수 있다. 이런 특이 케이스를 검사하는 코드가 있다고 생각하자. 데이터 구조의 특정 값을 확인한 후 똑같은 동작을 수행하는 코드가 곳곳에 등장하는 경우가 더러 있다. 흔히 볼 수 있는 중복 코드 중 하나다. 특수한 경우의 공통 동작을 요소 하나에 모암서 사용하는 특이 케이스 패턴(Special Case Pattern)이라는 것이 있다. 위와 같은 경우에 적용하면 좋을 메커니즘이다. 이 패턴을 활용하면 특이 케이스를 확인하는 코드 대부분을 단순한 함수 호출로 바꿀 수 있다. 널(null)은 특이 케이스로 처리해야 할 때가 많다. 그래서 이 패턴을 널 객체 패턴(Null Object Pattern)이라고도 한다. 절차 ..
화면 캡쳐 $ adb shell screencap -p > myfile.jpg 위 command를 편하게 사용하기 위해 별칭을 정할 수 있다. $ alias capture="adb shell screencap -p > $@" 이렇게 하면 "capture myfile.jpg" 이런식으로 쉽게 화면을 캡쳐할 수 있다. udid 지정하는 방법 adb 다음 -s 옵션과 함께 udid 입력 예: adb -s $udid shell screenrecord /sdcard/video.mp4 adb -s $udid pull /sdcard/video.mp4 화면 녹화 동영상 녹화의 경우 동영상 파일을 컴퓨터에 다이렉트로 저장할 수 없다. 일단 핸드폰의 sdcard에 저장 후 다운 받아와야 한다. $ adb shell scr..
import logging을 통해 log를 남겼으나 terminal에서 확인 불가... -s 옵션 주기 python3 -m pytest project/test/path/test.py -s -s 옵션을 줘서 실행하면 코드에서 print()한 내용도 terminal에서 확인할 수 있다.
밀크티로 가득한 카페 온통 Basilur 밀크티로 화려하게 꾸며진 인테리어에 이끌려 카페에 들어갔다 예쁜 디저트도 가득가득 밀크티에 이끌려 왔지만 아아 먹고 싶어서 SET.2 시킴 ㅎ 사실 아이스크림은 먹을 생각이 없었지만 아아 2+밀크 롤 시키는 것보다 set 2가 더 싸다고 말씀해주셔서 세트로 시켰다. 아이스크림은 풀바셋 아이스크림 맛 사실 풀바셋 간지 오래돼서 맛이 정확히 기억 안 남 아무튼 맛있었당 카페 내부 모습
배경 함수는 여러 동작을 하나로 묶어준다. 함수의 이름이 코드의 동작 방식보다는 목적을 말해주기 때문에 함수를 활용하면 코드를 이해하기가 쉬워진다. 함수는 중복을 없애는 데도 효과적이다. 동작을 변경할 때도, 비슷해 보이는 코드들을 일일이 찾아 수정하는 대신 함수 하나만 수정하면 된다. 이미 존재하는 함수와 똑같은 일을 하는 인라인 코드를 발견하면 보통은 해당 코드를 함수 호출로 대체하길 원할 것이다. 하지만 기존 함수의 코드를 수정하더라도 인라인 코드의 동작이 바뀌지 않을 때만 함수 호출로 대체할 수 있다. 이를 판단하는 데는 함수 이름이 힌트가 된다. 인라인 코드 대신 함수 이름을 넣었을 때 말이 돼야 한다. 특히 라이브러리가 제공하는 함수로 대체할 수 있다면 훨씬 좋다. 예: Before let a..
배경 데이터 구조 설계에 대해 경험이 많은 사람도 초기 설계에서는 실수가 빈번하다. 프로젝트를 진행할수록 문제 도메인과 데이터 구조에 대해 더 많은 것을 배우게 된다. 현재 데이터 구조가 적절치 않음을 깨달으면 곧바로 수정해야 한다. 필드를 옮겨야 할 상황 함수에 어떤 레코드를 넘길 때마다 또 다른 레코드의 필드도 함께 넘기고 있다면 데이터 위치를 옮겨야 할 것 한 레코드를 변경하려 할 때 다른 레코드의 필드까지 변경해야 하는 상황 → 필드 위치가 잘못되었다는 신호 클래스를 사용하면 '필드 옮기기' 리팩터링을 수행하기 더 쉬워진다. 클래스의 데이터들은 접근자 메서드들 뒤에 캡슐화되어 있으므로 클래스에 곁들여진 메서드들은 데이터를 이리저리 옮기는 작업을 쉽게 해준다. 데이터의 위치를 옮기더라도 접근자만 그..
stf 설치 가이드: stf README 참고 문제 stf를 설치하려고 하니 에러가 발생했다. 설치 명령어: npm install -g @devicefarmer/stf 문제는 node 버전이 맞지 않아서 설치에 실패하는 것이다. STF는 node 8.17.0만 지원한다 출처: https://stackoverflow.com/questions/47668771/error-while-trying-to-install-openstf node version 변경 node의 version management인 n을 설치해서 버전 변경 $ npm install -g n 명령어 n으로 간단하게 node version 변경 $ n 아래처럼 출력되면 화살표로 원하는 버전을 선택한 후 enter하면 된다. Permission..