반응형

머신러닝으로 변화하는 산업

 

 

머신러닝(ML)은 데이터 중심의 혁신을 이끌며 다양한 산업을 빠르게 변화시키고 있습니다. 이 기술은 복잡한 문제를 해결하고 효율성을 높이는 데 큰 역할을 하고 있으며, 기존 비즈니스 모델에 새로운 가치를 더하고 있습니다. 이번 글에서는 머신러닝의 주요 응용 사례와 산업별 변화를 살펴보겠습니다.

 

 


🧠 머신러닝이란?

 

머신러닝은 인공지능(AI)의 하위 분야로, 컴퓨터가 명시적인 프로그래밍 없이 데이터를 학습하여 스스로 예측하거나 결정을 내릴 수 있게 하는 기술입니다.
기계는 데이터를 바탕으로 패턴을 찾아내고, 이를 활용해 새로운 데이터를 분석하거나 예측 모델을 생성합니다.

머신러닝은 다양한 알고리즘과 기술로 구성되며, 이를 활용해 다음과 같은 산업에 영향을 미치고 있습니다.


 

💼 머신러닝이 혁신하는 주요 산업

 

1. 📊 금융 산업

 

머신러닝은 금융 산업에서 정확한 분석과 예측을 가능하게 하며, 고객 맞춤형 서비스를 제공합니다.

  • 사례: AI 기반 투자 알고리즘, 리스크 관리 시스템
  • 기능: 신용 점수 분석, 사기 거래 탐지, 포트폴리오 최적화
  • 효과: 업무 자동화로 시간과 비용 절약, 사기 예방으로 신뢰도 향상

 

2. 🏥 의료 산업

 

의료 분야에서는 머신러닝이 질병 진단 및 치료 계획 수립에 혁신을 가져오고 있습니다.

  • 사례: IBM Watson Health, Google DeepMind의 의료 데이터 분석
  • 기능: X-ray 이미지 분석, 유전자 데이터 기반 치료법 추천
  • 효과: 진단 정확도 향상, 의료진의 업무 부담 경감

 

3. 🏢 제조 및 물류 산업

 

제조와 물류에서도 머신러닝은 생산성과 운영 효율성을 극대화하고 있습니다.

  • 사례: 예측 유지보수, 공급망 최적화
  • 기능: 장비 이상 탐지, 물류 경로 최적화, 수요 예측
  • 효과: 비용 절감, 운영 시간 단축

 

4. 🛍️ 유통 및 전자상거래

 

머신러닝은 고객 행동 데이터를 분석하여 맞춤형 마케팅 전략을 가능하게 합니다.

  • 사례: Amazon의 추천 시스템, 고객 세분화를 통한 타겟 마케팅
  • 기능: 제품 추천, 고객 이탈 예측, 재고 관리 최적화
  • 효과: 매출 증대, 고객 만족도 향상

 

5. 🎮 엔터테인먼트 및 미디어

 

엔터테인먼트와 미디어에서는 머신러닝이 콘텐츠 추천과 사용자 경험을 개인화하는 데 큰 역할을 합니다.

  • 사례: Netflix, YouTube의 개인화된 콘텐츠 추천
  • 기능: 시청 데이터 분석, 맞춤형 콘텐츠 제공
  • 효과: 사용자 체류 시간 증가, 구독자 유지율 향상

 

🔮 머신러닝이 가져올 미래 변화

 

머신러닝은 앞으로도 다양한 방식으로 산업을 혁신할 것입니다.
특히, 다음과 같은 분야에서 큰 변화를 예고하고 있습니다.

 

  1. 스마트 시티 구현: 교통 관리, 에너지 효율 최적화
  2. 기후 변화 대응: 환경 데이터 분석 및 예측
  3. 맞춤형 의료: 개별 환자 맞춤 치료 개발

머신러닝의 진화와 더불어, 데이터 윤리와 프라이버시 보호 역시 중요한 이슈로 부상하고 있습니다.


 

❓ Q&A 섹션

 

Q1. 머신러닝은 모든 산업에 적용 가능한가요?

  • 머신러닝은 데이터가 충분히 존재하는 모든 산업에 적용 가능하며, 특히 데이터 처리와 예측이 중요한 분야에서 강점을 발휘합니다.

 

Q2. 머신러닝을 시작하려면 어떤 기술이 필요한가요?

  • Python, R 같은 프로그래밍 언어와 TensorFlow, PyTorch 같은 머신러닝 프레임워크를 배우는 것이 유용합니다.
    기초 수학(선형대수, 미적분)과 통계학 지식도 필요합니다.

 

