[카테고리:] 프로그래밍

  • 요즘 대세 MSA, 잘 알고 사용해야 하는 이유 ft. 잘못된 성공 방정식이 가지고 온 비극

    요즘 대세 MSA, 잘 알고 사용해야 하는 이유 ft. 잘못된 성공 방정식이 가지고 온 비극

    AI.ing

     | 마이크로서비스 아키텍처의 등장

     

    마이크로서비스 아키텍처가 언제 시작되었다고 할지는 관점에 따라 다를 수 있지만, 2014년 3월에 마틴 파울러와 샘 뉴먼이 발표한 마이크로서비스에 관한 글이 이 아키텍처의 확산에 큰 영향을 미친 것은 분명합니다. 그리고 사실, 이 글에서 제시된 마이크로서비스 아키텍처 개념은 기존 소프트웨어 개발에서 발생하는 문제들을 해결하기 위해 많은 프로젝트 현장에서 시도되고 있던 다양한 방법들을 정리한 것이기 때문에, 많은 아키텍트들과 개발자들에게 이 개념이 받아들이기 어렵다거나 뜬구름 같은 느낌으로 다가오지는 않았습니다. 

    대부분이 ‘마음만 먹으면 가능한’ 것들이었으니까요. 특히 당시에는 넷플릭스 OSS 스택이 출시된 상태였고, 퍼블릭 클라우드 환경의 활용도 활발히 논의되던 시기였기에 기술적으로도 큰 제약이  없었습니다. 게다가 모바일 애플리케이션 시장이 폭발적으로 성장하면서 새로운 시스템 구축에 대한 필요와 예산, 인력도 충분했던 상황이었죠. 덕분에 국내의 보수적인 소프트웨어 개발 현장에서도 마이크로서비스 아키텍처는 비교적 빠르게 확산되고 대부분 성공적으로 자리 잡을 수 있었습니다.

    문제는 마이크로서비스 아키텍처의 확산이 지나치게 빠르고 성공적으로 이루어졌다는 점입니다. 일반적으로 마이크로서비스 아키텍처의 부작용이라 하면, 메모리와 CPU 수준에서 처리할 수 있는 작업이 네트워크 레벨로 옮겨지면서 발생하는 성능 문제, 조직 구조와 맞지 않는 서비스 경계로 인해 발생하는 끝없는 조직 개편과 리팩토링, 자동화되지 못한 빌드와 배포 파이프라인으로 인해 점점 커지는 배포 작업, 조직 간 커뮤니케이션 부재로 인한 오해와 오류 등이 떠오릅니다. 현재는 대부분 이러한 부작용을 방지하기 위해 마이크로서비스를 도입하기 전에 신중한 준비와 고려가 필요하다는 점을 알고 있지만, 막 마이크로서비스가 유행하기 시작했던 당시에는 ‘우리도 마이크로서비스를 도입했다’라는 선언의 유혹을 이기지 못한 많은 프로젝트 현장이 충분한 준비와 고려없이 마이크로서비스 아키텍처라는 간판을 내걸기 시작했습니다.

    그 결과, 마이크로서비스 아키텍처는 현장에 지나치게 빠르게 퍼져 나갔고, 부작용에 대한 검증이 이루어지기도 전에 ‘성공’이라는 평가가 내려졌습니다. 누군가는 성공의 보상을 받고 떠났지만, 남은 사람들은 ‘성공한 프로젝트’를 이어받아 부작용을 감내하기 시작했습니다. 그리고 그 과정에서 마이크로서비스 아키텍처에 상처받는 개발자들이 하나둘 등장하게 되죠.

     

     | 마이크로서비스 아키텍처는 왜 급하게 확산되었을까?

    사실, 급하게 확산되는 상황은 마이크로서비스 아키텍처에서만 유별나게 나타나는 것은 아닙니다. 특히 연간 목표나 KPI를 위주로 개발 목표가 정해지는 기관이나 회사에서 어떤 새로운 기술 트렌드가 확산될 때 이 기술의 ‘적용’이 목표가 되는 경우가 많은 것이지요. 모바일 애플리케이션, 챗봇, 머신러닝, 클라우드, LLM, 마이크로서비스 아키텍처는 모두 각기 그 기술이 지향하는 목표와 풀고자 하는 문제가 분명하게 있는데. 현장에서는 그 기술이 왜 트렌드가 되었는지, 어떤 문제를 해결하고자 하는지, 무엇을 만들고자 하는지에 관심을 가지지 않고 ‘우리도 이거 적용했어요’라는 보고를 올리기 위한 프로젝트를 발주하고 있는 것입니다. 이러한 이유로 모바일 애플리케이션의 경우 앱 스토어에 등록만 하면 성공이고, 챗봇은 고객센터 전화번호만 알려줘도 성공이 되는, 프로젝트가 반드시 성공할 수밖에 없는 상황들이 만들어집니다.

    마이크로서비스 아키텍처의 경우도 마찬가지로, 프로젝트의 성공과 실패를 판정하는 사람들이 이 서비스들이 제대로 분리되었는지, 지속적으로 배포 가능한 환경을 구축했는지, 변경에는 유연하게 대응할 수 있는지 등에 대한 판단을 할 수 있을리가 없으니 대부분의 마이크로서비스 전환 프로젝트는 프리패스로 성공할 수밖에 없었던 것이죠. 물론 그 많은 프로젝트들이 다 엉망이었다거나 하는 척만 했다는 것은 아닙니다. 대부분은 각자가 이해한 방식대로 마이크로서비스 아키텍처를 구현했죠. 하지만 그 목표가 ‘마이크로서비스 아키텍처의 적용’이었던 많은 프로젝트들은 마이크로서비스를 적용해서 얻고자 했던 가치가 무엇인지 모르는 상태로 대부분 어정쩡하게 성공했습니다.

    이 상황들 자체는 조금 답답할 수는 있어도 아주 큰 문제라고 보기는 어렵지만, 문제는 여기서 등장합니다. 어느 순간부터 마이크로서비스 아키텍처가 목표가 아닌 수단이 되기 시작했고, 어정쩡한 성공의 기억은 미화되어 그냥 성공의 기억으로 남게 되었습니다. 그 결과, 새로운 프로젝트를 마이크로서비스 아키텍처로 만드는 것이 당연해지게 되어 서비스를 억지로라도 나눠야되는 상황들이 발생하기 시작했고, 쿠버네티스 (Kuberentes) 환경에서 유레카(Eureka)를 띄우는 것과 같은 망측한 결과물이 나타나기 시작했습니다. 2016년쯤에 완성된 마이크로서비스 아키텍처는 넷플릭스 스택이나 스프링 클라우드 스택을 사용하는 것이 당연했고, 이 스택의 적용이 성공했으니 퍼블릭 클라우드와 쿠버네티스를 기반으로 하는 2018년이나 2019년도의 프로젝트에서도 성공 방정식을 적용하듯이 기존 스택들을 끌어오기 시작한 것이죠.

     

     | 중요한 것은 마이크로서비스 아키텍처가 아니다

    사실 마이크로서비스 아키텍처는 그렇게 중요하지 않습니다. 정확히 말하면 저 타이틀 자체는 아무것도 아니라는 것이죠. 진짜 중요한 것은 마이크로서비스 아키텍처가 왜 시스템을 여러 작은 서비스로 분할하려고 하는지에 대한 배경과 목적입니다. 지난 10년간 너무나 많은 프로젝트들이 마이크로서비스 아키텍처라는 타이틀에 집착하여 나누지 않아도 될 시스템을 나누게 되었고, 그 결과 모놀리식 시스템이 더 적합한 프로젝트들이 마이크로 서비스로 분활되어 부작용만 뿜어내는 구조를 가지게 되었습니다. ‘이 시스템은 몇 개의 서비스로 분할되는 것이 맞는가?’와 같은 구조적인 해석을 요구하는 질문에 딱 맞아떨어지는 정답이 없다보니 마이크로서비스 아키텍처에 대한 각각의 해석이 난무하게 되었고, 이 해석이 각자의 성공 경험으로 치환되면서 세상에 수많은 ‘우리식 마이크로서비스 아키텍처’가 생겨나게 되었습니다. 

    마이크로서비스 아키텍처가 본격적으로 확산되기 시작한지 10년이 되었고, 그 시기에 만들어진 시스템들이 이제 레거시 시스템이 되어가는 이 시점에서 마이크로서비스 아키텍처가 왜 등장하게 되었고 그 이전에는 어떤 문제들이 있었는지, 혹시 마이크로서비스 아키텍처가 당연하게 쓰이는 지금에는 그 문제들이 다 해결되었는지 생각해보는 것은 목표 지향적으로 달려온 소프트웨어 개발 현장에 적절한 브레이크가 될 수 있을 것이라고 생각합니다. 조금 역설적으로 들릴 수 있지만, 마이크로서비스 아키텍처에 대한 이해가 깊어지면 오히려 마이크로서비스 아키텍처를 사용하지 않는 선택을 할 수도 있을 것이고, 반대로 마이크로서비스 아키텍처를 정말 필요한 곳에 적절하게 적용할 수도 있을 것입니다.

    대부분의 마이크로서비스 아키텍처 (MSA) 강의나 도서에서는 원론적인 이야기만 하고, 이 마이크로서비스 아키텍처가 가진 실질적인 문제점들을 숨깁니다.

    하지만, 패스트캠퍼스에서 출시한 [MSA 워크샵 : 12가지 핵심 기술로 구현하는 MSA 실무 프로젝트] 강의에서는 MSA 실무자들을 위해 MSA 구현시 발생하는 문제 상황들과 주의해야 할 기술들까지 단점부터 장점까지! 전부 알려줍니다.

    개발자들이 가장 어려워하는 비동기 호출, 트랙잭션 처리, CQRS 패턴을 포함한 12가지 MSA 핵심기술은 물론, SNS 프로젝트로 실무에서 마주치는 다양한 실패 케이스까지 함께 해결해볼 수 있다고 하는데요.



    현장에서 발생하는 실무 이슈들을 담은 Q&A집까지 무료로 제공한다고 합니다!

    대기업 리드급 현직 개발자에게 배우는 실무 중심의 MSA, 지금 바로 만나보세요 >>

    이런 글도
    있어요

  • 요즘 핫하다는 Supabase, Next.js 조합 쓰는 이유 by. 개발자 노마드 준

    요즘 핫하다는 Supabase, Next.js 조합 쓰는 이유 by. 개발자 노마드 준

    AI.ing

    모든 직장인들의 꿈 시간과 공간에 제약 받지 않으면서 돈을 벌 수 있는 노마드 삶!

    이를 이룬 노마드 개발자 분이 계신데요, 이 분이 선택한 웹앱 개발 킬러 조합이 있다고 합니다.

     

    바로  Supabase X  Next.js 조합 입니다.

    요즘 MZ 개발자들 사이에서도 유명한 조합이라고 하는데 한 번 알아볼까요?!





    Supabase란?

    가장 강력한 백엔드 및 DB 관리 서비스로 DB, 인증, 스토리지 등의 백엔드 기능을 서버 설정할 수 있으며, 복잡한 백엔드 관리 없이도 간편하게 구현할 수 있다는 장점을 갖고 있습니다. 

    Supabase의 주요 장점도 한 번 알아볼까요?!

    ✔ 강력한 관계형 데이터베이스인 PostgreSQL을 사용하여 데이터 관리의 유연성과 성능 제공

    ✔ 데이터베이스를 구축하면 Supabase가 자동으로 RESTful API를 생성

    ✔ 데이터베이스의 변화가 실시간으로 클라이언트에 반영될 수 있는 기능 제공

    ✔ 웹 기반의 직관적인 사용자 인터페이스를 통해 데이터베이스와 프로젝트를 쉽게 관리

     

    이러한 장점들 덕분에 Supabase는 현재 Firebase의 유력한 대안으로 떠오르고 있습니다. 

    또한 Supabase의 깃허브 스타 수 추이는 매우 가파르게 높아지고 있다고 합니다. (*아래 그래프 참조)

    이렇듯, Supabase는 오픈 소스라는 특성과 PostgreSQL의 강력한 기능은 개발자들에게 필요에 따라 플랫폼을 커스터마이징할 수 있는 유연성을 제공하고 있습니다.

     

    Next.js란?

    프론트엔드 개발 효율 끝판왕으로 SSR에 강해 속도도 빠르고, 앱 라우팅으로 관리가 쉬워 개발 생산성 높아 현재 인기 있는 기술 입니다.

    Next.js의 주요 장점은 아래와 같습니다.

    ✔ 서버 사이드 렌더링을 지원하여 초기 페이지 로드 속도를 향상시키고 SEO 최적화 가능

    ✔ API 라우트를 지원하여 서버리스 API를 쉽게 구축

    ✔ CSS-in-JS, CSS 모듈, Sass 등 다양한 스타일링 옵션을 지원하여 개발자가 선호하는 방식으로 스타일 적용

    ✔ 핫 리로딩, TypeScript 지원 등 개발자 친화적인 기능을 제공하여 효율적인 개발 환경 조성

    Next.js는 현재 React 프레임워크 중에서 1위를 차지하고 있으며, GitHub 내 14번째로 큰 프로젝트로 알려져 있습니다. 스타트업부터 대기업까지 다양한 산업에서 Next.js를 채택하고 있으며, 이는 개발의 효율성과 성능을 극대화하기 위한 선택으로 볼 수 있습니다.

     

     Supabase X  Next.js 조합?

     

    Supabase와 Next.js의 조합은 현재 많은 개발자들 사이에서 주목받고 있는 “킬러 조합”으로 불리고 있습니다. 

    그 이유를 한 번 알아볼까요?!

     

    ✔ 완벽한 백엔드와 프론트엔드 통합

    Supabase는 데이터베이스, 인증, 스토리지 등의 백엔드 기능을 제공하며, Next.js는 서버 사이드 렌더링 및 정적 사이트 생성을 지원합니다. 이 두 가지를 결합하면, 데이터베이스와 클라이언트 애플리케이션 간의 원활한 통신이 가능해집니다. 개발자는 복잡한 백엔드 설정 없이도 강력한 애플리케이션을 쉽게 구축할 수 있습니다.

     

    ✔ 빠른 개발 속도

    Supabase는 RESTful API를 자동으로 생성하고, Next.js는 파일 기반 라우팅을 제공하여 개발자가 페이지를 쉽게 추가하고 관리할 수 있습니다. 이러한 특성 덕분에 개발자는 더 빠르게 프로토타입을 만들고, 기능을 추가하며, 전체 애플리케이션을 신속하게 출시할 수 있습니다.

     

    ✔ 유연한 스타일링 옵션

    Next.js는 다양한 스타일링 옵션(CSS-in-JS, CSS 모듈 등)을 제공하고, Supabase는 데이터베이스에 저장된 리소스를 활용하여 동적인 스타일링을 가능하게 합니다. 이로 인해 개발자는 애플리케이션의 디자인과 사용자 경험을 최적화할 수 있습니다.

     

    ✔ 비용 효율성

    Supabase는 사용량 기반의 요금제를 제공하며, 많은 기능을 무료로 사용할 수 있습니다. Next.js 또한 오픈 소스이므로, 비용 부담 없이 두 기술을 활용하여 고성능 애플리케이션을 구축할 수 있습니다.

     

     빠르고 효율적인 웹앱 개발을 위한 노마드 준의 노하우!

    노마드 준이 알려주는 웹앱 킬러 조합🔫 

     

    ✔️ 최신 개발 스택으로 풀스택 웹앱 개발 

    ✔️ 4가지 프로젝트로 실전 웹앱 정복 

    ✔️ Cursor AI 등 실전 AI 활용 노하우 전수 

    ✔️ 노마드 준의 보일러 플레이트 코드 모음집까지!

    강의 보러가기  >>>>

    이런 글도
    있어요

  • 구글에서 알려주는 클린 아키텍처만 알아서는 안되는 이유

    구글에서 알려주는 클린 아키텍처만 알아서는 안되는 이유

    AI.ing

    #앱 개발

    #아키텍처

    #안드로이드 개발자

     

     

    2024년 2월, 구글이 배포한 ‘Now in android’ 앱 예제가 개발자들 사이에서 큰 논란을 불러일으켰습니다.

    구글의 앱 예제가 기존의 클린 아키텍처와 SOLID 원칙을 따르지 않는다는 이유에서였는데요.

     

     

    Yazon2006 이라는 개발자가 구글의 앱 구조는 의존 관계를 역전시켜, 도메인 계층이 데이터 계층에 의존하도록 설계되었다며 클린 아키텍처의 핵심 원칙을 위반했다고 주장했습니다.

     

    → 클린 아키텍처는 비즈니스 로직을 포함한 도메인 계층이 데이터 계층에 의존해서는 안된다는 원칙이 있으며, 이 원칙에 따르면 데이터 계층은 도메인 계층에 의존해야 하고 도메인 계층은 기술적 세부 사항에 독립적이어야 합니다.

     

    따라서 Now in android가 클린 아키텍처를 따르고 있지 않기 때문에 이를 참고하는 안드로이드 주니어 개발자에게 혼동을 줄 수 있으니 클린 아키텍처를 따르도록 프로젝트의 구조를 변경하거나, 클린 아키텍처를 따르지 않는다고 명시하라고 주장했고,

     

     

    이로 인해 구글은 문서에 “구글 가이드에 나와있는 아키텍처는 클린 아키텍처와 다를 수 있다” 는 내용을 추가합니다. 

     

    하지만, “안드로이드 앱 아키텍처” 구글링을 통해 공식 아키텍처 가이드를 찾고, 구글 안드로이드 가이드에 있는 예제를 찾아서 권장 사항을 맹목적으로 따라하던 주니어 앱 개발자들은 

    클린 아키텍처에 대한 각기 다른 해석과 설명으로 어떤 아키텍처를 써야할지 혼란에 빠지게 되는데요.

     

    그렇다면, 구글 가이드의 아키텍처와 기존의 클린 아키텍처 중 어느 것을 사용해야 하는 걸까요?

     

     | 구글 가이드의 아키텍처 vs 클린 아키텍처

     

     

    앞서, 구글 가이드에 있는 앱 아키텍처는 기존에 알던 클린 아키텍처와는 다르다고 말씀드렸는데요. 

    구글 가이드에서 제시하는 아키텍처와 클린 아키텍처는 모두 안드로이드 앱 개발에서 각각 중요한 역할을 하지만, 설계 철학과 구조적인 차이점이 있습니다.

    1. 구조적 차이

    – 구글 가이드: 구글은 안드로이드 개발을 위해 MVVM(Model-View-ViewModel) 패턴을 기반으로 한 아키텍처를 권장합니다. MVVM은 앱의 데이터와 UI를 분리하여 ViewModel을 통해 데이터를 관리하고, UI와 비즈니스 로직 사이의 의존성을 줄이는 것을 목표로 하는데요. 이 방식은 간결한 구조와 빠른 개발 속도를 중시하며, 안드로이드 앱 개발에 최적화된 경량화된 패턴을 제공합니다.

    – 클린 아키텍처: 클린 아키텍처는 소프트웨어를 여러 계층(Layer)으로 나누어 구조화하는 패턴을 가지고 있습니다. 이를 통해 비즈니스 로직(도메인), 애플리케이션 로직 및 UI를 명확하게 분리하는데요. 클린 아키텍처는 의존성 역전(Dependency Inversion)을 통해, 상위 계층이 하위 계층에 의존하지 않고 인터페이스를 통해 상호작용하게 하여, 유연성과 확장성을 극대화합니다.

     

    (출처 ㅡ Medium – Now in android는 클린 아키텍처와 SOLID를 따르지 않는다”)



    2. 의존성 관리

    – 구글 가이드: 구글에 가이드에 있는 아키텍처는 주로 의존성 주입(Dependency Injection)을 통해 클래스 간 의존성을 관리하며, ViewModel과 LiveData 같은 안드로이드 프레임워크에 의존하는 경우가 많습니다. 이러한 의존성은 빠르게 코드를 작성하는 데 유리하지만, 특정 프레임워크에 종속될 수 있습니다.

    – 클린 아키텍처: 클린 아키텍처는 의존성 역전 원칙(Dependency Inversion Principle, DIP)을 따르며, 상위 계층이 하위 계층에 직접 의존하지 않도록 인터페이스를 사용합니다. 비즈니스 로직이 외부 UI나 데이터베이스 같은 인프라 계층에 의존하지 않기 때문에, 각 계층은 독립적으로 테스트하거나 변경할 수 있습니다.

     

    3. 확장성과 유지보수

    – 구글 가이드: 구글의 권장 아키텍처는 상대적으로 간단하고 빠르게 구현할 수 있으며, 소규모 앱에서 매우 효과적입니다. 하지만 규모가 커질수록 복잡해질 수 있고, 비즈니스 로직과 UI 간의 의존성이 남아있을 가능성이 있어 유지보수가 어렵게 될 수 있습니다.

    – 클린 아키텍처: 반면 클린 아키텍처는 여러 계층이 독립적으로 동작하므로, 유지보수와 확장이 용이합니다. 특히, 앱이 커질수록 이 아키텍처의 장점이 극대화되는데요. 테스트 가능성도 높아져, 각 계층을 독립적으로 테스트할 수 있는 구조입니다. 다만 초기 설계와 구현은 구글 가이드 방식보다 복잡할 수 있는 단점을 가지고 있습니다.

     

    4. 사용 사례

    – 구글 가이드: 구글의 아키텍처 가이드는 안드로이드 개발에서 자주 사용하는 MVVM 패턴을 중심으로 구성되어 있어, 안드로이드 앱 개발에 특화된 방식을 제시합니다. 이는 소규모 프로젝트나 MVP를 빠르게 구현하는 데 유리하죠.

    – 클린 아키텍처: 클린 아키텍처는 어떤 플랫폼에서도 적용할 수 있는 일반적인 소프트웨어 설계 패턴으로 안드로이드뿐 아니라 웹, 서버 등 다양한 분야에서 사용할 수 있으며, 특히 대규모 시스템에서 유리합니다. 하지만 안드로이드 앱에 적용하려면, MVVM이나 구글 가이드와의 조화를 잘 고려해야 합니다.

     

    결론적으로 구글 가이드에 나와있는 아키텍처는 안드로이드 개발에 최적화된 간결하고 실용적인 구조를 제공하지만, 규모가 커질수록 유지보수와 확장성에서 한계를 느낄 수 있습니다. 반면, 클린 아키텍처는 장기적인 유지보수성과 확장성을 중시하는 설계 방식이지만, 초기 설정과 복잡성이 더 높습니다.

     

    따라서, 두 아키텍처의 차이점을 제대로 이해하고 프로젝트의 성격, 규모, 장기적인 목표에 따라 적합한 아키텍처를 선택하는 것이 중요한데요. 그러나 실무에서의 클린 아키텍처는, 사실 국내에선 아직까지 제대로 배울 수 있는 방법이 없었습니다.

     

    | 실무에서의 클린 아키텍처, 배우고 싶다면

     

    이처럼, 클린 아키텍처에 대한 각기 다른 해석과 설명으로 어떤 아키텍처를 써야할지 혼란에 빠진 주니어 앱 개발자들을 위해 14년차 안드로이드 개발자 테드박이 직접 등판하여 패스트캠퍼스와 함께 “확장성과 유지보수에 용이한 클린아키텍처” 강의를 출시했습니다!

     

    [테드박의 안드로이드 앱 개발 : 확장성과 유지보수에 용이한 클린 아키텍처]

     

    이 강의에서는 국내 GDE 4인 모두가 인정하는 개발자,

    대기업부터 창업, 스타트업 리드까지 다양한 규모의 프로젝트를 이끌었던 14년차 안드로이드 앱 개발자 테드박의 실무에서의 클린 아키텍처 적용 노하우를 공개한다고 하는데요.

     

    클린 아키텍처의 기본 원리부터 영화 프로젝트를 통한 실습, 그리고 5가지 상황별 클린 아키텍처의 실무 적용 팁까지, 클린 아키텍처의 모든 것을 알려준다고 합니다.

     

    테드박이 직접 답변해주는 질의응답 게시판부터, 강의에서 사용된 프로젝트 코드까지 모두 제공해드린다고 하니 놓치지 마세요!

     

    14년차 안드로이드 앱 개발자 테드박에게 클린 아키텍처 노하우를 전수받는 강의!

    지금 바로 확인해 보세요.

     

    https://bit.ly/3TMe5CL





    이런 글도
    있어요

  • 클라우드 입문할때 AWS만 배우면 안되는 이유(ft.Kubernetes, 리눅스..)

    클라우드 입문할때 AWS만 배우면 안되는 이유(ft.Kubernetes, 리눅스..)

    AI.ing

    최근 IT 개발 환경들이 클라우드로 바뀐 것은 누구나 알고 있는 사실인데요. 그래서 각종 기업들도 클라우드에 집중해 서비스를 운영하고 있습니다. 이러한 속에서 최근 필수 인프라 & DevOps 기술들은 어떤 것이 있고, 이를 어떻게 배워야하는지 알아보겠습니다. 

     

     

    1.업계 표준이 된 인프라 & DevOps의 3가지 기술 스택

    1)AWS

    AWS는 컴퓨팅, 스토리지, 데이터베이스 등 다양한 인프라를 제공하는 국내 1위 클라우드 컴퓨팅 서비스입니다. AWS는 필요에 따라 리소스를 쉽게 확장하거나 축소할 수 있는 기능을 제공하는데요.  어떤 강점때문에 사용하는 걸까요? 

    ・ 비용 효율성 : 종량제 요금제를 통해 사용한 만큼만 비용을 지불할 수 있어 초기 투자 비용을 줄일 수 있습니다. 그래서 스타트업이나 중소기업에게 특히 사용하기 좋습니다.

    ・ 신뢰성 및 가용성 : AWS는 전 세계 여러 리전과 가용 영역을 통해 높은 가용성과 내구성을 제공하는데요. 서비스 중단을 최소화하고 비즈니스 연속성을 보장합니다.

    ・다양한 서비스와 도구 : AWS는 컴퓨팅, 스토리지, 데이터베이스, 머신러닝, IoT 등 다양한 서비스를 제공하여 기업이 필요에 맞는 솔루션을 쉽게 찾을 수 있도록 합니다. DevOps 도구도 풍부해  CI/CD, 인프라 관리 등을 효율적으로 수행하기 좋습니다.

    그 외에도 보안이 강력하고, 방대한 커뮤니티, 전 세계 센터 보유 등 다양한 이유로  AWS는 인프라 및 DevOps 분야에서 필수적인 기술 스택으로 자리 잡고 있습니다.

    2) Kubernetes

    쿠버네티스(Kubernetes) 는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하는 IT 기업의 표준 오케스트레이션 도구인데요. 백엔드 아키텍쳐의 트렌드가 MSA+Container 구성이 되면서 다양한 오케스트레이션 도구가 등장했고 그중에 Kubernetes가 컨테이너 오케스트레이션의 표준이 된 상황이기 때문입니다. 어떤 강점 때문에 표준이 되었는지 알아볼까요?

    ・확장성 : Kubernetes는 수평적 확장을 지원하여, 필요에 따라 애플리케이션의 복제본을 쉽게 추가하거나 제거할 수 있는데요. 이는 트래픽 변화에 유연하게 대응할 수 있게 해줍니다.

    ・자체 복구 : Kubernetes는 장애가 발생한 컨테이너를 자동으로 재시작하거나 교체하여, 애플리케이션의 가용성을 높여 시스템의 안정성을 크게 향상시킵니다.

    ・서비스 발견 및 로드 밸런싱 : Kubernetes는 서비스 간의 통신을 쉽게 설정하고, 로드 밸런싱을 통해 트래픽을 효율적으로 분산시킵니다. 이는 애플리케이션의 성능을 최적화하는 데 도움을 줍니다.

    이 외에도 효율적인 배포 관리, 다양한 환경에서의 유연성 등으로 Kubernetes는 현대 애플리케이션 개발 및 운영에서 필수적인 기술로 자리 잡고 있으며, 많은 기업들이 이를 통해 효율성과 안정성을 높이고 있습니다.

    3) 리눅스

    리눅스는 서버와 클라우드 환경에서 안정성과 유연성을 제공하는 모든 IT 환경에서 가장 많이 사용되는 운영체제입니다. 

    ・오픈 소스 : 리눅스는 오픈 소스 소프트웨어로, 누구나 소스 코드를 수정하고 배포할 수 있습니다. 

    ・ 안정성 : 리눅스는 높은 안정성과 신뢰성을 제공하여 서버 환경에서 많이 사용됩니다.

    ・보안 : 리눅스는 보안 기능이 강력하여, 다양한 보안 도구와 패치가 지속적으로 제공됩니다.

     

    이 외에도 다양한 배포판, 커뮤니티 지원, 다양한 클라우드 플랫폼에서도 리눅스 기반의 인스턴스를 쉽게 사용할 수 있는 등 개인 사용자부터 대규모 기업에 이르기까지 다양한 환경에서 널리 사용되고 있으며, IT 인프라의 중요한 구성 요소로 자리 잡고 있습니다.

    2.  DevOps(데브옵스) 기술 수준별로 어떻게 사용하면 좋을까요?

    입문자-사용자-운영자-관리자별로 학습해야하는 부분이 다른데요. 수준에 따라 어떻게 배우면 좋을까요?

    1단계 클라우드 입문자 : 리눅스 및 클라우드 컴퓨팅의 기초 개념부터 알야아합니다.

    2단계 클라우드 사용자 : AWS를 활용한 클라우드 인프라 설계 및 관리 방법 알아야합니다.

    3단계 클라우드 운영자 : Kubernetes(K8s) 클러스터 관리 및 상세 분석을 알아야합니다.

    4단계 클라우드 관리자 : 실무에서 사용하는 자동화/모니터링 도구로 안정적인 운영 환경을 구축할 줄 알아야합니다. 

    3. 클라우드 운영과 DevOps 어떻게 배워야할까요?

    흔히 많은 입문자들이 리눅스, K8s, aws 다 알아야하는지 고민을 하곤하는데요. 슬프지만 다 공부해야하며, 하나라도 놓치면 경쟁력이 떨어져 불리해지는 경우가 많습니다. 특히 기술 스택 하나만 따로 배우면 실무 환경에서는 활용이 어렵기 때문에 DevOps 전 범위의 40가지 이상 필수 기술스택까지 리눅스, AWS, Kubernetes 3가지 환경 위에서 DevOps의 각 단계별 기술 스택들이 어떻게 동작하는지까지 알아야 합니다.하지만 이 수많은 기술들 언제 하나하나 배우나요? 

    그래서 준비한 [실전 DevOps의 모든 것 : 리눅스부터 GitOps까지]!  이 강의는 aws, Kubernetes, 리눅스를 포함한 DevOps 전 범위의 40가지 이상 필수 기술 스택부터, 최신 클라우드 운영을 3단계 95가지 실습으로 마스터할 수 있도록 핵심만 모은 강의인데요. 그래서 클라우드가 뭔지 감도 안 잡히는 입문자분들부터 커리어 점프를 하고 싶은 클라우드 운영자분들도 모두 만족하실 수 있을 거라 생각됩니다. 더불어 비전공자+백엔드 개발자 출신이였던 카카오뱅크 현직자 두분이 연사님이기에, 데브옵스에서 겪을 고민들을 수강생 입장에서 매우 잘 알려드리니 놓치지 마세요!

     

    자세한 강의 내용 살펴보기

              

    이런 글도
    있어요

  • 거래액 3천억 찍는 무신사 블랙프라이데이, 대규모 트래픽 대비법? feat MSA 아키텍처

    거래액 3천억 찍는 무신사 블랙프라이데이, 대규모 트래픽 대비법? feat MSA 아키텍처

    AI.ing

    출처: 무신사 뉴스룸

    패션 플랫폼 무신사가 최초로 활성 기기 1,000만 대를 돌파하며, 2030대에게는 더할 나위 없이 익숙한 패션 플랫폼이 되었습니다. 특히, 무신사의 대표적인 이벤트인 ‘무진장 세일’은 그 규모와 인기로 많은 이들의 주목을 받고 있습니다. 

    실제로 해당 프로모션에서 590만 개의 상품이 판매되었고, 총 누적 판매액이 2,000억 원을 넘었다고 합니다.

    출처: Medium, ‘무진장을 맞아, 후기 응답속도를 개선해보자’

     

    이처럼 초대규모 트래픽이 발생하는 무진장 세일 기간 동안, 무신사는 평소 피크 트래픽의 3배에 달하는 트래픽을 처리해야 합니다. 

     

    이러한 상황에서 과거의 모놀리식 아키텍처는 한계에 부딪혔습니다. 모든 기능이 하나의 애플리케이션으로 통합되어 운영되다 보니, 실시간 트래픽과 데이터를 효과적으로 처리하는 데 어려움이 있었습니다. 세일 기간 동안 수많은 상품이 동시에 할인되고 특별 혜택이 제공되기 때문에, 실시간으로 대응하는 것이 쉽지 않았습니다.

     

    이에 무신사는 기존 레거시 시스템의 단점을 파악하고, MSA(마이크로서비스 아키텍처)로의 전환을 결심했습니다. MSA는 어플리케이션을 독립적인 작은 서비스로 나누어 개발, 배포 및 운영하는 방식으로, 대규모 트래픽과 데이터를 효율적으로 처리할 수 있는 해결방안이었습니다.

     

    이러한 MSA 전환을 통해 무신사는 대규모 트래픽을 효과적으로 커버할 수 있는 시스템 설계를 갖추게 되었습니다. 각 서비스가 독립적으로 운영되므로, 특정 기능에 대한 트래픽 증가가 전체 시스템에 미치는 영향을 최소화할 수 있었습니다. 이는 업무 효율성을 높이는 데도 큰 도움이 되었습니다. 예를 들어, 특정 카테고리의 상품이 인기를 끌 때, 그 서비스만 확장하여 대응할 수 있는 유연성을 확보한 것입니다.

    무신사는 이러한 MSA 마이그레이션 외에도 다양한 대규모 트래픽 처리 전략을 마련하고 있습니다.

    어떻게 프로모션 대규모 트래픽에 대비하는지 3가지 주요 세일 기능으로 알아봐요 🙂

    첫 번째로는 바로 쿠폰 발급 서비스입니다. 세일 기간동안 백만 건이 넘는 쿠폰 발행이 발생하기 때문에 동시성을 처리하고 사용 상태를 비동기로 처리해 실시간 쿠폰 상태를 관리해야 합니다.

     

     

    [요구 사항]

    · Coupon Generation: 대규모 쿠폰을 생성하여 Redis에 저장합니다.

    · Coupon Distribution: 사용자에게 쿠폰을 배포하며, Redis에서 실시간으로 쿠폰 상태를 관리합니다.

     

    # 동시성 문제를 해결하기 위해 스레드, 락, 세마포어 등 다양한 동기화 메커니즘 적용합니다.

     

     

     

    두 번째로는 적립금 적립/조회/소멸 시스템입니다. 수많은 구매가 동시에 발생하기 때문에 캐싱 갱신 전략과 Spring 백엔드에서의 동시성 처리로 실시간으로 관리 서비스를 관리할 수 있도록 합니다.

    [요구 사항]

    · Coupon Generation: 대규모 쿠폰을 생성하여 Redis에 저장합니다.

    · Coupon Distribution: 사용자에게 쿠폰을 배포하며, Redis에서 실시간으로 쿠폰 상태를 관리합니다.

     

    # 동시성 문제를 해결하기 위해 스레드, 락, 세마포어 등 다양한 동기화 메커니즘 적용합니다.

     

     

    마지막으로는 대규모 타임 세일 시스템과 재고 관리입니다. 타임딜과 같은 이벤트를 계속해 진행하기 때문에 타임 세일 상품의 등록, 관리, 그리고 사용자가 타임 세일에 참여하는 요청을 실시간으로 처리해야 합니다. 대규모 트래픽하면 빠질 수 없는 Redis와 Kafka를 활용해 비동기 개념을 적용시킵니다.

    [요구 사항]

    · Sale Management: 타임 세일 상품의 등록과 시간을 설정하며, 
