한화시스템 23기 2주차 회고

hoony·2025년 11월 30일

한화시스템 23기

목록 보기
1/12

📚 이번주엔 뭘 배웠지?

[수업 과정]

1) 데이터 타입

  • 정수(tinyint / int / bigint)의 차이와 실제로 id 컬럼을 bigint로 변경하는 실습
  • 실수(decimal)와 고정 소수점 vs 부동소수점
  • 문자 타입(char, varchar, text)의 차이
  • 이미지·파일용 blob
  • 옵션이 제한된 enum
  • 날짜 타입(date, datetime), default current_timestamp

2) 제약 조건(PK, FK, UNIQUE, NOT NULL)

  • FK 삭제 및 재추가
  • on delete / on update 옵션 테스트 (restrict, cascade, set null)
  • unique 삭제는 index 삭제가 필요하다는 점

ex) on delete/on update 제약조건 변경 예시
alter table post add constraint post_fk foreign key(author_id)
references author(id) on delete set null on update cascade;

3) 조건문 · 패턴 검색

  • like, regexp
  • cast / date_format 등 타입 변환

4) 트랜잭션(Transaction)

  • start transaction ~ commit / rollback
  • 프로시저로 rollback 자동 처리
  • 멀티스레드 환경에서의 동시성 문제

5) DB 격리수준(Isolation Level)
-- DB의 트랜잭션끼리 서로 간섭 못하도록(동시성 문제) 두는 장치

  • read uncommitted → dirty read
  • read committed → non-repeatable/phantom read
  • repeatable read → lost update 발생
  • select for update로 lock 걸기
  • serializable의 성격
  • 낙관적 락 개념
  • Redis로 동시성 해결하는 패턴

6) JOIN · 집계함수 · 그룹핑

  • inner / left / right join의 차이
  • union, union all
  • 서브쿼리 (where / column / from)
  • group by + count, avg, sum 활용
  • 이번 주는 “DB를 실제로 다룰 수 있는 능력”을 확실히 다지는 주차

[코딩테스트-알고리즘]

자료구조 : 큐, 해쉬맵, 스택
함수 구현 : 소수 판별, 최소공배수, 최대공약수, 이항계수
String 함수 : contains, isDigit, matches(자주쓰지말기)
cs : 버퍼

👊 어떤 문제점이 있었지?

[수업 과정]

  • 쿼리작성시에 날짜타입 변환하기 위해 cast를 사용시 문법을 자주 헷갈렸다
    ex) select * from post where cast(date_format(created_time, '%m') as unsigned) = 1;
  • 강사님이 내주는 실습문제를 조인과 서브쿼리를 활용하여 해결하는데 헷갈리는 부분이 많았다.
    ex) 글 안쓴 사람도 0개로 카운트해서 출력
  • 트랜잭션과 동시성 부분은 개념이 많고 실습도 중요해서 처음엔 머릿속에서 잘 정리가 안 됐다.
  • repeatable read에서 값이 “스냅샷처럼 고정되는 이유”가 와닿기까지 시간이 좀 걸렸다.

[코딩테스트-알고리즘]

자료구조에 대해 몰라도 너무 몰라서 자바책을 꺼내 볼수 밖에 없었다.(물론 chatGpt의 도움이 많이 컸다)
함수에 대한 활용 , 함수 구현하는 방법을 공부를 해도 자주 까먹는다.

🙏 무엇을 깨달았고, 어떤 생각이 들었지?

[수업 과정]

  • 이전직장에서 join을 이용한 쿼리를 조회했었지만 잘 모르고 조회했었던거 같다는 생각이 들었다.
  • cascade 조건이 흥미로웠다.
    실습을 통한 쿼리를 직접 작성하고 결과를 확인해야
    정말 자신이 이해하고 있는가에 대한 느낌에 조금 더 가까워지는 것 같다.
    또한 기초가 탄탄해야 복잡한 쿼리와 최적화도 자연스럽게 이해할 수 있을거 같다.
    이번 주는 “왜 데이터베이스가 어려운지, 그리고 왜 중요한지”를 몸으로 느낀 주였다.

[코딩테스트-알고리즘]

문제를 풀어서 양을 늘리는것도 중요하지만 내가 푼 문제를 확실히 이해하고 있는지가 더 중요한거 같다.
스터디를 해야 하는건지에 대한 생각이 들었다. 아직 고민중이다.

😄 결과적으로, 현재 나의 상태는?

[수업 과정]

복잡한 쿼리에 대한 숙련도는 아직 부족하다.

[코딩테스트-알고리즘]

내가 코드를 작성하면서 코드의 설명도 할줄 알만큼의 이해에 대한 깊이가 없는거 같다고 느꼈다.
본격적인 알고리즘(DP, DFS, BFS 등)에 대한 공부 과정에 들어가고 있다.

👨‍🚀 앞으로 어떻게 하는게 좋을까?

다음주 DB프로젝트들어가기전에 강사님이 공유해주신 구글시트 자료를 통해 기초를 탄탄히 할 예정이다.

profile
코딩정복하자

0개의 댓글