Q3. 머신러닝의 한계는 무엇인가요?

  • 데이터 품질이 낮거나 편향된 경우 결과가 왜곡될 수 있습니다.
    또한, 복잡한 모델은 해석하기 어려운 "블랙박스" 문제가 발생할 수 있습니다.

 


머신러닝은 단순한 기술을 넘어 산업의 새로운 표준으로 자리 잡아가고 있습니다.
여러분은 어떤 산업에서 머신러닝이 가장 큰 변화를 일으킬 것이라고 생각하시나요? 의견을 댓글로 나눠주세요! 😊

'Programing > 기술동향' 카테고리의 다른 글

자연어 처리(NLP)의 실생활 응용  (2) 2024.12.27
AI 의료 기술의 진화  (2) 2024.12.27
양자 컴퓨팅의 현재와 가능성 🌌  (2) 2024.12.26
AI 기술 혁신으로 본 미래  (2) 2024.12.26
NFT  (1) 2021.11.01
Posted by npre
,
반응형

🧠 음성인식 기술이란?

 

음성인식 기술은 사람이 말한 내용을 텍스트로 변환하거나 기계가 이해하도록 돕는 AI 기술입니다. 음성 데이터를 수집하고 분석하여 언어의 의미를 파악하며, 이를 기반으로 적절한 반응을 생성합니다.

 

주요 알고리즘으로는 딥러닝 기반의 자연어 처리(NLP)와 음향 모델이 활용됩니다.

 

음성인식 기술의 발전은 스마트폰, 스마트 스피커, 차량용 AI 시스템 등에서 더욱 두드러집니다. 그렇다면 이 기술은 실제로 어떤 분야에서 사용되고 있을까요?

 

 

💼 음성인식 기술 활용 사례

 

📱 스마트 디바이스와 가정용 AI

스마트폰과 스마트 스피커는 음성인식 기술의 대표적인 예입니다. Siri, Google Assistant, Amazon Alexa 같은 음성 비서는 사용자의 명령을 이해하고 정보를 제공합니다.

  • 주요 기능: 음성 검색, 일정 관리, 음악 재생, 스마트홈 제어
  • 장점: 손을 사용할 필요가 없어 편리하고 접근성이 뛰어남

 

🚘 자동차 음성 제어 시스템

운전 중 손을 사용할 수 없는 상황에서 음성인식 기술이 큰 역할을 합니다.

  • 사례: Tesla의 차량 음성 명령, BMW의 음성비서
  • 기능: 내비게이션 설정, 전화 걸기, 차량 상태 점검

 

🏥 의료 분야

의료 현장에서는 음성인식을 통해 의료진의 업무 효율을 높이고 환자의 경험을 개선하고 있습니다.

  • 사례: Nuance의 Dragon Medical One
  • 기능: 의료 기록 작성 자동화, 환자와의 음성 대화 분석
  • 효과: 의료진의 피로 감소와 시간 절약

 

📞 고객 서비스와 콜센터

AI 챗봇과 결합한 음성인식 기술은 고객 서비스의 효율성을 극대화합니다.

  • 사례: 은행, 통신사에서의 AI 상담원
  • 기능: 고객 문의 응답, 개인화된 서비스 제공
  • 장점: 빠른 응답 시간과 24시간 서비스 가능

 

🏫 교육과 접근성 향상

언어 학습이나 청각 장애인을 위한 기술에도 음성인식이 활용되고 있습니다.

  • 사례: Duolingo의 발음 교정 기능
  • 기능: 실시간 자막 생성, 학습 도우미
  • 효과: 학습의 몰입감 증대와 장애인 지원

 

🔮 미래 전망

음성인식 기술은 점점 더 정교해지고 있으며, 다양한 언어와 방언을 지원하는 방향으로 발전하고 있습니다. 특히, 다음과 같은 분야에서의 혁신이 기대됩니다:

  1. 개인화된 음성 비서: 사용자 습관과 선호도를 학습하여 맞춤형 서비스 제공
  2. 비즈니스 인텔리전스: 음성 데이터를 분석해 시장 트렌드 도출
  3. 보안 및 인증: 음성을 활용한 생체 인증 기술 발전

 

 

❓ Q&A 섹션

 

Q1. 음성인식 기술은 정확도가 얼마나 높나요?

최신 음성인식 기술의 정확도는 90% 이상이며, 환경 노이즈와 억양을 처리하는 능력도 꾸준히 향상되고 있습니다.

 

Q2. 음성인식 기술을 사용할 때 개인정보는 안전한가요?

대부분의 음성인식 시스템은 데이터 암호화와 익명화를 통해 개인정보를 보호하고 있습니다. 하지만 사용자는 서비스 제공자의 개인정보 보호 정책을 확인해야 합니다.

 

