목록Project (20)
만족
얼마 전부터, 불명의 원인으로 서버의 CPU수치가 100%로 치솟으면서 내려오지 않아 서버가 요청을 전혀 처리하지 못하는 현상이 발생하고 있다. 특정 프로세스, 특정 시간이나 특정 주기로 발현되는 증상도 아니고, 어쩔 땐 하루에 두번이나 저랬다가 또 어쩔 땐 몇주동안 발생하지 않는다. 아직 원인을 찾지 못해서 장애를 인지하면 문제가 되는 프로세스를 재시작하고 있다. 현재 서버 내 서비스 구조를 간단히 요약하면 위와 같다. 백엔드 프레임워크들끼리도 특정 기능을 의존하고 있고, DB는 거의 모든 api에서 사용하고 있기 때문에 이들 중 하나만 장애가 발생하더라도 연쇄적으로 장애가 발생한다. 장애가 발생할 경우 빠른 인지, 수정, 복구가 가능해야 하는데, 이 상황에서 가장 중요한 것은 '빠른 인지'기 때문에 ..
https://smallpdf.com/kr/merge-pdf PDF 합치기 - 무료로 인터넷에서 PDF 파일 병합하기 파일 제한, 광고 워터마크 없음 - 사용자가 원하는 대로 완벽하게 PDF를 합쳐주는 무료 온라인 툴입니다. smallpdf.com 별도 프로그램 설치 없이 웹에서 바로 해볼 수 있다. 오픈북 시험의 경우 해당 사이트를 이용해 하나로 합친 후 ctrl+F 로 키워드를 검색하면서 찾으면 빠르게 검색할 수 있다.
웹 1.6.0 버전 이후 모스트 사이퍼/포지션/듀오 정보 표시 방법이 변화되었습니다. 기존에는 전적 페이지에서는 현재 표시되고 있는 전적을 가지고만 분석했었고, 모스트 사이퍼 상세보기 페이지로 이동하면 90일 내 진행한 경기를 모두 불러와 분석했습니다. 그러나 이 방법은 속도가 매우 느리고, 시즌 시작 이후 90일이 지났다면 완전한 데이터를 표현할 수 없게 됩니다. 왜 이런 방식을 채택했나요? 사이퍼즈 OPEN API는 호출 횟수에 한도를 두고 있습니다. 따라서 시즌 내 모든 정보를 불러오게 된다면 API 호출(한번에 최대 90일, 100게임, 하나의 게임 타입) 횟수가 많아져 유저가 몰리는 타임에 서버가 정상적으로 응답을 줄 수 없는 상태에 빠지게 됩니다. (가령 90일 내 100게임 이상을 진행하는 ..
많은 정렬 알고리즘이 있다. 컴퓨터 과학에서도 매우 빈번하게 사용하는 알고리즘이지만, 처음 정렬을 배울 때는 많은 어려움이 있다. 내가 처음 정렬을 배울 때는 첨자 i와 j가 마구마구 바뀌는데 그 안에서 또 스왑하고 뭐하고 하느라 정신없었던 기억이 있다. 요즘 코테공부를 하는 중인데 복습도 할겸 해서 정렬 시각화 웹을 제작했다. SortVisualizer는 정렬 알고리즘을 처음 접하는 사람에게 큰 도움이 될 것으로 생각한다. 디자인에서 똥냄새가 가득하지만 그냥 넘어가자... 애니메이션 속도와 배열의 길이를 지정하면, 지정한 길이로 랜덤 값으로 채워진 배열을 생성한다. 그리고 각 정렬 항목마다 버튼이 있는데, 이것을 누르면 지정한 애니메이션 속도로 정렬 과정을 시각화해서 보여준다. 정렬 방법 중 하나인 병..
키즈스쿨은 유치원알리미(https://e-childschoolinfo.moe.go.kr/main.do;jsessionid=41kaF9gF61z6UtBrX8p288tetI721tGKwc8Raia2pxa8P1JEJgeqR7jbouxEiWup.ies-kirwas2_servlet_engine1)에서 제공되는 데이터를 기반으로 서비스를 제공합니다. 키즈스쿨에서는 서비스 개선을 위해 오류 로그 내용, 문의 접수 시 입력한 내용, 접속 정보를 자사에 보관하며 이 내용은 사용자의 신원과 직접 연결되지 않으며 외부로 유출하지 않습니다. 또한 광고의 경우 구글의 애드센스(https://www.google.com/intl/ko_kr/adsense/start/)를 사용하며, 애드센스 서비스에서 사용자와의 광고 관련성을 높이기..
https://kidsschool.vercel.app/ 키즈스쿨 유치원/어린이집 검색과 비교를 한번에! kidsschool.vercel.app 당신은 새로운 지역에 이사를 온 학부모입니다 내 아이가 다닐 유치원, 어린이집을 어떻게 선정할 수 있을까요? 첫 번째로 맘카페 등의 커뮤니티를 통해 정보를 얻을 수 있겠습니다. 그러나 그 정보들은 주로 개개인의 경험에서 나오는 정보이고, 객관적인 정보에 대한 자료는 얻기 어려울 겁니다. 가령 A유치원이 잘 가르치더라, 아이가 활발해졌더라 같은 정보는 있을지언정, 그 유치원은 스쿨버스가 몇대나 있으며 학생은 얼마나 있는지 등과 같은 정보는 상대적으로 빈약합니다. 그런 객관적인 정보는 교육청에서 서비스하는 유치원알리미를 통해 얻을 수 있습니다. 그러나 몇 가지 문제가..
2020-11-21자로 사이퍼즈 서포터 안드로이드 앱에 광고 제거 상품이 추가되었습니다. 2018-08-31에 첫 출시를 하고, 그로부터 2년이 지난 뒤에야 추가한 이유에 대해 천천히 풀어볼까 합니다. 사실 그 전부터 광고 제거 상품에 대한 요청은 많이 있었습니다. 그러나 제 답변은 항상 '예정에 없습니다' 또는 '고려중입니다' 에 불과했었죠. 여태껏 광고 제거 상품을 꺼려했던 가장 큰 이유는 다음 두 가지 입니다. 첫째로, 기존에 '기부'해 주셨던 분들이 느끼실 박탈감입니다. 사이퍼즈 서포터는 광고 제거 상품이 출시되기 전 까지 광고와 자발적 기부만으로 운영된 서비스입니다. 광고 제거 상품을 너무 저렴한 가격에 출시하게 되면, 기존에 기부 상품을 1000원에 구매하신 분들은 말 그대로 생돈을 날린 것 ..
기존에는 앱/웹과 사이퍼즈 API 서버가 직접 통신했습니다. 매우 간단하고 빠르지만, 치명적인 문제가 있습니다. 사이퍼즈 API 서버가 다운되거나, 점검 상태에 들어가면 모든 요청이 실패한다는 것입니다. 해결법 중간에 프록시 서버를 하나 두어 요청 성공 시 일정 시간동안 그 정보를 저장하고, 사이퍼즈 API 서버가 죽어버리면 저장된 정보를 돌려주는 것입니다. 그러나 이것 역시 문제가 있습니다. 첫째로 한 번도 조회되지 않은 데이터는 프록시 서버에도 존재하지 않기 때문에 오류가 발생한다는 것이고, 또한 거쳐야 하는 서버 갯수가 하나 늘어남으로써 데이터 송/수신 속도가 느려진다는 것이죠. 두 가지 모두 완벽하게 해결할 수 있는 방법은 없으나, 후자의 경우는 비교적 쉬운 방법으로 완화시킬 수 있습니다. 바로 ..