목록IT (165)
And Brain said,
오늘은 객체지향 프로그래밍과 설계에 중요한 5대 원칙 SOLID에 대해서 알아보자. 먼저, SOLID는 SPR(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존성 역전 원칙)의 첫글자를 각각 따온 것이다. SRP(단일 책임 원칙), 클래스는 단 한 가지의 책임만을 가진다. 클래스는 단 한 가지의 책임만을 가진다. 즉, 클래스는 하나의 기능만을 수행해야 하며, 이 기능이 변경될 때만 클래스를 수정해야 한다. SRP의 목표는 코드의 유지 보수성을 높이고, 모듈 간의 결합도를 낮추는 것이다. 클래스가 단일 책임을 가질 때, 변경에 따른 영향이 최소화되어 수정이 용이해진다. 또한, 다른 클래스와의 의존성이 낮아져 코드의 재사용성이 높아진다...
먼저, 이 포스팅은 자바스크립트에 대한 이해를 전제한다. 타입스크립트란 간단히 말해 타입 + 자바스크립트다. 자바스크립트는 React와 Node 등을 필두로 현재 가장 많이 사용하는 언어 중 하나이며 웹 브라우저에서는 대체 불가능한 언어로 자리매김하고 있다. 이렇게 많이 사용되는 자바스크립트는 여타 대부분의 인기 있는 언어들과 달리 독특한 특징을 갖고 있는데 바로 자유도가 엄청나게 높다는 점이다. 이 높은 자유도는 당신의 느슨하고 게으르게 짠 코드를 어떻게든 동작시킨다. 이는 프로젝트 규모가 커지면 커질수록 수많은 문제를 야기한다. 그리하여 등장한 것이 타입스크립트다. stackoverflow 가장 사랑받는 언어 4위 자바스크립트를 대체하려는 시도는 많았지만 성공적이었던 것은 여태 단 한 차례도 없었었다..
오늘은 MSA의 필수 패턴 중 하나인 Circuit Breaker에 대해 알아볼 것이다. MSA(Microservice Architecture)는 애플리케이션의 유연성, 확장성, 유지보수성 등을 향상시키지만, 여러 개의 서비스가 함께 동작하기 때문에 각각의 서비스가 다운되는 상황이 발생할 수 있다. 이러한 문제를 해결하기 위해서 분산 시스템에서 일시적으로 실패한 서비스를 격리하고 복구하는 시스템 전체의 가용성을 높이기 위해 사용되는 디자인 패턴인 Circuit Breaker가 사용된다. 호출된 시스템이 지연이나 에러를 일으키면 Circuit Breaker가 해당 호출을 중지시키고 대체로직을 수행한다. Circuit Breaker 패턴은 일반적으로 세 가지 상태를 가진다. Closed: 서비스가 정상적으로..
오늘은 Spring Cloud Config Server에 대해 알아보자. Config Server는 외부 환경 설정을 중앙 집중적으로 관리할 수 있도록 도와주는 역할을 한다. 예를 들어, 여러 대의 서버가 존재하는데 각각 서버별로 프로파일과 환경마다 설정이 다르다면 이를 중앙에서 관리해주지 않으면 설정 변경 시 모든 서버의 설정을 일일이 변경해주어야 하는 문제가 발생한다. 이런 이유로 환경 설정을 중앙에서 관리하고 필요한 서버에서 설정 정보를 가져와 사용하는 방식을 취하는것이 MSA의 Config Server이다. https://theworldaswillandidea.tistory.com/112 Kotlin, The Evolution of Java (+ MSA with Spring boot) 오늘은 현재..
최근 인프라와 아키텍처가 클라우드 네이티브 및 마이크로서비스로 가는 추세다보니 그에 맞춰 기업들도 복잡한 환경에서의 보안을 신경쓰게 될 수 밖에 없다. 오늘은 그런 보안 툴들 중 최근 자주 사용되고 있는 HashiCorp사의 Vault에 대해서 알아보고 간단한 환경 구성까지 해보자. Vault는 HashiCorp에서 개발한 오픈소스 암호화키 관리 도구로 Vault를 사용하면 애플리케이션 보안을 위해 중요한 정보인 패스워드, API 키 등을 안전하게 저장하고 관리할 수 있다. Vault는 다양한 기능을 제공하지만, 그 중 가장 중요한 기능은 데이터를 암호화하고 복호화하는 것이다. 애플리케이션 내부에 저장되어 있는 중요한 정보를 Vault를 통해 암호화하고, 필요할 때만 복호화하여 사용함으로써, 정보 유출 ..