ETC

ETC

CI(Continuous Integration)/CD(Continuous Delivery & Continuous Deployment)란?

💡 CI(Continuous Integration)란? - CI(Continuous Integration)란, 지속적인 통합이라는 뜻이다. - 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 레포지토리에 통합하는 것을 의미한다. (빌드 및 테스트 자동화) 🔎 CI가 필요한 환경에는 어떤 조건이 있을까? 1. 다수의 개발자가 형상관리(Git, SVN) 툴을 공유하여 사용하는 환경이어야 한다. - 형상관리 툴은 기능을 추가할 때 마다 commit 등을 날려 레포지토리에 버전을 업데이트할 때 원천 소스코드의 충돌을 방어하는 역할을 한다. 2. MSA(Micro Service Architecture) 환경 - MSA에 대한 설명은 하단의 링크를 참조. https://roajava.tistory.com/2..

ETC

모놀리식 아키텍처(Monolithic Architecture) vs MSA(MicroService Architecture)

💡 모놀리식 아키텍처(Monolithic Architecture)란? - 전통적인 개발 아키텍처다. - 하나의 프로젝트에 모든 기능들이 싹 다 들어가 있다. 🔎 모놀리식 아키텍처 장점 - 중앙에 집중된 구조이기때문에 모든 기능의 처음부터 끝까지 테스트를 더 빠르게 할 수 있다. - 하나의 프로젝트에 비즈니스 로직, UI, 콘텐츠 등 모든 구성 요소가 다 들어가 있기때문에 디버깅이 편하다. - 소규모 프로젝트라면 단순하면서도 견고한 구조를 만들 수 있다. 🔎 모놀리식 아키텍처 단점 - 대규모 프로젝트라면 하나의 프로젝트가 점점 거대해져 구조를 제대로 파악하지 않으면 하나의 장애가 발생할 경우 다른 영역까지 영향을 끼칠 가능성이 높다. - 아무리 작은 부분을 수정하더라도 전체 프로젝트가 망가질 수 있다. (..

ETC

컴퓨터의 메모리 구조

💡 메모리 구조 프로그램이 실행되기 위해서는 프로그램이 메모리에 로드(load)되어야 한다. 메모리에 올라가지 않은 상태는 그저 소스 코드 덩어리일 뿐이다. 메모리가 올라간다는 것은 코드의 부분부분에 메모리가 할당되는 것이다. → 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 각각의 메모리 공간은 상호작용하며 프로그램 실행에 기여한다. 1) 코드(code) 영역: 실행할 프로그램의 코드 2) 데이터(data) 영역: 전역 변수, 정적(static) 변수 3) 스택(stack) 영역: 컴파일 타임에 크기가 결정됨 4) 힙(heap) 영역: 런타임시 크기가 결정됨(동적할당) 💡 컴파일 타임 사람이 작성한 소스코드를 컴퓨터가 해석할 수 있도록 기계어로 변환시키는 과정을 컴파일이라고 ..

ETC

[Windows] 레지스트리(Registry) 개념 정리

💡 레지스트리란? - 윈도우에서 사용하는 설정 및 정보를 저장하는 데이터베이스 - 모든 하드웨어, 소프트웨어, 사용자 PC 선호도와 같은 정보와 설정이 들어있다. - 사용자가 제어판, 파일 연결, 시스템 정책 등을 변경하면 변경 사항을 기반으로 레지스트리에 반영된다. - 레지스트리 이전에 ini 파일이 사용되었다. 💡레지스트리의 구조 - 레지스트리는 키, 값을 포함하고있다. 키 : 폴더 값 : 키 안에 들어있는 이름 / 자료 - 값은 여러 키로부터 따로 참조할 수 있다. - 값 이름에는 백슬래시(\)를 사용할 수 있지만 키 경로와 구별하는 것이 어려울 수 있어 지양해야한다. 🔎 레지스트리 값 종류 목록 0 REG_NONE 종류 없음 1 REG_SZ 문자열 값 2 REG_EXPAND_SZ 확장할 수 있는 ..

로아다
'ETC' 카테고리의 글 목록