Q3. 음성인식 기술을 배울 수 있는 방법은?

AI와 NLP에 대한 기본 지식을 습득한 후, TensorFlow, PyTorch 같은 딥러닝 프레임워크를 활용해 음성인식 모델을 직접 구축해 볼 수 있습니다.

  •  
Posted by npre
,
반응형


서론: 양자 컴퓨팅의 미래를 향한 도약 🚀

양자 컴퓨팅은 정보 처리 방식의 혁명을 예고하며 현대 기술의 한계를 넘어서는 잠재력을 지니고 있습니다. 고전 컴퓨터가 0과 1의 이진 코드를 사용하는 반면, 양자 컴퓨터는 큐비트(qubit)를 활용해 동시에 여러 상태를 처리할 수 있습니다. 이러한 특성은 암호 해독, 약물 개발, 최적화 문제 등 다양한 분야에서 혁신적인 결과를 예고합니다. 이번 글에서는 양자 컴퓨팅의 현재 상태와 앞으로의 가능성을 깊이 탐구해 보겠습니다.


본론: 양자 컴퓨팅의 현재와 가능성 🔬

1. 양자 컴퓨팅의 현재 상태 🧩

1) 기술적 성과와 한계

  • 상용화 초기 단계: IBM, 구글, 리게티(LRigetti) 등 주요 기업이 초기 상용 양자 컴퓨터를 공개했습니다.
  • 큐비트 수 증가: 현재 가장 강력한 양자 컴퓨터는 수백 큐비트 수준의 장치를 보유하고 있습니다.
  • 오류 수정 문제: 양자 컴퓨팅의 주요 과제는 오류율을 줄이고, 안정성을 높이는 것입니다.

2) 활용 사례

  • 암호 해독: 양자 알고리즘(예: 쇼어 알고리즘)은 기존 암호 체계를 위협할 잠재력을 가지고 있습니다.
  • 약물 개발: 분자 시뮬레이션을 통해 신약 개발 시간을 단축할 수 있습니다.
  • 최적화 문제 해결: 물류, 금융, 에너지 산업에서 복잡한 최적화 문제를 해결하는 데 활용됩니다.

2. 양자 컴퓨팅의 가능성 🌟

1) 과학과 산업의 혁신

  • 의료 혁신: 양자 컴퓨팅은 단백질 접힘 문제 해결, 개인 맞춤형 치료법 개발에 기여할 수 있습니다.
  • AI와의 융합: 양자 컴퓨터는 대규모 데이터 처리를 통해 AI의 학습 속도를 획기적으로 향상시킬 가능성이 있습니다.
  • 기후 변화 대응: 기후 모델링 및 에너지 효율 최적화를 통해 환경 문제 해결에 기여할 수 있습니다.

2) 사회적 영향

  • 경제적 변화: 양자 컴퓨팅이 보편화되면 관련 산업에 새로운 기회와 도전 과제가 생길 것입니다.
  • 보안의 재구성: 양자 내성 암호(Quantum-resistant cryptography)가 필수적인 기술로 자리 잡을 것입니다.

결론: 양자 컴퓨팅의 새로운 가능성 ✨

양자 컴퓨팅은 여전히 초기 단계에 있지만, 그 잠재력은 무한합니다. 기술적 장벽이 완전히 해소되지는 않았지만, 주요 기업과 연구 기관의 투자와 혁신이 이를 가속화하고 있습니다. 우리는 양자 컴퓨팅이 가져올 변화에 대비하며, 이를 최대한 활용할 수 있는 준비가 필요합니다. 앞으로 여러분이 이 혁신적인 기술과 함께 성장할 방법을 고민해 보세요!

지금, 양자 컴퓨팅의 세계로 첫걸음을 내딛어 보세요!


Q&A 섹션 🤔

1. 양자 컴퓨팅이 일반 사용자에게 실용화되려면 얼마나 걸릴까요?

양자 컴퓨팅이 일반 소비자용으로 사용되려면 최소 10~20년 이상의 기술 발전이 필요할 것으로 예상됩니다.

2. 기존 암호 체계는 언제쯤 양자 컴퓨터에 의해 무력화될까요?

양자 컴퓨터의 발전 속도에 따라 다르지만, 대규모 암호 해독이 가능해지기까지는 수십 년이 걸릴 가능성이 높습니다.

3. 양자 컴퓨터는 기존 컴퓨터를 완전히 대체할까요?

양자 컴퓨터는 특정 문제에 특화되어 있어, 기존 컴퓨터와 공존하며 보완 역할을 할 것입니다.

