분류 전체보기 (124) 썸네일형 리스트형 id generator 개발하기 - 2 (타임스탬프) snowflake id에서 첫번째 필드는 보통 그냥 공란으로 둬서 마찬가지로 스킵하겠습니다.(저는 그냥 1로 세팅하겠습니다, 대충 양수임) 다음으로 타임 스탬프 필드에 찍을 스탬프를 제작해보겠습니다. 시작에 앞서 간단하게 제작 과정을 요약하겠습니다. 1. 먼저 베이스가 필요합니다. 2. 다음으로 표기할 현재 시간이 필요합니다. 3. 각각의 DateTime을 Milliseconds로 변환해줄 변환기가 필요합니다. 본격적으로 베이스를 만들어 보겠습니다. LocalDateTime SDTOfAlphabet = LocalDateTime.of(1995, 10, 5, 12, 0, 0); 위처럼 DateTime형식으로 베이스가 될 시점을 하나 만들어 줍니다.(저는 제 생일로 베이스를 정했습니다) 다음으로 아래처럼 표기.. id generator 개발하기 - 1 (개요) 서버쪽에 붙힐 아이디 생성기를 제작해보겠습니다. DB서버에서 auto inc를 이용해 구현한 아이디를 생성기로 커스텀해서 구현하는 작업입니다. 이렇게 굳이 아이디 생성기를 제작하는 이유는 고가용성을 확보하기 위한 첫 단계이기 때문입니다. 회원가입 요청이 분당 매우 많이 발생하는 상황을 가정해 보면 이를 쉽게 이해 할 수 있습니다. 이런 상황에서 가능한 해결법은 크게 두가지로 스케일 업과 아웃이 있습니다. 이때 아웃을 적용하기 위해 필요한 것 중 하나가 바로 아이디 생성기입니다. 회원 정보를 저장하는 2개의 디비 서버가 있다고 생각해보면 상당히 직관적입니다. auto inc를 이용하여 아이디를 구현 한 경우 아래와 같은 문제 상황이 발생합니다. 디비 서버A로 가입 요청이 전달되면 A에서는 이를 1번 회원으.. 가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰 블로그 팔로우인 마이구미님의 포스팅을 읽고 바로 어제 구매했습니다 워낙 흥미로운 내용이라 꼬박 어제 오늘해서 다 읽었습니다 특히 항상 뜬구름처럼 들리던 고가용성 등에 대한 내용은 재밌게 읽혀졌습니다 저도 나름 개인서버에 작은거 하나 운영 중인 만큼 책에서 다뤘던 내용들에 대해 몇가지 구현을 해 볼 생각입니다 아마 가장 먼저 아이디 생성기를 구현해볼 생각입니다 방금 서버에 들어가 확인해보니 역시 유저 데이터를 auto inc를 이용해서 관리 중 이네요😆 확장가능하게 책에 나온 그대로 한번 구현해서 나중에 포스팅 해보겠습니다🍇🍇 알파벳 위키 기능 - 2 바로 전 포스트에서 배웠던 위키 기능을 알파벳 서버에 적용해보겠습니다 두괄식 진행으로 결론부터 먼저 짚고 넘어가겠습니다 결론 위키 기능은 성공적으로 적용되었고, 정상적으로 동작함을 확인했습니다 위키 기능의 적용이 물 흐르듯이 흘러간건 아닙니다 기술 적용 전에 여러가지 고려 사항을 체크 했고, 지금부터는 위키 기능 적용 비하인드 스토리를 서술해 보겠습니다! 1. 서막 위키 웹사이트의 장점은 굳이 서술할 필요 없을 만큼 이미 널리 알려져 있고, 학우분들을 위한 위키의 필요성은 너무 자명했습니다 하지만 이 기능을 어느정도 수준으로 구현할지에 따라서 기술의 난이도는 천차만별이었고, 가장 쉬운 해결법은 이미 존재하는 위키 엔진을 내 서버에 올려 서비스 하는 것 이었습니다 하지만 위키 엔진은 너무 옛날에 만들어져서.. 알파벳 위키 기능 - 1 먼저 개발중인 pagenation에 대해 쓰는게 맞지만, 귀찮아서 지금 하고 있는 위키 기능부터 블로그에 포스팅합니다 위키 기능 관련해서 포스팅 될 주제는 3가지로 아래와 같습니다 1. 간단하게 마크다운 파싱 테스트 2. 위키 문서 정의 및 db 스키마 설계 3. crud api 만들기 오늘은 이 중 첫번째인 간단한 마크다운 파싱 테스트를 오전에 진행했습니다 먼저 마크다운 형식의 텍스트를 파싱하는 곳은 clien side로 정했습니다 서버쪽에서 더이상의 부담을 주기 싫었고, js에서 충분히 해결 할 수 있는 부분이라 이렇게 결정했습니다 이를 위해 메모장을 이용해 아주 간단한 html문서를 작성했고, plain text(markdown 형식의)를 js 스크립트를 이용, html 형식으로 파싱하는 실습을 했.. 2021 UCPC 예선 후기 결과 4솔 93등 (A,B,C,H ) 알고리즘 커뮤니티에서 만난 2분과 예선에 참가했습니다 모두 서로가 초면이었는데 대회 전까지 다들 고생해서 팀 연습에 참가해주셔서 감사해요🥺🥺 팀원은 cndqjacndqja님 ygonepiece님과 함께했습니다 팀명은 "알고리즘빡공방"입니다 대회 전 우리팀의 전략은 남들 다 푸는문제는 다 풀자!였습니다(일명 적어도 브실골은 해결하자) 결과적으로 제대로 전략은 성공했지만, 본선 컷이 5솔로(플래 한문제) 진출에는 실패했습니다 총 4번정도의 팀연습에서 서로의 역할과 팀전략을 만들었습니다 시온님이 풀이 제가 구현 충범님이 테케만들기로 역할은 정했고, 팀전략은 스코어보드를 보면서 빠르게 퍼솔나는, 다른 사람들이 많이 해결한 문제를 찾아 해결하기 였습니다 물론 실제 대회에서는 .. UCPC 예선에 참가합니다 알고리즘 관련 커뮤니티에서 5분만에 모인 팀원분들과 함께 참여합니다 팀원은 저와 ygonepiece님, cndqjacndqja님 이렇게 총 3명입니다 목표는 본선입니다 열심히 준비해서 좋은 추억 만들었으면 좋겠습니다😎😎 알고리즘 문제풀이 복습 1 12015 가장 긴 증가하는 부분 수열2 부분 수열1 문제는 DP로 풀 수 있습니다 하지만 같은 풀이를 여기에 적용하면 수열의 크기가 100만이라 TLE를 받습니다 따라서 dp배열을 보다 빠른 방법으로 채워주어야 합니다 이는 이분 탐색을 통해 해결 할 수 있습니다 수열을 s라고 할때, $dp_{i}$를 $s_{i}$를 끝으로 하는 증가하는 부분수열의 길이라고 정의합니다 그리고 $X_{j}$는 $dp_{i}=j, 1\leq i\leq N$를 만족하는 $s_{i}$ 중 min값으로 정의합니다 이후 dp값을 1부터 N까지 보면서 X의 값 중 이때의 수열 s의 값보다 작은 값을 이분탐색으로 찾아줍니다 이렇게 찾은 X의 인덱스로 dp값을 갱신해주고, 갱신한 dp값으로 X의 다음 인덱스 값을 다시 갱신해주면 문제를.. 알고리즘 포스팅 다시 올리겠습니다 PS를 열심히 하고는 있는데, 과외 끝난 이후 블로그 포스팅은 소홀히 한 것 같습니다 앞으로는 예전처럼 문제 풀이를 블로그에 포스팅해보겠습니다 특히 예전에 못풀었던 문제를 집중적으로 복습하고 있어 중복되는 문제도 적을 것 같네요 아무튼 놀고 있던건 아닙니다🙂🙂 알파벳 로그인 기능 개발기 꼬박 만 하루가 걸린 알파벳의 로그인기능 개발기입니다. 7/6 화요일 오전 10시부터 근장 알바가 끝나는 오후 5시까지 개발했고 7/7 수요일은 오전 11시부터 오후 7시까지(상암 맥도날드) 개발했습니다. 세션 기능을 처음 구현해봐서 학습에 걸린 시간과, 실제 소스코드 생산에 소모된 시간 20%, 그리고 나머지 80%가 디버깅이었습니다😭😭 어떻게 동작하는지는 적당히 책을 반복해서 보면서 이해했고 실제 구현하고 후에 다시 살펴보면서 어렵지않게 진행되었는데, 생각 못한 400번대 response가 떨어져 한참을 헤맸습니다. 결론부터 말하자면 저는 ssl인증을 이미 받았었기 때문에(let's encytrypt), nginx에서 부족했던 설정 몇가지만 만져주면 끝나는 아주 쉬운 일이었습니다. 아무튼 실제로는 아.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 13 다음