Skip to main content

2 posts tagged with "cdn"

View All Tags

소프트웨어 엔지니어에서 소프트웨어 설계자로 — 성공을 위한 로드맵

· 9 min read

image

소프트웨어 아키텍처를 마스터하는 길은 끝이 없는 여정입니다. 

해당 주제에 관해 샅샅이 뒤지다 보면 방대한 양의 자료에 압도당하게 됩니다.

더욱이, 소프트웨어 아키텍처에 관한 콘텐츠의 대부분은 여러분과 같은 사람들이 자신만의 방식으로 이 여정을 이해하려고 노력하면서 게시한 것이기 때문에 여러분이 발견한 것 중 대부분은 품질이 다양합니다.

소프트웨어 아키텍처 주제에 관한 수많은 비디오, 블로그, 튜토리얼, 서적, 강좌 및 기타 유형의 콘텐츠가 있지만 모두 동일하게 만들어지는 것은 아닙니다. 일부는 훌륭하고 다른 일부는 어느 정도 장점이 있는 반면, 수많은 다른 리소스는 오해의 소지가 있고 완전히 잘못되었습니다.

그래서 제가 아래에서 한 일은 소프트웨어 아키텍처 주제에 대해 엄선된 고품질 리소스 목록을 모아 숙련된 소프트웨어 설계자뿐만 아니라 야심 찬 사람들도 쉽게 사용할 수 있도록 하는 것입니다. 이것이 소프트웨어 아키텍처 숙달을 향한 올바른 길을 설정하는 데 도움이 되기를 바랍니다.

무료 및 유료 리소스 모두 소프트웨어 아키텍처의 다양한 측면과 업계에서 소프트웨어 아키텍처의 역할에 대해 설명합니다.

이 컬렉션의 목표는 소프트웨어 엔지니어가 소프트웨어 아키텍트가 되거나 현재 소프트웨어 아키텍트가 자신의 역할을 더 잘 수행할 수 있도록 일종의 로드맵 역할을 하는 것입니다. 경험이 풍부한 소프트웨어 설계자라도 이러한 리소스를 사용하여 격차를 줄이고 명확성을 찾거나 사물에 대한 새로운 시각을 얻을 가능성이 높습니다.

image

제가 이 로드맵을 위에서 아래로 구성한 방식은 각 단계가 이전 단계를 기반으로 구축되도록 논리적 순서로 되어 있습니다. 물론 이것은 궁극적으로 관련 없는 리소스의 모음이므로 내가 정리한 순서가 의미가 있기를 바랍니다.

아래의 각 항목에 대해 무료인지 유료인지 식별하고 있습니다. 또한 해당 항목이 다루는 내용과 그것이 소프트웨어 아키텍트(또는 더 훌륭하고 성공하며 번창하는 소프트웨어 아키텍트)가 되는 여정에 정확히 얼마나 도움이 되는지에 대한 분석도 볼 수 있습니다.

더 이상 고민하지 마세요 — 소프트웨어 설계자 리소스 — 성공을 위한 로드맵! 🚀

👉 모든 개발자가 소프트웨어 아키텍처에 대해 알아야 할 5가지 • Simon Brown • GOTO 2020

이것이 유용한 이유: 소프트웨어 개발자가 소프트웨어 아키텍처에 대해 알아야 할 주요 항목에 대한 명확하고 간단한 설명입니다.

📺 유형 : 비디오

💰무료 : 예

👉 소프트웨어 아키텍처는 어떤 모습이어야 할까요?

이것이 유용한 이유: 적절한 소프트웨어 아키텍처의 기본 사항에 대한 더 많은 통찰력.

📺 유형 : 비디오

💰무료 : 예

👉 “Good Enough” 아키텍처 • Stefan Tilkov • GOTO 2019

이것이 유용한 이유: 소프트웨어 아키텍처가 목적을 달성하는 방법을 다룹니다. "완벽한 아키텍처"를 추구하면 그것을 무너뜨릴 수 있습니다.

📺 유형 : 비디오

💰무료 : 예

👉 최소 실행 가능 아키텍처 • Randy Shoup • YOW! 2022년

