이건 계획에 없던 포스팅이다. “자습실 출석관리 자동화 시스템 구축”. 이건 사실 작년부터 머릿속에는 구상을 해 둔 것이었다.
하지만 이게 가능할까 싶었다. 컴퓨터에 관심이 많아 보이지만, 아는 건 별로 없다. 전공이 이쪽으로 정해진 이후로는 그저 취미였다.
할 줄 아는 것과 필요한 것은 다르다. 할 줄 아는 것만 하면 계속 그것만 하겠지. 새로운 것으로 도입하지는 못한다.
이런 생각이 들었다.
과거 나의 학창 시절 야간자율학습은 지금과는 많이 달랐다. 일부 학업을 놓은 학생을 제외하고는 거의 모든 학생이 참여했다. 반 강제 모드로 진행된 야간자율학습의 풍경은 고등학교의 상징과도 같은 것이었다.
지금은 어떤가. 강제로 한다고 하면 바로 민원이 이것저것 들어온다. 그렇다고 자율적으로 진행한다 해도 마찬가지다. 학교에서 자녀들의 학업을 책임져주기를 바라는 마음. 그리고 시대가 바뀌었는데 그냥 좀 자율을 줬으면 하는 마음이 충돌한다.
아무튼, 과거처럼 자율학습을 강제하지는 못한다. 나도 그럴 생각까지는 없다.
그러면 이걸 왜 만드느냐. 한다는 친구들 관리를 위해서, 그리고, 일종의 고3 이벤트랄까…
자습실 출석관리 자동화 시스템 기본 구상
라즈베리파이 CCTV
라즈베리파이와 파이카메라를 활용해서 자습실에 CCTV를 만들어둔 적이 있다. (외부 포스팅 : 2023학년도 코딩 관련 학년 활동 정리 참고) 상시 감시를 하겠다는 건 아니고, 하도 도난 사건이나 도망자가 발생해서 만들었던 것이다. 그런데 이게 문제가 조금 있다. 자꾸 연결이 끊긴다는 점이다.
기본적인 시스템은 이렇다. 파이카메라로 영상을 받는다. 인코딩 작업을 거쳐서 미리 준비한 유튜브 채널로 송출한다. 유튜프 채널에서는 실시간 확인을 위해 스트리밍을 진행한다.
물론 해당 채널의 모든 실시간 스트리밍 영상은 비공개다.
간단해 보이지만 생각보다 오래 걸렸다. 라즈베리파이로 작업한 두 번째 프로젝트였다. 그리고 나름 성공적이었다.
가끔 업데이트를 위해 기기를 빼두면 학생들에게 연락이 왔다. “카메라 없어졌어요!” 하고 말이다.
자습실 출석관리 자동화 시스템
CCTV 구상 및 구현에 한 달이 걸렸다. 그리고 매일 유튜브에 들어가서 스트리밍 창을 띄워 둬야 작동하는 시스템이 뭔가 비효율적으로 느껴졌다. 바꿔야 했다.
어떻게 바꿀 것인가.
일단 사설 독서실 시스템을 생각했다. 학생들의 자습실 자리는 고정되어 있다. 각 자리에 센서를 부착해 신호를 받으면 어떨까. 그런데 무슨 센서로 해야 할까. 금액은 얼마나 들까.
소요 비용을 생각하지 않을 수 없다. 학교 예산으로 구성하는 시스템이니깐.
라즈베리파이 한 대만 하더라도 15만원 정도가 들어간다. 막 사댈 수는 없다.
자동화 시스템 구현 장면 계획