4. 양자 컴퓨팅의 가장 큰 도전 과제는 무엇인가요?

오류 수정 기술과 큐비트 수를 증가시키는 데 필요한 안정성이 가장 큰 과제입니다.

5. 어떤 분야에서 양자 컴퓨팅의 영향이 가장 클까요?

약물 개발, 금융, 물류, 보안 등 데이터와 최적화가 중요한 모든 분야에서 큰 영향을 미칠 것입니다.

'Programing > 기술동향' 카테고리의 다른 글

AI 의료 기술의 진화  (2) 2024.12.27
머신러닝으로 변화하는 산업  (3) 2024.12.27
AI 기술 혁신으로 본 미래  (2) 2024.12.26
NFT  (1) 2021.11.01
메타버스  (0) 2021.10.29
Posted by npre
,
반응형

인공지능이 그리는 새로운 세상

인공지능(AI)은 현대 사회에서 가장 주목받는 기술 중 하나로, 우리의 삶과 산업 전반에 걸쳐 혁신을 이끌고 있습니다. 최근 AI 기술 발전은 단순한 자동화를 넘어, 인간처럼 학습하고 사고하며 창조하는 단계로 진화하고 있습니다. 이러한 변화는 앞으로의 미래를 어떻게 재정의할까요? 이번 글에서는 AI 기술 혁신이 가져올 미래의 모습과 그 영향에 대해 살펴보겠습니다.


AI 기술이 만들어가는 변화

1. 📈 산업의 혁신: 생산성과 효율성의 극대화

AI는 다양한 산업에서 생산성과 효율성을 극대화하고 있습니다.

  • 제조업: 스마트 팩토리와 로봇 기술을 통해 인간의 노동을 보완하며 더 정밀하고 빠른 생산이 가능합니다.
  • 의료 분야: AI 기반 진단 기술과 치료 알고리즘은 더 빠르고 정확한 의료 서비스를 제공합니다.
  • 금융 서비스: 데이터 분석과 자동화된 투자 플랫폼이 금융 시장의 예측력을 높이고 있습니다.

2. 🌐 일상 속의 AI: 스마트한 삶의 동반자

AI는 우리의 일상생활에서도 점점 더 큰 역할을 하고 있습니다.

  • 스마트 홈: AI 비서와 IoT 기기를 활용해 집안 환경을 최적화할 수 있습니다.
  • 교육: AI 튜터가 학생들에게 개인화된 학습 경험을 제공합니다.
  • 교통: 자율주행차와 AI 교통 관리 시스템이 안전하고 효율적인 이동을 가능하게 합니다.

3. 🔮 미래 기술의 가능성: 새로운 혁신의 물결

미래에는 지금 상상조차 어려운 AI 응용 분야가 열릴 것입니다.

  • 창작과 예술: AI는 음악, 그림, 소설 등을 창작하며 예술의 새로운 경계를 개척하고 있습니다.
  • 우주 탐사: AI 기반 로봇이 인간이 도달하기 어려운 환경에서 탐사 임무를 수행합니다.
  • 환경 문제 해결: AI는 기후 변화 데이터 분석과 지속 가능한 에너지 관리에 기여합니다.

AI가 이끄는 밝은 미래

AI 기술은 단순한 도구를 넘어 우리 삶의 필수적인 동반자로 자리 잡고 있습니다. 이러한 기술의 발전은 인간의 삶을 더욱 풍요롭게 할 가능성을 열어줍니다. 그러나 기술 발전과 함께 윤리적 문제와 책임감 있는 사용에 대한 논의도 필요합니다. AI와 인간이 함께 만드는 미래를 위해 우리는 어떤 준비를 해야 할까요? 지금이야말로 AI가 가져올 가능성을 적극적으로 탐구해야 할 때입니다.


Q&A: AI 기술 혁신에 대한 궁금증

1. AI가 일자리에 미치는 영향은 무엇인가요?

AI는 단순 반복 작업을 자동화하여 새로운 일자리를 창출하는 동시에 기존 일자리의 구조를 변화시킬 가능성이 큽니다. 이를 대비하기 위해 교육과 재훈련 프로그램이 필요합니다.

2. AI 기술 발전의 주요 장애물은 무엇인가요?

윤리적 문제, 데이터의 편향성, 프라이버시 보호, 규제 환경 등이 주요 장애물로 꼽힙니다. 이를 해결하려는 노력이 병행되어야 합니다.

3. 일반인이 AI 기술을 활용할 방법은 무엇인가요?

