TechLog
TIL

TIL

TIL stands for Today I Learned.

This page is for notetaking and scribbles of lesson learned today, and is flushed to formatted writings at the end of the week.

Notes

truffle

pnpm brownie

sso

oauth

distributed logging

sql injection

api gateway -> need local guard, jwt guard

https://github.com/nestjs/nest/issues/2343 (opens in a new tab) => nestjs microservice configurtion using @nestjs/config

auth service -> issue & validate access/refresh token

opensearch query

logging

https://opensearch.org/docs/latest/api-reference/document-apis/bulk/ (opens in a new tab)

opensearch 활용도

what does it mean to become sso provider

idp sso vs service provider sso

where i start login process -> begin at identity provider vs applcation https://www.youtube.com/watch?v=WhwxPFmXitQ (opens in a new tab) man in the middle attack in idp initated sso -> configure minimum posisble resposne start -> implement replay detection to prevent unauthroized access

phoning home problem https://www.youtube.com/watch?v=AnhkrzZb0rs (opens in a new tab) https://www.reddit.com/r/explainlikeimfive/comments/y7inay/eli5_what_does_phoning_homecalling_home_means/ (opens in a new tab)

elastic search vs opensearch

nosql versioning 몽고디비

Later in the gateway, we can add local guard and authguard

postman flow openapi (formerly swagger)

checking mau using elastic search

cypress for frontend e2e testing

think about a way to effectively rebase commits from feature rebasing from github changes commit hash, and thus i have to merge again in my feature branch, which is extremely annoying https://stackoverflow.com/questions/18021888/continue-working-on-a-git-branch-after-making-a-pull-request (opens in a new tab)

Openwallet Foundation report https://openwallet.foundation/ (opens in a new tab)

https://project.linuxfoundation.org/hubfs/LF%20Research/OpenWallet%20Open%20Digital%20Wallet%20-%20Report.pdf?hsLang=en (opens in a new tab)

How to perform join in document model? Is that even necessary? 어쩔수 없이 application level 에서 확장성이 일어났을경우 대처 ->

https://discuss.pytorch.kr/t/gn-vector-database/1516 (opens in a new tab)

https://bbaktaeho-95.tistory.com/107 (opens in a new tab)

https://breezymind.com/vector-db-openai-response-optimize/ (opens in a new tab)

what is sso https://toma0912.tistory.com/75 (opens in a new tab)

becoming sso provider

how to make a/b testing

github issue 와 pr을 구분해서 댓글달자 ex. pr -> 코드적인 부분, issue -> 컨셉에 관한 부분

bug report -> 어떻게 해야 버그가 재현되는지, 어떠한 api들에서 장애를 일으키는지 확인할것

incognito: 캐시를 안쓰는것이 아니다.

how i wrote trash code, and how i learned the approaches to make it more reusable

https://logical-code.tistory.com/211 (opens in a new tab) facade vs api composition

https://toss.tech/article/slash23-server (opens in a new tab) DID

zero trust https://toss.tech/article/22565 (opens in a new tab)

https://github.com/hydradatabase/hydra (opens in a new tab) 삼성 -> 다중 리더 (글로벌 서비스의 경우)

sharding sphere

https://shardingsphere.apache.org/ (opens in a new tab) 샤딩을 구현해두고 데이터를 조회할때 count/groupby 나 offset단위 질의 구현이 어렵더라고요. 찾다보니 오픈소스가 있어서 사내 관리툴(어드민)에 적용중인데 공유 드려봅니다~ https://shardingsphere.apache.org/ (opens in a new tab) 샤딩의 트레이드 오프를 해결하는데 도움 받았어요ㅎ read에서만 사용중입니다 샤딩 스피어의 글로벌 테이블..?

https://github.com/apache/shardingsphere#solution (opens in a new tab) distributed transaction 가능

proxy vs jdbc

https://techblog.yogiyo.co.kr/%EC%A3%BC%EB%AC%B8%EC%84%9C%EB%B9%84%EC%8A%A4-shardingsphere-proxy-%EB%8F%84%EC%9E%85%EA%B8%B0-46d83084586b (opens in a new tab)

레디스 -> https://redis.io/docs/reference/cluster-spec/ (opens in a new tab) 싱글리더, 다중 클러스터 다중 리더라기 보단 다중 마스터 (슬롯을 각각 관리하는..) 사용 -> 책에선 같은 데이터를 관리하는 리더를 사용 (zone 간 관리) 같아요

핫키 -> 분산시켜서 쓰기로 한다

query model들을 다중 노드에 대한 접근의 대안? query model 이런 경험은 있을까?

s3, hadoop 에 날짜/폴더별 파티셔닝 map reduce로 처리

파티셔닝의 문제 -> 여러 노드에 질의를 해야하는것. oltp 처리할때 여러 노드에 처리해ㅑㅇ할 경우 캐바캐? 상황에 따라 다르게 접근

  1. 비동기로 전역 복제가 된 곳에서 처리를 한곳
  2. 그냥 여러곳에 리퀘스트
  3. 2차 테이블 (n-view 포스트그레스: 캐쉬 용도에 가까움) (Airflow , script 등으로 만들었었어요)
  4. 메타데이터 애들은 그냥 모든 파티션에 넣는다

toss web service cache https://toss.tech/article/smart-web-service-cache (opens in a new tab)

browser 은 head/get 요청의 response를 자동으로caching 한다 -> 어떻게 알게 되엇나? Get 요청이 있엇는데, 이 값을 바꾸어서 배포했따. 배포 처음에는 근데 옛날 기능처럼 작동하다가, 캐시를 지우고 나서족므 시간이 지나니 의도한대로 작동을 하였다.

google zanzibar research 해보기

https://www.youtube.com/watch?v=NsKvCCMuJdY (opens in a new tab)

implala, druid for olap

lsm -> append only -> cant lcok -> thus cant guarantee transaction

https://tikv.org/deep-dive/key-value-engine/b-tree-vs-lsm/ (opens in a new tab)

pod 에서 pod로 데이터를 넘기는 방법?
argo pipeline airflow

하위 호환성 -> argo airflow, kafka

kafka message -> message 의 버젼을 찍어놓고 버젼이 안맞으면 파싱

leetcode, github -> graphql

graphql 도입 -> 하이리스크 하이리턴, 보안 이슈가 있다 scope 마다 줄수있는 필드를 정의해야하기때문

typeorm save vs update performance

https://seungtaek-overflow.tistory.com/11 (opens in a new tab) upsert

validate -> request.user should be set as user id?

what does JWTExtractor do exactly?

refresh token을 저장하는 방법 -> 신기 단순히 쿠키에 저장하는것이 아니라 세션에 저장하면, 여러 유저가 한개의 계정으로 로그인하는것을 방지할 수 있다. 쿠키로 하면 안되나? 쿠키로 할 경우, refresh token에 대한 가드를 추가해주면 되긴하지만, 굳이..?