CS 7

MSA가 무엇인가

■ 모놀리식 아키텍처애플리케이션이 하나의 코드베이스, 하나의 배포 단위로 구성 된다 한 마디로 하나로 묶어서 개발하는 방식> 필요한 모든 기능을 한 번만 호출하기 때문에 복잡한 통신 없이 직접 사용할 수 있다.> 기능이 많아질수록 복잡해지고, 배포/수정이 어렵다. ■ MSA (마이크로서비스 아키텍처)- 소프트웨어를 하나의 큰 덩어리(모놀리식)로 만드는 대신, 여러 개의 작고 독립적인 서비스(회원 서비스, 주문 서비스, 결제 서비스, 상품 서비스) 들로 나누어 구성하는 아키텍처 스타일이다.- 각각의 서비스는 독립적인 코드베이스와 자체 데이터베이스를 가질 수 있다.- 서비스 간 통신은 보통 API (REST, gRPC, 메시지큐) 등을 통해 이루어진다.> 서비스별로 독립 개발/배포가 가능 (장애가 전체로..

CS 2025.08.31

도메인과 엔티티 차이

도메인 (Domain)- 소프트웨어가 해결하려는 문제 영역, 즉 비즈니스적인 개념이다.- 현실 세계의 개념을 소프트에어적으로 표현한 것이다.- 학교 시스템에서 '학생 관리', '수업 운영', '성적 처리' 가 도메인이다. 엔티티 (Entitiy)- 도메인 안에서 고유하게 식별 가능하며, 속성을 가지고 변화되는 데이터를 포함한 객체이다.- 데이터베이스에서는 '테이블'로 구현될 수 있고, 객체지향프로그램에서는 '클래스'로 표현한다.- 고유 식별자(ID)가 존재하고, 시간이 지나면 속성 값이 변할 수 있다. 도메인 vs 앤티티 관계- 도메인은 소프트웨어가 해결하려는 업무 영역이고, 엔티티는 그 도메인 안에 식별할 수 있는 객체 예시 코드학생 관리 시스템을 만든다고 할 때 학생 도메인 안에서 주요 객체 정의● ..

CS 2025.06.29

[Docker] 도커를 왜 사용할까?

솔루션 엔지니어를 하면서 주로 리눅스 서버를 많이 다룬다. 기관을 방문할 때 기존 서버를 이전하면 대부분 도커와 클라우드 환경으로 전환하는 곳들이 많다. 회사에서도 도커 관련하여 공부를 하라해서 이 글을 작성하게 되었다. 서버를 많지다 보면 도커로 구성 되어있다고 하는데 uname -a 명령어를 치면 리눅스라고 떠서 도커가 리눅스인가??.. 라는 생각을 했다. CS지식이 많이 딸려 정확하게 이해하진 못했다.. 이번 계기로 도커의 개념을 알려고 한다. 도커(Docker)는 소프트웨어를 컨테이너라는 가상화된 환경에 담아 실행하는 플랫폼이다. 이를 통해 애플리케이션을 더 쉽고 효율적으로 배포, 실행, 관리할 수 있게 해준다. ===================용어설명====================1) 컨..

CS 2024.11.05

디자인 패턴 - 싱글톤 패턴 (Singleton Patton)

디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 약속으로 만들어 놓은 것을 말한다. **디자인 패턴 장점** 1) 디자인 패턴은 이미 정의되어 있으며 반복적인 문제를 해결하기 위한 업계 표준 접근 방식을 제공하므로 설계 패턴을 사용하면 시간이 절약된다. 2) 디자인 패턴을 사용하면 재사용이 촉진되어 보다 강력하고 유지관리 가능한 코드가 생성되고 설계 패턴이 이미 정의되어 있기 때문에 코드를 쉽게 이해하고 디버깅할 수 있다. ​ 싱글톤 패턴(Singleton Patton)은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 보통 데이터베이스 연결 모듈에 많이 사용한다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 ..

CS 2023.04.29

프로세스 스케줄링

프로세스 스케줄링은 CPU를 사용하려고 하는 프로세스들 사이의 우선 순위를 관리하는 작업이다. 이 스케줄링은 처리율과 CPU 이용률을 증가시키고 오버헤드, 응답시간, 반환시간, 대기시간을 최소화시키기 위한 기법이다. 그리고 특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에서 CPU 교체가 일어난다. 프로세스 스케줄링 유형에는 선점형 스케줄링과 비선점형 스케줄링이 있다. ● 선점형 스케줄링 (Preemptive Scheduling) : 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식이다. : 비교적 빠른 응답이며 대화식 시분할 시스템에 적합하다. : 높은 우선순위 프로세스들이 들어오는 경우 ..

CS 2023.04.01

운영체제 (OS: Operating System)

운영체제는 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어이다. 또한, 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공한다. 내가 운영프로그램을 설치하면 하드디스크에 들어가면 프로그램이 되고 프로그램이 주기억장치로 올라오게 되면 프로세스가 된다. 프로세서는 CPU라고 말하기도 한다. 운영체제가 돌아가는 순서에는 반입, 배치, 교체가 있다. 하드디스크에서 가져와야 하니 반입을 한다. 반입된 데이터들을 주기억장치 어딘가에 배치해야 한다. 주기억장치는 한정적인 공간이라 금방 찬다. 다 찼으면 교체해야한다. 반입전략에는 요구 반입, 예상 반입이 있다. 중요한 배치전략에는 최초적합, 최적적합, 최악적합이 있다. ● 최초적합 (F..

CS 2023.03.18

MVC 패턴

MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴이다. 구성 요소를 세 가지 역할로 구분하여 개발에서 각각의 구성 요소로만 개발할 수 있다. MVC 패턴은 각 부분이 별도의 컴포넌트로 분리되어 있어서 서로 영향을 받지 않고 개발 작업 수행 가능 MVC 패턴은 컴포넌트를 분리하며 코드의 효율적인 재사용을 가능하게 하고, 여러 개의 뷰가 있어야 하는 대화형 애플리케이션 구축에 적합하다. ● 모델 모델(Model)은 애플리케이션의 데이터인 데이터베이스, 상수, 변수를 말한다. 예를 들어 박스 안에 글자가 들어 있다면 그 박스 위치 정보, 글자 내용, 글자 위치, 글자 포맷에 관한 정볼르 모두 가지고 있어야 한다. 뷰에서 데이터를 생성하거나 수정하면 컨트롤러..

CS 2023.02.20