AI 비서, 생산성 앱, 스마트 디바이스 등 일상생활에서 쉽게 활용할 수 있는 AI 기반 서비스가 많습니다. 이를 통해 업무와 생활을 더 편리하게 만들 수 있습니다.

4. AI 기술의 발전 속도는 얼마나 빠르나요?

AI 기술은 기하급수적으로 발전하고 있으며, 특히 딥러닝과 자연어 처리 분야에서 큰 성과를 이루고 있습니다. 앞으로 더 빠른 혁신이 기대됩니다.

5. AI와 인간의 공존 가능성은 어떠한가요?

AI는 인간의 능력을 보완하는 도구로 자리 잡을 가능성이 큽니다. 이를 위해 인간 중심적 설계와 책임감 있는 개발이 필수적입니다.

 

'Programing > 기술동향' 카테고리의 다른 글

AI 의료 기술의 진화  (2) 2024.12.27
머신러닝으로 변화하는 산업  (3) 2024.12.27
양자 컴퓨팅의 현재와 가능성 🌌  (2) 2024.12.26
NFT  (1) 2021.11.01
메타버스  (0) 2021.10.29
Posted by npre
,
반응형

구현 기록용

 

1. AWS IAM(Identity and Access Management) 셋팅

IAM 역할 생성 단계

1. AWS Management Console 로그인

AWS Management Console에 로그인합니다. IAM 서비스를 검색하거나 대시보드에서 찾아서 엽니다.

2. 역할 생성

  • IAM 대시보드에서 역할 섹션을 선택하고 역할 만들기 버튼을 클릭합니다.
  • 신뢰할 수 있는 엔티티 유형 선택 화면에서 AWS 서비스를 선택하고, 사용할 서비스 유형을 선택합니다. CodeDeploy의 경우 CodeDeploy를, EC2 인스턴스의 경우 EC2 서비스를 선택합니다.

3. 권한 정책 연결

  • 역할에 연결할 권한 정책을 선택합니다. 예를 들어:
    • EC2 인스턴스를 위한 역할에는 AmazonEC2FullAccess, AmazonS3ReadOnlyAccess 등의 정책을 연결할 수 있습니다.
    • CodeDeploy 역할의 경우 AWSCodeDeployRole 정책을 사용합니다. 이 정책은 CodeDeploy가 EC2 인스턴스에 애플리케이션을 배포하는 데 필요한 권한을 제공합니다.
  • 필요에 따라 추가적인 정책을 선택할 수 있습니다.

4. 태그 추가 (선택 사항)

  • 역할에 태그를 추가할 수 있습니다. 태그는 관리 및 추적을 용이하게 합니다.

5. 역할 이름 및 설명 입력

  • 역할에 명확하고 구체적인 이름을 입력합니다. 예: CodeDeployServiceRole, EC2CodeDeployRole 등.
  • 역할에 대한 설명도 추가합니다. 이는 나중에 역할을 식별하는 데 도움이 됩니다.

6. 역할 생성 완료

  • 모든 설정을 검토한 후 역할 만들기를 클릭하여 역할을 생성합니다.

추가 정보

  • EC2 인스턴스용 역할은 EC2 인스턴스가 다른 AWS 서비스(예: S3, DynamoDB)에 액세스할 수 있도록 설정하는 데 사용됩니다.
  • CodeDeploy 역할은 AWS CodeDeploy가 AWS 리소스에 액세스하여 애플리케이션을 배포할 수 있도록 합니다.

 

2. EC2에 CodeDeploy 설치

 

sudo yum update
sudo yum install ruby
sudo yum install wget
cd /home/ec2-user
wget https://aws-codedeploy-{region}.s3.{region}.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto

 

또는

 

sudo apt-get update
sudo apt-get install -y ruby wget

cd /home/ubuntu
wget https://aws-codedeploy-{region}.s3.{region}.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto

sudo service codedeploy-agent status

 

 

3. AWS CodeDeploy 애플리케이션 및 배포 그룹설정

1. AWS CodeDeploy 애플리케이션 생성

  1. AWS Management Console에 로그인하고, 서비스 메뉴에서 CodeDeploy를 선택합니다.
  2. CodeDeploy 대시보드에서 애플리케이션 생성을 클릭합니다.
  3. 애플리케이션 이름을 입력하고, 계산 플랫폼으로 EC2/온프레미스를 선택합니다. 애플리케이션 이름은 프로젝트를 명확하게 식별할 수 있는 이름이어야 합니다.
  4. 애플리케이션 생성 버튼을 클릭하여 애플리케이션을 만듭니다.

