좋은 에러메세지 작성 방법
2023. 1. 25. 23:52
Programming
이 글은 구글에서 작성된 Writing Helpful Error Messages 을 정리한 내용입니다. 에러 메세지는 왜 중요한가? 여러 상황에서 오류 메세지는 사용자의 잘못된 입력 또는 의도하지 않은 활용에 대한 경고와 예외처리 또는 제품의 결함 등으로 발생하기 때문에 사용자가 직접 해결할 수 있도록 돕는 역할을 한다. 때문에 에러 메세지는 예상하지 못한 작동 상황에서 사용자로 하여금 문제를 해결할 수 있는 가장 첫번째 이정표이자 개발자와의 상호작용 역할을 수행한다고 볼 수 있다. 좋은 오류메세지는 다음과 같은 특징을 갖는다. 긍정적인 사용자 경험 제공 쉽게 접근하여 실제로 실행 가능하다 문제 해결을 위한 지원 작업을 줄이고 사용자가 직접 해결할 수 있도록 함 공통 오류 처리 규칙 실패 상황을 넘어가선..
다양한 SQL 스타일을 활용하여 계층형(hierarchy) 쿼리를 표현하는 방법
2021. 10. 31. 21:48
Programming/SQL
Difference between bigquery sql and other sql to write hierarchy sql I. 계층형 데이터(Hierarchical data) WITH employee AS ( SELECT 40 AS id , 'london' AS name, 50 AS boss_id UNION ALL SELECT 50 AS id , 'lee' AS name, 10 AS boss_id UNION ALL SELECT 10 AS id , 'harry' AS name, 20 AS boss_id UNION ALL SELECT 20 AS id , 'leo' AS name, NULL AS boss_id UNION ALL SELECT 70 AS id , 'lucas' AS name, 10 AS boss..
[Git]Git hooks 를 활용한 자동 black 포매팅
2020. 10. 24. 15:48
Programming/Git
Git hook Hook은 특정 이벤트, 함수가 호출되기 전/후에 실행되는 스크립트/명령을 말합니다. Git은 다른 버전 관리 시스템처럼 어떤 이벤트가 발생할 때 자동으로 특정 스크립트를 실행하도록 할 수 있습니다. 이 훅은 클라이언트 훅(commit or merge 시 발생)과 서버 훅(push 시 발생) 두가지가 있습니다. I. 자주 사용되는 hooks 1. 클라이언트 훅 pre-commit 커밋할 때 가장 먼저 호출되는 훅으로 커밋 메시지를 작성하기 전에 호출됩니다. 즉 git commit "something" 시 즉시 발생하는 hook 입니다. 보통 commit 하기 전에 파일의 코드 스타일 체크, 파일 검사 등을 위해 사용하는 경우가 많습니다. git commit --no-verify 를 이용해..
[Git] 실수로 삭제한 파일/커밋/브랜치 복구하기
2020. 10. 21. 17:42
Programming/Git
Git 삭제한 파일 및 브랜치/커밋 복구하기 I. Git log git을 이용해 로컬과 원격저장소를 관리하다보면 종종 뜻하지 않은 실수로 작업물을 모두 날리거나, 브랜치를 지우는 경우가 발생합니다. 이 경우 git reflog 를 이용해 강제로 과거 시점으로 돌아가는 것이 가능합니다. 작업도중 홀린듯 merge pull을 땡기며...날아가버린 내 작업물을 되찾았던 기억을 잊지않기 위해 메모합니다... II. 삭제한 커밋/브랜치 복구 터미널을 열고 해당 git local repo로 이동하여 git reflog 명령어를 실행합니다. 명령어를 실행하면 사진과 같이 기록되어 있는 모든 log와 log id를 확인할 수 있습니다. 1. commit 복구 커밋을 복구하려는 경우 커밋 내용과 id 를 확인하고 git..
찰스 프록시(Charles Web Debugging Proxy)를 이용한 앱 크롤링/웹 디버깅!
2020. 10. 7. 18:46
Programming
찰스 프록시(Charles Web Debugging Proxy)를 이용한 웹 디버깅 Charles proxy 찰스 프록시는 앱과 웹 사이에 위치하여 모든 네트워크 요청과 결과를 확인할 수 있고, 요청값을 수정하여 실제로 요청을 송신하고 결과를 즉각적으로 확인할 수 있는 프로그램입니다. (+) 추가 수정 외부 어플리케이션의 통신을 확인해 부당한 목적으로 사용하는 것은 잘못된 행동입니다. 따라서 이 후 본문에서는 어떤 방식으로 활용이 가능하며, 사용하는에 대한 자세한 사용법은 제외하며 초기 설정에 대해서만 다루도록 하겠습니다. 사용 시 발생하는 문제는 본인에게 있음을 잊지말아주세요. 특징 1. 앱과 웹간 통신이 목적대로 동작하는지 확인 가능 2. 요청 시 발생하는 params 와 요청 결과를 확인 가능 3...
[Go/Golang] Go 배열(array)과 슬라이스(slice) 차이
2020. 9. 30. 16:26
Programming/Go
Go 배열과 슬라이스 차이 I. Array vs Slice 두 데이터 타입 모두 컨테이너의 역할을 하는 것은 동일하지만 아래의 차이가 있음. 배열(array) 슬라이스(slice) 타입 값 참조 용량(cap) 수정불가 수정가능 길이(len) 수정불가 수정가능 비교연산 가능 불가능 호출 복사 전달 참조 전달 가변적 특성때문에 슬라이스를 주로 사용하게 됨 cap() : 배열/슬라이스 용량 len() : 배열/슬라이스 개수 1. 배열/슬라이스 차이 확인 배열 arr1 := [...]int{1, 2, 3, 4, 5, 6, 7} //--> 입력하는 데이터수에 맞게 자동으로 크기 조정 var arr2 [7]int arr2 = arr1 arr2[0] = 10 fmt.Printf("1번 배열 : %v , 1번 배열 메..
[Python/ML]쉽고 빠르게 ML 모델 만들기! Pycaret
2020. 9. 26. 19:18
Programming/Python
쉽고 빠르게 ML 모델 만들기! Pycaret Pycaret! 파이썬을 활용해 모델을 만드는 다양한 라이브러리와 방법론이 존재합니다. 하지만 올바른 모델을 선정하는 작업, 하이퍼파라미터 튜닝 등 실제로 모델을 만드는 일은 굉장히 어렵고 오랜 시간이 필요한 일입니다. Pycaret은 오픈소스 라이브러리로 초기 모델을 굉장히 쉽고 빠르게 결정하도록 제작할 수 있도록 하며 앙상블, 파라미터 튜닝 등 다양한 기능을 지원하는 라이브러리 입니다. 무엇보다 Pycaret의 공식문서는 정말 정리가 잘 되어 있고 다양한 데이터셋을 제공하기 때문에 쉽게 사용해 볼수가 있습니다! Pycaret 설치 Pycaret의 공식문서는 os 별로 local 에 설치하는 과정부터 도커 빌드까지 다양한 방법을 세세하게 설명하고 있습니다...