본문 바로가기

Back-End34

[왜 Redis를 사용했는가?] 03. Redis란? Redis에 알아보기 전에 Cache의 개념에 대해 정리하고 가자. Cache Cache란 나중에 요청할 결과를 미리 저장해둔 후 빠르게 서비스해주는 것을 의미한다. 즉, 미리 결과를 저장하고 나중에 요청이 오면 그 요청에 대해서 DB 또는 API를 참조하지 않고 Cache를 접근하여 요청을 처리하는 기법이다. 이러한 캐시가 나온 배경에는 파레토 법칙이 있다. 파레토 법칙이란 80%의 결과는 20%의 원인으로 인해 발생한다는 뜻이다. 즉, 캐시는 모든 결과를 캐싱할 필요가 없으며 서비스를 할 때 많이 사용되는 20%만 캐싱함으로써 전체적으로 효율을 끌어올릴 수 있다는 것이다. 이외에도 메모리 측면의 캐시 개념으로 속도가 느린 장치와 빠른 장치에서 속도 차이로 인한 병목 현상을 줄이기 위한 메모리이다. 실.. 2022. 10. 17.
[왜 Redis를 사용했는가?] 02. In-Memory DB 저번 시간에는 NoSQL에 대해 알아보았다. Redis는 In-Memory NoSQL DB니 이번엔 In-Memory DB에 대해서 알아보자. In-Memory 데이터베이스 인 메모리 데이터베이스는 컴퓨터의 주 메모리에 데이터를 저장한다. 그렇다면 메모리란 무엇일까? 메모리는 컴퓨터 하드웨어 구성요소 3가지 중 하나로 저장을 담당하고 있는 부품이다. 컴퓨터 하드웨어 구성요소 3가지는 아래와 같다. 연산을 담당하는 CPU 기억을 담당하는 주 기억장치 RAM, 보조기억장치 HDD, SDD 입출력을 담당하는 키보드, 모니터, 프린터 등 컴퓨터가 데이터를 저장할 때 사용하는 것이 바로 RAM이고 인 메모리 데이터베이스는 여기에 데이터를 저장한다는 것이다. 그럼 왜 다른 데이터베이스들 처럼 HDD나 SSD에 저장.. 2022. 10. 8.
[Clean Code] 6장. 객체와 자료구조 변수를 private로 설정하는 이유가 뭘까? 은닉하여 캡슐화하기 위해서 일것이다. 캡슐화를 한다면 변수 타입이나 구현을 맘대로 바꿀 수 있게 된다. 그렇다면 왜 수많은 프로그래머가 get, set 함수를 당연하게 public으로 설정해 private 변수를 외부로 노출시킬까? 자료 추상화 // (1) public class Point { public double x; public double y; } // (2) public interface Point { double getX(); double getY(); void setCartesian(double x, double y); double getR(); double getTheta(); void setPolar(double r, double theta.. 2022. 10. 3.
[Clean Code] 5장. 형식 맞추기 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다. 개발자란 결국 함께 하는 직업이다. 만약 형식을 정해놓지 않고 각자 개발을 한다면?? 코드의 통일성이 있지 않아 해석하기 어렵고 각기 다른 형식으로 개발되다보니 유지보수도 어려울 것이다. 그렇기 때문에 형식은 매우 중요한 것 같다. 결국 코드도 의사소통이니 말이다. 그래서 프로젝트를 진행하기 전 코드 컨벤션을 미리 정하고 진행해보았는 데 코드해석도 한결 편해지고 커뮤니케이션 비용이 많이 줄게 되었다. 코드 컨벤션 대부분을 네이버 핵데이 컨벤션을 사용하게 되었는 데 해당 장의 내용의 거의 대부분이 녹아져 있는 것 같아서 신기했다. 좀 더 자세히 알아보자! 형식을 맞추는 목적 코.. 2022. 9. 25.
[왜 Redis를 사용했는가?] 01. NoSQL 프로젝트 진행 중 RefershToken을 저장하기 위해 Redis를 사용하였다. 그냥 사용해봤다가 아닌 Redis에 대한 깊은 이해를 위해 정리해보고자 한다. 이후에는 프로젝트에서 어떻게 인증처리를 했는 지까지 정리해보는 것이 목표이다. 그래서 이번에는 Redis를 바로 알아보기 보단 NoSQL이 무엇인지 왜 사용하는 지에 대해 알아보고자 한다. NoSQL란 ? Not Only SQL의 약자로, RDBMS의 한계를 극복하기 위해 고안된 데이터베이스이다. 스키마가 없거나 느슨한 스키마(비정형 데이터)를 제공하는 것이 가장 대표적인 특징이며, 이를 통해 분산 환경에서 대량의 데이터를 처리하는 데에 최적화되어 있는 데이터베이스이다. 왜 사용하고 등장하였는가? 앞써 RDBMS의 한계를 극복하기 위해 NoSQL.. 2022. 9. 23.
[Clean Code] 3~4장. 함수 & 주석 03장. 함수 프로그램의 가장 기본적인 단위가 함수다. 이 장은 의도를 분명히 표현하는 함수를 어떻게 구현할 지, 함수에 어떤 속성을 부여해야 처음 읽은 사람이 프로글매 내부를 직관적으로 파악할 수 있는 지 등 읽기 쉽고 이해하기 쉬운 함수를 만드는 법에 대해 소개한다. 작게 만들어라! 첫번째 규칙은 함수를 작게 만드는 것이다. 그렇다면 얼마나 작게 만들어야 할까? if/else 문, while문 등에 들어가는 블록은 한 줄이어야 한다. 그러면 바깥을 감싸는 함수가 작아질 뿐 아니라, 블록 안에서 호출하는 함수 이름을 적절히 짓는다면 코드를 이해하기도 쉬워진다. 즉, 중첩 구조가 생길만큼 함수가 커져서는 안된다. 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 한 가지만 해라! 함수.. 2022. 9. 17.