2. 배포 그룹 생성

  1. 새로 생성한 애플리케이션의 상세 페이지에서 배포 그룹 생성을 클릭합니다.
  2. 배포 그룹 이름을 입력합니다. 이 이름은 배포를 관리할 때 사용됩니다.
  3. 서비스 역할에서 이전에 생성한 IAM 역할을 선택합니다. 이 역할은 CodeDeploy가 EC2 인스턴스에 접근하여 코드를 배포할 수 있게 허용합니다.
  4. 배포 유형에서 원하는 배포 설정을 선택합니다. 일반적으로 현재 위치에 배포가 가장 많이 사용됩니다.
  5. 환경 구성에서 배포할 EC2 인스턴스를 지정합니다. 인스턴스를 태그, Auto Scaling 그룹, 또는 직접 선택 방식으로 지정할 수 있습니다.
    • 예를 들어, Amazon EC2 인스턴스를 선택하고 인스턴스에 설정한 특정 태그로 필터링할 수 있습니다.
  6. 로드 밸런서 설정은 선택 사항입니다. 로드 밸런서를 사용하는 경우, 해당 섹션에서 로드 밸런서를 설정할 수 있습니다.
  7. 배포 설정에서 배포 방법을 선택할 수 있습니다. 예를 들어, CodeDeployDefault.AllAtOnce (한 번에 모든 인스턴스에 배포), CodeDeployDefault.HalfAtATime (절반씩 순차적 배포) 등의 옵션이 있습니다.
  8. 배포 그룹 생성을 클릭하여 배포 그룹을 완성합니다.

3. 설정 검토 및 저장

  • 모든 설정을 검토하고, 최종적으로 확인한 후에 저장 버튼을 클릭합니다.

 

 

4. 프로젝트에 appspec.yml 파일 생성

우분투 예시

version: 0.0
os: linux
files:
  - source: /
    destination: /home/ubuntu/your-app-directory

hooks:
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: ubuntu

  AfterInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: ubuntu

  ApplicationStart:
    - location: scripts/start_server.sh
      timeout: 300
      runas: ubuntu

  ValidateService:
    - location: scripts/validate_server.sh
      timeout: 300
      runas: ubuntu

 

start_server.sh, stop_server.sh 등 파일 커스텀 예시

#!/bin/bash
# 이 스크립트는 Node.js 애플리케이션을 시작합니다.
cd /home/ubuntu/your-app-directory # 애플리케이션 디렉토리로 이동
npm install # 필요한 패키지 설치
npm start # 애플리케이션 시작



#!/bin/bash
# 이 스크립트는 Node.js 애플리케이션을 중지합니다.
# 'killall node'는 모든 Node 프로세스를 중지합니다. 더 세밀한 제어가 필요한 경우 다른 방법을 사용하세요.
pkill node

 

5. GitHub Actions 설정

 

1. 필요 조건

  • AWS 계정이 필요합니다.
  • AWS IAM 사용자를 생성하고, CodeDeploy 및 S3에 접근할 수 있는 적절한 권한을 부여받은 Access key ID와 Secret access key가 필요합니다.
  • GitHub 저장소에 프로젝트 코드가 있어야 하며, GitHub Actions를 사용할 수 있어야 합니다.

2. GitHub Secrets 설정

  • GitHub 저장소에서 Settings > Secrets > Actions로 이동합니다.
  • 다음과 같은 Secrets을 추가합니다:
    • AWS_ACCESS_KEY_ID: AWS IAM 사용자의 액세스 키 ID.
    • AWS_SECRET_ACCESS_KEY: AWS IAM 사용자의 시크릿 액세스 키.
    • AWS_REGION: 예를 들어, us-east-1.
    • AWS_S3_BUCKET: 배포 파일을 저장할 S3 버킷의 이름.
    • CODEDEPLOY_APPLICATION: CodeDeploy 애플리케이션 이름.
    • CODEDEPLOY_GROUP: 배포 그룹 이름.

3. GitHub Workflow 파일 생성

  • .github/workflows 디렉토리 내에 deploy.yml 파일을 생성합니다.
  • 이 파일은 GitHub Actions의 설정을 담고 있으며, 다음과 같이 구성할 수 있습니다:
  •  
name: Deploy to AWS CodeDeploy

