본문 바로가기

HTTP 리소스 출처 확인하기 - origin, site, Sec-Fetch-Site Header Origin이란?origin은 URL에서 스키마, 호스트, 포트를 합한 것을 말한다. https://www.example.com/foo Url이 있다면, https://www.example.com:443 이 origin이다. same origin 식별 샘플 Sitesite는 TLD(Top-level domains. ex. .com / .kr )과 TLD 이전 도메인의 조합을 말한다.예를 들어, https://www.example.com/foo URL에서 site는 example.com 이다. schemeful same-sitesame-site는 schema를 보지 않는다. 그러나 http가 취약 채널을 통해 사용되는 것을 막아야하는 경우, same-site보다 더 엄격한 기준인 schemeful same..
Cursor Pagination - 대용량 데이터에 페이지네이션 적용하기 이 글에서는 Offset Pagination의 단점과 Cursor Pagination의 장점에 대해서 설명하고자 합니다. Pagination은 가장 대중적으로 사용되는 Offset Pagination과 Cursor Pagination으로 나뉩니다. Offset Pagination offset pagination이란, page 혹은 offset/limit을 지정하여 데이터에서 pagination 된 결과를 조회하는 방식을 의미합니다. /article/?offset=10&limit=10 /article/?page=1 이와 같은 쿼리 파라미터를 전달하는 경우, 아래와 같이 쿼리로 데이터를 조회합니다. select * from article limit 10 offset 20 offset pagination 방식..
Beams - 일본 온라인 셀렉트 숍 살펴보기 Beams는 일본의 1세대 셀렉트 숍이다. 최근 빔즈는 온라인 셀렉트숍으로서 여러 시도를 하고 있는 것으로 보인다. 이 포스팅에서는 Beams 사이트를 살펴보면서 느꼈던 점들을 정리해보고자 한다. Beams 사이트는 최근 국내 온라인 셀렉트샵 서비스와 유사한 점이 꽤나 많았다. 전반적인 트렌드가 다 비슷해져가는 것 같다. 공통적인 요소들은 아래와 같다. 웹으로 매거진 콘텐츠를 제공하기 일반인 / 직원들의 패션을 공유하기 영상 콘텐츠를 상품 / 브랜드별로 노출하기 라이브 영상 콘텐츠 제공하기 이 외에도 라디오 서비스 등을 시도하고 있다. 매거진 컨텐츠 웹 매거진 콘텐츠 잡지의 느낌을 온라인으로 잘 옮겨낸게 흥미로웠다. 여기서 상품을 클릭하면, 상품 상세 페이지로 이동한다. THINGS WE LOVE vol..
XY Problem 이란? XY Problem이란? XY Problem은 실제 문제보다는 문제를 해결하기 위해 시도한 해결방안에 대해 묻는 것이다. XY Problem은 도움을 요청하는 사람과 도움을 제공하는 사람 모두에게 많은 시간과 에너지를 소모하게 만든다. 이 상황에 빠지게 되면, 사람들은 해결방안이라고 믿는 것에 집착하게 된다. 그래서 한발짝 물러서서 그 문제를 설명하지 못하게 만든다. XY Problem이 발생하는 순서 요청자는 X를 하고 싶어 한다. 개발자는 X는 모르겠지만, Y를 하면 문제를 해결할 수 있다고 생각한다. 요청자는 Y도 할 줄 모른다. 요청자는 다시 Y에 대한 도움을 요청한다. 다른 개발자가 Y로 요청자를 도와주려고 하지만, Y가 해결하고자 하는 것이 이상해보이기 때문에 혼란스러워한다. 많은 커뮤니케이션..
(Istio) Traffic Management - Network resilience Istio의 Traffic Management 기능은 네트워크의 탄력성 (resilience)을 높이는 역할을 담당하고 있다. 이를 위해 failure recovery 기능과 fault injection feature 기능을 지원한다. 특정 노드에서 네트워크 오류가 발생하면, Istio는 의도적으로 결함을 일으킨다. 그리고 그동안 서버가 복구될 수 있는 시간을 확보한다. 이러한 방식은 특정 노드의 장애가 전체 노드에 전파되는 것을 막는다. 이는 Fault tolerant 시스템을 가능하게 해준다. 덕분에, 일부 서비스에서 결함이 발생하더도, 전체 서비스는 잘 운영될 수 있다. Timeouts Envoy proxy가 서비스 노드에서 응답받아야하는 최대 시간을 의미한다. 이 시간내에 응답하지 않으면, HTT..
Symspell 알고리즘 살펴보기 Symspell은 "오타교정", "유사검색어 제안" 기능에서 활용되는 알고리즘이다. Peter Norving도 오타교정에서 유명한 알고리즘이다. 그러나 연산비용이 높기 중국어 같은 언어에서는 활용할 수 없다는 한계점이 있다. ( 글자를 표현하는 유니코드의 종류가 다양하기 때문에 후보군을 모두 계산하기 어렵다. ) Symspell 알고리즘은 Peter Norving 알고리즘의 단점을 보강한 알고리즘이다. 그래서 Peter Norving에 비하여 빠르고, 여러 자연어에서도 활용할 수 있단 장점이 있다. Symspell은 두가지 접근방법 덕분에 연산 비용을 줄이고, 속도를 개선할 수 있었다. 오타 후보군을 사전에 계산하기 DELETE 방식으로만 후보군 계산하기 오타 후보군을 사전에 계산하기 symspell은 ..
ngrok - 외부에서 로컬 컴퓨터에 접속할 수 있게 만들기 ngrok 로컬에서 실행중인 서버를 외부에서 접속할 수있도록 도와주는 프로그램이다. ngrok은 로컬에서 개발 중인 API와 웹페이지를 다른 컴퓨터에서 조회해야할 때 유용하다. 예를 들어, 로컬에서 띄운 포트인 "localhost:3000"를 "a6fee076.ngrok.io" 처럼 도메인을 만들어주고, 도메인을 통해 외부에서 접속도 가능하게 해준다. 설치 ngrok 사이트, npm, brew 등으로 설치하면 된다. npm install ngrok 실행 ngrok http 3000
Peter Norvig’s 알고리즘 살펴보기 Peter Norvig’s은 대표적인 오타교정 알고리즘이다. 피터노빙 알고리즘을 사용하면 오탈자 키워드가 Input 값으로 주어졌을 때, 해당 오타 키워드를 교정한 단어를 Output으로 주는 함수를 만들 수 있다. 동작 원리 첫번째 단계 : 단어 사전 구축 하기 1. 교정 사전으로 활용할 텍스트 파일을 준비한다. 2. 텍스트 파일에서 단어와 언급수를 계산해둔다. 단어가 언급된 수는 오타 교정 후보 단어가 여러개 나온 경우, 교정 단어의 우선순위를 정할때 사용한다. 두번째 단계 : 키워드 교정하기 1. 검색 키워드를 오타교정 함수에 전달한다. 2. 단어 사전에 있는 키워드인 경우, 그대로 키워드를 반환한다. 이 경우, 검색 키워드가 표준어라고 볼 수 있기 때문이다. 3. 단어사전에서 키워드를 찾지 못한 ..