학생들이 자습실에 들어온다. 출석 체크를 스스로 한다. 그러고 자신의 자리에 가서 학습한다.
출석 체크 결과는 외부에서도 확인이 가능해야 한다. 그래야 내가 어디서든 알 수 있으니 말이다.
라즈베리파이 한 대를 자습실 입구에 비치한다. 모니터와 함께. 여기에 학생들이 자신의 아이디와 비밀번호를 입력한다.
그러면 화면에 Start와 Finish 메뉴가 나타난다. 자습을 시작할 때 Start를 누른다. 그리고 끝낼 때는 Finish를 누른다.
학생의 아이디와 비밀번호는 별도로 데이터베이스를 만들어 관리한다. 라즈베리파이를 세팅할 때 미리 준비했다.
여기서 학생별 시작과 끝 데이터가 생성된다. 이제 이걸 외부로 보낼 방법을 찾아야 한다.
여기에서 구글 스프레드 시트를 활용한다.
구글에는 다양한 API들이 존재한다. 이걸 활용하면 구글 드라이브와 구글 스프레드시트를 내 기기에서 제어할 수 있다.
사실 이 지점에서 상당히 시간이 지체되었다. API는 말로만 들어봤지 실제로 사용해본 적은 없었다. 그래서 인증 키를 받고 뭘 하고 하는 것에 오류가 많이 생겼다.
그래도 해냈다!
자습실 출석관리 자동화 시스템 구현시 고려사항
기본적인 시스템 구현이 이틀이 걸렸다. 그리고 여기에 일부 기능을 추가하고 조율하는 일에 다시 이틀 정도.
매우 빠르게 만들었는데, 이건 영어 교과 수업 시간에 학생들에게 ChatGPT 활용 과제를 부여했기 때문에 확보된 시간 영향이 컸다.(이전 포스팅: 고등학교 교과수업 및 동아리에 ChatGPT 활용 참고)
아무튼, 자습실 출석관리 자동화 시스템은 라즈베리파이에 학생들이 직접 로그인 및 시작과 끝 버튼을 클릭하는 것으로 작동된다.
그리고 그 데이터를 구글 스프레드시트로 어디서든 나는 확인할 수 있다.
여기에서 몇 가지 문제점이 발생할 수 있다.
타인의 아이디로 로그인 – 부정 출석 관리
언제든 벌어질 수 있는 일이다. 이 부정 출석에 대한 해결 방법은 의외로 간단하게 찾았다. 출석 체크를 할 때 사진을 찍어버리는 방법이다.
어차피 CCTV까지 접해 본 친구들이니 이 부분에 대한 불편함은 없었다. 오히려 적절한 타이밍에 어떻게 포즈를 취할까 고민하는 이상한 녀석들도 생겼다.
아무튼, 부정 출석 부분은 로그인 후 시작과 끝 버튼을 누른 순간 라즈베리파이에 연결한 파이카메라로 사진을 찍어 누구인지 확인할 수 있도록 하는 방법으로 해결했다. 여기에 덤으로 찍힌 사진은 구글 클라우드에 업로드되고, 그 링크는 출석 내역이 기록되는 스프레드시트에 입력된다.
이런 방식으로 부정 출석을 해결했다.
자습실 관리 부분 – CCTV 활용
이건 기존 CCTV 시스템을 활용하기로 했다. 사실 이 정도가 필요한가 싶기는 하다. 뭔가 감시하는 기분이랄까.
그런데, 감시를 원하는 친구들이 있다. 상위권 학생들을 모아놓은 자습실이라 해도 분명히 떠드는 놈들이 있다. 가장 좋은 건 옛날처럼 교사가 상시 임장 지도를 하는 방법이겠으나, 시대가 바뀌었다. 그걸 선생님들께 강력하게 요청하기 어려운 시대이다. 내가 하는 게 낫다.
기존 CCTV의 문제점은 연결이 자주 끊기고 매일같이 수 회 씩 관리를 해야 한다는 점이었다. 편하려고 만든 시스템인데 나는 오히려 불편했다. 이걸 어떻게 해결할까.
답은 간단한 곳에 있었다. 기본적으로 학생들은 자습실에서 쫒겨나는 걸 두려워 한다. 이에 대한 엄포는 충분히 해둔 상태로, 자습실에 상시 작동되는 CCTV가 있으면 된다.
상시 문제 없이 작동되는 CCTV. 그리고 이번에는 실시간 확인이 되지 않아도 된다. 그건 출석 관리 시스템이 없을 때 이야기고, 이제는 나중에라도 확인이 가능하기만 하면 된다.
이번 “자습실 출석관리 자동화 시스템 구축 활동”에서 구글 API의 활용성을 조금 생각했다. 유튜브 실시간 스트리밍이 아니라, 라즈베리파이에서 일정 시간 간격으로 영상을 녹화하면 어떨까.
그리고 녹화된 영상의 인코딩이 완료되면 구글 드라이브로 영상 파일을 보내는 것이다.
API 사용량이 엄청나게 늘어나긴 하겠지. 사실 이 부분은 아직 구현은 하지 못했다. 하나의 라즈베리파이로 이 두 기능을 모두 작동시키면 시스템에 부담이 조금 있을 것 같다. 별도이 라즈베리파이로 만들 계획이다.
자습실 관리 시스템 관련 이미지들
일단 구현한 내용만 사진을 찍어 보았다. 스크린샷을 적극적으로 써야 좋겠지만, 윈도우가 아닌지라 은근 그게 또 불편하다. 속도도 그렇게 빠르지 않다.
[사진들]