on:
  push:
    branches:
      - main  # main 브랜치에 push될 때마다 실행됩니다.

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout Code
      uses: actions/checkout@v2

    - name: Zip the project
      run: zip -r deploy.zip .  # 전체 프로젝트를 zip 파일로 압축

    - name: Upload to S3
      uses: jakejarvis/s3-sync-action@master
      with:
        args: --acl public-read --follow-symlinks --delete
      env:
        AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_REGION: ${{ secrets.AWS_REGION }}
        SOURCE_DIR: './deploy.zip'

    - name: Deploy to CodeDeploy
      id: deploy
      uses: webfactory/create-aws-codedeploy-deployment@v1
      with:
        application: ${{ secrets.CODEDEPLOY_APPLICATION }}
        deployment-group: ${{ secrets.CODEDEPLOY_GROUP }}
        s3-bucket: ${{ secrets.AWS_S3_BUCKET }}
        s3-key: deploy.zip
        region: ${{ secrets.AWS_REGION }}
        wait-until-deployed: true

    - name: Output deployment status
      run: echo "Deployment ${{ steps.deploy.outputs.deployment-id }} status ${{ steps.deploy.outputs.status }}"

 

IAM 사용자 엑세스키 만드는법

1. IAM 사용자 생성

  1. AWS Management Console 로그인: AWS Management Console에 로그인합니다.
  2. IAM 대시보드 접속: 상단 메뉴에서 "서비스"를 선택하고, 보안, 자격 증명 및 준수 섹션에서 "IAM"을 클릭합니다.
  3. 사용자 추가:
    • 좌측 메뉴에서 "사용자"를 클릭하고, 화면 상단의 "사용자 추가" 버튼을 클릭합니다.
    • 사용자 이름을 입력하고, "프로그래밍 방식 액세스"를 활성화합니다. 이 옵션은 해당 사용자에게 API, CLI, SDK 등을 통한 접근을 가능하게 해줍니다.
  4. 권한 설정:
    • 기존 정책 직접 연결: 사용자에게 필요한 정책을 검색하여 선택합니다. 예를 들어, CodeDeploy 작업을 수행하려면 AWSCodeDeployFullAccess 권한을 부여할 수 있습니다.
    • 권한 부여에 대한 좋은 방침은 최소 권한 원칙을 따르는 것입니다. 필요한 권한만큼만 부여하세요.

2. 액세스 키 생성

  1. 액세스 키 생성:
    • 사용자 생성 과정의 마지막 단계에서 "액세스 키 생성" 옵션을 볼 수 있습니다. 이 버튼을 클릭하면 새 액세스 키 ID와 비밀 액세스 키가 생성됩니다.
    • 이 정보는 한 번만 표시되므로, 안전한 곳에 저장해야 합니다. "다운로드 .csv" 버튼을 클릭하여 키 정보를 담은 파일을 안전하게 저장할 수 있습니다.
  2. 액세스 키 사용:
    • 이 키들은 AWS CLI, SDKs, 그리고 다른 개발 도구에서 AWS 서비스에 프로그래밍 방식으로 접근할 때 사용됩니다.

 

6. deploy.yml 파일 구성

파일위치 : 프로젝트 ROOT  .github/workflows 디렉토리

name: Deploy to AWS EC2

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Zip the repository
      run: zip -r deployment-package.zip .

    - name: Upload to S3
      uses: jakejarvis/s3-sync-action@master
      with:
        args: --acl public-read --follow-symlinks --delete
      env:
        AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_REGION: 'your-region'  # 변경 필요
        SOURCE_DIR: './'

    - name: Deploy to AWS CodeDeploy
      uses: webfactory/create-aws-codedeploy-deployment@v1
      with:
        application-name: 'YourApplicationName'
        deployment-group: 'YourDeploymentGroupName'
        s3-bucket: ${{ secrets.AWS_S3_BUCKET }}
        s3-key: deployment-package.zip
        region: 'your-region'  # 변경 필요
Posted by npre
,
반응형

개인 노트용.

 

기존 Intel 칩은 X86_64 아키텍쳐를 사용했음

 

M1( M1 pro, M1 max, M2, M3)등 애플 실리콘(Apple silicon)칩은 ARM64아키텍쳐를 사용함

 

아키텍쳐가 서로 다름으로 실행할 수 없는 소프트웨어등이 생김을 로제타(Rosetta 2)를 통해 호환해줌.

 

로제타는 애플이 개발한 소프트웨어. 애플실리콘칩에서 x86_64 아키텍쳐의 소프트웨어를 실행할 수 있도록 지원하는 기술임.

 

로제타 기술은 x86_64 코드를 Apple Silicon의 ARM64 코드로 동적으로 변환하여 실행,

사용자는 이전에 설치한 소프트웨어를 새로운 Mac에서 쉽게 사용할 수 있음

Posted by npre
,
반응형

node, nvm 버젼이 낮아서 그런 경우 발생함.

 

https://www.freecodecamp.org/korean/news/how-to-update-node-and-npm-to-the-latest-version/

 

Node와 NPM을 최신 버전으로 업데이트 하기

