오전에는 프로그래머스의 문제 행렬의 덧셈과 내적 문제를 풀었다. 둘 다 레벨 1의 문제였지만, 어느정도 개념만 잡혀있다면 0 레벨 문제와 비슷해서 금방 풀 수 있었다. 인덱스에 대한 개념만 잡혀있고, 2차원 배열이 나왔을 때, 2중 for문 혹은 map 메서드를 안다면 해결이 가능하다.
오후에는 nestjs와 mysql을 연동해서 직접 테이블을 만들어 보는 수업을 했다. 처음에 아무 생각없이 프로그램을 실행했을 때,db에 연결이 안되는 오류가 발생해서 많이 당황했지만, 다시 연결을 해보니 제대로 연결이 되었다. 그 후 만든 board테이블이 생성되었고, 안에 컬럼들도 설정해준대로 제대로 들어가 있는 상태였다. nodejs에서 nestjs로 넘어오면서 많이 복잡해지고, 설정해줘야 하는 부분이 늘어나서 어질어질한 상태로 계속 하다보니 정신이 없었다. 그래도 성공적으로 마쳐서 다행이다.
요즘 각광을 받고 있는 typescript와 연동되어서 쓰이는 관계형 데이터 베이스 orm으로 typeorm이 있다. 여기서 orm은 객체와 관계를 매핑시켜주는 역할을 하는데, 즉 우리는 모델을 정의할 때 클래스를, db에선 테이블을 사용하는데, 이 클래스와 테이블을 연결시켜주는 일을 한다.
TypeORM은 여타 다른 orm들과 달리 액티브 레코드 패턴과 데이터 매퍼 패턴을 지원한다고 나온다.
액티브 레코드 패턴은 모델 자체 내에서 모든 쿼리 메서드를 정의하고 모델 메서를 사용하여, 오브젝트를 생성, 삭제, 조회, 수정할 수 있게 하는 방식이다. 데이터 매퍼 패턴은 레포지토리라는 별도의 클래스에서 모든 쿼리 메서드를 정의하고, 이 레포지토리를 사용하여 오브젝트를 생성,삭제,조회,수정할 수 있는 방식이다.