로그 모니터링 운영환경에 애플리케이션을 배포하고 서비스를 운영하다 보면 경험해보지 못한 오류를 마주치곤 합니다. 우리는 이러한 상황에서 좀 더 효율적으로 오류를 분석하고 대응하기 위해 ‘로그’를 남겨 놓습니다. 로그를 남기는 방법 또한 다양합니다. 시스템 로컬에 파일로 남기거나 특정 로그 서버를 설정하여 여러 대의 서버 로그를 한곳에서 볼 수도 있...
static 메소드 vs @component 메소드 (feat.싱글톤 패턴)
들어가며 스프링 프로젝트를 하면서 공통 클래스(예를 들면 유틸 클래스)를 만들 때 보통 static 방식과 @Component방식을 자주 사용합니다. 이번 포스트에서는 이 두 방식의 차이점과 장단점을 살펴보고 각각 어느 상황에 써야 더 효율적이고 스프링다운지 알아보도록 합시다. 예시 상황 예시로 상황을 그려봅시다. 스프링 프로젝트를 진행하면서 ...
IP 주소와 CIDR
네트워크를 만지다 보면 CIDR 개념을 자주 접하게 된다. 풀어 쓰면 Classless Inter-Domain Routing 이며 말 그대로 클래스 없는 도메인간 라우팅 기법이라는 뜻이다. 이를 이해하기 위해선 기본적인 IP 주소에 대한 지식이 필요하기 때문에 이번 포스트에서는 기본적인 IP 주소에 대한 지식부터 이를 통해 왜 CIDR이 나오게 되었는...
AWS ELB
Elastic Load Balancer ELB라고 불리기도 하는 이놈은 AWS에서 제공하는 로드밸런서 서비스 입니다. Load Balancing기능 뿐만 아니라 대상에 대한 헬스 체크(health-check), 고정 세션(sticky-session), SSL 등의 기능을 수행합니다. 추가로 ELB를 활용하여 트래픽 양에 따라 유동적으로 인스턴스 수를...
AWS Route53
Route53 Route53은 AWS에서 제공하는 DNS 서비스입니다. DNS 라우팅 뿐만 아니라 트래픽 관리, 모니터링 등의 기능을 수행할 수 있습니다. 도메인은 국내 도메인 제공업체(호스팅 케이알, 가비아 등)를 통해 등록하거나, 직접 AWS에서 발급받을 수 있습니다. (AWS-ACM 참고) 호스팅 영역 :: hosted zone 호...
Git 커밋 컨벤션
본 내용은 Udacity의 커밋 메세지 스타일 가이드를 참조하였습니다. 커밋 메시지는 크게 제목, 본문, 꼬리말 세 가지 파트로 나누고, 각 파트는 빈줄을 두어서 구분합니다. 제목 어떤 의도인지 짧게 설명 : 뒤에만 space가 있음 type: subject Type 기능 feat : 새로운 기능 ...
장고 User Model 확장 (feat.AbstractUser)
📢 시작하기 전에… 🙄 확장이 왜 필요해? Django에는 권한 및 인증에 대한 기본적인 기능들을 제공하고 있는데요. 사용자 정보가 담길 User Model 역시 이미 구현이 되어있기 때문에 쉽게 로그인 기능을 구현할 수 있습니다. 하지만 실제 서비스에서 저장해야 하는 사용자 데이터들이 대부분 다르기 때문에 해당 기능들을 수정해야할 필요가 있습니다...
장고 User Model 확장 방법
‘User Model’이란? Django는 백엔드에서 꽤 중요한 부분을 차지하고 있는 권한과 인증에 대해 구현이 되어있습니다. 이때 User Model이 사용자들의 데이터를 저장합니다. 물론 제공되어 있는 그대로의 User Model을 사용해도 좋지만 서비스를 개발할 땐 더 다양한 기능과 정보들을 필요로 할 때가 많기 때문에 서비스를 개발 할 때 ...
그래프와 DFS, BFS 정리
그래프 (Graph) 그래프란? 여러 노드와 간선으로 연결된 네트워크 또는 자료구조 그래프(Graph)는 노드(Vertex)와 간선(Edge)으로 이루어짐 G = (V, E) 차수(Degree)는 해당 노드에 연결된 간선의 수 그래프 종류 무방향 그래프 / 방향 그래프: 간선에 방향이 있거나 없음 가중치 그래프: 간선에 ...
정렬 알고리즘 정리
정렬이란? 정렬 (sorting): 어떤 데이터들이 주어졌을 때 정해진 순서대로 나열하는 것 프로그래밍에서 자주 사용됨 정렬을 위한 다양한 알고리즘이 있음 +빅오 비교 (Big O) O(1) < O(log n) < O(n) < O(n*log n) < O(n^2) < O(2^n) <...