일주일간 나의 흥미를 끈 인사이트는??
Batch Update란 말은 잘 모르지만 MySQL이라는 아는 단어가 나와서 반가운 마음에 글을 읽게되었다. 글을 읽어보니 대량 업데이트에 대한 내용을 담고 있었다. 즉, batch update는 데이터를 실시간이 아닌, 일괄적으로 모아서 수정하는 것을 의미한다. 대량 업데이트를 하는 방법은 JPA를 이용하거나 Exposed를 이용하는 방법으로 2가지가 있다고 한다. 속도차이비교 대상은 JPA의 Dirty Checking Update, JPA의 ID 기반 업데이트 , Exposed의 일반 업데이트와 Exposed의 addBatch를 통한 업데이트로 총 4이다. 결론적으로 Exposed의 Bulk update가 가장 빠르다고한다. 즉, JPA는 대량 처리에 대한 도구로 적절하지 않다는 의견을 내었다. 현재 JPA에 대해 공부하고 있는 입장으로써 만능이라고 생각했던 JPA를 다시 보게 되는 글이었다.
C++을 통해 알고리즘 공부를 통해 함수형 프로그래밍을 직접 해보았다고는 하지만 아직 '함수형 프로그래밍이 좋은 가'에 대해서는 아직도 의문이다. 이 글을 통해 여러 개발자들이 생각하는 함수형 프로그래밍에 대해 알게된 글이었다.
웹어셈블리란 C나 C++와 같은 프로그래밍 언어를 컴파일해서 어느 브라우저에서나 빠르게 실행되는 바이너리 형식(0과 1로 이루어진 이진 형식)으로 바꿔주는 기술이라고 한다. 정확히 웹어셈블리가 무엇이고 어디에 사용되는지 잘 몰라서 어셈블리에 대해 작성한 글을 찾아보았다.
이 글을 보기 전까지 난 웹서버(WS)와 WAS의 차이를 전혀 알지못했다. 두개 다 http기반으로 동작하나 ws는 정적인 데이터(예.html)을 처리하고 was는 동적인 데이터를 다루기 때문에 DB와 연결되어 사용자와 데이터를 주고받고, 조작이 필요할때 was를 다룬다고 한다. 따라서 각 역할에 따라 두가지를 같이 사용한다고 한다. 즉, was는 db조회 및 다양한 로직을 처리하는데 집중하고 ws에게는 정적콘텐츠를 맡김을 통해 기능을 분리해 서버 부하를 방지한다고 한다. 이런 차이를 이제서야 알았다니,,, 지금이라도 알아서 다행이다!
제 2의 언어를 코틀린, 제 3의 언어를 c++로 정했는데 C#,GO,Rust를 권장하라고 발표하다니... 충격이 아닐수 없다
글에서 나온 활용도를 보면
마이크로서비스 구조를 구성해본 기억이 있던 터라 관심이 가서 읽게된 글이었다.
아직은 많이 배워야할 때라 글의 모든 내용을 이해하지는 못했지만 코어 서빙 레이어와 같은 작동 방식을 읽으며(처음 접해서 어려웠다..) 마이크로서비스의 발전 방향을 보고 배울 수 있었다. 마이크로서비스 구조를 통해 데이터처리속도의 향상을 이뤘다는 점에도 흥미로웠다.
조금 많이 어려웠다. 캐시는 들어봤는데 캐시레이어, 캐시 클러스터??? 로컬캐시? 글로벌 캐시? 다 모른다는 것을 알았다..그래서 글과는 별개로 검색했다. http 쪽 공부가 비워져있다는 것을 깨달았다.