한화시스템 BEYOND SW 캠프 2주차 회고록

김채우·2025년 9월 28일

Main Topic: DB, SQL


한 주간 느낀 점

한 주 5일 동안 6시에 일어나는 습관이 몸에 배어든 것 같다. 교육장까지 가고 오는 것에 문제는 없지만 그 버려지는 시간이 아깝다고 느껴진다. 보통 사람이 많아 지하철에서 앉아올 수 없기 때문에 무언가 생산적인 일을 하기는 쉽지 않다. 짧으면 1시간 30분, 길면 2시간인 이동 시간을 보다 효율적으로 사용할 방법을 모색하는 것이 시급하다.

새롭게 배운 것

이번 주는 MariaDB의 설치와 SQL이 중점이었다. 현재 맥북을 사용하고 있는데 윈도우와는 다른 점이 많아 강사님이 많은 도움을 주셨다. MariaDB의 설치와 활용에 대한 몇가지 의문점과 배운 내용 중 중요하다 여기는 부분을 아래에 기술한다.

1. Mac OS에서의 권한 문제

  • 문제: '%' 권한을 준 사용자가 데이터베이스에 접근 시 권한 부족으로 접근 거절 발생
  • 원인: 한 맥북의 터미널로 접근 시 접근 IP가 localhost로 설정된다. root 계정으로 사용자에게 '%' 권한을 부여해도 터미널로 접근 시에는 '%' 권한이 아닌 'localhost' 권한을 가진 사용자를 찾는다. 따라서 localhost 권한이 없는 사용자는 그보다 상위 권한인 '%' 권한을 가지고 있음에도 접근이 거절된다.
  • 해결: 강사님이 확인해 보신 결과, '%' 권한을 가진 사용자가 외부 IP로 접근 시 접근이 가능한 것으로 확인되었다. 연습 시에는 localhost 권한을 부여하여 진행하였다. 따라서 '%' 권한임에도 접근이 불가한 이유는 맥과 윈도우의 운영체제의 차이인 것으로 생각된다.

2. DBeaver에서 workspace 변경 시 변동점

  • 문제: workspace 변경 시 connection, .sql 파일, 설정 등이 사라짐
  • 원인: 기타 설정들은 workspace로 지정된 폴더에 존재하기 때문에 읽을 폴더를 바꾸면 해당 폴더에도 설정 파일들을 다시 생성해야 함
  • 해결: JDBC, connection을 따로 생성

3. Database의 값이 바뀌었을 때

  • 누가 이전에 조작했는지에 대해 저장하지 않기 때문에 이력을 알기 위해서는 별도의 테이블로 관리해야 함
  • 마찬가지로 시간에 따라 변화하는 값을 추적하기 위해서는 별도의 테이블 관리 필요

4. bind-address에서 0.0.0.0의 의미

  • bind-address는 허용 IP의 종류인데 0.0.0.0은 모든 IP를 허용한다는 의미이다. 개발 중에만 사용하고 추후 배포 시에는 반드시 적당한 값으로 설정해 주어야 한다.

5. % 권한과 localhost의 차이

  • localhost는 내부에서 접근하는 권한
  • % 권한은 외부에서 접근이 가능한 권한

6. AND와 OR의 우선순위

  • AND와 OR 중 AND의 우선순위가 더 높다.

7. 상관 서브쿼리의 단점

  • 메인쿼리의 각 행마다 서브쿼리가 반복되어 재생되기 때문에 자원 사용이 비효율적이다.

8. 상관 서브쿼리와 일반 별칭의 구별

  • 서브쿼리의 내부에 메인쿼리의 별칭이 WHERE 절 혹은 다른 조건절에 들어가면 상관 서브쿼리이다.

9. 인라인뷰 서브쿼리 사용 시 주의점

  • FROM절의 서브쿼리에서 그룹 함수를 사용한다면 그 칼럼에 반드시 별명을 붙여야 한다.

Keep

강의를 잘 듣고 있다. 초등학생이나 들을 칭찬이지만 지각하지 않고, 집중하고, 졸지 않으려 최대한 노력하며 성실히 수업에 임하고 있다.

Problem

SQL에서 JOIN 과 SUBQUERY 부분이 쉽지 않다. 나름 전공 공부를 할 때 좋아하고 열심히 한 부분인데 문제가 술술 풀리지 않으니 자괴감도 든다. 그리고 이번 주에 PCCE를 경험 삼아 보았는데 정말이지 결과가 처참했다. 너무 안 좋은 일만 있는 것 같은데 이 기분을 잘 넘겨야 앞으로 남은 시간 더 열심히 노력할 수 있을 것이라 생각한다. 무너지지 말자.

Try

데일리 스크럼을 잘 하지 못 하고 있다. 이것도 게으름 때문인데 차주에는 꼭 조금씩이라도 데일리 스크럼을 해내자.

profile
예비 백엔드 개발자

0개의 댓글