회고
3주 동안 진행된 SQL 스터디를 돌아보며
다음 학기인 25년도 1학기에는 데이터베이스라는 과목을 수강하게 된다. 지금껏 해당 과목에서는 팀프로젝트가 있었고, 대부분 지인들과 팀을 미리 꾸린 상태에서 학기를 시작하게 된다. 감사하게도 24년도 2학기에 나도 팀원들을 구하게 되었고, 이번 겨울 방학에 간단하게라도 SQL에 대한 스터디를 진행해보자고 했었다.

사용했던 노션 페이지
그렇게 동계 방학이 시작되고 절반 이상 정도 지났을 무렵, 개강까지 한 달 정도 남은 시점이었기에 스터디를 시작해야 한다고 생각했었다. 그래서 위의 사진과 같이 관련 노션 페이지를 만들고, 2월 4일에 킥오프를 하게 되었다. 그리고 총 4회차의 스터디를 진행한 결과, 약 3주 정도 만에 스터디를 마무리 지을 수 있었다. 해당 스터디를 마무리 지으면서 회고록 작성의 필요성을 느끼게 되어 포스팅을 진행해본다.

실제로 포스팅한 게시물 내용들
목표 및 기대치
Q1. SQL 스터디를 시작할 때 어떤 목표를 설정했는가?
A1. 먼저, 한빛 미디어의 SQL 기초 강의 목록을 1회독 하는 것을 목표로 했었다. 또한, 강의 내용들을 정리하면서 개념을 짚어보고 이를 기술블로그에 포스팅하고자 했다. 그리고 동시에 스터디를 진행한 친구들과 함께 더 단결되고 하나가 되고 싶은 생각이 컸었다.
Q2. 스터디를 통해 기대했던 결과는 무엇이었는가?
A2. 첫 번째로는, SQL 프로그래밍에 필요한 개념들에 대해서 간단하게라도 어떤 개념이고 역할을 하는지 학습하면서, 학기가 시작되었을 때 개념에 대한 생소함을 해소하고 싶은 것이었다. 그리고 두 번째로는, DDL, DML, DCL에 대해서 사용법을 익히면서 SQL 프로그래밍 구조에 조금은 익숙해지고 싶었다.
진행 과정 및 방법
Q3. 스터디를 진행하면서 어떤 방식(교재, 실습, 토론 등)으로 학습했는가?
A3. 스터디를 시작하기에 앞서 강의의 분량을 정하게 되었다. 그리고 이후부터 개념 강의를 듣고, 이를 Notion에 정리하는 것을 스터디 전까지 할 일로 정했고, 스터디에서는 해당 주차의 분량에 대한 개념을 복습하고, 관련해서 문제를 풀어보는 식으로 학습했었다. 총 세 명이고, 총 3회의 개념 스터디를 목표로 하게 되어서 돌아가면서 개념을 정리하고, 나머지 두 명은 문제를 준비해오는 것으로 역할을 분담했었다.
Q4. 계획했던 방식과 실제 진행 방식은 어떻게 달랐는가?
A4. 전반적으로 크게 달랐던 것은 없었다. 대부분 비슷한 흐름으로 스터디가 진행되었고, 주차마다 각자에게 부여된 역할들도 잘 수행했었다.
Q5. 진행 과정에서 가장 도움이 되었던 학습 방법은 무엇이었는가?
A5. 강의를 보면서 나온 개념들을 있는 그대로 다 정리하는 것이 일차적인 학습 방법이었다. 하지만, 이는 사실상 수업 내용을 기록한 것에만 불과했었고, 내가 이해하고 나의 것으로 만들기 위해서는 한 번 더 개념을 정리해야 할 필요성이 있었다. 그래서 꼭 필요한 예시들을 제외하고, 사용하는 형식과 특징들에 대해서 작성하며 Summary를 만들어가며 학습했던 것이 큰 도움이 되었다고 생각한다.
성과 및 배운 점
Q6. 스터디를 통해 가장 크게 성장했다고 느낀 부분은 무엇인가?
A6. SQL 프로그래밍을 마주하는 자세가 이전보다 많이 성장했다고 생각한다. 사실 SQL 구문 자체가 어렵고, 사용법이 익숙하지 않았다 보니 약간의 걱정을 갖고 있었다. 하지만, 스터디를 진행하면서 개념을 학습하고 정리하면서 나의 것으로 만들다보니 어느 순간 개념들이 조금은 이전보다 많이 친근해졌다고 생각한다. 그래서 SQL 프로그래밍 자체를 더욱 시도하려고 마음 먹게 될 수 있었다.
Q7. SQL에 대해 처음과 비교했을 때 이해도가 어떻게 달라졌는가?
A7. 사실 SQL을 고등학생 때 간단하게 배우고, 24년도 2학기에도 간단하게 배웠지만, 사실상 기초적인 개념들만 배웠을 뿐 그 이상의 것들을 접할 수는 없었다. 예를 들어서 인덱스, 뷰, 스토어드 프로시저, 스토어드 함수 등 SQL 프로그래밍의 개체들에 대해서도 이해하게 되었다. 아직은 완전히 나의 것으로 만들었다고 확신할 수는 없지만, 그래도 SQL에 대한 이해도가 이전보다는 많이 생긴듯 하다.
Q8. 배운 개념 중 실제로 활용해볼 수 있을 것 같은 것은 무엇인가?
A8. Spring Boot를 통해서 백엔드 개발 시 JPA를 사용하지 않고, 직접 SQL mapper를 작성하면서 기능을 구현했었던 적이 있었다. 그러나 당시에는 SQL에 대한 이해도가 많이 낮았던 터라, JPA를 사용하는 것이 더욱 편하다고 생각할 수밖에 없었다. 그러나 이제는 SQL 프로그래밍에 대한 조금의 이해도가 생긴 것 같아서, 백엔드 개발에 이를 한 번 적용해보고 싶은 생각이 든다. 25년도 1학기에 캡스톤디자인2 과목을 수강하면서 이를 고려해볼 생각이다.
아쉬운 점 및 개선할 점
Q9. 계획했던 것 중 제대로 이루어지지 않은 부분은 무엇인가?
A9. 1주차까지는 계획한대로 미루지 않고 개념도 정리하고, 요약도 하면서 스터디를 여유롭게 준비했었다. 특히나 예제 문제를 만들고 직접 해보면서까지 스터디를 기다렸었는데, 2주차 개념이 시작된 이후부터는 계획한대로 진행하기 어려웠었다. 바로 캡스톤디자인2에 대한 태스크의 리소스가 이전보다 커졌고, 그로 인해 밤샘과 무너진 루틴으로 인해서 점점 스터디를 미루게 되었다. 그래도 2주차 스터디에는 스터디 전에 강의를 나눠서 듣고 갈 수 있었지만, 3주차 스터디에서는 스터디 직전까지 개념을 정리하면서 강의를 듣게 된 점이 가장 큰 아쉬움이라고 생각한다.
Q10. 만약 다시 SQL 스터디를 한다면 무엇을 다르게 하고 싶은가?
A10. 더 많은 예시들을 풀어보고 싶다. 배운 개념을 더욱 나의 것으로 만들기 위해서는 더 많이 사용해보는 것이 최고라고 생각한다. 그래서 스터디 말고도 스스로라도 더욱 SQL에 대한 예시들을 풀어보고 싶은 생각이 든다. 그리고 hackrank 사이트에서도 SQL에 대한 예시 문제들을 제공하고 있어서 이를 스터디와 병행한다면 더 괜찮았을 것 같았다.
개강과 연결되는 Action Point
Q11. 개강 후 팀 프로젝트를 원활하게 진행하기 위해 준비해야 할 것은 무엇인가?
A11. 학기 중에도 스터디를 진행하려고 한다. Flipped Learning 방식으로 진행되는 수업을 고려할 생각이다. 예를 들어서 1주차 목요일에 LMS(온라인 강의)를 시청하고 2주차 월요일에 대면으로 수업을 진행한다면, 2주차 월요일 수업 이후에 바로 진행되는 스터디에서는 1주차 목요일에 나간 개념을 한 번 더 짚어보고, 2주차 월요일 대면 수업에서 진행된 점까지 짚어보는 흐름으로 진행하려고 한다.
Q12. 개강 전에 추가로 공부하거나 정리해두면 좋을 개념은 무엇인가?
A12. 이번에 진행된 스터디의 개념들을 다시 한 번 더 돌아보면서, 내가 어느정도 이해했는지를 점검해보는 시간을 가지려고 한다. 특히나 사용 방법에 대해서 따로 정리를 진행하면서 더욱 쉽게 참고할 수 있도록 진행해볼 생각이다.