최근 다중 서버 환경에서 로컬 캐시를 글로벌 캐시로 변경해야 하는 상황이 있었는데, 작업을 하면서 예전에 시스템 디자인 강의 때 배운 캐싱 개념을 다시 짚어보게 되었다. Cache 캐시 사용 이유 Repeat: 반복적인 호출이 있는 데이터 Immutability: 정적인(static) 데이터 (html, css, images..) C...
시스템 디자인 개념정리: Latency, Throughput, CDN, Availability
Latency & Throughput 시스템 디자인에서 정말 중요한 개념이다. Latency(지연시간) 네트워크에서 하나의 데이터 패킷이 한 지점에서 다른 지점으로 보내지는 데 소요되는 시간을 말한다. 보통 요청이 왔을 때 요청을 처리하고 응답할 때까지의 시간을 말한다. 일반적으로 Latency는 두 네트워크의 거리가 멀 때 ...
Docker란 무엇인가
배경 Environment Disparity 문제를 해결해준다. 다른 머신에서도 같은 환경을 구현할 수 있다. ex) 작업하는 머신은 윈도우고, 서버 머신은 리눅스라고 할 때, 코드를 고치고 배포할 때 environment disparity때문에 동작을 하지 않을 수 있다. 이때 도커를 윈도우와 리눅스에 설치를 하고, Dockerfile을...
🐥 주니어 성장일기: 2021.05.01
Vue.js 를 처음 접했다. 원래 담당하고 있는 업무의 다른 파트 진행이 더디게 되어서 다른 간단한 업무를 맡았다. Vue.js를 사용해야 했었는데, 그래서 오늘은 간단한 Vue.js 신텍스를 공부하였다. React에 비해서 확실히 배우기 쉬운 측면이 있는 것 같다. React는 어떤 것을 구현할 때 여러 방법 중 하나의 방법을 택해...
🐥 주니어 성장일기: 2021.05.01
🐈 Catchoo 프로젝트 record 조회 시 리턴되는 데이터 변경: catId 삭제, commentId 삽입 전체적으로 수정과 삭제 버그 잡음 게시글 조회 시 삭제된 댓글 나오는 문제 수정 #!/bin/bash REPOSITORY=/home/admin/app/step1/Project_Cats cd $REPOSITORY/c...
🐥 주니어 성장일기: 2021.04.28
오늘은 코드리뷰 전 마지막으로 사수님의 피드백을 받고, 스스로 코드를 점검하며 수정하는 시간을 가졌다. 코드를 돌아봤을 때 아쉬웠던 점은 예외를 처리하는 방어코드를 작성하지 않은 점이다. 작성하지 않은 것뿐만 아니라, 코드를 작성할 때 다양한 예외 상황에 대해 아예 생각하지 못한 것 같다. 혼자 개발할 때는 오직 기능 구현에만 급급하여 발생할...
🐥 주니어 성장일기: 2021.04.27
API Secret Manager 애플리케이션, 서비스, IT 리소스에 액세스할 때 필요한 정보를 보호하기 위해 사용한다. 이와 같은 정보를 하드코딩된 상태로 사용하지 않게 해준다. 리소스의 보안 정보 교체를 중앙에서 할 수 있다. Spring Cloud와 AWS Secret Manage...
🐥 주니어 성장일기: 2021.04.26
첫 배포한 날 첫 작업을 운영 서버에 배포하였다. 아직은 git 이해가 미숙해서 운영 서버에 배포하기까지 실수가 잦았다. 로드밸런서의 종류 클래식 로드 밸런스(ELB) 레이어 4계층에서 작동 하드웨어 영역으로 데이터를 변경할 수...
BFS, DFS
파이썬으로 그래프를 표현하는 방법 파이썬에서 제공하는 딕셔너리와 리스트 자료 구조를 활용해서 그래프를 표현할 수 있음 graph = dict() graph['A'] = ['B', 'C'] graph['B'] = ['A', 'D'] graph['C'] = ['A', 'G', 'H', 'I'] graph['D'] = ['B', 'E', 'F'] ...
🐥 주니어 성장일기: 2021.04.25
오늘은 Catchoo 프로젝트 회의와 ZeroJS 팀D의 스터디가 있는 날이었다. 한 일 🐈 Catchoo 프로젝트 일주일 회고와 회의 회고 프론트엔드팀 (현섭, 해리) 진행상황 공유 리액트 컴포넌트 스타일링 방식 변경: Module CSS → Styled Component 통계 화면 구현 일반 회원가입과 로그인 기능 보완 ...