오늘 배운 내용
새로 알게된 점
겉핥기 식으로 DB와 Spring을 공부했기 때문에 DB연결과 관리 모두 프로젝트 내부 문서에서 진행하는 줄 알았는데, 3일동안 네트워크, 리눅스, 서버 클라이언트 개념을 배우면서 아예 잘못된 개념이었다는 사실을 알게 되었다.
코드를 짜지 않아도, sql을 직접 쓰지 않아도, 쓸 줄도 모르는 도커로 DB를 켜두지 않아도 내가 직접 가상머신에서 서버를 킨 후 네트워크 지식을 활용해 DB 접속부터 사용까지 할 수 있다는게 놀라웠다.
항상 개발자를 코드 짜는 사람이라고 생각했었지만 하루하루 교육을 들으면서 특히 백엔드 개발자는 절대 코드를 짜는 사람이 아니라는 사실을 깨닫는 것 같다.
DB가 무엇인지, 왜 쓰게 되었는지, 백엔드 엔지니어를 희망하는 내가 DB를 어떻게 다뤄야 하는지 개론적인 지식을 정말 많이 얻은 하루였다.
부족했던 점
ERD에 대한 이해도가 상당히 떨어져 있는 것 같다. 자바를 처음 배울 때 클래스, 상속 개념을 머리에서 이해하려고 노력하던 때와 비슷하다.
대략적으로 원리나 개념은 알겠는데 막상 실제 케이스를 만들어보고 그려보니 시작부터 진행도 안되고 거의 4시간 가까이를 맞는지 틀린지 고민해가며 다이어그램을 만들었다.
배운 첫 날이라 어려운 개념인건 맞지만 아직 어떤 방향으로 접근해야 하는지 감이 잘 안온다.
머리속으로 오늘 배운 개념을 적용하여 ERD를 만들어 보면 수십가지의 방법이 쏟아져나오고 매번 맞는 것 같다가도 조금 더 생각해보면 틀린 것 같은 생각이 든다.
절대적인 케이스를 많이 접해보지 못해서 그런 것 같다고 느끼는데 스터디를 좀 활용해보면 어떨까 생각이 든다.
실제 개발까지 착수하진 않더라도 클래스 만드는 연습을 계속 해보는 것과 비슷하게 서비스를 정하고 요구사항을 여럿이 정의해보고 서로의 ERD를 비교하며 토론하는 정도의 스터디면 조금 더 빠르게 감을 잡을 수 있을 것 같다.
생각해볼 점
yum의 동작 원리에 대해 궁금증이 생겼다.
맥의 brew도 이와 비슷한 동작 원리를 갖고 있는 것 같은데, 수업 중에 mariadb라고 다운받으면 클라이언트가 다운 받아지는 문제가 있었다.
이를 해결하는 방법 중 하나로 강사님이 yum이 참조하는 링크 리스트에 mariadb 서버가 있는 링크를 추가하는 방법에 대해 이야기 해주셨다.
추가적으로 어떻게 mariadb가 대놓고 mysql과 똑같이 동작하고 몇몇 디렉토리 및 파일의 이름이 mysql로 되어있는지 궁금해졌다.
실제로 리눅스에
systemctl start mariadb
명령어 입력시 실행되지 않고
systemctl start mysql
위 처럼 mysql을 입력해야 실행되는 것, 포트도 3306을 쓰는점, mysql 클라이언트로 mariadb사용이 되는 점이 그냥 순수하게 궁금해졌다.