어떻게 이걸 다 만들어?
위 사진들이 이제까지 구현한 것들이다. 대부분의 프로그램은 파이썬으로 만들었다. 좀 대단하지 않은가? 파이썬을 나는 모르는데?
솔직히 말하겠다. 나는 파이썬은 정말 모른다. 15시간짜리 연수도 들었으나 그것 만으로는 뭘 만들 상태는 아니다. 그러면 어떻게 이 정도 코드를 짰을까.
답은 바로 ChatGPT와 구글 Gemini. LLM을 활용해서 만들었다. 사실 파이썬 코드를 짜는 것에는 제미나이는 쓸 일이 없었다. 처음에 쓸라다가 이상한 코드를 줘가지고 다 엎었다. 그럼 제미나이는 어디에다 썼는가.
구글 API를 활용하는 법을 알아야 했다. 그래서 ChatGPT에게 받은 방법을 따라가 봤는데, 알려준 링크에 알려준 메뉴가 없었다! 이게 그 유명한 할루시네이션이거나, 또는 최신 데이터가 반영되지 않은 결과인 것 같다.
자, 그래서 아예 제미나이에게 물어봤다. 지들 회사 시스템이니 가장 정확하게 알려주지 않을까 싶었다. 그리고 그 예상은 맞았다!
그래서, 기본 파이썬 코드는 ChatGPT에서 받은 답으로, 그리고 API 연동 관련 내용은 Gemini를 통해 해결했다.
이번 활동의 인사이트

내가 하는 대부분의 컴퓨터 관련 활동은 누구나 할 수 있는 일들이다. 전공 지식이 없어도 할 수 있다. 다른 일을 하더라도 할 수 있다.
불편한 점이나 뭔가 획기적인 걸 만들고 싶은 욕구. 이게 바로 탐구심 아닐까. 대학에서 그토록 바라는 탐구심 말이다.
그렇다고 지금의 내가 대학을 다시 가거나 하는 일은 없으리라. 단지 나의 이런 행동이 학생들에게 다양한 인사이트를 준다면, 그것으로 충분하다.
학년부 끝날 때까지만 할지, 아니면 내년에도 소일거리 같이 다른 아이들을 데리고 할지는 모르겠다. 개인적으로 이 활동을 위해 많은 예산을 활용한 만큼, 몇 년은 학생들을 위해서 쓰고 싶다. 내가 배운 것들을.
자습실 관리를 위한 간이 CCTV부터, 이번 “자습실 출석관리 자동화 시스템 구축”까지, 일련의 활동은 전부 학생들이 직접 불편함을 느끼고 개선 방법을 고안하기를 바라며 내가 해본 활동이다.
다음에는 이제 뭘 또 해볼까나…
“자습실 출석관리 자동화 시스템 구축”의 하나의 댓글