Redis를 통해 재고를 관리합니다.

    · Sale Participation: 사용자가 타임 세일에 참여하는 요청을 처리합니다.

     

    # Redis, Kafka를 함께 사용하여 실시간으로 변경되는 데이터를 알맞게 처리합니다. 

     

     

     

    이런 MSA 기반 기능들을 구현함으로써 대규모 트래픽과 데이터에 대처하고 있으며 고성능 보장을 위한 장애 대응 훈련까지 진행하고 있습니다. 

    사실 실전 대규모 트래픽을 잘 다루기 위해서 단순 기술이나 스택만으로는 부족합니다. 애초에 아키텍처를 잘 설계해야 대규모 트래픽을 견딜 수 있는 기능 구현이 가능해집니다.

    이런 단편적인 스택만 다루는 강의 말고 MSA 기반의 대규모 아키텍처 설계부터 기능 구현, 모니터링 시스템 구축까지 실전 대규모 트래픽을 배울 수 있는 강의가 나왔어요!

     

     

    1️⃣ 대규모 트래픽 필수 개념 학습

    2️⃣ 안정성 있는 대규모 아키텍처 설계

    3️⃣ 프르모션 대표 3가지 기능 구현

    4️⃣ 모니터링 시스템 & API Gateway 개발

     

    강의보러 가기  ▶ https://bit.ly/3ZHy2yv

    이런 글도
    있어요

  • 자바공화국에서, 그럼에도 불구하고 NestJS 대세감이 높아지는 이유

    자바공화국에서, 그럼에도 불구하고 NestJS 대세감이 높아지는 이유

    AI.ing


    (출처 ㅡ 매일경제 “오픈서베이 개발자 트렌드리포트 2021“)


    최근 몇 년 간, Java는 백엔드 개발의 대표 주자로 군림해왔습니다. 


    자바의 안정성과 풍부한 생태계 덕분에 많은 기업들이 자바 기반의 솔루션을 채택해왔죠. 


    그럼에도 불구하고, 현대의 개발 트렌드가 변화하면서 MSA(마이크로서비스 아키텍처)의 확산에 따라 NestJS가 점점 더 많은 주목을 받고 있습니다.  



    | NestJS

    NestJS는 효율적이고 확장 가능한 Node.js 서버 측 응용 프로그램을 구축하기 위한 백엔드 프레임워크로, TypeScript를 기반으로 설계되었습니다. 

     

    Angular의 아키텍처와 디자인 패턴에서 영향을 받아 모듈화된 구조를 갖추고 있으며, 데코레이터와 의존성 주입(Dependency Injection) 등의 기능을 제공하죠. 

     

    NestJS는 서버 사이드 애플리케이션을 구축하기 위한 강력한 도구로, 모던 웹 애플리케이션 개발의 요구를 충족시키는 데 중점을 두고 있습니다.

    | Java vs NestJS

     

    (출처 ㅡ Consolblog “NestJS for SpringBoot developers“)



    Java와 NestJS를 비교하면 다음과 같습니다.

    –  개발 속도와 생산성

    Java는 안정성과 성숙도를 자랑하지만, 상대적으로 긴 개발 사이클을 가질 수 있습니다. Java 기반의 백엔드 프레임워크들(Spring Boot 등)은 많은 설정과 보일러플레이트 코드가 필요해 개발 속도가 느릴 수 있죠. 또한, Java의 강력한 타입 시스템과 설정 파일들은 복잡한 설정을 요구할 수 있습니다. 

    하지만, NestJS는 TypeScript를 기본으로, 모듈화된 아키텍처를 채택하여 빠른 개발 속도를 지원합니다. 또한 NestJS는 기본적으로 Angular에서 영감을 받은 구조를 갖추고 있어, 개발자들이 익숙한 패턴을 빠르게 적용할 수 있습니다.

     

    –  비동기 처리 및 성능

    Java는 전통적으로 동기적인 I/O 처리를 지원하며, 비동기 처리를 위해서는 별도의 라이브러리나 프레임워크가 필요합니다. 때문에 Java 기반의 웹 서버는 상대적으로 많은 리소스를 소모할 수 있죠. 

    하지만, NestJS는 Node.js 백엔드 기반으로 비동기 I/O 처리에 최적화되어 있습니다. Node.js의 비동기 모델은 높은 성능과 효율적인 리소스 사용을 가능하게 하며, 실시간 데이터 처리와 대규모 트래픽을 효율적으로 관리할 수 있습니다. 

     

    –  유연성과 확장성

    Java는 Spring Framework를 통해 모듈화된 아키텍처를 지원하지만, 설정과 구조가 복잡할 수 있습니다. 대규모 애플리케이션에서의 확장성과 유연성은 가능하지만, 추가적인 설정과 관리가 필요하죠. 

    반면, 백엔드 NestJS는 모듈화된 아키텍처를 제공하여, 애플리케이션을 독립적인 모듈로 나누어 개발할 수 있습니다. 이는 기능별로 독립적인 개발과 배포가 가능하게 해주며, 대규모 애플리케이션의 확장성과 유연성을 높입니다. 또한, NestJS는 마이크로서비스 아키텍처를 자연스럽게 지원하여, 서비스 간의 독립성과 효율적인 확장을 지원합니다.

     

    –  개발자 경험과 생산성 도구

    Java는 강력한 개발 도구와 생태계를 제공하지만, 설정과 코드 작성 시에 상대적으로 많은 보일러플레이트 코드와 복잡한 설정이 필요합니다.

     

    반면, NestJS는 TypeScript와 함께 제공되며, 타입 정보와 자동 완성 기능을 통해 백엔드 개발자 경험을 개선합니다. 이는 IDE에서의 코드 작성과 디버깅을 보다 편리하게 만들어 줍니다. 또한, NestJS는 Swagger와 같은 도구를 통해 자동으로 API 문서를 생성할 수 있어, API 문서화와 테스트를 쉽게 수행할 수 있습니다.

     

    | IT 기업들의 NestJS 사용 증가

     

    (출처 ㅡ Business Post “[비즈니스피플 인재탐구] ‘네카라쿠배당토’는 왜 꿈의 직장이 됐나“)



    IT 산업의 빠른 변화와 발전에 따라 백엔드 개발 기술도 지속적으로 진화하고 있습니다. 

    전통적으로 자바, C#과 같은 성숙한 언어와 프레임워크들이 주를 이루던 시절을 지나, 

    Node.js 기반의 프레임워크들이 그 위상을 높여가고 있죠. 

    그 중에서도 NestJS는 특히 주목받고 있는 백엔드 프레임워크로, 많은 IT 기업들이 이를 채택하고 있습니다.



    실제 NestJS 백엔드 개발자 채용공고를 보면 다음과 같습니다. 

     

    Java 중심의 백엔드 개발 환경에서도 NestJS가 대세로 떠오르는 이유가 무엇일까요?

    | MSA 환경에 가장 유리한 프레임워크, NestJS



     

    기술의 발전과 비즈니스 환경의 변화에 따라, IT 기업들은 점점 더 복잡하고 대규모의 애플리케이션을 효율적으로 관리할 필요성이 커지고 있는데요.

     

    이러한 요구를 충족하기 위해 많은 기업들이 복잡한 애플리케이션을 독립적이고 자율적인 서비스로 나누어 관리하는 마이크로서비스 아키텍처(MSA)를 적용하고 있습니다.

     

    MSA의 접근 방식은 유연성, 확장성, 독립적 배포 등의 이점을 제공하지만, 여러 서비스 간의 협력과 통합을 잘 지원하는 프레임워크가 필요합니다.

     

    그 중에서 NestJS가 MSA 환경에서 특히 유리한 백엔드 프레임워크로 평가받고 있는데요,

      •  

    1. 모듈러 아키텍처

    NestJS는 애플리케이션을 더 작은 모듈로 나눌 수 있는 모듈식 아키텍처를 따릅니다. 각 모듈에는 쉽게 재사용할 수 있는 자체 컨트롤러, 공급자 및 서비스 세트가 있으며, 이는 복잡한 애플리케이션을 더 쉽게 관리하고 코드의 유지보수를 용이하게 합니다.

    2. 내장된 마이크로서비스 지원

    NestJS는 기본적으로 여러 마이크로서비스 패턴을 지원하고, 메시지 브로커 (RabbitMQ, Kafka 등)와 같은 다양한 통신 방식도 쉽게 구현할 수 있습니다.

    3. 데코레이터와 DI (의존성 주입)

    NestJS는 데코레이터 패턴과 의존성 주입을 사용하여 코드의 가독성과 관리성을 높입니다. MSA에서는 서비스 간의 의존성이 복잡해질 수 있는데, DI를 통해 이를 효과적으로 관리할 수 있습니다.

    4. 성능과 확장성

    NestJS는 Node.js의 비동기 이벤트 드리븐 아키텍처를 기반으로 하여 높은 성능과 확장성을 제공합니다. 이는 많은 요청을 처리해야 하는 MSA 환경에서 중요한 요소입니다.

    이렇게 NestJS는 백엔드 개발자들과 기업들에게 있어서 생산성, 테스킹 및 디버깅 측면에서 많은 이점을 제공하며, 오픈소스 프레임워크로서 포괄적인 도구와 플러그인 생태계를 지원합니다.

    | MSA 기반 NestJS 배우고 싶다면

     

    그런데, 아직까지는 국내에서 MSA 기반 NestJS 백엔드를 제대로 배울 수 있는 곳이 없는데요.

     

    국내 최초로 패스트캠퍼스의 [AI 시대 일잘러를 위한 비현실적인 400가지 ChatGPT 활용 바이블] 강의에서 MSA 적용 및 대규모 애플리케이션 운영까지 배워볼 수 있다고 합니다. 

     

     

    300명 이상의 현직자가 설문을 통해 직접 선정한 ‘백엔드 개발자가 가장 학습하고 싶은 2개의 프로젝트’인 스트리밍과 배달 프로젝트를 통해 인증, 실시간 채팅, 캐싱, 테스크 스케쥴링과 테스트 및 배포 등 NestJS Core를 완벽하게 정복하고 Monorepo 환경부터 DDD 기반 Polyrepo 환경의 MSA 전환까지 완벽히 정복 가능하다는데요.

     

    프로그래밍 일타 강사의 실시간 질의응답부터 온라인 멘토링, 모각코를 통해 실습 중 궁금한 사항을 해결하고 커리어 고민까지 받아볼 수 있다고 하니 놓치지 마세요!

     

    국내에서는 유일한 MSA 기반 NestJS 백엔드를 다루는 강의! 

    두가지 프로젝트를 통해 NestJS 기초부터 MSA 운영법까지 

    이 강의에서 모두 알려드릴테니 확인해보세요!

     

    https://fastcampus.co.kr/dev_online_nestjs

    이런 글도
    있어요

  • 국내 1티어급 이커머스 플랫폼으로 배우는 대용량 데이터 처리 끝판왕

    국내 1티어급 이커머스 플랫폼으로 배우는 대용량 데이터 처리 끝판왕

    AI.ing

    #대용량 데이터

    #이커머스 플랫폼

    #데이터 처리

    이커머스 플랫폼, 특히 지마켓과 같은 대규모 데이터 플랫폼은 방대한 데이터를 실시간으로 처리해야 합니다. 그래서 단순한 기능을 구현할 줄 알고 한 가지 데이터 처리 방식만 알아서는 쏟아지는 데이터를 처리하기가 어렵습니다. 데이터 종류나 상황에 따라 다양한 데이터 처리 방식과 기술 스택을 선택할 줄 알아야만 대용량 데이터를 실시간으로 처리할 수 있습니다.

    실제 이커머스 플랫폼의 테크 리드에 따르면, 1TB급 대용량 데이터를 다루면서 다양한 데이터 처리 방식을 사용하고 여러 기능을 구현하고 있다고 합니다.

    그렇다면 대용량 데이터가 흐르는 이커머스 플랫폼에서는 어떤 기능을 구현하고, 어떻게 대용량 데이터 처리를 진행하는지 한 번 알아볼까요?

    <쿠* 급 이커머스 플랫폼 구현 과정>

     

    아래 아키텍처는 실제 국내 1위 이커머스 플랫폼인 쿠*급의 대용량 데이터가 흐르는 과정을 볼 수 있어요!

    이 흐름을 통해 이커머스 플랫폼 내의 주요 기능이 어떻게 구현되는지 함께 이해해봐요🙌

    1. 실시간 가격 조정 기능

    저희가 자주 사용하는 이커머스 플랫폼에서 위의 가격창을 볼 수 있죠? 이 가격창은 고정된 값이 아니라 판매나 재고 상황에 따라 가격이 계속 업데이트됩니다. 어떤 기능을 구현하고 데이터를 활용하는지 정리해봤어요.

    ✔ 구현 기능

    • 상품 판매 데이터를 활용한 실시간 가격 조정 알고리즘

    • 실시간 구매와 재고 수준을 Stream 형태로 받아 연산 처리 

     

    ✔ 주요 데이터 소스 

    • 실시간 구매 이벤트 (구매 수량, 시간 등)

    • 재고 수준

     

    ✔ 사용 기술

    • Apache Kafka: 실시간 구매 & 재고 스트림을 수집.

    • Apache Flink: 실시간 데이터 처리 및 가격 조정 알고리즘 실행.

    • Redis: 실시간 재고 수준 캐싱 및 빠른 데이터 접근.

    2. 결제 & 구매 기능

     

    고객이 상품을 구매하기 위해선 구매 기능이 있어야하겠죠? 또, 실시간으로 주문이 발생하기 때문에 실시간 주문, 결제, 재고에 따른 업데이트도 진행하고 있습니다.

    ✔ 구현 기능

    • 상품 데이터와 백엔드 API를 활용한 실시간 주문, 결제, 재고 업데이트 기능

    • 주문 생성 및 관리

    • 결제 처리

    • 재고 업데이트 

     

    ✔ 주요 데이터 소스 

    • 실시간 구매 이벤트

    • 상품 데이터와 백엔드 API 요청

     

    ✔ 사용 기술

    • Apache Kafka: 실시간 데이터 스트림 플랫폼

    3. 재고 관리 기능

    주문에 따라 재고 상황이 변하기 때문에, 재고도 계속 업데이트하며 고객분들께 현재 재고 상황을 알릴 필요가 있습니다.

    ✔ 구현 기능

    • 재고 관련 API와 상호작용하며 데이터를 캐싱하고 업데이트함.

    • 상품이 주문될 때마다 재고 수준을 확인.

    • 주문이 완료되면 재고 수준을 감소시키고, Redis에 업데이트.

    • 재고 수준이 임계값 이하로 떨어지면 알림을 생성.

     

    ✔ 처리하는 데이터 종류

    • 실시간 구매 이벤트 (구매 수량)

    • 재고 데이터 

     

    ✔ 사용 기술

    • Redis: 재고 데이터 캐싱 및 업데이트 

    4. 발주 현황 관리

    고객에게 상품 발송을 위해서 위 재고와 상호작용하며 신규 발주도 업데이트 해야겠죠?

    ✔ 구현 기능

    • 재고 관련 API와 상호작용하며 실시간으로 신규 발주 현황을 관리함.

    • 재고 업데이트 이벤트 발생 시 발주 여부 확인

    • 발주 필요시 발주 요청 이벤트 생성 

     

    ✔ 처리하는 데이터 종류

    • 상품 데이터와 백엔드 API 요청

    • 재고 데이터

    • 발주 관련 API 

     

    ✔ 사용 기술

    • Apache Kafka: 발주 요청 및 상태 업데이트 처리

    • Redis: 발주 데이터를 캐싱하고, 상태 데이터 조회&업데이트

    이 기능들이 없다면 고객이 상품을 구매하고 받아볼 수 없겠죠? 구매가 일어나는 데이터 플랫폼에서는 꼭 필요한 주요 기능들입니다. 다음으로 알아볼 기능은 고객에게 더 나은 이커머스 플랫폼을 제공하기 위해 내부적으로 구현되는 기능들입니다.

    5. 판매 리포트

    이커머스 플랫폼 내부에서는 이 대용량 데이터가 흐르는 현황을 파악하기 위해 판매 리포트를 생성해서 확인하고 있습니다. 

    ✔ 구현 기능

    • 상품 판매 데이터를 활용한 상품 판매 리포트

    • 필요한 판매 관련 데이터를 추출 및 변환하고, 필요한 계산을 수행.

    • 정기적인 배치 작업으로 매출 리포트를 생성.

     

    ✔ 처리하는 데이터 종류

    • 판매 이력 데이터

     

    ✔ 사용 기술

    • Apache Spark: 배치 처리를 위한 분산처리 엔진

    • Apache Airflow: 정기적인 처리를 위한 워크플로우 관리

    6. 상품평 긍정/부정 분석 기능 

    이커머스 플랫폼에서는 여러 고객들이 상품평을 남기곤 합니다. 고객의 만족도를 확인하기 위해, 상품 구매 후기를 기반으로 만족도를 분석하고 있습니다.

    ✔ 구현 기능

    • 상품 구매 후기 데이터를 활용한 상품 만족도 분석 기능

    • 상품평 데이터를 벡터링하여 저장

    • Full-Text 검색 및 집계 기능을 활용하여 긍정/부정 분석 진행 

     

    ✔ 처리하는 데이터 종류

    • 상품 구매 후기 데이터 

     

    ✔ 사용 기술

    • Elasticsearch: 대규모 텍스트 데이터를 저장하고 검색하는 분산 검색 엔진

    이렇게 대용량 데이터 처리가 가능한 이커머스 플랫폼을 위한 구현 기능과 사용 기술들을 알아봤습니다. 1TB급의 대용량 데이터 처리 경험을 쌓을 수 있는 곳은 많지 않아, 어떻게 처리 경험을 쌓아야 할지 고민이 많으실 텐데요.

     

    그래서 이번에 주요 기능을 모두 구현하고 1TB급의 대용량 데이터 처리를 진행하는 쿠* 프로젝트 강의가 나왔습니다!
    실시간 및 대용량 데이터 처리에 필요한 필수 스택과 데이터 처리 방식을 한 번에 학습할 수 있어요🔥

     

    강의 바로가기

    이런 글도
    있어요

  • 백엔드 개발자가 Spring Boot 사용하며 겪는 흔한 문제 모음.zip

    백엔드 개발자가 Spring Boot 사용하며 겪는 흔한 문제 모음.zip

    AI.ing

    백엔드 개발자가 Spring Boot 사용하며 겪는 흔한 문제 모음.zip

    #Spring Boot

    #백엔드

    #Spring

     

    1. 기본기가 없는 백엔드 개발자가 Spring Boot를 사용할때 생기는 문제점

    기본기가 없는 백엔드 개발자가 Spring Boot를 사용하면 다양한 문제가 생기는데요! 어떤 것이 있는지 살펴볼까요?

     

     

    1. 프로젝트 구조 이해 부족 : Spring Boot 프로젝트의 디렉토리 구조와 파일들의 역할을 이해하지 못해 코드가 복잡해질 수 있습니다.

    2. 의존성 관리 문제 : Maven이나 Gradle을 통한 의존성 관리를 이해하지 못하면 필요한 라이브러리를 제대로 추가하거나 관리하지 못할 수 있습니다.

    3. Bean 관리 및 의존성 주입(DI) 이해 부족 : Spring의 핵심 개념인 DI와 IoC 컨테이너를 이해하지 못하면 Bean의 생명주기나 올바른 객체 주입에 문제가 생길 수 있습니다.

    4. 설정 파일 관리 어려움 : application.properties나 application.yml 파일을 통해 설정을 관리하지 못하고, 하드코딩을 남발할 수 있습니다.

    5. RESTful API 설계 및 구현 문제 : RESTful API의 기본 원칙을 이해하지 못해 비효율적이거나 일관성 없는 API를 설계할 수 있습니다.

    6. 데이터베이스 연동 문제 : spring boot 사용시 JPA/Hibernate와 같은 ORM 도구를 제대로 이해하지 못해 비효율적인 쿼리나 데이터베이스 성능 저하를 초래할 수 있습니다.

    7. 보안 문제 : 백엔드에 Spring Security를 활용한 인증 및 권한 관리를 제대로 구현하지 못해 보안 취약점을 남길 수 있습니다.

    이것 말고도 기본기를 탄탄히 다지지 않으면 문제들이 발생합니다. 

    2. 실제 백엔드 개발자가 spring boot 구현하면서 어떤 어려움을 겪을지 & 답변까지 모아옴!


    Q. Spring Boot에서 application.properties 및 application.yml 파일의 역할과 사용을 모르겠어요 ㅜㅜ

    A. Spring Boot에서 application.properties 및 application.yml 파일은 애플리케이션을 구성하는 데 필수적입니다. 좀더 세부적으로 설명드리면 두 파일 모두 서버 포트, 데이터베이스 연결, 로깅 수준 등과 같은 다양한 Spring Boot 기능에 대한 설정을 정의할 수 있습니다.

    사용형식은 아래와 같습니다.

     

    – application.properties는 간단한 키-값 쌍 형식을 사용합니다.

    – application.yml은 더 읽기 쉽고 계층적 데이터 구조를 지원하는 YAML(YAML Ain’t Markup Language)을 사용합니다.

     

    ex) properties 파일 사용 예

    server.port=8080

    spring.datasource.url=jdbc:mysql://localhost:3306/mydb

    spring.datasource.username=root

    spring.datasource.password=secret

    logging.level.org.springframework=DEBUG

     

    ex) yaml 파일 사용 예

    server:

     port: 8080

    spring:

     datasource:

      url: jdbc:mysql://localhost:3306/mydb

      username: root

      password: secret

    logging:

     level:

     

      org.springframework: DEBUG

    장점을 비교하면!

    – 가독성: YAML 파일은 일반적으로 읽기가 더 쉽고 복잡한 구성에 더 적합합니다.
    – 단순성: 속성 파일은 더 간단하며 간단한 키-값 구성에 널리 사용됩니다.

    Q. spring boot에서 데이터 교환을 위한 데이터 형식으로 XML과 JSON의 차이점을 모르겠어요!

    A. XML(eXtensible Markup Language)과 JSON(JavaScript Object Notation)은 시스템 간 데이터 교환에 널리 사용되는 두 가지 데이터 형식입니다.

    – XML 문서는 각 요소가 태그로 묶인 요소 트리로 구성됩니다.

    – JSON은 데이터를 이름/값 쌍(종종 객체라고도 함)의 컬렉션과 순서가 지정된 값 목록(배열)으로 구성합니다.

    예를 들어 사람(person=객체)의 정보를

    – XML 데이터 구조로 표현하면 아래 와 같습니다.

    <person>

     <name>John Doe</name>

     <age>30</age>

     <address>

      <street>Main Street</street>

      <city>Springfield</city>

     </address>

    </person>

    – JSON 데이터 구조로 표현하면 아래 와 같습니다.

    {

     “name”: “John Doe”,

     “age”: 30,

     “address”: {

      “street”: “Main Street”,

      “city”: “Springfield”

     }

    }

    XML은 문서 중심 데이터와 복잡한 계층 구조에 강력한 반면,

    JSON은 특히 웹 및 모바일 애플리케이션에서 경량 데이터 교환에 적합합니다.

    Q. Spring Boot에서 JPA를 사용했는데, N+1 문제가 발생했어요! 

    A. N+1 문제에는 여러방법을 시도해봐야합니다.

    첫번째, @EntityGraph 어노테이션을 사용해 필요한 연관관계를 미리 로드해보세요. 지연 로딩(LAZY)으로 인한 N+1 문제를 해결할 수 있을 겁니다. 

    두번째, JPA의 Fetch 전략을 LAZY에서 EAGER로 변경하면 
