본문 바로가기

전체 글38

조금 이른 2022 회고 끝 그리고 새로운 시작 2022년 2월 졸업을 한 뒤 22년이 가기 전에 취뽀를 하게 되었다. 이렇게 빨리 취업하게 될지는 몰랐지만, 그간의 노력이 빛을 볼 수 있어 다행이라고 생각한다. 2022년이 가기 전에 조금 빠르지만, 회고와 마음가짐을 정리해보고자 한다. [21.11월] 우아한 테크코스 탈락 2021년의 나 당시 나는 6개월간의 학부 프로젝트 2개를 경험하였고 경진대회에서 상도 받았지만 할 줄 아는 것이 없었다. CS 지식도 부족하였고 프로젝트에서 사용한 기술 스택에 대한 이해도도 아주 낮았다. 그렇다 보니 취업하기에는 아직 준비가 안 되었다고 이력서도 쓰지 않았다. 지금 생각해보면 어리석은 선택이었던 것 같다. 지원과정뿐만 아니라 운이 좋아 면접까지 가보았다면 분명 얻는 것이 있을 텐데 빠르게.. 2022. 12. 18.
[왜 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.