서비스기획

[TIL] 구글 스프레드 시트, AppsScript - 5/19

TeoJeon 2023. 5. 19. 18:48

포스팅 목차

    오늘 수업에서는 커뮤니케이션에 대한 얘기로 시작했다.

     

    커뮤니케이션

    사람마다 소통의 방식이 다르기 때문에 내가 좋은 의도로 얘기를 해도 상대방은 그렇게 받아들이지 않을 수 있다.

    그리고 문제가 일어나지 않으려면 항상 활발한 소통이 중요하다.

    지금까지 여러 개의 팀 프로젝트를 하면서 느낀 점이 몇가지 있다.

    • 작업 진행 현황 파악은 매일 해야 일정 관리하기 편하다!
    • 아니라고 생각되는 의견은 바로바로 표출해야 한다!
      • 늦으면 늦을수록 그 사이에 불필요한 의사결정이 쌓인다.
      • 물론 상대가 기분 나쁘지 않도록 잘 애둘러서 표현해야 한다.
    • 팀워크를 위해 일부러 시간을 내서라도 불편한 감정을 표현해야 한다.
      • 사람 간의 관계에서 약간의 불편한 감정은 어쩔 수 없지만 쌓이면 팀워크를 저해하는 요소가 된다.
      • 그때그때 알아서 표출하라고 하면 한국인의 특성상 잘 표현하지 않는다.
      • 예를 들어 주 1회 정기적으로 서로에게 느낀 불편한 감정들을 공유하는 자리를 마련해서 표현해야 한다.
      • 이전 팀 프로젝트에서 이 시간을 통해 서로에 대한 오해도 풀고, 배려해야 할 포인트들을 알 수 있다.

     

    구글 스프레드 시트

    참조

    스프레드 시트에는 2가지 참조가 있다.

    • 상대 참조: 수식있는 셀을 기준으로 자동채우기를 할 때 특정 셀을 참조하는 수식이 있다면, 채우는 셀의 위치에 맞춰서 참조하는 셀도 변경해서 채워진다.
    • 절대 참조: 채우는 셀의 위치와 상관없이 참조하는 셀은 고정된다.

    단축키(맥기준)

    열 선택: ctrl + space

    행 선택: shift + space

    서식 복사: option + command + V → 붙여넣기 아이콘 클릭 → 서식 복사

     

    Apps Script

    수업 중에 외부 사이트에서 XML을 지정하여 구글 스프레드 시트에 데이터를 자동으로 가져오는 기능이 있다는 것을 알게 되었다.

    스프레드 시트 - 확장 프로그램 - Apps Script

    아래의 Code.gs에 원하는 코드를 작성한다.

    언어는 JavaScript를 사용한다.

    function getVisitorCountMyTstoryBlog() {
    	//활성화된 시트를 불러옴
      var example_sheet = SpreadsheetApp.getActiveSheet();
    
    	// 해당 시트의 b2셀의 데이터를 가져옴
      var current_total_visit = example_sheet.getRange('b2').getValues(); 
    
    	// 해당 시트의 데이터가 있는 셀 범위를 data_range에 저장
      var data_range = example_sheet.getDataRange();
      	// 셀 범위의 마지막 행 번호를 가져와서 1 더한 값을 num_rows 변수에 저장
      var num_rows = data_range.getNumRows() + 1;
    
    	// GMT+9 기준으로 현재 날짜를 가져와서 yyyy-MM-dd의 형태로 today에 저장
      var today = Utilities.formatDate(new Date(), "GMT+9", "yyyy-MM-dd");
    
    	// num_rows번 행의 첫번째 열에 today 작성
      example_sheet.getRange(num_rows, 1).setValue(today);
    	// num_rows번 행의 두번째 열에 현재 총 방문자 수 작성
      example_sheet.getRange(num_rows, 2).setValue(current_total_visit);
    	// num_rows번 행의 세번째 열에 오늘 방문자수(오늘 총 방문자 수 - 어제 총 방문자 수) 작성
      example_sheet.getRange(num_rows, 3).setValue(current_total_visit - example_sheet.getRange(num_rows - 1, 2).getValues());
    }

    내 블로그에 방문자수를 기록하는 스크립트이다.

    다음과 같이 트리거를 설정하면 매 오후 11시 ~ 자정 사이에 함수가 실행된다.
    테스트를 위해서 1분 간격으로 함수를 실행시켜서 잘 작동하는 것을 확인했다.

    어떤 웹사이트의 내용을 지속적으로 트래킹해야할 때 유용하게 사용할 수 있을 거 같다.

     


    그리고 오늘 드디어 실무 프로젝트 팀빌딩을 했다.

    실제 기업 실무진과의 인터뷰를 통해 얻은 비전, 경험, 현황을 바탕으로 발전방향을 제시하고, 프로토타입을 만들어 고객의 반응까지 알아보는 프로젝트이다.

    에이블런에서 제공하는 기업 리스트가 있었지만 나는 직접 기업과 컨택하는 과정 또한 너무 좋은 경험이라고 생각해서 직접 기업  컨택을 선택했다.

    일주일 남짓한 시간동안 다른 팀들은 기업을 분석할동안 우리는 컨택을 해야하지만 우리가 기업을 선택해서 협력 메일을 보내고, 답변을 받는 경험 또한 아주 좋은 경험이라고 생각한다.

     

    [Keep]

    • 오늘 스프레드 시트 함수 사용이나 Apps Script를 할 때 아무래도 나를 비롯한 개발자 출신들이 이해를 빨리 할 수 있었다. 이 때 도움이 필요한 동료들을 도울 수 있어서 보람찼다.
    • 똑같은 뜻이라도 표현을 최대한 부드럽게 하려고 노력했다.

    [Problem]

    • 오랜만에 다른 사람에게 도움을 줄 수 있는 시간이어서 신났는지 산만했다.

    [Try]

    • 혼자 진득하게 집중하는 시간을 확보하는 것이 필요할 거 같다.
    • 개인적인 Task라도 소요 시간을 예상하고, 관리하는 습관을 들여야겠다.