연관 엔티티를 즉시 로드할 수 있어요. 필요한 데이터를 한번에  가져올 수 있어,  N+1 문제가 해결될거에요. 

    세번째, QueryDSL 라이브러리를 사용하여 복잡한 쿼리를 작성해보세요. 데이터만 선별적으로 로드할 수 있을거에요. 

    네번째, Spring Data Projections 기능을 활용하여 필요한 데이터만 선택적으로 로드해, 불필요한 데이터 로드를 방지해보세요.

     

    다섯번째, 애플리케이션의 성능을 모니터링하여 N+1 문제가 발생하는 지점을 찾아내 지속적인 성능 최적화 수행해보세요!

    3. 백엔드 개발자가 spring boot 구현하며 발생하는 문제 & 해결방법, 하나하나 검색해 찾기 힘들다면?

     

    사실 앞선 답변은 모두 백엔드 도사 박매일님이 답변해주신건데요! 1만 spring boot 포기자들을 가르치며 만드신 TPC활용법으로 뇌에 저절로 새겨지도록 알려주시는 것으로 유명하시죠! 백엔드 도사 박매일 강사님의 spring boot 시각자료 또한 보기만 해도 저절로 구조가 보일 만큼 완벽한데요! 이런 화려한 자료뿐만 아니라, 수강평 + 친절함까지 만점이신 강사님입니다. 백엔드 개발자분들! spring boot 구현에 한번이라도 어려움을 겪으셨다면? 이 강의로 모조리 해결해보세요! 

    ▼ 뇌에 새겨지는 Spring Boot 강의 바로가기 ▼

    이런 글도
    있어요

  • 백엔드 개발한다면 꼭 알아야 할 실시간 & 대용량 데이터 처리의 해답 : Kafka(카프카)

    백엔드 개발한다면 꼭 알아야 할 실시간 & 대용량 데이터 처리의 해답 : Kafka(카프카)

    AI.ing

    백엔드 개발한다면 꼭 알아야 할 실시간 & 대용량 데이터 처리의 해답 : Kafka(카프카)

    #Kafka

    #대용량 데이터

    #백엔드 개발

    빅테크 기업을 중심으로 백엔드 개발 채용공고에서 Kafka 활용능력이 눈에 띄게 급부상하고 있습니다. 이제는 백엔드 개발자들도 Kafka를 경험해야하는 시대가 온것인데요.  Kafka, 어떤 장점때문에 주목을 받고 있는지 더불어 백엔드개발자들이 어떻게 활용해야하는지 알려드리겠습니다.

    1. 요즘 빅테크 기업 채용에 많이 보이는 카프카가 주목받는 이유

    1) Kafka(카프카)란?

    Kafka(카프카)는 실시간으로 스트리밍 데이터를 수집하고 처리하는 데 최적화된 분산 메시징 시스템입니다. 수천 개의 대용량 데이터 원본에서 연속적으로 생성되는 데이터로, 보통 데이터 레코드를 동시에 전송합니다. 실시간으로 대용량 데이터를 전송해야하는 플랫폼은 이러한 지속적인 데용량 데이터 유입을 처리하고 데이터를 순차적이고 점진적으로 처리해야 하기에 Kafka(카프카)를 사용하면 효율적으로 처리가 가능합니다.

    2) Kafka(카프카)는 주로 어디에 사용될까요?

    Kafka는 실시간 스트리밍 데이터 파이프라인과 실시간 스트리밍 애플리케이션을 구축하는 데 사용됩니다. 데이터 파이프라인은 데이터를 안정적으로 처리하고 한 시스템에서 다른 시스템으로 이동하며, 실시간 애플리케이션은 데이터 스트림을 소비하게 합니다. 

    2. 백엔드 개발자가 카프카를 왜 배워야할까요?

    1) 백엔드 개발자가 Kafka(카프카) 사용할때의 이점

    ① 고성능 데이터 처리: Kafka는 고속으로 데이터를 처리하고 전송할 수 있어, 대용량 데이터 스트림을 실시간으로 처리하는 데 유리합니다. 

    ② 확장성: Kafka는 분산 아키텍처를 기반으로 설계되어 있어, 필요에 따라 시스템을 쉽게 확장할 수 있습니다. 데이터의 양이 증가해도 큰 성능 저하없이 대용량 데이터를 처리할 수 있수 있게 도와줍니다.

    ③ 데이터 파이프라인 구축: Kafka는 다양한 소스로부터 데이터를 수집하고, 이를 다양한 목적지(데이터베이스, 캐시 시스템, 검색 엔진 등)로 전송할 수 있게 도와줍니다. 

    ④ 내결함성과 데이터 복구: Kafka는 데이터의 복제를 지원하여, 시스템 장애가 발생해도 대용량 데이터 손실 없이 복구할 수 있는 내결함성을 제공합니다. 

    2) Kafka(카프카)의 유연한 연결성

    Kafka(카프카)는 특히 유연한 연결성이 강점인데요. 다양한 케이스별로 적절하게 외부툴과 연결하여 사용할 수 있어 백엔드 개발에 유용합니다.

    ① 대량의 트래픽(대용량 데이터)가 몰리는 상황 : DB 분산 (+MySQL, redis)

    순간적으로 대량의 트래픽(대용량 데이터)가 몰릴때에는  사용자들에게 빠르게 서빙 되어야 하는 데이터는 빠른 속도의 Redis로, 순차적으로 처리 해도 되는 데이터는 MySQL단에서 처리할 수 있도록 Kafka를 활용할 수 있습니다. 

     

     

    ② 로그 수집 시 파이프라인이 많은 양을 빠르게 받아들일 때 데 : 로그 적재 (+beats, Logstash, elasticsearch)

    로그 수집 시 파이프라인이 많은 양을 빠르게 받아들일 때 데이터가 일부 유실되는 문제가 생길 수 있습니다. 로그 수집 파이프라인에 높은 신뢰성(고가용성)과 실시간성을 더할 수 있도록 Kafka를 메시징큐로 활용하여 로그를 적재해 해결합니다. 

    ③ 대용량 데이터 분산 및 처리를 위한 Kafka 활용 :  애플리케이션 연결 (+ChatGPT, MySQL, redis, mongoDB, elasticsearch)

    Kafka(카프카)를 이용하면 Event Driven Architecture 형태로 콘텐츠 플랫폼 설계 및 구축을 할 수 있습니다. 데이터 저장, 구독, 캐싱, 색인 그리고 외부 API(ChatGPT) 연동까지 자연스럽게 흐르는 데이터 흐름을 설계하고, 각 요구사항에 따른 애플리케이션을 구축해나가며 Event Driven Architecture기반의 거대한 플랫폼을 완성시킬 수 있습니다. 

    3) 백엔드 개발자가 실무에서 Kafka 활용할 때 가장 중요한 Producer/Consumer 심화활용법

    실무적인 능력을 키우기 위해 Kafka 메시지를 자유자재로 다루어보는 심화 활용법까지 다뤄봐야합니다.

    ① Producer를 활용한 Application 단에서 데이터 자동 이관/복제

    한번만 만들어두면, 손쉽게 데이터의 변경사항(C/U/D)을 Kafka로 연동할 수 있습니다. Kafka Connect를 활용한 CDC 등 더 어려운 방법 없이도 간단히 메시지 발행을 자동화가 가능합니다.

    ② 까다로운 Consumer 활용

    보통 실무에서는 Producer보단 Consumer를 다루면서 Exception을 자주 만나게 됩니다. 이때 주로 일어나는 트러블이 3가지가 있는데, 아래의 방법으로 해결할 수 있습니다.

    -대비 방안 1 -Retry : Retryable Exception의 경우 Retry로 해결

    -대비 방안 2-ErrorHandler : Unretryable Exception의 경우 ErrorHandler를 통해 해결

    -대비 방안 3-DLT (Dead Letter Topic) : 컨슈머가 소화하지 못한 메세지의 경우 DLT으로 해결

    3. 백엔드 개발에 이렇게나 중요하고 효율적인 Kafka(카프카) 제대로 배우는 학습법

    앞서 말한 백엔드 개발에 필요한 Kafka(카프카) 활용법들 빠르고 제대로 배운다면 커리어를 더욱 높일 수 있겠죠? 

    그래서 준비한 [백엔드 개발자를 위한 Kafka 실습 0 to 1 : 입문부터 EDA까지] 강의! 

     

    ▼ 백엔드 개발자를 위한 Kafka 실습 0 to 1 : 입문부터 EDA까지 강의 바로가기 ▼

     

     

    이 강의 하나면 Spring Boot에 Kafka 연결조차 어려웠던 백엔드 개발자도 EDA 기반의 플랫폼 구축까지 가능! Kafka 마스터 하게 해드리기 위해 1) Kafka 개발환경 세팅부터 차근차근 2) 대용량 데이터를 처리하기위한  실무 수준의 Kafka 활용법을 3가지 프로젝트로 3)  Producer / Consumer 심화 활용법까지 3단계 커리큘럼으로 구성했습니다! 강사님도 네*버 쇼핑, 당* 등 국내 최대 트레픽 규모의 서비스를 만들며, 대용량 데이터를 안정적으로 다루기 위해 Kafka를 실무 최전선에서 사용하시고 계신 분이니 백엔드 개발 노하우까지 가득 챙겨가세요!

    이런 글도
    있어요

  • 넷플릭스같은 ‘구독’ 서비스 개발을 위한 필수 스택 4가지 (w. Spring Security, JWT, Oauth 2.0…)

    넷플릭스같은 ‘구독’ 서비스 개발을 위한 필수 스택 4가지 (w. Spring Security, JWT, Oauth 2.0…)

    AI.ing

    Netplix 구독형 멤버십 프로젝트로 배우는 Spring Security

    #AI

    #구독서비스

    #JWT

    #Spring Security

    요즘 쿠팡 와우, 컬리 멤버스 같은 멤버십부터 밀리의 서재, 티빙과 같이 구독 기반 서비스들이 생겨나고 나고 있습니다. 이커머스 기업들이 충성 고객 확보를 위해 멤버십 서비스/구독 서비스에 집중하고 있기 때문인데요. 그래서 덩달아 구독 서비스  개발을 위한 핵심 기술인 인증 & 인가 기능 개발 역량이 백엔드에게 중요해졌습니다. 

     

    이름만 들어도 어려운 인증 & 인가 개발, 어떻게 사용해야하며 어떻게 배워야하는지 자세히 설명드리겠습니다.

     

    1) 구독 서비스를 잘 구현하기 위한 인증 & 인가 필수 기술 스택 4가지

     

    구독 서비스 구현을 위한 인증 & 인가 기능에 가장 자주 사용하는 4가지 기술 스택이 있는데요. 이를 전략적으로 사용하는 것이 중요합니다.

    1) Spring Security (스프링 시큐리티)


    *Spring Security 로고

    Spring Security (스프링 시큐리티)는 스프링 프레임워크를 기반으로 하는 애플리케이션의 보안을 담당하는 모듈입니다. 구독 서비스 구현을 위한 인증 & 인가에 핵심적인 기술스택으로 애플리케이션의 보안을 보다 체계적이고 강력하게 관리할 수 있으며, 보안 관련 기능을 쉽게 구현할 수 있습니다. 

     

    Spring Security의 구조를 이해하면 기본적인 회원 기능 구축이 가능합니다. 더 나아가 Spring Security 심화 기술을 학습한다면 엑세스 제한과 권한까지 제어할 수 있습니다. 

     

    2) OAuth 2.0

     


    *OAuth 2.0 로고

     

     

    인터넷 사용자가 비밀번호를 제공하지 않고도, 다른 웹사이트의 자원에 대한 접근 권한을 제3의 애플리케이션에게 부여할 수 있게 해주는 기술입니다. 사용자의 자격증명이 직접적으로 제3의 애플리케이션에 노출되지 않도록 함으로써, 보안을 강화하는 역할을 합니다.

     

    3) JWT


     

    *JWT 로고

     

     

    JWT는 JSON Web Token의 약자로, 인증 및 정보 교환에 사용되는 컴팩트하고 자가 수용적인(self-contained) 방식의 토큰입니다. JWT은 JSON 객체를 사용하여 두 당사자 사이에서 정보를 안전하게 전송할 수 있도록 설계되었습니다. 이 JWT는 주로 세가지로 구성되어있습니다. 

     

     

    ① 헤더(Header): 토큰의 유형(JWT)과 사용된 알고리즘(HS256, RSA 등) 정보가 포함됩니다.

    ② 페이로드(Payload): JWT 토큰에 담을 클레임(claim) 정보가 포함됩니다. 클레임은 토큰(JWT)에 대한 속성 값들이며, 예를 들어 사용자의 ID, 권한 정보, 토큰 (JWT)의 발행자, 유효 기간 등을 포함할 수 있습니다.

    ③ 서명(Signature): 헤더의 인코딩 값, 페이로드의 인코딩 값, 비밀키를 사용하여 생성된 서명입니다. 이 서명은 토큰(JWT)이 중간에 변경되지 않았음을 검증하는 데 사용됩니다.

     

    JWT는 필요한 모든 정보를 자체적으로 담기에, 특수한 저장소 없이 토큰(JWT) 자체로 인증 및 정보 교환 처리가 가능합니다. 더불어 이 토큰(JWT)은 디지털 서명이 되어있어 정보가 변경되었는지 확인할 수도 있습니다.

     

    4) Keycloak

     

    Keycloak은 오픈 소스 아이덴티티 및 액세스 관리 솔루션입니다. 이를 사용하면 애플리케이션과 서비스에 대한 보안 인증 및 인가를 쉽게 구현할 수 있습니다. Keycloak은 엔터프라이즈 환경에서 사용자 인증 및 권한 관리를 단순화하고, 보안을 강화하는 데 매우 유용한 도구입니다. 다양한 프로토콜과 연동이 가능하며, 확장성과 유연성이 뛰어나 많은 기업과 개발자들이 사용하고 있습니다. 무려 쏘카, 데브시스터즈, 29CM, GS리테일에서도 사용하고 있을 만큼 대세로 떠오르고 있습니다. 

     

     

    이러한 기술들 단순하게 사용하는 것이 아니라  서비스의 목표와 요구 사항에 맞게 사용하는 것이 중요하겠죠? 하지만 구독 서비스 구현을 위한 인증 & 인가 기술은 시스템의 보안과 밀접하게 연결되어있어 매우 까다로운 기술입니다. 그래서 보안에 특별히 신경써야하며, 사용자의 편의를 위해 다양한 인증방식을 구현해야하기에 복잡하기도 합니다. 또 개인정보 보호법 같은 법률 및 규정을 준수해야해서 신경쓸 부분이 많은데요.

     

    이러한 구독 서비스 구현을 위한 인증 & 인가 기술 어떻게 배워야할까요? 

     

     

     

    2) 어려운 구독 서비스 구현을 위한 인증 & 인가 제대로 배우는 학습법

     

    어려운 만큼 Spring Security 기초 – 심화까지 배우고 앞서 소개한 기술 스택을 모두 구현해봐야합니다. 그리고 기본적인 기능부터 실제 프로덕트와 유사하게 프로젝트형식으로 단계별로 배워봐야 마스터할 수 있습니다. 

     

     

     

    그래서 준비한 [Netplix 구독형 멤버십 프로젝트로 배우는 Spring Security] 강의!

     

     

    구독 서비스 구현을 위한 인증 & 인가 개발하면서 생길 어려움을 해결해주기 위해 1) Spring Security을 기초부터 심화까지 2) 인증, 권한 관리에 필요한 컴퓨터 공학(CS) 개념부터 3) 실무에도 문제 없도록 실제 서비스 구현 프로젝트로 알려줍니다! 여기서 멈추면 패스트캠퍼스가 아니죠! 무려 구독 서비스에 특화된 넷*릭스 도메인 실습으로 복잡한 권한 기반 ‘멤버십 기능’ 개발, 일반 회원 & 어드민 단 권한 관리까지, 예외처리 및 테스트’ 노하우까지 몽땅 담았습니다. 강사님도 지금 금융권에서 인증 관련 서버 개발을 담당하고 있는 현직자 개발자이니 구독 서비스 개발 노하우까지 가득 챙겨가세요!

    이런 글도
    있어요

  • 2022년 vs 2024년 프론트엔드 상황 비교 : 웹 개발부터 모바일까지

    2022년 vs 2024년 프론트엔드 상황 비교 : 웹 개발부터 모바일까지

    AI.ing

    2022년 vs 2024년 프론트엔드 상황 비교 :
    웹 개발부터 모바일까지

    #AI

    #프론트엔드

    #웹개발

    #모바


    단 2년 만에, 완전히 분위기가 바뀐 프론트엔드 개발 시장


    지난 2022년, 코로나19 발생 이후 꽁꽁 얼어붙은 채용시장 분위기에도 불구하고 개발자 채용 분야만큼은 달랐습니다. 개발 직군은 “취업 깡패”, 기업들은 “개발자 모시기”를 한다고 표현되며 어떤 분야 개발자든 개발자라면 일단 채용하는 분위기였죠. 코로나로 인해 비대면 서비스 등 기존에 없던 상품과 서비스를 제공하는 스타트업들도 크게 주목받으며, 인재 유치를 위해 너 나 할 것 없이 적극적으로 투자할 수 있었습니다.


    하지만, 단 2년 만에 개발 시장의 분위기는 크게 달라졌습니다. 경기 침체와 함께 호황이였던 개발자 채용에도 한파가 분 것인데요. 공채 전형은 거의 사라졌다시피 하고, IT 기업들은 채용은 커녕 기존에 채용했던 개발자까지 정리하는 분위기로 바뀌었습니다. 특히 프론트엔드 주니어 채용 수는 역대 최저 수준인데요. 이런 채용 시장 분위기 뿐만 아니라 프론트엔드 개발 환경, 핵심으로 다루는 주요 기술 스택, 프론트엔드 개발자의 업무 범위와 역할까지 크게 달라진 상황입니다.

    그럼, 2022년과 비교하여 2024년 프론트엔드 개발 시장의 어떤 요소가 어떻게 바뀌었는지 하나씩 살펴볼까요?


    첫 번째 변화 : 기술 스택

    2022년과 2024년의 기술 스택을 비교했을 때, 크게 달라진 점은 프론트엔드 개발자들에게 요구하는 기술 스택의 양 자체가 더 많아졌다는 것입니다. 특히 주목해야 할 것은 Next.js인데요. 


    Next.js 웹사이트 기반 기술 점유율 / 출처 : What CMS


    Next.js는 2023년 기준으로 전 세계 개발자들 사이에서 가장 많이 사용되는 웹 개발 프레임 워크임과 동시에, 2024년 국내 프론트엔드 개발자 채용 시 요구받는 대표적인 스택으로 떠오르며 이전보다 훨씬 주목받고 있습니다. 그리고 Next.js가 뜨면서, 서비리스 백엔드 서비스를 편하게 제공하는 ‘슈파베이스’도 함께 급부상하고 있죠. 


    또, 타입스크립트도 필수 기술 스택으로 자리매김했습니다. 2~3년 전만해도 프론트엔드 개발에서 타입스크립트는 단순히 취향의 영역이었고, 도입을 고민하는 스택이었는데 이제는 타입스크립트가 없는 라이브러리를 찾기 힘들 정도로 생태계가 안정화 되어 타입스크립트는 선택이 아닌 필수가 되었습니다.


    두 번째 변화 : 채용 시장

    2022년 프론트엔드 개발자 채용 시장은 매우 활발했습니다. 당시 한 IT 기업에서는 총 900명의 개발자를 채용하겠다고 보도하기도 했죠. 이러한 대규모 채용과 함께 주니어 프론트엔드 개발자에게 요구하는 필수 역량 수준은 연차로 치면 0~1년 차 정도로, 자바스크립트 프레임워크의 동작 원리를 이해하고 성능을 고려한 웹 개발, 비동기 처리 및 API 기반 통신을 이해하고 효율적인 적용을 할 수 있느냐 정도였습니다. 


    하지만 2024년 프론트엔드 개발자 채용 시장에서는 어떤 것을 요구하고 있을까요?

    웹 기술 언어를 활용하여 사용자와 시스템의 상호작용을 돕기 위해 웹 브라우저 등 다양한 플랫폼과의 웹 호환이 가능한 어플리케이션을 개발할 것은 물론, 모바일을 비롯한 다양한 업무 범위에서 수준 높은 경험치를 요구하고 있습니다.

    • 웹 뼈대 및 UI 구현 : 유저가 보는 화면 구현

    • 모바일 환경 대응 : 모바일 기기에서도 원활한 앱 서비스 이용 지원

    • 개발 환경 이해 : 앱을 관리해 유저에게 지속적인 서비스 제공할 수 있도록 개발

    • 구조화된 방식의 인터페이스 구현 : 유저가 웹에서 경험하는 기능 구현

    • 서버 및 백엔드 통신 이해 : 효율적인 데이터 처리 및 유저에게 정확한 정보 제공

    • 성능을 고려한 프론트엔드 개발 : 유저의 원활한 경험 지원


    사용 가능 스택이 무엇인지가 아닌, 이제는 그 스택으로 어떤 경험을 해봤는지 스킬, 역량 중심으로 채용 공고가 변화했으며 이전에는 빅 테크 기준 3년 차 이상의 우대사항에 포함되었던 기술인 크로스플랫폼(웹뷰 포함) 개발 역량까지 요구하게 되며 신입의 기준이 최소 3년 차 정도 수준으로 높아졌죠. 프론트엔드 개발자에게 필요로 하는 스택은 더 많아졌고, 수준도 높아지고 있는 것을 확인할 수 있습니다.

    세 번째 변화 : 프론트엔드 개발자의 업무 범위 및 역할

    2022년에는 프론트엔드의 업무 범위와 역할은 본질적으로 웹 개발 중심이었습니다. 

    반면, 이제는 프론트엔드 개발자에게 웹 개발은 물론, 모바일과 더불어 백엔드의 영역까지 요구하고 있습니다. 프론트엔드에서의 개발 경험을 그대로 가지고, 백엔드 개발에도 접목하는 것이 현재 프론트엔드 기술의 트렌드죠. Next.js, Remix, Astro 등이 대표적인 예시로, 특히 프론트엔드를 중심으로 개발을 하는 경우에는 주요 로직만 개발하고 백엔드를 직접적으로 다루지 않아 개발 생산성 차원에서도, 서버리스와 클라우드와의 궁합 차원에서도 유리해 이렇게 프론트엔드 트렌드의 흐름이 변화하고 있습니다.


    “과거와 비교했을 때, nextjs에서 server component가 들어오면서 프론트와 백엔드 간의 경계가 많이 사라졌습니다. supabase와 drizzle, prisma 같은 경우를 봐도 nextjs에서 프로젝트에서 DB 스키마를 관리하고, CRUD(create, read , update, delete) 요청 또한 API를 거치지 않고, 바로 server component에서 요청이 나가는 형태로 변화하고 있어요. “

    • 현 10년 차 프론트엔드 개발자 김한울님


    마지막 변화 :  거스를 수 없는 메가 트렌드, AI의 등장

    AI 기술의 발전은 다양한 산업 분야에 혁신을 가져왔고 프론트엔드 개발 역시 예외는 아닙니다. 프론트엔드 개발 분야에서 AI를 활용하는 대표적인 예는 AI를 활용한 코드 생성 도구로 반복적인 코딩 작업을 자동화하고, 버그를 사전에 예측하여 수정하는 것으로, 보통 챗봇을 가장 많이 활용하고 있는데요.


    이렇게 AI를 업무에 접목할 수 있다 보니, 실제 현업에서도 신입 개발자가 다룰 만한 비교적 저수준의 반복적인 작업은 AI가 대체하는 경우가 많고 ChatGPT를 활용하며 시니어 개발자들의 생산성이 엄청나게 높아져 신입 개발자의 필요성이 많이 떨어진 상황이라고 합니다. 앞으로 프론트엔드 개발자라면, 이제 AI 활용 능력을 높여두어야만 살아남을 수 있는 것입니다.



    프론트엔드의 변화는 계속될 것! 시장의 대세 스택이, 요구하는 기술이 내가 숙달한 것과 달라질 수 있다

    변화가 빠르고 새롭게 등장하는 기술 스택이 많은 프론트엔드 개발 분야의 특성상, 지속적인 학습은 프론트엔드 개발자들의 숙명과도 같습니다. 기술은 도구에 불과하기 때문에 한 가지 기술과 스텍에 의존하는 것이 아닌 다양한 기술을 익혀 회사, 프로젝트, 그리고 상황에 따라 다르게 사용할 줄 알아야 하죠. 즉, 변화를 두려워하지 않지 않고 변하는 스택을 빠르게 인지하고 준비하는 것이 중요한데요. 2년 사이에도 대세가 되는 핵심 스택이 달라지고, 또 새로운 기술 스택들이 추가되기 때문에 프론트엔드 분야에서는 다양한 기술 스택을 고루 알아두고 필요와 상황에 맞춰 선택해서 쓸 줄 아는 역량이 더욱 필요해진 상황입니다.


    머리로는 알겠지만, 다가온 변화와 앞으로의 변화에 현실적으로 어떻게 대비해야 하는지 막막한 프론트엔드 개발자이신가요?

    고민하지 마세요. 이 모든 것을 대비 가능한 강의가 여기 있습니다!


    무려 192시간, 가장 최신의 프론트엔드 생태계 바이블!

    빠르게 변화하는 프론트엔드 시장 속 상황에 따라 다양한 기술 스택을 선택하고, 조합하여 손쉽게 사용하는 프론트엔드 개발자로 만들어드립니다. 



    [2024 시그니처 프론트엔드 : 웹 개발부터 모바일까지 프론트엔드의 모든 것]


    웹 개발 기초부터, 서버, 모바일 환경 대응까지! 프론트엔드 개발에 필요한 모든 기술을 최신 버전으로 담은 국내 유일무이한 강의라고 자부합니다. 


    ✍🏻이런 분들에게 특히 필요합니다!

    : 모바일, 웹 개발 등 기술 스택에 대한 학습과 잘못된 기술 스택을 선택하는 것은 아닌지, 지금 하고 있는 것들이 맞는지 불안한 취업준비생부터 방대한 스택과 변화하는 주요 기술 중 어떤 것을 배워야 하고 적용해야 할 지  고민인 주니어 프론트엔드 실무자 모두에게 추천드려요.


    어떤 변화에도 대응할 수 있도록 최신 트렌드를 반영해 필요한 모든 기술 스택을 알려드림과 동시에 경험을 요구하는 채용시장 최신 트렌드에 맞춰 기술 스택을 바로 활용하는 AI 시대 실무용 프로젝트까지 준비되어 있습니다. 지금 바로 탄탄한 실력의 프론트엔드 개발자로 자리매김하세요!


    >> 강의 보러 가기 >>  


    참고 자료 출처 : 2024 프론트엔드 기술스택

    이런 글도
    있어요

  • 이거 모르면 어디 가서 클라우드 환경 아는 척 금지! 2024년 AWS 핵심 서비스 정리(EC2, S3 등)

    이거 모르면 어디 가서 클라우드 환경 아는 척 금지! 2024년 AWS 핵심 서비스 정리(EC2, S3 등)

    AI.ing

    이거 모르면 어디 가서 클라우드 환경 아는 척 금지!
    2024년 AWS 핵심 서비스 정리(EC2, S3 등)

    #AI

    #AWS

    #S3

    #클라우드

    | 현재 대기업의 80%는 AWS 인프라 기반? AWS 찐 대세다!

     

    이제 기업은 데이터 저장, 웹 배포 또는 모든 종류의 IT 관련 개발 등 모든 작업을 클라우드로 전환했습니다. 그리고 클라우드 컴퓨팅에 관해 이야기할 때 AWS는 빼놓을 수 없는 존재가 되었습니다. 실제 Fortune 500대 기업 중 80% 이상으로 Netflix, Pinterest, Instagram, Walmart, Microsoft, Oracle 등과 같은 기업이 AWS 인프라를 기반으로 하고 있습니다. 특히, Netflix는 거의 모든 컴퓨팅 및 스토리지 서비스에 AWS를 사용 중입니다.

     

    도대체 왜 80%의 대기업에서 AWS를 활용하고 있을까요? 바로 유연성과 확장성을 제공한다는 점과 사용한 만큼만 비용을 지불할 수 있다는 점입니다. 이러한 이점 덕분에 기업들은 서버 유지 관리보다는 생산성 저하 없이 솔루션 강화에 집중할 수 있습니다.

     

    또한, AWS는 기업의 요구와 기술의 발전에 맞춰서 새로운 기능 및 서비스를 개발하고 도입함으로써 고객들에게 최신 기술을 제공하고 있습니다. 지속적으로 신규 서비스와 업데이트를 하고 있으며, 현재는 300개가 넘는 서비스를 제공하고 있습니다. 


    수많은 서비스(EC2, S3, RDS 등)를 제공하고 있지만 실무에서 활용하는 주요 서비스들은 뭘까요? 




    | 2024년 AWS 서비스 TOP 25 소개

     

    2024년 기준, AWS 주요 서비스 25개와 서비스별 장점/특징을 정리했어요.

     

    1. Amazon EC2 (Elastic Cloud Compute)


    Amazon EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스 중 가장 빠르고 안전한 서버를 제공합니다. 이 서비스는 어떠한 워크로드에도 적합하며, 개

     

    발자는 리소스에 쉽게 액세스할 수 있습니다. 필요에 따라 용량을 신속하게 확장할 수 있으며, 500개 이상의 인스턴스와 최신 프로세서, 운영 체제, 스토

     

    리지, 네트워킹을 선택할 수 있습니다. 또한 비용은 사용량에 따라 지불되며, 자동 확장으로 최적의 스토리지와 CPU 구성을 유지할 수 있습니다.

    2. Amazon RDS (Relational Database Services)
    Amazon RDS는 PostgreSQL, MariaDB, MySQL 및 Oracle과 같은 관계형 데이터베이스를 위한 관리형 서비스로, 클라우드에서 데이터베이스를 설정, 운영 및 확장할 수 있습니다. 자동화된 작업으로 데이터베이스 설정, 하드웨어 프로비저닝, 패치 적용, 백업 등을 수행하여 고성능을 제공하며, 고가용성, 호환성 및 보안을 강화하여 비용을 최적화할 수 있습니다. MySQL, PostgreSQL, Oracle 등 다양한 엔진을 선택할 수 있으며, 높은 보안성과 쉬운 사용이 특징입니다.

    3. Amazon S3 (Simple Storage Service)
    Amazon S3는 확장성, 가용성, 보안, 그리고 고성능을 제공하는 객체 스토리지 서비스로, 언제 어디서나 데이터를 쉽게 저장할 수 있게 해줍니다. 데이터를 검색할 수 있고, 데이터는 추가 비용 없이 “스토리지 클래스”에 저장되어 효율적으로 관리됩니다. 이 서비스는 대규모 데이터를 다양한 목적으로 관리하는 대기업에 적합합니다. 강력한 액세스 제어를 통해 모든 데이터를 안전하게 처리하고, 복제 도구는 실수로 삭제되는 것을 방지하며 데이터 버전 제어도 유지할 수 있습니다.

    4. Amazon IAM (Identity and Access Management)
    Amazon IAM을 통해 사용자는 리소스에 안전하게 액세스하고 관리할 수 있습니다 . AWS에서 제공하는 도구와 리소스에 대한 완전한 액세스를 얻으려면 AWS IAM이 가장 적합한  AWS 서비스입니다. 리소스에 대한 승인(로그인) 및 인증(권한 있음) 액세스 권한을 가진 사람을 제어할 수 있는 권한을 부여합니다. 직무, 부서 등 사용자의 속성을 기준으로 별도의 권한을 생성할 수 있는 속성 기반 접근 제어 기능이 제공됩니다. 이를 통해 사용자에게 부여된 접근을 허용하거나 거부할 수 있습니다. 

    5. Amazon EBS (Elastic Block Store)
    Amazon EBS 는 AWS가 제공하는 차세대 서비스로, Amazon EC2용으로 특별히 설계된 블록 스토리지 솔루션입니다. 다양한 워크로드를 처리할 수 있으며, 다섯 가지 볼륨 유형 중 선택하여 효율성과 비용 최적화를 달성할 수 있습니다. 빅 데이터 분석 엔진의 워크로드 크기를 조정하고, 백업 정책을 생성하여 효과적으로 관리할 수 있으며, Microsoft, SAP 제품 등 고성능 확장 워크로드를 지원합니다.

    6. Amazon Lambda
    Amazon Lambda는 AWS의 서버리스 및 이벤트 중심 컴퓨팅 서비스로, 가상 애플리케이션 및 백엔드 서비스용 코드를 자동으로 실행합니다. 서버나 클러스터 관리에 대해 걱정 없이 솔루션을 작업할 수 있으며, 사용한 서비스에만 비용을 지불하므로 비용 효율적입니다. Lambda를 사용하면 정확한 소프트웨어 확장과 광범위한 가용성을 얻을 수 있으며, 초당 수백에서 수천 개의 워크로드를 처리할 수 있습니다.

    7. Amazon EFS (Elastic File System)
    Amazon EFS는 파일 시스템을 생성하고 구성할 수 있는 간단한 서버리스 시스템으로, AWS 클라우드 서비스 및 온프레미스 리소스에서 사용할 수 있습니다. NFS 파일 시스템으로 확장 가능하며, 프로비저닝된 처리량과 자동 확장 기능을 제공하여 페타바이트 규모까지 확장할 수 있습니다. 최소 수수료나 설치 수수료가 없으며, 사용한 스토리지 비용만 지불합니다.

    8. Amazon CloudFront
    Amazon CloudFront는 콘텐츠 전송 네트워크로, 고성능과 보안을 제공하며 전 세계적으로 콘텐츠를 전달합니다. 자동화된 네트워크 매핑과 지능형 라우팅 메커니즘을 사용하여 엣지 위치에서 콘텐츠를 제공하며, 트래픽 암호화와 액세스 제어를 통해 데이터 보안을 강화할 수 있습니다.

    9. Amazon SNS (Simple Notification Service)
    AWS에서 제공하는 웹 서비스로, 저비용 인프라를 갖춘 메시징용 완전관리형 솔루션입니다. 분리된 마이크로서비스 앱 간 시스템 간 또는 앱 대 사람을 통한 대량 메시지 전달 및 고객과의 직접 채팅에 사용됩니다. 클라우드에서 알림을 쉽게 설정, 운영, 전송하는 데 사용됩니다. A2A와 A2Person 간의 메시징 서비스로, A2A와 A2P의 두 가지 방법으로 알림을 보냅니다. A2P를 사용하면 마이크로서비스, 분산 시스템, 이벤트 기반 서버리스 애플리케이션 간의 다대다 메시징이 가능해 SMS 문자, 이메일, 푸시 알림을 통해 고객에게 메시지를 보낼 수 있습니다. 

    10. Amazon VPC (Virtual Private Cloud)
    Amazon VPC을 통해 가상 환경에서 대규모로 AWS 리소스를 배포할 수 있는 격리된 섹션을 설정할 수 있습니다. 이 서비스는 리소스 배치, 보안, 연결 등 가상 네트워킹 환경을 제어하는 역할을 하며 아웃바운드 및 인바운드 연결에 규칙을 적용하여 보안을 향상할 수 있습니다. 또한 패턴의 이상 징후를 감지하고, 네트워크 연결 문제를 해결하고, 데이터 유출을 방지하고, 구성 문제를 처리합니다. VPC를 사용하면 IP 주소 선택, 하위 집합 생성, 라우팅 테이블 배열 등 환경을 제어할 수 있는 완전한 액세스 권한을 얻을 수 있습니다. 

    11. Amazon Auto-Scaling
    Amazon Auto-Scaling은 애플리케이션을 모니터링하고 용량을 조정하여 예측 가능한 성능을 최저 비용으로 유지합니다. 몇 초 만에 여러 리소스에 애플리케이션을 확장할 수 있으며, EC2 인스턴스를 자동으로 추가 또는 제거하여 비즈니스 요구 사항을 충족합니다. 동적 및 예측 확장 두 가지 유형이 있으며, Amazon EC2 Auto Scaling과 함께 사용하여 인스턴스를 적절하게 확장할 수 있습니다.

    12. Amazon SQS (Simple Queue Service)
    Amazon SQS로 데이터 손실 없이 모든 볼륨에서 폴링 방법을 통해 소프트웨어 구성 요소 간에 메시지를 저장, 전송 및 수신할 수 있습니다. FIFO 기술을 사용하여 메시지가 순차적으로 한 번 처리되도록 보장하며, 이를 통해  마이크로서비스, 분산 시스템 및 서버리스 앱을 분리하고 확장할 수 있습니다. SQS를 통해 메시지 큐잉 서비스를 관리하여 언제 어디서나 데이터를 교환할 수 있습니다. 

    13. Amazon Elastic Beanstalk
    Amazon Elastic Beanstalk는 Java, PHP, Python, Docker 등의 웹 애플리케이션을 배포하고 확장하는 서비스로, 웹 애플리케이션 실행과 관리를 지원합니다. 코드를 업로드하면 Elastic Beanstalk가 배포 과정을 처리하며, 용량 프로비저닝, 로드 밸런싱, 자동 크기 조정, 애플리케이션 상태 모니터링 등을 포함합니다. 또한 필요한 AWS 자산과 기타 리소스를 제어할 수 있으며, 사용한 만큼만 비용을 지불하여 비용을 효율적으로 관리할 수 있습니다.

    14. Dynamo DB
    DynamoDB는 서버리스 문서 데이터베이스로, 고성능 애플리케이션을 위해 설계되었습니다. 이 NoSQL 데이터베이스는 매일 최대 10조 개의 요청을 처리하며 초당 2천만 개 이상의 요청을 지원할 수 있습니다. DynamoDB에는 다중 마스터, 다중 리전, 내구성 있는 데이터베이스, 인 메모리 보관 기능과 같은 보안 기능이 내장되어 있습니다. 또한 실행 가능한 통찰력을 제공하고 유용한 분석을 생성하며, 트래픽 추세를 모니터링하는 데 사용되는 도구도 내장되어 있습니다. DynamoDB는 내장된 보안 기능과 함께 지속적인 백업, 자동화된 다중 지역 복제, 데이터 가져오기 및 내보내기, 인메모리 캐싱을 제공합니다.

    15. Amazon ElastiCache
    Amazon ElastiCache는 완전관리형 인메모리 캐싱 AWS 서비스입니다. 이 서비스는 대기 시간을 줄여 애플리케이션과 데이터베이스의 성능을 가속화하고, 고속 및 마이크로초 대기 시간으로 데이터에 쉽게 액세스할 수 있습니다. 다양한 사용 사례에 적합하며 비용 효율적인 자체 관리형 캐시 서비스로서 Redis 및 Memcached와 호환됩니다.

    16. Amazon Cloud Directory
    Amazon Cloud Directory는 특수 그래프 기반 디렉터리로, 개발자를 위한 기본 빌딩 블록을 제공합니다. 수백만 개의 개체까지 자동으로 확장되며, 여러 애플리케이션에서 공유되는 확장 가능한 스키마를 제공합니다. Cloud Directory를 사용하면 다양한 용도의 디렉터리를 생성할 수 있으며, 여러 차원의 계층 구조로 디렉터리를 유연하게 생성할 수 있습니다. 또한 AWS CloudTrail과 리소스 태깅과 통합되어 있어 보안 및 모니터링 측면에서 더욱 강력한 기능을 제공합니다.

    17. Amazon Cognito
    Amazon Cognito는 수백만 명의 사용자에 대한 데이터를 안전하게 관리하고 동기화할 수 있는 사용자 ID 및 데이터 동기화에 사용되는 ID 관리 서비스입니다. Apple, Facebook, Google과 같은 웹 및 모바일 앱에 로그인, 가입을 통해 사용자를 온보딩하기 위한 제어 액세스 대시보드를 관리하는 일을 담당합니다. 또한 향상된 고객 경험을 위해 소셜 ID 공급자 및 SAML을 통해 로그인 기능이 가능하며 고급 보안도 제공하며 인프라 없이도 설정할 수 있는 ‘Cognito 사용자 풀’이라는 기능이 있습니다. 강력한 인증 및 데이터 암호화를 지원하고 있습니다. 

    18. Amazon Inspector
    Amazon Inspector는 AWS 워크로드에서 소프트웨어 취약성 및 의도하지 않은 네트워크 노출을 검사하는 자동화된 취약성 관리 서비스입니다. Amazon Elastic Container Registry에서 EC2 인스턴스와 컨테이너 이미지를 검색하고 스캔합니다. 취약성을 설명하고, 영향을 받는 리소스를 식별하고, 심각도를 평가하고, 해결 지침을 제공하는 결과를 생성합니다. 취약점을 발견한 후 애플리케이션이 악화되기 전에 신속하게 수정하며 정확한 위험 점수와 간소화된 작업 흐름을 제공합니다. 

    19. AWS Aurora
    AWS Aurora는 클라우드용 MySQL 및 PostgreSQL로 구축된 RDBM로, MySQL보다 5배 빠른 고성능 호환 데이터베이스입니다.  비용을 절감하고 보안, 신뢰성 및 가용성을 향상시킬 수 있으며, 데이터베이스 설정 및 백업, 하드웨어 프로비저닝, 패치 적용과 같은 일부 매우 중요한 작업은 AWS Aurora를 사용하여 자동화할 수 있습니다. SAAS 애플리케이션을 구축하고 엔터프라이즈 애플리케이션을 현대화하는  데 사용되는 서버리스 엔터티입니다 .

    20. Amazon S3 Glacier
    Amazon S3 Glacier는 데이터를 저렴한 비용으로 안전하게 보관하는 아카이브 스토리지 서비스입니다. 이 서비스는 최저 비용과 빠른 액세스 속도를 제공하여 데이터를 장기적으로 보관할 수 있습니다. S3 Glacier는 데이터 보관을 위해 고성능 및 검색 유연성을 갖춘 세 가지 스토리지 클래스로 구성되어 있습니다. 각 클래스는 고유한 목적에 따라 즉각적인 액세스, 유연한 액세스, 규정 준수 데이터 및 디지털 미디어의 보관을 지원합니다.

    21. Amazon Cloudwatch
    Amazon CloudWatch는 환경에서 흔하지 않은 변화를 감지하고, 알림을 설정하고, 문제를 해결하고, 자동화된 조치를 취합니다. 이를 통해 전체 스택을 추적하고 로그, 경보 및 이벤트 데이터를 사용하여 조치를 취함으로써 애플리케이션 구축에 집중할 수 있어 비즈니스 성장으로 이어질 수 있습니다. 모든 AWS 리소스와 애플리케이션을 빠르게 모니터링하여 리소스를 최적화할 수 있습니다.

    22. AWS Firewall Manager

     

    AWS Firewall Manager는 애플리케이션 전반에 걸쳐 방화벽 규칙을 중앙에서 구성하고 관리하는 데 도움이 되는 중앙 관리 서비스입니다. 방화벽 규칙

     

    과 보안 정책을 생성하고 인프라 전체에 구현하며, 서비스에 새 리소스를 추가하는 동안 AWS Firewall Manager를 사용하여 이를 보호할 수 있습니다.

     

    또한 조직 전체의 DDoS 공격을 모니터링합니다. EC2 인스턴스에 호스팅된 애플리케이션을 보호하고 지속적으로 리소스를 감사할 수 있습니다.

    23. AWS Key Management Service (KMS)
    AWS Key Management Service 를 사용하면 데이터를 보호하기 위해 애플리케이션 전반에 걸쳐 암호화 키를 생성, 관리 및 제어할 수 있습니다. 이 서비스는 100개 이상의 AWS 서비스와 통합되어 데이터를 암호화하고 해독하는 데 사용되는 키에 대한 액세스를 제어합니다. 또한 중앙에서 키를 관리하고 정책을 정의하며, 비대칭 키 쌍을 사용하여 작업을 수행하여 서명을 검증하고 HMAC를 생성하여 JSON 웹 토큰을 검증하여 데이터의 무결성과 신뢰성을 보장합니다. AWS 암호화 SDK 데이터 암호화 라이브러리를 사용하여 데이터를 암호화할 수도 있습니다.

    24. Amazon LightSail
    Amazon Lightsail은 클라우드에서 애플리케이션을 쉽게 구축하고 호스팅할 수 있는 VPS솔루션입니다. 이를 통해 개발자, 중소기업 및 사용자는 VPS 인스턴스, 데이터베이스, 컨테이너 및 스토리지를 활용할 수 있습니다. AWS Lambda와 통합하여 코드를 실행하고 컴퓨팅 서비스를 제공할 수도 있습니다. Amazon Lightsail은 사전 구성된 애플리케이션을 구축할 수 있는 기능을 제공하며, 해당 리소스는 가상 머신, SSD 기반 스토리지, 고정 IP 및 데이터 전송을 포함합니다. 또한 액세스, 네트워킹 및 보안 환경을 자동으로 구성할 수 있습니다.

    25. Amazon SageMaker
    Amazon SageMaker는 AWS의 본격적인 기계 학습 서비스로, 데이터 과학자, 비즈니스 분석가 및 개발자가 고품질 모델을 구축, 훈련 및 배포하는 데 사용됩니다. 이 서비스는 데이터 분석 도구로 사용되어 데이터를 효율적으로 분석하며 분석 결과를 바탕으로 보고서를 생성하고 예측을 생성할 수 있습니다. Amazon SageMaker는 대규모의 정형 및 비정형 데이터에 액세스하고 레이블을 지정하고 처리할 수 있습니다. 또한 MLOps 관행과 거버넌스를 자동화하고 표준화하여 감사 가능성과 투명성을 지원합니다.

     

    | 이 많은 서비스를 언제? ⭐실무자 PICK⭐ 21개의 주요 서비스를 다루는 AWS 입문 강의!


    EC2, RDS, DynamoDB, S3, Lambda 등 실무에서 찐 유용한 21개 서비스를 프로젝트로 모두 학습할 수 있어요.

    입문자도 걱정 NO!  AWS의 A자도 몰라도 다 따라올 수 있음!

     

     클라우드 컴퓨팅 이론부터 알려드리고 실습은 계정 생성부터 시작할 거에요!

     

     

    💸이렇게 알찬 구성을 단.돈. 월 9천 원에 만나볼 수 있어요💸

    ▶  강의링크 ◀

    이런 글도
    있어요

  • 개발자 취업 트렌드는 인공지능! 백엔드 개발자도 이제 AI를 알아야 합니다

    개발자 취업 트렌드는 인공지능! 백엔드 개발자도 이제 AI를 알아야 합니다

    AI.ing

    개발자 취업 트렌드는 인공지능! 백엔드 개발자도 이제 AI를 알아야 합니다

    #딥러닝/인공지능

    #인공지능

    #알고리즘

    인공지능 기술이 실생활에서 크고 작은 영향을 주는 4차 산업 혁명 시대가 다가오면서 개발자의 취업/이직 경쟁도 치열해지고 있습니다. 지난 2022년 2월, 파이낸셜뉴스 보도에 따르면, IT 개발자 채용 플랫폼에 등록된 개인회원 가입자 수가 2분기 만에 2배 이상 증가했으며, 상시 등록된 이력서도 8배 이상 늘었다고 하네요.

    이런 상황에서 더 좋은 회사에서 더 많은 연봉을 얻기 위해서는 어떤 준비가 필요할까요?
    바로 인공지능(AI)에 대한 공부가 필요합니다. AI 중요성이 높아지는 4차 산업 혁명 시대 속에서, 더 좋은 일자리로 취업하기 위해 인공지능 관련 공부에 힘쓰는 개발자들이 늘고 있죠.

    백엔드 개발자 역시 예외가 아닙니다. AI 관련 역량이 뛰어난 개발자일수록 취업/이직 시장에서 유리한 위치를 점하고 업무 범위도 넓힐 수 있죠.
    그 이유는 무엇일까요? AI 쪽으로 취업/이직을 원하는 백엔드 개발자라면 어떤 준비가 필요할까요?

    서비스의 뼈대를 만드는 백엔드 개발자

    신축 아파트에서 초고층 빌딩까지 건물을 지을 때는 멋진 외관과 근사한 인테리어를 만드는 것이 중요합니다. 하지만 기초를 튼튼히 하고 뼈대를 제대로 세우는 일 역시 중요하죠. 그래야 벽에 금이 가거나 무너질 걱정 없이 오랫동안 건물을 사용할 수 있기 때문이죠.

    애플리케이션과 서비스 역시 기초가 튼튼해야죠. 이러한 기초를 만들고 관리하는 개발자가 바로 백엔드 개발자입니다. 백엔드 개발자는 데이터를 처리하고 저장하는 일에서 UI가 없는 시스템 컴포넌트 작업, 서버 개발 및 인프라 관리, API 작성, 라이브러리 생성, 데이터베이스 통합에 이르기까지 다양한 업무를 수행하죠. 한편, 사용자가 직접 경험하는 UI, UX 등의 개발에 초점을 맞추는 개발자는 프론트엔드 개발자라 합니다.

    그래서 백엔드 개발자는 맡는 일의 범위가 넓습니다. 개발 및 유지/보수는 물론 데이터 분석을 위한 엔지니어링, 분산파일 시스템을 만들기도 하고, 프로젝트에 따라 데이터베이스 관리, 프론트엔드 개발에 참여하는 경우도 있죠. 이는 인접 분야와 관련된 전문성을 키우고 인맥을 넓히는 데 큰 도움이 됩니다.

    또 하나의 특징으로는 프론트엔드에 비해 프로그래밍 언어 선택의 폭이 넓다는 점이 있습니다. 백엔드에서는 PHP를 비롯해 Node.js, JavaScript, C++, Java, Python 등의 언어를 특성과 작업 방향 등을 고려하여 선택하고 업무를 진행하죠.

    이는 개발 분야의 변화에 유연하게 대처할 수 있음을 뜻합니다. 개발 분야에 ‘대격변’이 일어남은 물론 기존의 개발 분야도 빠른 속도로 더 깊게 발전하는 경우도 많아요. 이렇게 새로운 개발 분야가 탄생하는 상황에서 백엔드 개발자는 다양한 프로그래밍 언어 스킬을 바탕으로 비교적 쉽게 적응할 수 있답니다.

    종합해보면 백엔드 개발자는 할 수 있는 일이 많고 언어도 상황에 맞춰 다양하게 활용할 수 있어서 급변하는 개발 환경 속에서도 안정적이라는 장점이 있습니다. 여기에 자신만의 특화된 전문 분야와 개발 능력까지 갖춘다면 백엔드뿐만 아니라 프론트엔드, 풀스택 개발자, 시스템 엔지니어, 데이터 엔지니어 등 다양한 분야에 도전할 수 있죠.

    인공지능 공부로 백엔드 개발 역량 키워야

    기술이 발전하면서 개발 분야가 다양화되고 새로운 개발에 대한 수요가 늘어나고 있습니다. 이런 변화 속에서 개발자가 한 번 맡은 분야를 영원히 담당한다는 보장은 없습니다. 그래서 오래오래 일하고 싶다면, 새로운 개발 분야에 바로 적응할 수 있도록 역량을 쌓는 것이 중요해요.

    그렇다면 어떤 분야에 관한 공부가 필요할까요? 바로 인공지능입니다. 인터넷 기업뿐만 아니라 전통적인 제조업은 물론 공공기관에서도 AI 기술을 적용해 업무 효율을 높이고 인사이트를 얻기 위해 힘을 쓰고 있습니다. 이에 따라 인공지능 시장도 급성장하고 있는데요. 지난 2022년 3월, 시장조사기관 한국IDC는 향후 5년간 국내 AI 시장이 연평균 성장률이 15.1%에 달할 것으로 예측했습니다. 그만큼 성장세가 뚜렷하다는 걸 알 수 있죠.

    이렇게 급성장하는 인공지능을 잘 아는 개발자가 있다면 더 좋은 커리어를 쌓을 수 있을 것입니다.

    특히 백엔드 개발자는 다루는 업무의 범위가 넓은 만큼 AI 역량까지 갖췄다면 더 좋은 기업으로 이직하기 쉬워지고, 자신이 원하는 업무로 전향하기도 수월해지죠.

    인공지능을 공부하고 싶으시다면 딥 러닝(Deep Learning) 역시 잘 이해해두는 것이 좋습니다. 딥 러닝은 머신 러닝(Machine Learning)의 일종으로, 인간의 뇌에서 신경 세포를 사용하는 방식과 비슷한 알고리즘으로 인간이 쉽고 자연스럽게 하는 일을 컴퓨터에 가르치는 것을 뜻합니다. 인공지능이 제대로 인공지능답기 위해서는 딥 러닝이 필요한 것이죠.

    인공지능에 대한 이해가 더 좋은 서비스 만든다

    단순히 취업/이직 시장에서 유리해지는 것 이외에도 인공지능 이해도가 높아지면 개발에도 큰 도움이 됩니다. 먼저 유저가 어떤 서비스를 이용하는지, 그 서비스에 딥러닝/AI를 어떻게 적용할 수 있는지에 대한 역량을 얻을 수 있어요. 이는 인공지능과 사람 사이의 더 많은 연결고리를 만들 방법에 대해 고민할 수 있는 인사이트를 제공합니다.

    AI를 공부하면 인공지능의 가장 중요한 재료인 데이터를 어떻게 가공하고 분류해서 사용할지에 관해 더 훌륭한 솔루션을 제시할 수 있습니다. 데이터가 서비스를 만들 때 어떻게 적용할지에 대해서도 더 유연하게 생각하여 적용할 수 있게 되죠.

    영상처리를 예로 들어 살펴볼까요? 자율주행이나 스마트팩토리 등에 사용되는 영상처리는 영상을 분석하고, 해당 물체의 속도, 나와의 위치, 인식 등을 하는 기술입니다.
    AI에 대한 이해도가 높다면 영상 처리를 위한 영상 데이터를 어떻게 가공하고 분류하여 사용할지를 근본적으로 고민할 수 있게 됩니다. 그리고 이에 맞춰 빅데이터 배치 처리, 색인/검색에 필요한 기술을 개발할 수 있죠.

    실제로 백엔드 개발자들이 AI 회사에 취직해 활동하는 경우도 많아요. 인공지능 회사에서 백엔드 개발자는 머신러닝/딥러닝 기반의 연구 결과를 서비스에 적용하는 데 필요한 백엔드 시스템 개발에 나섭니다. 또한, AI 서비스에 필요한 플랫폼과 멀티미디어 데이터 처리 기술 개발에도 참여합니다.

    특히 대용량의 서비스를 개발하는 백엔드 개발은 AI/빅데이터 시대에 있어 꼭 필요한 과제입니다. 백엔드 개발자라면 이제 AI 역량을 갖추는 것이 필수라고 할 수 있죠. 지금이라도 인공지능 공부에 나서야 하는 이유입니다.

    백엔드 개발자, 어떤 AI 역량이 필요할까?

    AI 역량이 있는 개발자는 그렇지 않은 개발자와 서비스를 만들 때 접근할 수 있는 시각의 범위가 다릅니다. 그래서 인공지능 기반 서비스 기업에서는 다양한 AI 역량을 갖춘 백엔드 개발자를 찾고 있습니다. 구체적으로는 어떤 역량이 요구될까요?

    먼저 DepOps/MLOps에 대한 이해가 필요합니다. DevOps는 애플리케이션과 서비스를 더 빠르게 제공할 수 있도록 개발 및 유지 관리와 관련된 모든 역할 간 협업을 조성하는 것이며, MLops는 머신 러닝 개발과 운영을 통합하는 것으로 데이터 레이블링의 일관성을 위해 인프라를 만들어 자동으로 운영되게 하는 역할을 뜻하죠.

    또한, C/C++, Python 등 하나 이상의 언어에 능숙해야 하며, node.js, Go, Java/Kotlin 등 백엔드 개발에 사용되는 언어를 하나 이상 잘 알아야 합니다. 애플리케이션을 신속하게 구축하고 배포할 수 있는 도커(Docker)에 대한 기본적인 지식도 필요해요. 특히 기업에서는 AI 개발자 지원자의Python/TensorFlow/NLP 등과 관련된 역량을 많이 보고 있습니다.

    AI 백엔드 개발자를 모집하는 기업별로 어떤 역량을 우대하는지 알아보는 것 역시 취업 시장에서 승리하는 데에 도움이 됩니다. 한 예로, 인공지능을 바탕으로 버추얼 휴먼을 개발하는 A사에서는 AWS, Azure 등의 클라우드 환경 기반 개발, 배포 및 운영 경험을 선호했습니다. 한편, 게임업체 B사에서는 새로운 빅데이터 분석플랫폼에 꾸준한 관심을 가진 백엔드 개발자를 선호했죠.

    모델링, 데이터 엔지니어링 등 다양한 분야에서 일하는 백엔드 개발자는 AI 리서치를 비롯한 인공지능 서비스 개발 업무에 유용하게 적용할 수 있죠. 이 때문에 최근 AI 기업에서는 이러한 능력을 갖춘 ‘백엔드 개발자’를 선호하죠. 그래서 개발자 커리어를 더 순탄하게 쌓기 위해서는 탄탄한 AI 역량을 보유한 개발자로 거듭나야 합니다.

    이런 글도
    있어요

  • ‘파이썬 생초보’를 위한 기초부터 머신러닝 독학까지! 이렇게 해보세요.

    ‘파이썬 생초보’를 위한 기초부터 머신러닝 독학까지! 이렇게 해보세요.

    AI.ing

    ‘파이썬 생초보’를 위한 기초부터 머신러닝 독학까지! 이렇게 해보세요.

    #파이썬

    #머신러닝

    #딥러닝

    개발자가 아닌 비전공자, 문과생이라도 요즘은 누구나 파이썬 배우는 것 아닌가요?

    남들 다 한다고 무작정 시작하려고 하시나요? 파이썬을 너도나도 배운다고 해서 꼭 배워야 할까요? 그건 절대 아닙니다.
    여기서 짚고 넘어가야 할 점은 파이썬 프로그래밍을 배워서 무엇을 하고 싶은 것인지 입니다.
    파이썬을 공부하는 목적이 명확하다면 혼자서도 독학할 수 있는 방법은 많을테니까요.
    오늘은 입문자, 생초보를 위한 파이썬 기초 강의부터 머신러닝/딥러닝 분야의 강의들을 추천 해 보려고 합니다.

    과연 파이썬을 활용해서 무엇을 할 수 있을까요?

    파이썬은 다양한 분야에서 활용되는 프로그래밍 언어인데요. 파이썬을 활용해서 할 수 있는 업무들을 알아볼게요.

     
    ✔ 데이터 분석

     

    ✔ 머신러닝(Machine Learing)

     

    ✔ 딥러닝(Deep Learing)

     

    ✔ 매크로(자동화 프로그램) 구현

     

    ✔ 웹 프로그래밍

     

    이 외에도 파이썬 프로그래밍을 배우면 할 수 있는 업무의 폭은 상당히 넓고 또 다양한데요. 파이썬은 읽고 쓰기가 쉽고, 다른 프로그래밍 언어에 비해 직관적인 문법으로 입문하기 좋다는 장점도 있습니다. 이제 파이썬으로 내가 도전해보고 싶은 분야에 맞춰서 시작하기 좋은 강의를 추천 해 드릴게요.

    1. 머신러닝이 목표라면?
    파이썬 기초부터 머신러닝 프로젝트까지 완성 해 봐요.

    머신러닝 공부를 한 번 시작해보고 싶으셨다고요? 그런데 배워야 하는 내용도 상당히 많고 선수 지식이 필요한 책이나 강의가 대부분이죠. 머신러닝 기술을 구현하기 위해서는 파이썬 지식이 필수적이에요. 파이썬을 통해 데이터를 수집, 처리, 분석하는 프로세스를 진행할 수 있기 때문인데요. 동시에 수학과 통계 지식 또한 필요하기 때문에 애초에 입문하기가 쉽지 않으실거에요.

    머신러닝과 데이터 분석 A-Z 올인원 패키지 강의에서는 파이썬 기초부터 배우실 수 있으니 더 이상 걱정하지 마세요. 데이터 분석과 머신러닝 및 딥러닝 기술 구현에 대해 전반적으로 다루기 때문에, 데이터 분석에 필요한 파이썬 프로그래밍부터 공부할 수 있습니다. 모빌리티, 마케팅, 커머스, 제조업 등 다양한 분야에 머신러닝 기술을 적용하는 프로젝트도 진행하니, 자세한 커리큘럼은 강의 상세페이지에서 확인 해 주세요.

    ▲클릭해서 강의 보러가기▲

    ✔ 코딩 기초, 데이터분석, 딥러닝까지 정복
    ✔ 파이썬/R 25개 프로젝트로 실전까지 커버
    ✔ 실무 연습용 데이터로 활용도 UP

    2. 지겨운 단순 반복 업무.
    자동화하고 야근에서 벗어나고 싶다면?

    일반 사무직으로 근무하거나, 업무 특성상 단순 반복 업무가 많다면 파이썬 프로그래밍을 배워두시는 것을 추천 드리는데요.직장인이 회사에서 처리해야 하는 상당수의 업무를 매크로 프로그램으로 만들어 자동화 할 수 있기 때문이에요.

    자동화 프로그램을 돌리기 위해 모든 파이썬 코드를 배울 필요는 없어요. 자동화 프로그램을 돌리기 위해 필요한 파이썬 코드는 한정적이기 때문에 필요한 만큼만 배우면 됩니다. 평소 단순 반복 작업으로 회사에서 현타를 느끼거나, 업무 시간이 부족해서 비효율적으로 일을 하고 있다면 커리큘럼을 상세히 확인 해 보세요. 파이썬 배우고 더 스마트하게 업무를 처리 해 보세요.

    ▲클릭해서 강의 보러가기▲

    ✔ 기초-실전-심화 응용까지 한번에
    ✔ 실무 사용 빈도 높은 5가지 업무/상황별 예제 94가지
    ✔ 업무에 그대로 활용가능한 템플릿 5종

    3. 데이터 분석을 해야하는
    비전공자 직장인이라면?

    개발자나 엔지니어가 아니더라도 데이터 분석의 중요성을 체감하는 직장인 분들이 계실 거에요. 특히, 데이터를 기반으로 의사결정을 하고 누군가를 설득해야 하는 일이 많으시다면 한 번쯤 데이터 분석 공부를 결심하죠. 그 후 이런 어려움에 직면하기도 합니다.

    데이터 분석을 어떻게시작하는지조차 모르겠어요..
    낯선 코딩 문법 이론들부터 배워야 하나요?
    아무리 공부해도 막상 내 업무에 어떻게 적용할지 모르겠어요.
    수학부터 여러가지 프로그래밍 언어를 공부해야 할 것 같은데 전 수포자라…

    이런 분들이라면 파이썬 문법 위주의 학습보다는, 실질적으로 데이터 분석이 어떻게 이루어지는지 눈으로 확인하면서 배우는 과정이 필요한데요. 최근에는 코딩 없이 데이터를 처리하고 분석까지 도와주는 비주얼 코딩 툴도 굉장히 많아요. 직장인을 위한 파이썬 데이터 분석 강의에서는 비주얼 코딩 툴을 활용해서 코딩 없이 데이터 분석 과정을 먼저 경험할 수 있습니다.

    입문자 입장에서는 파이썬 프로그램 설치와 개발 환경 세팅부터 문제일텐데요. 별도의 설치없이 파이썬 코딩이 가능한 Colab이라는 클라우드를 활용해서 수업을 들을 수 있습니다.

    ▲클릭해서 강의 보러가기▲

    ✔ 설치 에러 없는 공유 클라우드 Colab 실습
    ✔ 문법뿐만 아니라 시각화 표현까지 마스터
    ✔ 14개 산업군, 28개 직무의 30가지의 다양한 예제

    이런 글도
    있어요

  • 프론트엔드 개발자 필독! 웹 성능 최적화 기술이 중요한 7가지 이유

    프론트엔드 개발자 필독! 웹 성능 최적화 기술이 중요한 7가지 이유

    AI.ing

    프론트엔드 개발자 필독!
    웹 성능 최적화 기술이 중요한 7가지 이유

    #AI

    #프론트엔드

    웹 사이트 최적화가 유저 경험에 어떠한 영향을미칠까요?

    • BBC는 사이트를 로드할때 1초가 더 걸릴 때 마다 10%의 사용자가 이탈한다고 발표했습니다.

    • 통계에 따르면 웹사이트 로딩 시간이 3초 이상 걸리면 방문자 중 40%가 웹사이트를 떠난다고 합니다.

    • 콘텐츠 미리 가져오기로  *Terra는 광고 클릭률을 30% 높이고 LCP 속도를 높이는 결과를 만들었습니다.

    • *RedBus는 웹사이트의 INP(Interaction to Next Paint) 지표를 개선하고 매출을 7% 늘렸습니다.

    • 불만족한 쇼핑객 중 64%는 느린 웹사이트를 다시 방문하지 않는다고 합니다.

     

    *Terra : 브라질 최대 규모의 콘텐츠 포털 중 하나로 엔터테인먼트, 뉴스, 스포츠를 제공

    *redBus : 인도에 본사를 둔 버스 예약 및 발권 웹사이트

     

    이렇듯 웹 프런트엔드 성능과 모니터링은 사용자 만족도, 참여, 그리고 궁극적으로 온라인 비즈니스의 성공에 직접적인 영향을 미치기 때문에 매우 중요합니다. 빠르게 로드되고 알맞은 시간에 사용자 입력에 응답하는 웹사이트가 로드가 느리고 느린 느낌을 주는 웹 사이트보다 사용자의 참여를 유도하고 유지할 수 있습니다. 

    프론트엔드 개발자라면 알아야할 웹 성능이 중요한 이유 7가지

    1. 최고의 사용자 경험(UX) 제공

    프런트엔드 성능은 사용자 경험에 직접적인 영향을 미칩니다. 로딩 시간이 빨라지고 상호 작용이 원활해지면 사용자 만족도와 참여도가 높아져 유지율과 전환율이 높아집니다.

     

    사용자는 빠른 응답 시간과 원활한 상호 작용을 접할 때 애플리케이션에 대한 긍정적인 인식을 갖게 됩니다. 이러한 인식은 단순한 속도를 넘어 개발자가 신뢰할 수 있는 제품을 만드는 데 투자했음을 상징합니다.  품질에 대한 이러한 인식은 시간이 지남에 따라 사용자의 신뢰와 충성도로 이어집니다.

    2. 고객 유지

    비슷하게 빠르고 반응이 빠른 프런트엔드 경험을 제공하면 고객 만족도와 유지율이 향상됩니다. 사용자는 성능이 좋고 기대에 부응하는 제품을 다시 찾고 추천 할 가능성이 더 높습니다 . 긍정적인 사용자 경험은 브랜드 충성도와 장기적인 고객 관계 구축에 기여합니다.

     

    반면, 느린 앱은 방치되거나 무능하다는 느낌을 전달하여 사용자에게 앱 뒤에 있는 브랜드나 조직에 대한 부정적인 인상을 남길 수 있습니다. 사용자 기대치가 계속 높아지는 오늘날, 경쟁 환경에서 우수성과 숙련도에 대한 평판을 유지하는 것은 신뢰와 신용을 구축하는 데 필수적입니다.

     

    3. 이탈률 감소

    통계에 따르면 웹사이트 로딩 시간이 3초 이상 걸리면 방문자 중 40%가 웹사이트를 떠난다고 합니다.

    이렇듯 웹사이트가 느리게 로드되면 사용자는 웹사이트를 이탈할 가능성이 더욱 높아집니다. 성능을 최적화하면 이탈률을 줄이고 방문자의 체류시간을 더 늘릴 수 있습니다.

    4. 인지 부하 감소

    로딩 속도가 느린 앱은 사용자에게 인지적 부담감을 주며, 추가적인 정신적, 시간적 리소스를 사용해야 합니다. 사용자는 콘텐츠가 로드되기를 기다리는 동안 좌절감, 조바심 또는 불안을 경험하여 전반적으로 긍정적인 경험을 저하시킬 수 있습니다. 

     

    5. 경쟁 우위

    경쟁이 치열한 오늘날, 기업은 시장에서 살아남기 위해 경쟁사와 차별화를 지속적으로 해야합니다. 반응이 빠른 프런트엔드는 상당한 경쟁 우위가 될 수 있습니다. 사용자는 느린 서비스보다 더 빠르고 더 나은 사용자 경험을 제공하는 제품과 서비스를 사용할 가능성이 더 높습니다. 

    6. 검색 엔진 최적화(SEO)

    Google과 같은 검색 엔진은 웹사이트 성능을 중요한 요소 중 하나로 생각합니다. 빠른 웹사이트는 느린 웹사이트에 비해 검색 엔진 결과 페이지(SERP)에서 더 높은 순위를 차지할 가능성이 높기때문인데요. 프런트엔드 성능을 최적화함으로써 스타트업과 큰 규모의 기업은 검색 엔진 결과의 가시성을 향상하고 웹사이트에 더 많은 유기적인 트래픽을 유도할 수 있습니다.

    7. 접근성 향상: 저사양 기기 및 희소 네트워크 최적화

    웹 사이트가 웹 모범 사례를 준수하지 않거나 성능 최적화가 부족한 경우 잠재 고객의 큰 부분을 잃을 위험이 큽니다. 개인을 위한 원활한 사용자 경험을 보장하려면 웹 애플리케이션은 다양한 까다로운 조건에서도 쉽게 사용할 수 있고 기능할 수 있도록 설계되어야 합니다.

    사이트가 빠르게 로드되고 다양한 플랫폼에서 원활하게 작동하도록 하면 더 많은 잠재고객에게 다가갈 수 있습니다. 효과적인 캐싱 전략 구현 , CDN (콘텐츠 전송 네트워크) 사용 최적화 , 오프라인 액세스 활성화 (다른 전술 중에서)를 통해 일시적인 네트워크 손실이나 불리한 조건이 발생하는 경우에도 사용자가 애플리케이션을 원활하게 계속 사용할 수 있습니다.

     

    이런 7가지의 이유로  앱의 속도는 사용자의 인식, 감정, 행동에 심오한 영향을 미칩니다. 속도와 성능을 우선시함으로써 개발자는 사용자에게 힘을 실어주고, 즐거움을 주고, 영감을 주는 경험을 만들어준다면,  장기적인 관계를 조성하고 비즈니스 성공을 촉진이 가능하겠죠?

    중요한 프론트엔드 성능 최적화 능력, 제대로 키울려면?

     

    프론트엔드 개발을 대학을 통해 배우는 것은 전통적이며 일반적인 방식입니다. 하지만 앞으로 나아가기 위해서는 다른 좋은 방법도 많은데요.

    컴퓨터 과학, IT 및 소프트웨어 엔지니어링 과정으로 웹 개발을 위한 가장 확실하게 하는 것도 좋지만,  UI 또는 UX 디자인 부트 캠프나 강의를 듣는 것도 경력을 높이는 방법 중 하나입니다. 프론트엔드 개발 기술을 향상하기 위해서는 업무 경험을 얻는 것이 무엇보다 중요하며 JavaScript, HTML 및 CSS를 사용하여 웹 사이트를 구축하는 것부터 실무에 바로 사용가능한 능력을 키울 수 있습니다. 무엇보다 성능 최적화로 유저 경험을 최상위로 높여 성과를 낸 기업에 종사하는 강사님에게 배우면 좋겠죠?

    여기 성능 최적화에 집중해 부분부분이 아닌 프론트엔드 웹 성능 최적화를 정복할 수 있도록 모든 방법을 알려주는 강의가 있습니다! 

    ✨ [올인원 패키지] 프론트엔드 최적화 완전 정복 (React & Next.js) ✨

    이 강의는 토스 증권 출신 강사님이 토스 증권이 580만 고객을 사로잡을 수 있었던 최적화 비법을 알려드립니다! 실무에 필요한 모든 최적화 기술 30가지 이상 실습과 더해 실사용 수준의 20가지 이상의 기술과 60가지 이상의 구현 기능 학습을 할 수 있으니 서둘러 들어보세요! 

     

    원문 출처 : 7 reasons why frontend web performance optimization is important?

                        Eight crucial front-end developer skills for 2024

     

     

    이런 글도
    있어요

    이런 글도
    있어요

  • [2024 네카라쿠배 코딩테스트 합격을 위한 3가지 전략 | 단기 합격 꿀팁!]

    [2024 네카라쿠배 코딩테스트 합격을 위한 3가지 전략 | 단기 합격 꿀팁!]

    AI.ing

    2024 네카라쿠배 코딩테스트 합격을 위한
    3가지 전략 | 단기 합격 꿀팁!

    #코딩테스트

    #파이썬

    #코딩테스트준비

    팀 네이버에서 2024 상반기에 소프트웨어 개발, 인프라, 보안 등 다양한 분야에서 인재를 모집하며, 상반기 공채가 본격적으로 시작되고 있습니다!

    요즘은 대부분 기업들이 코딩테스트를 보기 때문에 더욱 준비할 것들은 많아졌어요. 자기소개서 쓰랴, AI 역량 검사 준비하랴, 코딩테스트까지 챙길 게 너무나도 많죠?!

    개발자가 되기 위해선 꼭 필요한 코딩테스트! 그렇다고 무작정 준비하면 낭패 볼 수 있어요. 특히 네카라쿠배 코딩테스트는 타 기업대비 난이도가 어려운 편으로 평범하게 준비하면 절대 뚫을 수 없습니다. 

    합격을 위해 가장 중요한 것은 전략적인 준비입니다. 프로그래밍 언어 선택부터 목표하는 기업의 기출 문제 수준과 유형을 파악하고 기업 맞춤형 코딩테스트를 준비해야 빠르게 통과할 수 있답니다. 

    코딩테스트를 처음 준비하거나 단기 합격 전략을 알고 싶은 취준생, 이직러들!

    아래 3가지 전략들 가슴과 머리에 새기고 코딩테스트 합격 가보자고~

     

    2024 네카라쿠배 코테 단기 합격 전략


    1.
    프로그래밍 언어 선택: 코딩테스트 입문계의 절대강자 Python!

    ‘취준생들이 가장 많이 하는 질문 중 하나로 “아무 언어나 일단 시작하면 되죠?”라는 질문을 하곤 하는데요. 

    절대 아닙니다. 이렇게나 많은 프로그래밍 언어 뭘 선택해야 코딩테스트에 유리할까요?! 물론 본인에게 가장 친숙한 언어가 있다면 해당 언어로 진행하는 것이 좋지만, 아직 친숙한 언어가 없고 코딩테스트에 익숙하지 않다면 파이썬으로 준비하는 것이 가장 유리합니다. 

    아래처럼 파이썬의 대표적인 장점 때문에 2022년 프로그래머스의 설문조사에 따르면 가장 인기 있는 코딩테스트 언어 TOP 1에 올랐다고 해요! 

    <파이썬을 선택해야 할 이유>

    ✔️ 단순한 문법으로 읽고 쓰기가 쉬움

    ✔️ 다양한 분야와 직종에서 활용되어 범용성이 높음

    ✔️ 내장된 다양한 라이브러리와 도구를 제공해 효율성과 생산성이 높음

    ✔️ 가장 인기 있는 코딩테스트 언어로 레퍼런스 양 급증 중

     
     


    2. 프로그래밍 언어 선택: 코딩테스트 입문계의 절대강자 Python!

    코딩테스트를 무조건 양치기로 준비하시며 무작정 문제를 많이 푸시는 취준생분들 계실 텐데요. 실력은 늘겠지만, 우리에게 필요한 것은 취업 과정인 코테를 빨리 통과하고 취뽀를 하는 것! 이를 위해서는 기업별 코딩테스트 난이도와 빈출 유형을 파악해서 맞춤형 코딩테스트 준비가 필요해요.

    이처럼 실제 기업별로 난이도가 상이하고 빈출 되는 알고리즘들이 굉장히 다르답니다. 현재 내가 원하는 기업의 코딩테스트 출제 경향은 어떤지, 또 어떤 자료구조, 알고리즘이 필요한지 이해하는 것이 합격의 지름길!

     

    3. 단기 준비 전략: 출제자 의도 파악 필수!

    시중에 나와 있는 많은 문제, 강의, 책 뭐부터 봐야 할지 모르겠다고요?  아무리 많이 풀어도 출제자 접근법과 해결법을 훈련하지 않는다면 소용이 없습니다. 출제자의 관점으로 문제를 어떻게 접근해야 할지 또 어떻게 해결해야 할지를 알 수 있어야 문제 풀이 능력을 단기 성장시킬 수 있습니다. 





    이 3가지 전략들을 한 번에 다 준비할 수 있도록! 

    조건1. 코딩테스트에 가장 유리한 Python으로 준비할 것.

    →  파이썬 강의 따로 찾지 마세요! 문법 강의 10시간 한 번에 제공!

    조건2. 원하는 기업을 타겟팅한 문제와 모의고사를 챙길 것.

    → 기업 코테 난이도별 빈출 유형 300개 & 모의고사 6회

    → 주요 기업 코딩테스트 출제 경향 전략서

    → 매년 1회분씩 업데이트되는 트렌드 반영 모의고사

    조건3. 출제자의 접근법과 해결법을 완벽 습득할 것.

    → 삼성 코딩테스트 출제자의 이론 강의

    → 시간복잡도 감소를 위한 출제자가 알려주는 n가지 접근법

    → 출제자가 직접 손 글씨&그림으로 쉽게 이해하고 예제로 완벽 습득

    !시간이 촉박해요. 정말 이 많은 걸 단기로 가능할까요?!

    X걱정하지 마세요X

    코딩테스트라면 심장이 떨리는 코린이도 따라올 수 있게 단기 로드맵을 준비했어요!

    상황에 맞게 로드맵을 설정하고 효율적으로 코딩테스트 준비하세요.

     

    이런 글도
    있어요