안녕하세요! 1월 3일부터 31일까지 5주 동안 참여했던 JSCODE 데이터베이스 스터디에 대한 회고를해보고자 합니다!
스터디에 참여하고자 하는 분들께 도움이 될만한 내용들을 담아보았습니다.
1. 참여하게 된 계기
저는 정보통신 계열 학과생으로서 컴퓨터네트워크, 자료구조 관련 수업은 들었으나, 데이터베이스 수업은 한 번도 들어보지 못했습니다. 백엔드 개발자를 희망하지만 부끄럽게도 인덱스나 트랜잭션에 대해 제대로 알지 못하는 수준이었습니다. 그래서 늘 프로젝트를 하다가도 데이터베이스 관점으로 문제를 해결해야 할 때, 접근조차 못하는 문제가 있었습니다. 그러던 찰나에 JSCODE에서 데이터베이스 스터디를 5주 동안 진행한다는 공고글을 보고, 이번에야말로 꼭 극복해야겠다고 생각하며, 참여하였습니다.
2. 스터디 진행 방식
스터디는 5주 동안 진행되며, 매주 금요일 저녁 8시 ~ 10시까지 모의면접 스터디가 진행되었습니다. 처음 20분 동안은 멘토님께서 전체 피드백 및 간단한 멘토링을 해주십니다. 멘토링에는 취업과 관련된 내용들(자소서, 포폴, 면접 등)을 현직자 관점에서 이해하기 쉽도록 설명해주십니다. 또한, 자체적으로 LMS를 운영하고 계시다보니 관련 자료를 언제든지 열람할 수 있다는 장점도 있습니다.

