CS 공부

아키텍쳐란?

neogul 2023. 11. 14. 03:58

건축학에서 따지면 설계도 평면도 같은 것?.....

최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경등을 설명 및 설계하는 청사진 또는 설계도 입니다. 

기본 Computer Science 지식을 기반으로 주변환경등을 고려하여, 최상의 소프트웨어를 구성하는 방법을 연구하고
이를 바탕으로 가이드하는 역할을 합니다.

소프트웨어를 구성하는데 가장 기초적이고 핵심적인 부분의 업무이므로, 초보개발자들에게는 맡기지 않는 업무입니다.
예를 들어 제대로된 아키텍처를 구성하지 못하고, 중구난방식으로 개발을 진행한다면 빠르고 쉽게 개발을 할 수 있을지 모르겠지만
다양한 환경과 변수에 대응하지 못하는 큰 어려움이 있습니다.

쉽게 표현해 제대로된 설계를 하지 않고 주먹구구식으로 지은 건물은 태풍이나 지진과 같은 자연재해 또는 다른 외부 환경에 의해 쉽게 무너질 수 있습니다.
그렇기에 견고한 설계과정을 통해 다양한 변수등에 대비해야합니다.

소프트웨어의 개발과정도 마찬가지입니다.
정책의 변화, 기존 개발자의 공백과 같은 내부의 환경 변화 뿐만 아닌
브라우저의 다양함, 유저의 행동, 사용중인 라이브러리의 버전업 또는 지원중단등 외부환경적인 요인들도 다양하게 고려해야합니다.

또한 최적화된 개발을 위해 프레임워크는 무엇을 사용 할 것이고,
어떤 라이브러리를 사용할 것인지 등의 다양한 선택의 과정들도 필요합니다.

그렇기에 주니어가 아닌 다양한 경험과 기반지식을 갖춘 시니어급들에게 아키텍처를 설계하는 업무가 배정됩니다.

출처 https://tuhbm.github.io/2019/04/24/architecture/

 

아키텍처란 무엇인가?

용어정리이 카테고리는 비전공자로서 개발자로써 공부하며, 평소 이해하지 못한 단어를 제방식대로 정리하는 카테고리입니다.제방식대로 풀어 쓴것이므로 오류가 있을 수 있습니다.오류가 있

tuhbm.github.io

 

웹 아키텍처는 웹 서비스가 동작하는 구조와 원리를 의미합니다. 이는 주로 클라이언트와 서버 간의 상호 작용을 중심으로 구성되며, 여러 구성 요소와 계층으로 이뤄져 있습니다.

  1. 클라이언트(Client): 사용자가 웹 페이지를 열어보는데 사용되는 웹 브라우저 또는 모바일 앱과 같은 인터페이스입니다. 클라이언트는 사용자의 요청을 생성하고 서버로 전송하며, 서버로부터 받은 응답을 렌더링하여 사용자에게 보여줍니다.
  2. 서버(Server): 클라이언트의 요청에 응답하여 필요한 데이터나 서비스를 제공하는 컴퓨터 또는 서버 소프트웨어입니다. 서버는 클라이언트의 요청을 받아 해당하는 데이터를 처리하고 응답을 생성하여 클라이언트에게 전송합니다.
  3. 데이터베이스(Database): 서버가 필요한 데이터를 저장하고 관리하는 곳입니다. 사용자 정보, 콘텐츠, 설정 등이 여기에 저장됩니다.
  4. 애플리케이션 서버(Application Server): 비즈니스 로직을 수행하고 데이터베이스에서 데이터를 검색하여 클라이언트에게 전달하는 역할을 하는 서버입니다. 이는 웹 애플리케이션의 핵심 로직을 처리합니다.
  5. 웹 브라우저(Web Browser): 사용자가 웹 페이지를 열어 보는 데 사용되는 소프트웨어입니다. 클라이언트 측에서 서버로 요청을 보내고, 서버로부터 받은 데이터를 렌더링하여 사용자에게 시각적으로 표시합니다.
  6. 웹 서비스(Web Services): 다른 시스템과의 통합을 위해 사용되는 API를 통해 데이터를 교환하고 서비스를 제공하는 부분입니다. RESTful API와 SOAP 등이 대표적인 웹 서비스 형식입니다.
  7. 프로토콜(Protocol): 클라이언트와 서버 간의 통신을 위한 규칙과 규약입니다. HTTP와 HTTPS가 가장 일반적으로 사용되는 프로토콜이며, 클라이언트와 서버 간의 안전하고 효율적인 통신을 지원합니다.

웹 아키텍처는 이러한 구성 요소들 간의 원활한 상호 작용과 데이터 전송, 보안 등을 조율하여 웹 서비스가 효율적으로 동작할 수 있도록 설계됩니다.

챗지피티한테 물어본 거