Node는 런타임 환경으로써 브라우저 이외의 서버 사이드에서 자바스크립트 코드를 실행할 수 있게 해준다. 반면 NPM은 패키지 매니저로서 자바스크립트 패키지(Node modules 이라고도 불린다)를 npm re

www.freecodecamp.org

 

참고하여 버젼을 올린 후 설치하면 정상작동.

Posted by npre
,
반응형

여러번의 구글 로그인을 iOS 에서 구현했으나 할때마다 뭔가 동일하게 구현이 안되는듯 하는 느낌이여서 한번 정리를 해둔다.

 

Google 클라우드 콘솔에서 프로젝트 생성 키 발급 등은 

https://developers.google.com/identity/sign-in/ios/start-integrating?hl=ko 

 

iOS 및 macOS용 Google 로그인 시작하기  |  Authentication  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 iOS 및 macOS용 Google 로그인 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류

developers.google.com

에서 주는 가이드를 따라하고,

 

SPM 을 통해 패키지를 설치하면 라이브러리 인식이 안되는 이슈가 종종 발생해서 Pod install 을 통해 패키지를 설치했다.

 

  1. pod 'GoogleSignIn'

info.plist에

<key>GIDClientID</key>
<string>YOUR_IOS_CLIENT_ID</string>
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
    </array>
  </dict>
</array>

넣어주고

 

코드상으로는 구글 사인버튼을 만들어서 어쩌니 하는거 다 귀차나서 어차피 커스텀 버튼으로 만들꺼 스토리보드에서 버튼 만들어서 액션 연결.

 

라이브러리 임포트

import GoogleSignIn

 

델리게이트 설정

class SignVC: UIViewController,GIDSignInDelegate{

 

 // MARK: - Google Login
    @IBAction func loginGoogle(_ sender: Any) {
        GIDSignIn.sharedInstance()?.presentingViewController = self
        GIDSignIn.sharedInstance().delegate = self
        GIDSignIn.sharedInstance().signIn()

    }
    
    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
        if let error = error {
            if (error as NSError).code == GIDSignInErrorCode.hasNoAuthInKeychain.rawValue {
                print("The user has not signed in before or they have since signed out.")
            } else {
                print("\(error.localizedDescription)")
            }
            return
        }
            
        // 사용자 정보 가져오기
        if let userId = user.userID,                  // For client-side use only!
            let idToken = user.authentication.idToken, // Safe to send to the server
            let fullName = user.profile.name,
            let givenName = user.profile.givenName,
            let familyName = user.profile.familyName,
            let email = user.profile.email {
                
            print("Token : \(idToken)")
            print("User ID : \(userId)")
            print("User Email : \(email)")
            print("User Name : \((fullName))")

        } else {
            print("Error : User Data Not Found")
        }
    }
        
    // 구글 로그인 연동 해제했을때 불러오는 메소드
    func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {
        print("Disconnect")
    }

 

 

해서 액션걸고 로그인하려면 OAuth 어쩌고 저쩌고 하면서 액세스 디나이 뜨는 경우 있는데

 

https://console.cloud.google.com/apis/credentials/consent?project=

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

들어가서 사용자유형 외부(난 외부메일로 테스트 할꺼라) 상태 테스트, 하고 테스트 사용자에 로그인 테스트 할 계정 추가해주면 해결.

Posted by npre
,
반응형

LoginView 라는 SwiftUI 파일 생성

 

기존 UIKit 의 VC파일에서

SwiftUI를 import

 

let loginView = LoginView()

let hostCon = UIHostingController(rootView: loginView)

 

와 같이 UIHostingController를 사용하여 swiftUI 파일을 UIViewcontrollelr등을 땡기는 것과 같이 사용 가능

 

 

 

//
//  LoginView.swift
//  GUIVINGKOREA
//
//  Created by JangHyun on 2023/07/20.
//

import SwiftUI

struct LoginView: View {
    var body: some View {
        VStack{
            Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
            Text("2")
        }
        
    }
}

struct LoginView_Previews: PreviewProvider {
    static var previews: some View {
        LoginView()
    }
}
//
//  SplashVC.swift
//  GUIVINGKOREA
//
//  Created by JangHyun on 2023/07/20.
//

import UIKit
import SwiftUI
class SplashVC: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
       
        self.swiftUIMoveTest()
    }
    
    func swiftUIMoveTest(){
        let loginView = LoginView()
        let hostCon = UIHostingController(rootView: loginView)
        APP.nav.pushViewController(hostCon, animated: true)
    }
    

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
    }
    */

}
Posted by npre
,
반응형

forever start -w app.js

 

kill 방법

 

forever stop 0

Posted by npre
,