개발일지 4

비개발자도 할 수 있는 구글 시트로 웹 앱 만들기

개발 동기최근 비개발자인 친구가 회사에서 업무 부담을 줄이기 위해 기업들의 데이터를 각 기업의 담당자들이 직접 수정할 수 있도록 하고 싶어 방법을 찾고 있다는 이야기를 들어 시작하게 되었다.물론 실제 어플리케이션을 개발하면 쉽게 제작할 수 있는 내용이나 아무래도 비개발자가 이를 운영하기 위한 인프라 및 유지보수를 진행하기엔 무리가 있다 판단하였다.그러던 중 구글 스프레드 시트로 웹앱을 제작할 수 있다는 것을 알게되어 이를 활용하여 진행하게 되었다. 개발 과정구글 스프레드 시트의 앱 스크립트를 활용하여 개발을 진행하였다.스프레드 시트의 [확장 프로그램] 메뉴에서 [Apps Script]에서 시작할 수 있다.  프로젝트 초기 생성 시 아래와 같이 gs 파일를 마주하게 되는데  gs 코드의 정확한 문법을 알지..

개발일지/side 2025.03.30

문자열 탐색 성능 개선

필자는 웹메일 업체에서 스팸 차단 솔루션 개발을 담당하고 있다.스팸 차단 솔루션의 특성상 관리자/사용자가 등록한 필터들을 활용한 많은 문자열 탐색이 일어난다.이 기능을 개선하면 솔루션의 성능이 크게 향상될 것이라고 판단하여 진행하게 되었다. 우선 결론부터 말하자면 패턴 매칭의 성능 개선은 진행되지 못하였다.허나 누군가가 나와 같은 고민을 하고 있을 경우 도움을 받을 수 있도록, 또 나와 같은 실수를 하지 않도록 하기 위해 기록하고자 한다.시작 - 어떻게 개선하려 하였는가?우선 회사에서 열심히 놀고 있는 도중 우아한형제 블로그의 아래 글을 보게 되었다.https://techblog.woowahan.com/15764 고르곤졸라는 되지만 고르곤 졸라는 안 돼! 배달의민족에서 금칙어를 관리하는 방법 | 우아한형..

개발일지/main 2024.05.30

MySQL SELECT 쿼리 성능 개선

최근 회사에서 저장기간이 지난 데이터 삭제 중 slow query가 발생하였다.해당 운영 환경에는 2천만건의 데이터가 저장되어있고 과거의 데이터를 추출하려다보니 이 있어 문제가 되었다. 문제가 발생한 데이터와 쿼리는 아래와 유사한 구조였다.(예시를 위한 테스트 테이블,쿼리)SELECTseq, date, subject, contentFROM test_dataWHERE date  결합 인덱스 수정우선 처음으로 select 시 해당 테이블의 인덱스를 정상적으로 사용하지 못하여 문제가 발생한다 생각하였다.실행 계획을 확인하였을 때 아래와 같았다.따라서 인덱스를 date와 type 모두 사용하도록 수정해주면 개선되지 않을까? 라는 생각을 했다. 해당 테이블에서 select 시 date와 type는 where 절에..

개발일지/main 2023.08.20

자바 시큐어 코딩(CWE-495) 그리고 캡슐화

시작은 시큐어 코딩 가이드에 나와있는 public한 메소드를 통하여 반환된 private한 배열(CWE-495)을 보고 시작되었다.https://cwe.mitre.org/data/definitions/495.html CWE - CWE-495: Private Data Structure Returned From A Public Method (4.12)div.collapseblock { display:inline} CWE-495: Private Data Structure Returned From A Public MethodWeakness ID: 495Abstraction: VariantStructure: Simple The product has a method that is declared public, bu..

개발일지/main 2023.07.11