2024년 08월 12일 일일 요약
=============================================
1: Node.js 서버에서 Aurora MySQL 데이터베이스 연결 끊김 문제를 다루기 위한 다양한 방법을 소개합니다. 주요 문제는 자동 업그레이드로 인한 연결 끊김이며, 이를 해결하기 위해 프로세스를 자동화하는 방안을 고려하였습니다. 커넥션 풀에서의 에러를 해결하기 위해 mysql2 드라이버 대신 mysql 드라이버로 교체하였고, 커넥션 관리 방식을 Pessimistic와 Optimistic으로 나누어 설명하였습니다. 또한 커넥션을 주기적으로 검증하고 재활용하는 방법을 추천하였습니다.
키워드: Node.js, MySQL, 커넥션 풀, Pessimistic, Optimistic, mysql2, graceful shutdown, 자동 업그레이드
출처: https://velog.io/@leejh3224/Node.js-%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C-DB-%EC%97%B0%EA%B2%B0-%EB%81%8A%EA%B9%80%EC%97%90-%EB%8C%80%EC%B2%98%ED%95%98%EA%B8%B0
=============================================
2: 이 글에서는 소프트웨어 개발에서 테스트 코드의 중요성에 대해 논의하였습니다. 특히, 테스트 코드가 코드의 신뢰성을 높이고, 리팩토링 시 안정성을 제공하며, 코드의 문서화 역할을 하는 점을 강조하였습니다. 또한, 테스트 코드 작성의 어려움과 그로 인해 발생하는 문제들을 다루고, 실질적인 예시를 통해 효과적인 테스트 코드 작성 방법을 설명하였습니다. 마지막으로, 테스트 코드가 프로덕트의 일부로서 기능 변경 시에도 도움이 된다며 엔지니어로서의 책임감을 강조하였습니다.
키워드: 테스트 코드, 리팩토링, 코드 신뢰성, 문서화, 엔지니어
출처: https://katfun.blog/posts/%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EA%B0%80-%EB%AD%90%EC%98%88%EC%9A%94-%EC%9D%B4%EA%B1%B8%EC%9A%94-%EC%A0%9C%EA%B0%80%EC%9A%94/
=============================================
3: 본문에서는 Todo 앱으로 오프라이트를 사용하고, TickTick과 Zapier를 통해 연동하는 방법을 설명합니다. 오프라이트는 다양한 플랫폼과 통합할 수 있는 장점이 있으나, 아직 모바일 기기에서의 사용성이 떨어진다는 점도 언급됩니다. TickTick은 우수한 모바일 사용성을 제공하지만 통합 기능이 부족합니다. 결국 PC에서는 오프라이트를, 모바일에서는 TickTick을 사용하며, Zapier를 이용해 TickTick에서 생성한 작업이 오프라이트로 자동으로 연동되도록 설정합니다.
키워드: 오프라이트, TickTick, Zapier, Todo App, 자동화
출처: http://jojoldu.tistory.com/796
=============================================
4: 본 블로그 글에서는 XRCLOUD의 서비스와 기능을 소개하며, 클라우드 컴퓨팅을 통한 데이터 저장 및 처리의 장점에 대해 설명합니다. 특히, AI 및 머신러닝 알고리즘을 활용한 데이터 분석 및 예측 모델 개발에 초점을 맞추고 있습니다.
키워드: 클라우드 컴퓨팅, 데이터 분석, 머신러닝
출처: https://blog.naver.com/fstory97/223543533333?fromRss=true&trackingCode=rss
=============================================
5: 캡슐화는 객체지향 프로그래밍(OOP)에서 중요한 원칙으로, 객체의 내부 구현을 숨기고 외부와의 의존성을 줄여 코드의 유지보수성과 재사용성을 향상시키는 기법입니다. 캡슐화를 효과적으로 구현하기 위한 두 가지 규칙으로는 `Tell, Don`t Ask`(객체에게 데이터를 요청하기보다는 작업을 지시하라는 원칙)와 `데미테르의 법칙`(최소 지식 원칙)이 있습니다. 이 규칙들은 객체 간의 의존성을 줄이고 코드의 가독성과 유지보수성을 높이는 데 기여합니다.
키워드: 캡슐화, Tell Don`t Ask, 데미테르의 법칙, 객체지향 프로그래밍
출처: https://velog.io/@qkrtkdwns3410/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-%EC%BA%A1%EC%8A%90%ED%99%94
=============================================
6: 객체의 의존성은 한 객체가 다른 객체를 사용하는 관계를 의미합니다. 코드에서 객체의 생성과 메서드 호출이 일렬로 나열되어 있을 때, 이는 의존성을 직접적으로 구현했음을 보여줍니다. 예를 들어, `FlowController`에서 `ByteEncryptor`와 `FileDataWriter`를 직접 생성하는 방식은 의존성이 강하게 표현됩니다. 이로 인해 객체 변경 시 의존 관계의 다른 객체도 영향을 받아야 하며, 이는 순환적인 의존성을 초래합니다. 이를 해결하기 위해 SOLID 원칙 중 하나인 의존 역전 원칙(DIP)을 적용해야 합니다. 두 클래스 간의 의존성은 양방향으로 영향을 미칠 수 있어, 한 쪽의 변경이 다른 쪽의 구조도 변경해야 하는 상황이 발생할 수 있습니다.
키워드: 의존성, 객체지향, SOLID, 의존 역전 원칙(DIP)
출처: https://velog.io/@qkrtkdwns3410/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-%EC%9D%98%EC%A1%B4