
코드스테이츠 블록체인 과정 24 일차 후기 😀
📃 배운내용 :
1. MySql - Node.js 연동
✨ 몰랐던 내용 :
1. mysql 의 result.insertid
나는 다른 order_items 테이블에 orders 테이블의 id 값을 넣으려고 했다.
이 때 쿼리를 통해서 orders 로부터 id 를 가져오고 그 id 를 변수에 넣은 뒤 order_items 테이블에 insert 하였다.
근데 이렇게 되면 쿼리를 3번이나 하게 되어서 최적화에 문제가 생기지 않을까 싶은 의문이 들어서 페어는 어떻게 했는지 물어봤다.
내가 했던 방식 :
요청으로부터 파라미터와 body 의 내용을 받아서, orders 테이블에 먼저 값을 삽입 한 뒤 orders 테이블에서 가장 마지막에 삽입된 요소를 받아오기 위해서 order by 와 limit 1을 사용하여 쿼리를 날리고 그로부터 받아온 값에서 id 값을 빼내어 order_items 테이블에 삽입하였다.
총 3번의 쿼리가 발생했다.
1. orders 에 insert 쿼리
2. orders 의 마지막 항목의 id 값 select 쿼리
3. order_items 에 insert 쿼리
굉장히 비효율적으로 느껴져서 2번만에 처리를 원했는데 어떻게 할 지몰랐다.
wanna be
1. orders 에 insert 쿼리
2. order_items 에 insert 쿼리
뭐 굳이 반복문을 쓴다면 서브쿼리를 써서 2번만에 처리가 가능하겠지만 그래도 서브 쿼리 없이 좀 더 효율적인 처리 방법이 없나 찾아보았다.
A ) mysql 의 result (응답) 객체에서 최근 삽입된 id 값을 가지고 오는 메소드가 존재했다.
result.insertId 를 사용하면 최근 삽입한 아이디를 가지고 올 수 있어서
첫번째 orders 의 작업 후에 콜백을 줘서 그 안에 쿼리문을 다시 작성하는데 result.insertId를 써서 가져오면 되는것이었다.
그러면 간단하게 쿼리를 줄일 수 있게 된다.
👨🎓👩🎓 페어와의 활동 내용 :
페어 마지막날이었다. 마지막까지 혼자 힘으로 해결하시는 편이어서 많이 노력하고계시구나 싶었는데,
뭔가 페어분이 자신의 실력을 내 실력에 빗대가면서 말씀하시는게 솔직히 마음은 좀 불편했다.. 그동안 전공자로 생활하면서 4년 이상을 고생했는데 실력이 같으면 그게 더 문제가 아닐까 싶은..
💌 한줄평 :
전공자가 아닌 현업자가 되어야겠다.
'B4 Junior' 카테고리의 다른 글
코드스테이츠 블록체인 과정 26일차 후기 💻 (0) | 2022.06.11 |
---|---|
코드스테이츠 블록체인 과정 25일차 후기 💻 (0) | 2022.06.11 |
코드스테이츠 블록체인 과정 23일차 후기 💻 (0) | 2022.06.04 |
코드스테이츠 블록체인 과정 22일차 후기 💻 (0) | 2022.06.04 |
코드스테이츠 블록체인 과정 21일차 후기 💻 (0) | 2022.05.28 |
백엔드는 못말려
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!