약 20분간 멘토링 및 질의응답 이후에 4인 혹은 5인이 1개의 조로 구성되어 모의면접을 진행합니다. 이 때, 스터디원들이 돌아가며 면접자 혹은 면접관 역할을 하게 됩니다. 면접자 역할을 할 때는 공부한 내용을 면접관이 이해할 수 있도록 신경쓰며 답변하는 능력을 키울 수 있습니다. 반대로 면접관 역할을 할 때는 면접자의 답변을 들으며, 면접관의 입장을 이해할 수 있는 시간이 됩니다. 또 중간중간 담당과목의 멘토님이 참석하시기 때문에 타이밍이 잘 맞다면 실제 현직자분께서 면접관 역할로 참여하게 됩니다. (저는 운이 좋게도 두 번이나 현직자 멘토님께서 면접관으로 참여해주셨습니다)
모의면접이 끝나면, 서로 피드백을 하며 멘토님과 자유롭게 질의응답을 하는 시간을 갖습니다. 저는 이 시간동안 정말 많은걸 배울 수 있었습니다. 피드백이라는 것이 성장에 있어서 정말 중요하고, 필요하다는 걸 절실히 느낄 수 있었어요!
3. 5주 간 스터디에 대한 KPT 회고
1) Keep
이번 데이터베이스 개념을 공부하면서 Real MySQL 8.0과 데이터베이스 개론 웹 문서를 바탕으로 학습하고 내용을 정리하였는데, 전체적인 개념을 이해하면서도 디테일한 내용도 학습할 수 있어서 좋았습니다. 또한, 학습한 내용을 남에게 설명하듯이 직접 블로그에 기록함으로써 내용이 더 오래 남았고, 면접 답변에서도 긍정적으로 작용했습니다.
또한, JSCODE에서 주차별로 면접 질문을 제시해주셨고, 이를 기반으로 내용을 학습하다보니 좀 더 효율적으로 CS 공부를 할 수 있었습니다. 그래서 앞으로 공부할 CS도 이처럼 실무에서 주로 물어보는 내용들을 위주로 학습하며, 뿌리를 잡고 그 뒤에 디테일을 채워나가는 방식으로 나아갈 것입니다.
5주간 받은 면접 피드백에서 좋았던 부분 정리
- 프로젝트 관련 내용에 대한 꼬리질문을 받았을 때, 과거의 실수를 설명하고 그 과정에서 배운 점을 설득력있게 잘 설명
- 답변의 톤과 빠르기가 적절했으며, 압박질문에 침착하게 답변한 것이 큰 강점
- 외운 것을 그대로 말하는게 아니라 경험을 토대로 유연하게 답변한 것이 큰 강점
- 간단한 내용에도 예시를 들어서 설명한 부분이 인상적
- 페이스의 큰 흐트러짐 없이 질문에 대한 대답을 잘함
- 답변에 진정성이 있어서 좋았음 (인성질문 답변)
- 잘 모르는 내용에 대해 추가로 공부해보겠다고 답변한 부분이 인상적 (면접 태도)
2) Problem
주차별 학습 내용을 상세하게 적다보니 실제로 말하기 연습에는 많은 시간을 할애하지 못했습니다. 모의면접인만큼 면접에 임하기 위해 필요한 것들을 좀 더 숙지할 필요가 있을 것 같습니다.
또한, 프로젝트 경험을 잘 정리해서 말하지 못하는 문제가 있었습니다. 머리 속으로 알고 있어도 실제 입 밖으로 나오는 것은 생각했던 것보다 더 많은 연습이 필요할 것 같습니다.
5주간 받은 면접 피드백에서 개선할 부분 정리
- 약간의 제스처와 미소와 함께 답변하기
- 효과적으로 의도를 전달할 수 있도록 문장을 좀 더 짧게 나눠서 답변하기
- 이미 알고있는 내용을 답변하더라도 좀 더 생각을 해서 정리하고 침착하게 답변하기
- 간단한 내용에도 예시를 들어서 설명한 부분이 인상적
- 질문이 어떤걸 묻는지 쪼개어서 기억하고, 두괄식으로 답변하기
- 프로젝트에서 겪었던 경험을 상세하게 정리하기
- 예상치 못한 질문을 받았을 때, 잠시 생각을 정리하기
모의면접에서 답변에 어려웠던 질문
- 프로젝트에서 DB 설계 과정에서 겪었던 어려움은 무엇인가요?
- 테이블을 작게 분리했을 때, 단점은 무엇이었나요?
- 외래 키를 잘못 설정했던 흐름을 설명해주세요.
- SELECT FOR UPDATE는 언제 사용하며, 많이 사용할 경우 어떠한 문제가 발생하나요?
- B+Tree가 B-Tree와 다른 점은 무엇이며, 어떠한 장점이 있나요?
- gonghak98 서비스는 유저 요청이 왔을 때 실시간으로 저장이 되었어야하는 프로세스였나요?
- @Transactional(readOnly = True)의 세부 동작 원리는 무엇인가요?
3) Try
1주차 때와 5주차 때를 비교해보면 답변의 퀄리티나 면접 태도 등이 많이 좋아졌다는 피드백을 얻었습니다. 꾸준히 연습을 하고, 학습한 내용 혹은 경험한 것들을 정리하는 습관이 중요하다고 느꼈습니다.
- 프로젝트 경험을 STAR 원칙으로 정리하고, 답변 연습하기
- 스터디에서 학습한 내용을 실제 프로젝트에 적용하여 성능 최적화하기
- Real MySQL 4,5장 + 친절한 SQL 튜닝 1,2,3장 읽고, 내용 정리하기
- 답변하기 어려웠던 질문들 정리해서 답변 연습하기
- 가상면접 사례 책 읽고, 화이트보드 면접 연습하기
4. 정리
5주간 스터디에 참여하면서 나름 강제성이 있으면서도 자율적으로 학습할 수 있었던 시간이었습니다. 또 성장에 있어서 스터디가 왜 필요한지도 알 수 있었습니다. 열심히 참여한다면 그만큼 얻어갈 수 있는게 많은 스터디이니 시간이 된다면 주저하지 말고 참여하시길 적극 권장합니다!
다음은 제가 스터디에 참여하면서 정리했던 내용들입니다.
1) 1주차 : https://whxogus215.tistory.com/145
1. DB와 RDB의 기본 개념
1. 파일 시스템과 데이터베이스의 차이1) 파일 시스템파일시스템은 컴퓨터를 사용하는 우리들에게 가장 익숙한 데이터 저장방식입니다. 엑셀 시트, 메모장, 이미지 등 다양한 형태의 데이터가 SS
whxogus215.tistory.com
2) 2주차 :
https://whxogus215.tistory.com/146
2. SQL
1. SQL이란?SQL은 Strucutred Query Language로 구조화된 질의 언어라고 해석할 수 있습니다. 앞선 포스팅에서 DBMS는 응용 프로그램과 컴퓨터 언어를 통해 데이터를 주고 받으며, 다양한 처리를 한다고 하
whxogus215.tistory.com
https://whxogus215.tistory.com/147
SELECT FOR UPDATE의 권한 범위
SELECT FOR UPDATE는 테이블 내 레코드의 동시성 제어를 위해 사용할 수 있는 SQL 구문입니다. 하지만 SELECT FOR UPDATE를 사용했을 때, 락이 걸려있는 레코드에 대한 접근이 어디까지 제한되는지 직접 실
whxogus215.tistory.com
3) 3주차 : https://whxogus215.tistory.com/148
3. 인덱스
1. 인덱스란?인덱스는 관계형 DBMS가 관리하는 테이블에 존재하는 데이터를 빠르게 조회할 수 있도록 데이터를 저장하는 데이터베이스 객체입니다. 인덱스는 테이블의 특정 컬럼을 기준으로 만
whxogus215.tistory.com
4) 4주차 : https://whxogus215.tistory.com/150
4. 정규화
1. 이상현상정규화란, 릴레이션이 연관된 속성만을 갖도록 분리시키는 것을 말합니다. 이 정규화 작업의 필요성을 알기 위해서는 먼저, 이상현상에 대해 알아둘 필요가 있습니다. 이상현상은
whxogus215.tistory.com
5) 5주차 : https://whxogus215.tistory.com/151
5. 트랜잭션과 회복
1. 트랜잭션과 ACID1) 세션과 커넥션 세션은 사용자가 DB 서버에서 작업하는 논리적인 단위를 말합니다. 다시 말해, 데이터베이스를 사용하기 시작하고, 종료하기까지의 작업 상태를 저장하는 반
whxogus215.tistory.com
'My thoughts' 카테고리의 다른 글
우아한테크코스 2연속 서류 탈락을 한 뒤에 쓴 회고 글 (0) | 2024.12.09 |
---|---|
합격하는 개발자의 자소서, 이력서 특징 5가지 정리 (0) | 2024.09.20 |
언어보단 그림을 (0) | 2024.08.28 |
2024 상반기 ICT 인턴십 코딩테스트 및 지원 회고 (0) | 2024.02.10 |
2023 개발공부 회고록 (1) | 2023.12.17 |