이것이 유용한 이유: 최소 실행 가능 아키텍처(또는 MVA)의 개념은 최소 실행 가능 제품(MVP)만큼 자주 논의되지 않습니다. 그러나 소프트웨어 설계자로서 우리가 하는 모든 일, 특히 비즈니스와 기술의 연계에 있어 이것이 얼마나 중요한지 이해하는 것이 중요합니다. 이 개념은 위의 “Good Enough Architecture” 개념과 관련이 있습니다.

📺 유형 : 비디오

💰무료 : 예

👉 소프트웨어 아키텍처 팁 더 빨리 알았으면 좋았을 텐데요

이것이 유용한 이유: 이전 개념을 바탕으로 소프트웨어 아키텍처 및 일반 응용 프로그램에 대한 몇 가지 빠른 팁을 제공합니다.

📺 유형 : 비디오

💰무료 : 예

👉 훌륭한 소프트웨어 설계자가 되는 방법 • Eberhard Wolff • GOTO 2019

이것이 유용한 이유: 이것은 오래된 비디오입니다. 그러나 여기서 말하는 개념은 "충분히 좋은 아키텍처"인 MVA의 개념과 일반적으로 소프트웨어 아키텍처 측면에서 소프트웨어 설계자가 집중해야 하는 개념과 밀접하게 연관되어 있습니다.

📺 유형 : 비디오

💰무료 : 예

👉 AWS re:Invent 2022 — 건축가 엘리베이터: 회의실과 IT 연결(ENT218)

이것이 유용한 이유: Gregor Hohpe의 저서 "The Software Architect Elevator"와 조직에서 소프트웨어 설계자의 주요 기능을 요약한 버전입니다.

📺 유형 : 비디오

💰무료 : 예

