2026/01 4

자료구조 모음

공부 하면서 계속 업데이트 예정입니다.큰 틀의 질문에 대한 답변을 공부하며, 해당 질문에 대한 꼬리질문을 공부해나갈 예정입니다. 배열과 링크드 리스트의 차이점더보기더보기배열은 메모리에 할당될 때 연속적인 데이터 공간에 할당이 됩니다.데이터에 접근 할 때 random access가 가능하므로 빠르지만, 삽입 삭제 시에나 배열의 크기를 유동적으로 변하기 어렵습니다. 링크드 리스트는 메모리에 할당될 때 흩어져서 저장됩니다.처음에는 크기를 지정해주지 않아도 되며 삽입 삭제가 빠르지만 검색 시 순차접근을 통해서 접근해야하므로 느립니다.스택과 큐에 대해서 설명해주세요.더보기더보기스택은 후입선출 구조로, 한쪽 끝에서만 삽입과 삭제가 이루어지며 함수 호출 스택이나 실행 취소 기능에 사용됩니다.큐는 선입선출 구조로, 먼..

CS 2026.01.05

Monolith vs Microservices

Monolith 아키텍처 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스애플리케이션에서 사용하는 데이터가 한 곳에 모여 참조되어 서비스되는 형태해당 방식의 문제점 하나의 시스템에 애플리케이션을 구성하고 있는 모든 서비스라든가 요소들이 패키징되어 서비스가 되고 있기 때문에서비스의 일부가 수정되거나 삭제된다 하더라도 전체 애플리케이션을 다시 빌드하고 테스트하고 패키징하고 배포하는 과정을 거쳐야한다는 점 MicroService 아키텍처 여러 개의 작은 서비스 단위로 쪼개져서 개발, 배포가 되고 운영하는 방식작은 단위로 만들어지고 개별적으로 분리되어 있는 서비스개발과 배포와 운영이 각각 독립적인 사이클을 갖고 만들어진다는 것이 가장 큰 특징서로 간의 통신을 위해 HTTP프로토콜 사용 - 필요한..

MSA 2026.01.02

12 Factors

12 Factors 클라우드 네이티브 어플리케이션을 개바하거나 서비스를 운영할 때 고려해야 될 항목을 정리 한 것 Heroku라는 회사에서 자사의 고객들을 상대로 클라우드 서비스 시 발생했던 문제점이라든가 개선점 그리고 시행착오를 바탕으로 해서 이러한 가이드라인을 만들어서 배포를 했다고 함 12 Factors에서는 코드의 통합, 종속성의 배제, 환경설정에 대해서 외부관리, 백업서비스의 분리, 개발환경과 테스트, 운영환경의 통일성 유지, 로그의 분리, 관리 프로세스 등 소개를 하고있음 1. Base Code - 코드베이스하나의 애플리케이션에는 하나의 코드베이스를 사용한다.그런 코드베이스에 의해서 여러 배포 환경으로부터 분기가 가능하도록 구축하는 것이 좋다.2. Dependency Isolation - 의..

MSA 2026.01.02

Cloud Native Application

Cloud Native Application 방식으로는 크게 3가지로 나눠짐 CI/CD + DevOps + Container 가상화 1. CI/CD CI (Continous Integration) : 지속적인 통합통합 서버, 소스 관리(SCM), 빌드 도구, 테스트 도구 ex) Jenkins, Team CI, Travis CI CD : 지속적 배포Continuous Delivery (수동 반영)Continous Deployment (자동 반영)Pipe line배포 전략 : 카나리 배포와 블루 그린 배포카나리 배포95% 사용자를 이전 버전 서비스 사용5% 사용자를 새 버전 서비스 사용블루 그린 배포점진적으로 새로운 버전으로 옮겨갈 수 있는 방식 2. DevOps Development + Operations..

MSA 2026.01.02