전체 글
-
비즈니스 도메인이란?DDD 2024. 1. 14. 00:01
개요 이전글에서는 "DDD란 무엇인가?"에 대해 간략하게 알아보았습니다. 그러면서 도메인 개념이라는것에 대해서도 알아보았습니다. 이번글에서는 비즈니스 도메인에 대해 조금 더 자세하게 알아보겠습니다. 비즈니스 도메인이란? 일반적으로는 회사가 고객에게 제공하는 서비스입니다. 이마트는 유명한 소매업체입니다. 쿠팡은 배송 서비스를 제공합니다. 스타벅스는 커피로 잘 알려져 있습니다. 은행은 대출을 제공한다. 기업은 여러 비즈니스 도메인을 운영할 수도 있고 비즈니스 도메인이 변경될 수도 있습니다. 쿠팡을 예로 들면 쿠팡 플레이, 쿠팡 배달 등 다양한 분야의 비즈니스 도메인을 운영합니다. 기업은 비즈니스 도메인을 달성하기 위해 여러가지 하위 도메인을 운영합니다. 하위 도메인이란? 스타벅스가 커피로 잘 알려져 있지만 ..
-
ELK란 무엇인가?모니터링 2024. 1. 13. 00:01
ELK란? ELK란 분석 및 저장을 담당하는 Elasticsearch, 수집을 담당하는 Logstatsh, 시각화하는 도구인 Kibana의 앞글자를 따서 ELK라고 부릅니다. 애플리케이션의 로그 집계 및 인프라 모니터링 시각화를 수행할 수 있도록 도와줍니다. 비정형 또는 반정형 데이터를 다룰 때 데이터에서 인사이트를 얻을 수 있도록 도와줍니다. Elasticsearch란? Elasticsearch는 검색 및 분석을 위한 엔진입니다. 대량의 데이터를 빠르고 효율적으로 저장하고 검색할 수 있도록 설계되었습니다. 빠르게 데이터를 검색, 필터링, 분석할 수 있는 대규모 데이터베이스라고 상상하면 좋습니다. Logstash로 받은 데이터를 저장했다가 검색할 수 있습니다. Logstash란? Logstash는 데이터..
-
코드를 더 깊이 있게 이해하기 & 문제 더 잘 해결하기클린 코드(Clean Code)/프로그래머의 뇌 2024. 1. 12. 00:01
코드를 깊이 이해하기 만약 코드를 어느 정도 이해하고 나면 코드에 대해 더 깊이 이해하는 것이 좋습니다. 새로운 기능은 어디에 추가해야 할까? 다른 방식으로 설계하면 어떤 것이 가능할까? 이해를 넘어 응용하기 위한 단계로 나아갑니다. 코드를 어떻게 하면 깊이 이해할 수 있을까? 텍스트 구조 지식과 계획지식을 이해해야 합니다. 텍스트 구조 지식은 프로그래밍의 키워드가 하는 일 혹은 변수의 역할등 이해하는 것입니다. 계획 지식은 프로그래머가 프로그램을 작성할 때 무엇을 달성하려고 했는가 이해하는 것입니다. 책에서는 코드를 깊이 이해하기 위한 절차를 소개합니다. 초점을 잡는다 - 어디서 부터 읽어야 할지 초점으로부터 지식을 확장한다. 관련된 객체로 개념을 이해한다. 여러 객체에 걸쳐 있는 개념을 이해한다. 프..
-
Spring Cloud Config란?Spring Framework/Spring Cloud Config 2024. 1. 11. 00:01
개요 Spring Cloud Config라는 용어를 접하게 되고 어떤 것을 의미하는지 개념을 잡기 위해 정리해보고자 합니다. Spring Cloud Config란? 이름에서 추론할 수 있듯이 Config(설정)에 관한 역할을 수행합니다. Spring Cloud Config는 여러 서비스들의 설정 정보를 중앙으로 관리하기 용이하도록 도와줍니다. 기본적으로 설정 정보 저장을 위해 git을 사용하도록 되어있습니다. 예를 들면 git 이외에도 AWS S3, Redis, Valut 등 다양한 설정 저장소를 활용할 수 있습니다. Spring Cloud Config 핵심 개념 설정 저장소 - git과 같이 설정 정보를 저장하기 위한 저장소 Config Server - 설정을 제공하는 서버 Config Client -..
-
BigDecimal이란?Java 2024. 1. 10. 00:01
개요 숫자를 다루는 클래스인 BigDecimal에 대해 들어는 보았지만 사용해 본 적이 없어 이번기회에 사용해 보며 개념을 잡아보고자 합니다. BigDecimal이란? java.math 패키지의 속한 Java 클래스로 정밀한 숫자 연산에 사용됩니다. 정밀도가 중요한 금융 및 과학 계산에 적합합니다. double 및 float와 같은 데이터 유형의 오차를 해결합니다. BigDecimal이 등장한 이유 (float와 double의 문제점) val b: Double = 0.1 val c: Double = 0.2 println(b+c) 0.1 + 0.2의 결과는 무엇일까요? 우리는 0.3을 기대할 수 있습니다. 하지만 실제 결과는? 0.30000000000000004 float와 double은 정확한 값이 아닌..
-
9장 - 옵티마이저와 힌트 - 3편CS/Real MySQL 8.0 요약 2024. 1. 9. 00:01
쿼리 힌트 쿼리 힌트는 옵티마이저에게 쿼리의 실행 계획을 어떻게 수립해야 할지 힌트를 제공하는 데 사용됩니다. 쿼리 힌트가 필요한 이유? 옵티마이저가 실행 계획을 수립해주는데 쿼리 힌트가 왜 필요할까요? 옵티마이저가 우리의 서비스를 100% 이해하지 못하기 때문에 때로는 DBA나 개발자가 부족한 실행 계획을 수립할 때가 있을 수 있습니다. 쿼리 힌트의 종류 인덱스 힌트 (STRAIGHT_JOIN) 옵티마이저 힌트 인덱스 힌트 인덱스 힌트는 SELECT 명령과 UPDATE 명령에서만 사용할 수 있습니다. STRAIGHT_JOIN은 여러 개의 테이블이 조인되는 경우 FROM 절에 명시된 순서대로 조인 순서를 고정하는 역할을 합니다. 일부 테이블의 순서에 대해서는 제안하는 힌트들도 있습니다. USE INDEX..
-
프로그래밍 문법 빠르게 배우기 & 복잡한 코드 읽는 방법클린 코드(Clean Code)/프로그래머의 뇌 2024. 1. 8. 00:01
프로그래밍 문법을 기억해야 하는 이유 System.out.println() 우리가 흔히 모두 알고 있을 법한 자바를 처음 배웠을 때 배운 출력 문법입니다. 우리는 모든 문법들을 기억하고 있지 않습니다. 문법은 검색을 통해 찾을 수 있으니 문법에 대한 지식을 갖는 것은 중요하지 않다고 생각할 수 있습니다. 하지만 코드를 효율적으로 이해하기 위해서는 장기기억 + 단기기억이 필요하고 이때 문법을 기억하게 되면 장기기억 측면에서 도움을 받을 수 있습니다. 또한 업무를 수행하다가 다른일을 하고 업무로 돌아가는 경우로 약 15분 정도 걸린다는 연구결과도 존재합니다. 코드를 읽다가 문법을 찾게 되는 경우가 이런 경우에 해당하는 것 같습니다. 어떻게 하면 문법을 오래 기억할 수 있을까? 마법 같은 일은 없으며 오랫동안..
-
네트워크 Timeout에 대처하는 방법CS/네트워크 2024. 1. 7. 00:01
개요항상 조금 헷갈리던 개념이었던 네트워크 Timeout에 대해 정리해보고자 합니다. 이 글을 읽으면 다음과 같은 궁금증을 해결할 수 있습니다.1. 네트워크의 통신은 어떻게 일어날까?2.네트워크 Timeout은 왜 발생할까?3. 네트워크 Timeout이 발생하면 어떤 것들을 주의해야 할까?4. 네트워크 Timeout이 발생할 수 있으니 어떻게 대처해야 할까? 네트워크 통신이란? 컴퓨터, 스마트폰, 서버 등의 장치가 인터넷이나 네트워크를 통해 서로 데이터와 정보를 교환하는 프로세스입니다. 이때 통신을 위해서 가장 일반적으로 TCP/IP 프로토콜이 활용됩니다. TCP/IP는 3 way handshake를 통하여 패킷(데이터)의 안정적인 전송을 보장합니다. 네트워크에 있는 장치들이 데이터를 교환하기 위해서는 ..