👉 소프트웨어 아키텍처의 기초(O'Reilly Press)

이것이 유용한 이유: 이는 소프트웨어 아키텍처가 무엇인지, 무엇에 중점을 두고 있는지에 대한 많은 중요한 부분을 식별하는 훌륭한 요약입니다. 이는 야심 찬 소프트웨어 설계자와 숙련된 소프트웨어 설계자 모두에게 지식과 이해의 많은 격차를 메울 것입니다.

📘 종류 : 도서

💰무료 : 아니요

소프트웨어 아키텍처에 대한 심층 분석 - 확대

image

👉 리액티브 선언문

이것이 유용한 이유 : Reactive 선언문은 Reactive 시스템을 구축하는 방법과 이유에 대해 설명합니다. 이는 소프트웨어 아키텍처 내의 틈새 시장이지만, 그 중 많은 부분이 확장 가능하고 탄력적이며 현대적인 아키텍처 구축의 기초이므로 해당 개념을 이해하는 것이 유용합니다.

🌐 유형 : 사이트

💰 무료 : 예

👉 소프트웨어 아키텍처 가이드(Martin Fowler 작성)

이것이 유용한 이유: Martin Fowler는 소프트웨어 개발 및 아키텍처 분야에서 소개가 필요 없는 또 다른 이름입니다. 그의 사이트에는 소프트웨어 아키텍처의 다양한 측면과 설계자의 역할에 대한 확실한 이해를 구축할 수 있을 만큼 자세하고 전체적인 풍부한 정보가 있습니다.

🌐 유형: 사이트

💰 무료: 예

👉 소프트웨어 아키텍처: 어려운 부분

이것이 유용한 이유: 업계 최고의 전문가가 쓴 또 다른 훌륭한 책입니다. 앞서 언급한 "소프트웨어 아키텍처의 기초"와 마찬가지로 소프트웨어 아키텍처의 기초와 고급 개념에 대해 설명합니다. 그러나 여기서 초점은 소프트웨어 설계자가 매일 처리하는 과제, 즉 어려운 부분에 있습니다.

📘 유형: 책

💰 무료: 아니요

👉 마크 리차드의 채널

이것이 유용한 이유: Mark는 소프트웨어 아키텍처 세계에서 잘 알려진 인물입니다. O'Reilly의 인기 작가이자 독립 컨설턴트이자 해당 주제에 대한 놀라운 비디오 모음집을 발행한 사람입니다. 그의 방대한 비디오는 소프트웨어 아키텍처 분야의 다양한 주제를 다루고 있습니다. Mark의 채널은 풍부한 정보를 제공합니다.

📺 유형 : 유튜브 채널

💰무료 : 예

전문성 구축 - 더욱 확대

image

👉 실제 소프트웨어 아키텍처, 4판

이 책이 유용한 이유: 이 책은 이미 언급된 다른 책들과 일부 겹치는 부분이 있습니다. 그러나 이는 다소 다른 관점을 제공하며 이를 통해 소프트웨어 엔지니어링과 아키텍처 간의 격차를 더 많이 해소합니다.

📘 종류 : 도서

💰무료 : 아니요

👉 데이터 집약적인 애플리케이션 설계

이 책이 유용한 이유: 이 책은 고전입니다. 데이터 처리에 중점을 두고 대규모 시스템을 구축하는 데 중점을 둡니다. 대부분의 최신 엔터프라이즈 시스템은 대규모 데이터 처리 및 관리에 의존합니다. 이 책은 그러한 시스템을 구축하는 데 필요한 과제, 방법 및 전략을 설명합니다.

📘 종류 : 도서

💰무료 : 아니요

👉 혁신적인 아키텍처 구축, 2판

이것이 유용한 이유: 소프트웨어 아키텍처는 대체로 시간이 지남에 따라 발전할 수 있는 시스템을 구축하는 것입니다. 완벽한 아키텍처는 존재하지 않으며, 이를 추구하면 실제 문제를 해결하고 비즈니스에 서비스를 제공하며 가치를 제공하는 시스템을 구축하는 능력을 잃게 됩니다. 이 책은 업계에서 가장 잘 알려진 사람들의 전체적인 개요입니다. 시간이 지남에 따라 진화하고 시간의 시험을 견디는 건축물 구축이라는 주제를 훌륭하게 마무리합니다.

📘 종류 : 도서

💰무료 : 아니요

👉 마이크로서비스.io

이것이 유용한 이유: Microservices.io는 소프트웨어 아키텍처 회로의 또 다른 잘 알려진 인물인 Chris Richardson의 프로젝트입니다. Chris는 마이크로서비스 아키텍처, 소프트웨어 제공 및 아키텍처 패턴에 관해 글을 쓰고 강연합니다. 그의 작업은 아키텍처 스타일로서의 마이크로서비스에 초점을 맞추고 있지만 그가 말하는 패턴과 방법론은 다양한 방식으로 보편적으로 적용 가능합니다. 안정적이고 확장 가능하며 현대적인 시스템을 구축하려면 이러한 개념을 숙지하고 이해하는 것이 중요합니다.

🌐 유형 : 사이트

💰무료 : 예

클라우드 공급업체 Well-Architected 아키텍처 프레임워크

image

이것이 유용한 이유: 세 가지 주요 클라우드 공급업체는 각각 아키텍처 및 시스템 설계 모범 사례에 대한 강력한 지침 및 표준 세트를 보유하고 있습니다. 이들은 "잘 설계된" 프레임워크로 훌륭하게 패키지되어 있습니다. 각 공급업체에는 개념을 설명하는 고유한 접근 방식과 방법이 있습니다. 그러나 이들 모두의 기본에는 거의 동일한 여러 기둥이 있습니다.

이 세 공급업체는 분명히 자사의 클라우드 서비스를 강조하지만 그들이 말하는 개념은 보편적으로 적용 가능합니다. 세 가지 프레임워크는 모두 중요하며 완료하는 데 시간이 걸립니다. 다음은 이러한 문제를 해결하는 방법에 대한 몇 가지 팁입니다. 그럼에도 불구하고 해당 프레임워크 중 하나를 검토하고 이해한다는 것은 다른 프레임워크의 90%도 이해했다는 의미입니다. 세 가지를 모두 살펴보고 더 직관적으로 느껴지는 것을 선택하는 것이 좋습니다. 그렇지 않다면 가장 직관적이고 따라하기 쉬운 GCP부터 시작하겠습니다.

🌐 유형: 사이트

💰무료 : 예

👉 Google Cloud 아키텍처 프레임워크

GCP 아키텍처 프레임워크는 사용자 친화적이고 탐색하기 쉽습니다. 목차를 살펴보는 것은 잘 정리된 안내서를 살펴보는 것과 같습니다. 그들이 아키텍처 원칙을 논의하는 방식은 대부분 불가지론적이고 실제 GCP 서비스와 독립적입니다.

👉 AWS Well-Architected 프레임워크

Amazon Web Services에는 클라우드에서 애플리케이션을 설계하고 설계하는 것과 유사한 가이드도 있습니다. GCP에서 제공하는 것과 유사하며 상호 참조하고 공백을 메우는 데 사용할 수 있습니다.

👉 Azure Well Architected 프레임워크

Azure Well-Architected 프레임워크는 탐색하기 다소 덜 직관적일 수 있지만 최신 클라우드 기반, 확장 가능하고 탄력적인 애플리케이션을 설계하는 데 대한 풍부한 정보도 포함합니다. 또한 업계 모범 사례에 중점을 두고 특정 Azure 기술을 학습할 수 있는 무료 과정과 "경로"를 제공합니다.

10,000피트 뷰 - 축소

image

👉 소프트웨어 아키텍트 엘리베이터

이것이 유용한 이유: Software Architect Elevator는 훌륭한 읽기 자료이자 모든 소프트웨어 설계자에게 꼭 필요한 책입니다. 이 책에서 Gregor Hohpe는 소프트웨어 설계자가 업계에 제공하는 가장 중요한 가치, 이와 관련된 장점, 함정 및 미묘한 차이에 대해 이야기합니다. 이 책은 소프트웨어 아키텍트 역할에 대한 이해를 돕기 위한 좋은 책입니다.

📘 유형: 책

💰무료 : 아니요

👉 기술 레이더 — 오늘날의 기술 환경에 대한 독보적인 가이드

이것이 유용한 이유: Thoughtworks는 소프트웨어 아키텍처 및 일반적인 기술 상태에 대한 가장 중요한 콘텐츠 중 일부를 생산하므로 따라갈 가치가 있는 회사입니다. Technology Radar는 업계 전반의 추세, 문제 및 기술 예측에 대해 설명하는 종합 가이드로 매년 발표됩니다.

🌐 유형: 사이트 및 디지털 가이드

💰무료 : 예

지속적인 학습과 소프트웨어 설계자로서의 레벨업을 위한 리소스

image

👉 https://www.deararchitects.xyz/

“Dear Architects” 뉴스레터는 소프트웨어 아키텍처 분야에서 주목할 만한 또 다른 유명인 Luca Mezarilla의 프로젝트입니다. 이 뉴스레터는 소프트웨어 아키텍처 세계의 모든 분야에서 훌륭한 통찰력, 사용 사례 및 정보를 제공합니다.

👉 https://dzone.com/

소프트웨어 엔지니어링, 아키텍처 및 기술에 대한 인기 있는 리소스입니다. 여기에서 추세 보고서, 참조 카드 및 풍부한 정보를 찾을 수 있습니다.

👉 https://www.infoq.com/

위의 Dzone과 마찬가지로 이는 소프트웨어 아키텍처, 엔지니어링 및 기술 콘텐츠 측면에서 업계의 거대 기업입니다.

👉 https://www.gartner.com/en/insights

Gartner의 통찰력 및 동향 보고서와 기사는 사실상의 표준이며 대부분의 CTO 및 기술 리더 읽기 목록의 필수 항목입니다. Gartner는 대규모 설문 조사를 진행하고 사고 리더십, 기술 상태 및 업계 동향에 대한 깊은 통찰력을 제공하는 기관입니다. Gartner 보고서를 따르는 이유는 반드시 심층적인 기술 지식을 갖추기 위한 것이 아니라 산업 기술 환경 전반에 대한 지식과 인식을 구축하기 위한 것입니다.

👉 GOTO 컨퍼런스

GOTO 컨퍼런스는 소프트웨어 엔지니어링 및 아키텍처 분야에서 최고의 컨퍼런스 중 하나입니다. 채널을 팔로우하고 최신 콘텐츠를 유지하는 것은 가치 있는 일입니다.

Google Cloud Storage(GCS)를 통한 Angular CDN 구현

· 3 min read

image

Angular 애플리케이션을 배포하기 위해 GCP 저장소 버킷을 빠르게 만드는 방법을 보여 드리겠습니다.

내 Angular 프로젝트를 저장하기 위해 스토리지 버킷을 생성해야 합니다.

그런 다음 Application Load Balancer는 트래픽을 URL 또는 IP에서 스토리지 버킷의 콘텐츠로 리디렉션합니다.

세부 사항을 살펴 보겠습니다.

프런트엔드 준비

우선 Storage Bucket에 업로드할 파일을 준비해야 합니다.

해당 파일은 프로젝트 파일이 아니지만 프로젝트의 컴파일된 버전을 얻으려면 Angular 프로젝트를 빌드해야 합니다.

컴파일을 통해 전체 프로젝트가 포함된 5~7개의 파일 세트가 생성됩니다.

이는 프로젝트의 모든 JavaScript, HTML 및 CSS 콘텐츠를 단일 파일로 압축한 것입니다.

해당 파일을 얻으려면 package.json 파일을 살펴보거나 다음 명령을 실행하면 됩니다.

1ng build

결과 파일은 dist 폴더 에 있습니다 . 그 안에는 프로젝트 이름이 적힌 또 다른 폴더가 표시됩니다. 그리고 이 폴더 안에는 생성된 모든 파일이 있습니다.

GCP 저장소 버킷 구성

이제 컴파일된 파일을 업로드하기 위해 스토리지 버킷을 생성하고 구성해야 합니다. 로드 밸런서를 통해 URL을 통해 액세스할 수 있도록 이 버킷을 구성해야 합니다.

모든 정보는 이 링크 에서 찾을 수 있습니다 .

먼저 모든 콘텐츠를 저장할 버킷을 만들어 보겠습니다. 기본 옵션과 프라이빗 버킷을 선택합니다.

image

GCP 저장소 버킷 만들기

Angular 프로젝트의 파일을 저장할 버킷이 있으면 이제 URL 요청을 index.html 파일로 리디렉션하는 로드 밸런서를 생성할 차례입니다.

네트워크 설정으로 이동하여 Application Load Balancer인 Load Balancer를 생성합니다.

image

Application Load Balancer 생성

Application Load Balancer를 구성할 때 프런트엔드와 백엔드를 설정해야 합니다.

프런트엔드의 경우 기본값을 그대로 둡니다. 프런트엔드 구성은 Load Balancer, 포트, 프로토콜 등에 액세스하는 방법을 정의합니다.

그리고 백엔드의 경우 Load Balancer 뒤에 무엇이 있는지 정의합니다. 로드 밸런서 뒤에 스토리지 버킷을 두고 싶습니다. 이제 백엔드 로드 밸런서를 버킷으로 구성해 보겠습니다.

image

Application Load Balancer 백엔드 버킷 구성

마지막으로 프런트엔드 및 백엔드 구성을 표시하는 요약 창이 있습니다. 생성 버튼을 클릭하면 로드 밸런서가 생성됩니다.

image

로드 밸런서 요약

Load Balancer가 생성되면 요청할 IP를 얻기 위한 세부 정보를 확인할 수 있습니다.

image

로드 밸런서 세부정보 보기

나중에 IP를 복사합니다.

콘텐츠 업로드

GCP의 모든 아키텍처가 생성되었습니다. 이제 Angular 프로젝트를 내 스토리지 버킷에 업로드할 차례입니다.

내 프로젝트를 업로드하려면 터미널에서 다음 GCP 명령을 실행해야 합니다.

1gcloud storage cp -r dist/frontend gs://my-bucket

이렇게 하면 dist/frontend 폴더 의 콘텐츠 (내 프로젝트 이름이 frontend 인 경우)가 my-bucket 이라는 스토리지 버킷에 업로드됩니다 .

귀하의 콘텐츠에 접근하세요

이제 브라우저에서 로드 밸런서의 IP 주소에 액세스할 수 있습니다. 그러면 브라우저에 내 스토리지 버킷의 콘텐츠가 표시됩니다.

더 나아가서 HTTPS 프로토콜을 사용하여 Angular 프로젝트로 이동하도록 로드 밸런서에서 SSL 인증서를 구성할 수 있습니다.

또한 접근성이 높고 빠른 액세스가 가능하도록 CDN(Content Delivery Network)을 구성하여 전 세계 여러 지역에 프런트엔드 파일을 분산시킬 수 있습니다.

마지막으로 IP 주소 대신 DNS 레코드를 생성하여 로드 밸런서에 도메인 이름을 연결할 수 있습니다. 이렇게 하면 IP 주소 대신 맞춤 URL을 갖게 됩니다.