Programming
· Programming
결과테스트 세팅:테스트 환경: Mac M1 Air / RAM 16GB / SSD 256GB 테스트 시나리오: 1000명의 동시 사용자가 (약 3초 간격) 15번 반복 조회테스트 목적: 유명맛집에 걸려있는 Cache 성능과 안정성 검증Redis?Redis는 오픈 소스 인메모리 데이터 구조 저장소이다. 여기서 주목할 점은 인메모리 데이터 저장소라는 것!일반적인 데이터베이스와는 다르게 데이터를 메모리에 저장하는데, 하드웨어적으로 RAM 의 읽기, 쓰기 속도가 HDD, SDD보다 매우 많이 빠른 것이  가장 큰 장점이다. 그렇기 때문에, 데이터를 가져오는 속도에서 차이가 난다. 그렇다면 이게 다 일까?그럼 무조건 인메모리 데이터 저장소 구조가 좋은 거야?라고 생각한다면 당연한 것은 아니다!RAM이라는 특성을 생..
· Programming
복잡한 쿼리 어떻게? 여러 다른 서비스에 존재하는 피드들을 해시태그 기반으로 한 곳에서 모아 볼 수 있는 서비스 기능을 개발하는 과정에서, 게시글을 쿼리의 조건별로 필터링과 정렬을 하는 쿼리를 작성해야 했다. Typeorm을 처음 제대로 사용해 봤기 때문에 좀 헤맸지만, 결국 결과물은 만들어 냈다. api 조건을 살펴보자. 위의 내용에서 확인 할 수 있듯이, 쿼리 파라미터로 들어오는 조건에 따라 쿼리의 결과를 동적으로 필터링하여 데이터를 처리하여야 했다. 이 부분에서 typeorm의 querybuilder를 사용하였는데, 발생했던 문제를 기록으로 남겨야 겠다고 생각했다. 구현해야 할 조건은 다음과 같았다. 쿼리로 받아온 검색조건을 반영하여 데이터 처리하기 해당 게시글에 모든 해시태그 같이 보여주기 con..
· Programming
다대다 관계 설정을 위한 매핑 테이블 엔터티 스키마를 작성하는 중, typeorm에서 지원하는 @JoinTable(연결테이블)을 통해서 자동 생성 할 수 있는 것을 배웠다.
· Programming
좋은 코드란 무엇일까? 프로젝트를 반복하고, 서비스를 만들면서 반복되는 코드들을 타이핑하면서 생각하고 궁금해졌다. (몸으로 체감한 궁금증) "좋은 코드는 무엇이고 어떻게 만드는 걸까? 지금 내가 작성한 코드들에서 서비스가 변경되고 확장되면, 새로운 기능에 맞춰서 전체적인 부분을 살펴봐야 하고, 또 오류를 수정하고 이런 일을 반복하면 너무 힘들 것 같은데... 이게 맞나?" 머릿속에서 드는 생각은 현재 내가 작성하는 방식의 코드가 좋은 코드에 충족하지는 않은 것 같았다. 그래서 이참에 제대로 좋은 코드에 대해 학습해 보았다. 이 글의 목적은 "아하, 이런 느낌이구나"를 공유하는 데에 있다. 아래의 세 가지 정도의 기준을 만족하면 좋은 코드라고 할 수 있을 것 같다. 변경사항을 쉽게 반영 할 수 있는가? 일..
사용자를 연구하는 개발자
'Programming' 카테고리의 글 목록 (2 Page)