[6.30]
·
데일리 플랜
1. 알고리즘리트 코드 [https://leetcode.com/problems/knight-probability-in-chessboard/description/] 리트 코드 [https://leetcode.com/problems/find-in-mountain-array/description/2. 백엔드 팀원 모집 글 전송[https://github.com/huhdy32/solved-rank]3. 단일 문제 저장 기능 구현[https://github.com/huhdy32/solved-rank]4. 이력서 작성 ( 표준화된 방식 )
꾸준함을 위해서
·
이것저것
꾸준해야한다는 강박에서 벗어나 순간순간에 집중하도록 한다. 꾸준해야한다는 말에 매몰되어 하루를 놓쳤을때 이 실패감이 다음날, 다다음날에까지 영향을 미친다.이 대신, 매일매일 계획을 세우고 순간순간에 집중하도록 한다. 시작은 지금 당장. 이제부터의 계획은 다음과 같다. 1. 매일 아침 8시, 하루의 계획을 블로그에 작성한다. 2. 매일 저녁 9시, 하루동안 학습한 내용을 블로그에 작성한다.3. 매일 저녁 10시, 해당 진행정도를 블로그에 작성 한다. 4. 안산학생 데일리 인증에 내 블로그 링크를 작성한다. 하루 실패해도 괜찮다. 하루의 시작을 전날의 실패감으로 시작하는 대신, 매일 아침 위 목록을 지키는데서 하루의 의미를 찾자.
Cache Strategy
·
Spring
캐시란?캐시란, 데이터 접근속도를 높이기 위해 원본 데이터를 복사하여 미리 저장해두는것을 의미한다.메모리 Hireachy에 따라, 상단으로 올라갈수록 접근 속도가 높은 대신 저장공간이 작으며, 하단으로 내려갈수록 속도가 낮은 대신 저장공간이 크다. 원본 데이터는 일반적으로 보조 기억 장치 레벨에 저장되며, 이에따라 접근 속도는 현저히 떨어진다. 캐시는 보조 기억 장치에 저장되는 데이터들을 메모리 레벨에 미리 저장해둠으로써 응답속도를 비약적으로 개선한다.하지만, 다음과 같은 세가지 쟁점이 뒤따른다.캐시 저장 데이터캐싱을 사용함으로써 빠른 접근속도를 가지는 대신, 작은 저장공간을 가진다.따라서, 어떤 데이터를, 얼마나, 어떻게 저장할지 고민해야한다.데이터 불일치원본 데이터를 복사하여 저장됨에 따라, 캐시에..
질문 도메인 최적화 과정
·
한편의 수학 학원
이번 포스팅에선, 한편의 수학 질문 게시판 성능 최적화 과정을 어떻게 이뤄냈는지 설명한다.1. 문제점 파악질문 게시판 기능뿐만 아니라 어플리케이션의 모든 기능들은 모놀리식 아키텍쳐로 구성됐다.200명 정도의 사용자임에 따라 문제가 없을거라 예상했지만, 게시판 동시 조회 시 응답속도가 현저히 낮아지는 문제가 발생했다.파악된 문제점들은 다음과 같았다.1. 조회수 락으로 인한 응답속도 저하조회수는 실시간성이 중요한 데이터 도메인이다.사용자는 자신의 조회수가 실시간으로 반영되어 있지 않다면, 사용감에 부정적인 영향을 줄 수 있다.또한 동시접근이 빈번함에 따라, race Condition이 빈번히 발생할 가능성이 존재한다.기존 모놀리식 어플리케이션에선 Row Level Lock ( X-LOCK )을 통해 race..
API 테스트 하는데... 인증까지 매번..?
·
한편의 수학 학원
🙈 1. 문제 파악API 구성에는 인증과 인가가 항상 뒷따르게 됩니다.이와 관련된 보안 로직은 필수적이지만, API 응답을 직접적으로 테스트하려면, 인증과 인가 로직을 테스트 시 불필요하게 포함하지 않고, 원하는 로직만 검증하는 것이 중요합니다.기존에는 보안 관련 로직이 중복되면서, 입력 형식을 테스트하는 과정에서도 인증 정보가 반드시 필요하게 되어 다음과 같은 문제가 발생했습니다.입력 형식을 위한 테스트에 불필요한 인증 로직을 포함해야 하는 문제예: JsonBody가 매핑되는지 확인하기 위해 인증을 포함해야 했음.인가 테스트를 위해 현재 사용하고 있는 로그인 구현체에 의존해야 하는 문제예: Authorization 헤더를 통해 직접 토큰을 생성하는 방식에 의존하게 됨.💡 2. 해결 방안테스트 각각에..