BEYOND SW캠프 기록
BEYOND SW 캠프 9기 2주차 회고
거구마말랭이
2024. 6. 30. 15:53
2주차: 6/24 (월) ~ 6/28 (금)
* 데이터베이스 수업
학생 인원이 확정되고, 본격적인 수업이 진행되는 한 주 였다.
일주일동안 데이터베이스 수업을 했는데
되게 많은 양을 일주일 동안 압축 수업한 느낌이었다. (중요한 개념들 위주로 알려주심!)
전공수업 때 배웠던 내용이라 개념 부분은 막 어려운 건 없었는데
활용 예제나 프로젝트 들어가면 어려워지겠지?ㅋ
화장실이 층에 1칸 뿐이라 개강 전 걱정을 좀 했었는데
생각보다 막 불편하진 않았다.
신대방 삼거리 근처에 간판이 맘에 드는 식당이 꽤 있다^^
이 쪽으로 놀러 잘 안오는데
수업 듣는 기간동안 열심히 맛있는 식당을 다녀봐야지
코딩테스트 스터디에 참여하게 되었다!
백준 알고리즘을 풀어보기로 했는데, 나는 자바스크립트 쓰는데 백준 알고리즘에는 없었다!
그래서 코틀린으로 하려고 한다.
근데 안쓴 지 오래 돼서 기억이 가물가물 가물치다.^^ㅎㅇㅎ
하다 보면 다시 생각날 것 같기도...
좋았던 점 (Liked)
- 실습은 같이!
- 이번주는 SQL문 작성하는 시간이 많았는데, 각 SQL문이 어떤 작업을 하는 건지 설명해주시면서 같이 타이핑 하는게 좋았다. 나도 작성하면서 '이게 어떤 것을 위한 구문일까?' 를 고민을 해볼 수 있었다.
- 프로젝트를 미리 준비할 수 있다.
- DB 프로젝트 기간이 형식적으로는 2일이라고 나와있는데, 선생님께서 슬슬 준비하라고 언질을 주셔서 팀원들끼리 모여서 시작했다. 하마터면 프로젝트 발표 직전에 급하게 준비할 뻔했다.
- 코딩 컨벤션과 함께 배우기
- SQL문 작성할 때 되게 길어지는 경우가 많은데 개념 뿐만 아니라 코딩 컨벤션도 함께 알려주셔서 좋았다.
- 6개월 후 현장에 바로 투입될 수 있는 개발자로 육성 시켜주시는 것 같다!
아쉬웠던 점 (Lacked)
- 그 날 수업 내용 정리를 당일에 마무리 하지 못한 점.
배운 점 (Learned)
- DB 정규화 VS 비정규화
- 데이터베이스를 설계할 때 {중복 값이 없는 + 무결성을 지킬 수 있는} 목표로 설계한다.
- 하지만 너무 정규화를 깊게 해버리면 항상 같이 조회되어야 하는 데이터를 JOIN을 거쳐서 해야하는 단점이 생길 수 있다.
- 이러한 trade-off 를 잘 생각해서 데이터베이스 설계를 해야한다. (중복값 vs JOIN 여러번)
- Trigger 사용
- Trigger 란 A 테이블에서 어떤 이벤트(INSERT, UPDATE, DELETE ..)가 발생했을 때, 다른 B 테이블에 어떤 작업을 수행하게 할건지 정의할 수 있는 친구이다.
- 보통 업무 무결성을 지키기 위해 사용된다. (예: 주문 시스템에서, 주문이 발생하면 상품 재고가 줄어들게 한다.)
- 예전에 프로젝트 했을 때에는 백엔드 서버에서 쿼리를 2번 날리곤 했는데, 트리거를 사용하면 좋을 것 같다.
- 근데 여전히 고민인 건 내가 DB에 트리거를 걸어놓았는데, 백엔드 서버를 담당하는 다른 개발자가 내가 만든 트리거가 있는지 모르고 한 번 더 쿼리를 날리지 않을까? 하는 생각이 든다... 선생님한테 여쭤봐야겠다.
- DB에서 작업할지? 백엔드에서 작업할지?
- 마찬가지로 Date 포맷팅과 같은 가공처리도 DB 에서 SELECT 시 내장함수를 사용하여 클라이언트에 전달해줄지, DB는 원자값만 전달하고 모든 가공 처리는 백엔드에서 처리할 지 고민이다.
- 예시: 2024-06-30 Date 타입을 "2024년 6월 30일 (일)" 문자열로 가공하기.
- 이건 팀원들과 얘기해서 룰을 정해야 할 것 같다!
앞으로 바라는 점 (Longed for)
- 지금 처럼 좋아요 !
- 현업 꿀팁 마니 알려주세요 😊