AWS: AWS Identity & AccessManagement (AWS IAM)란
·
AWS
본 내용은 아래 강의를 듣고 작성하였습니다.https://www.udemy.com/share/101WES3@kunw26UEf1vQ79x6mWdlNmQmcaorlnzhLvSELxrH54T1ZcMBcW7gxaGWnZVFiZxo1Q==/AWS를 사용하다 보면 IAM에 대해서는 익히 들어보았을 것이다.  흔히 처음 AWS에 가입을 하다보면 우리는 ROOT 계정으로 가입을 하게 된다. 즉 우리의 개인 정보, 개인 카드를 통해 가입을 하게 되는 것이다. 그런데 클라우드 관리를 위해 여러명에서 AWS 클라우드를 담당해야한다고 생각해보자.  이때 하나의 root 계정으로 사용을 한다면 어떻게 될까? 첫번째, 모든 사용권한이 열려있으므로 클라우드 비용이 과금 될 가능성이 농후하다. 둘째, 첫번째 경우 처럼 과금이 되었을..
CORS: 원리와 파훼법
·
DevOps&Cloud
서비스 개발을 하다보면, CORS문제는 정말 지겹도록 마주하는 문제 중 하나이다. 가장 흔히 발생하는 상황은 프론트 클라이언트 측에서 배포된 백엔드 서버로 요청을 보낼 때 발생하는 문제이다.  예를들어,프론트 react.js 클라이언트에서 백엔드 Ec2에 배포된 SpringBoot로 요청을 보낼때 프론트의 서버가 백엔드 서버에 등록되어 있지 않다면 발생하게 된다. 이럴 경우 매우 쉽다. 총 두가지에서 CORS 허용 정책을 추가해야하는데 하나는 EC2의 인바운드 아웃바운드 규칙을 설정해줘야하고, SpringBoot 내에서도 SecurutyConfig를 통해 등록해줘야한다. 이렇게 두가지만 추가해주면 보통은 쉽게 해결이 된다. 하지만 최근에 내가 진행했던 프로젝트는 양상이 달랐다. CORS 오류가 발생하는 ..
Spring Boot: 테스트 코드 작성법
·
Springboot
오늘은 최근 진행했던 프로젝트에서 테스트 코드를 작성한 방식과 그 결과에 대해 얘기하고자 한다. 참고로 당시 테스트 커버리지 수치가 아래와 같이 꽤 좋은 결과를 보였었다. 특히 Class에서는 100%, Method에서는 96% 등을 보이며 상당히 괜찮은 결과를 보였었다. 깃주소는 아래 참고https://github.com/Curate-Me/claco-client GitHub - Curate-Me/claco-client: 큐시즘 밋업데이 E조 큘미 Claco Client큐시즘 밋업데이 E조 큘미 Claco Client. Contribute to Curate-Me/claco-client development by creating an account on GitHub.github.com일단 Spring의 계..
SpringBoot: TDD(Test-Driven-Development)란?
·
Springboot
얼마전 프로젝트를 진행하면서 처음으로 TDD방식으로 개발을 해보자는 이야기가 나왔었다. 한번도 테스트 코드를 제대로 작성해본적이 없었기에 귀찮고 어려운 작업이 될 것 같았지만 이번 기회에 제대로 하자는 생각이 들어서 진행하게되었다. 때문에 이번에는 TDD의 개념에 대해 설명하고, 실제 테스트 코드 작성 법과 커버리지 수치는 어떻게 측정하고 결과가 나왔는지에 대해 설명하겠다. TDD란?TDD(Test-Driven-Development)의 약자로, 개발을 하면서 테스트 코드 작성을 우선으로 하여 통과시키는 것에 중점을 둔 개발 방법론이다. 좀 더 쉽게 말하자면, 개발자가 코드를 작성하기 전 테스트를 작성하고 그 테스트를 통과하기 위해 필요한 코드를 작성하는 과정을 뜻한다. TDD 개발주기 TDD 개발주기는 ..
MSA: Micro Service Architecture 적용기(1)
·
DevOps&Cloud
오늘은 지난 3월부터 6월까지 카카오엔터프라이즈에서 약 3개월동안 진행했던 MSA 프로젝트에 대해 소개하고, MSA의 장점과 그 아키텍쳐에 대해 설명하고자한다.  먼저 MSA의 정의부터 살펴보자. MSA의 정의더보기MSA(Microservices Architecture)는 소프트웨어 개발 아키텍처 스타일 중 하나로, 애플리케이션을 작고 독립적인 서비스들의 집합으로 구성하는 방식입니다. 이 각 서비스는 특정 비즈니스 기능을 담당하며 독립적으로 개발, 배포 및 확장이 가능합니다. 쉽게 풀어말하자면, 하나의 프로젝트에서 크게 주요 서비스들을 n개로 나누어 각각 하나의 서버로 동작하는 방식이다. 그렇다면 왜 이렇게 하는걸까? 먼저 우리가 대채로 사용하는 모놀리식 아키텍쳐와 MSA 아키텍쳐의 차이부터 알아보자. ..
AWS CLOUD: LAMBDA 활용2
·
AWS
이번에도 LAMBDA를 메인으로 활용하여 진행했던 프로젝트를 설명하도록 하겠다. 다만, 아키텍쳐보다는 실제 Lambda 코드 위주로 적어보고자 한다. 프로젝트의 자세한 소개는 아래 링크 참고.https://github.com/SW-GASBY/Gasby-LAMBDA GitHub - SW-GASBY/Gasby-LAMBDA: AWS LAMBDA FUNCTIONSAWS LAMBDA FUNCTIONS . Contribute to SW-GASBY/Gasby-LAMBDA development by creating an account on GitHub.github.comARCHITECTURE 해당 프로젝트에서는 총 7개의 Lambda 함수를 사용한다. 각 Lambda 함수는 특정 상황에 따라 동작하며, 각각의 트리거에..
AWS CLOUD: LAMBDA 활용1
·
AWS
지난 번에는 간단하게 LAMBDA에 대해서 설명하였는데 이번에는 내가 실제로 LAMBDA를 활용하여 제작한 프로젝트에 대해서 설명하도록 하겠다. 프로젝트에 대한 자세한 소개는 아래 링크 참고 https://github.com/Singing-voice-conversion/Overview/wiki HomeContribute to Singing-voice-conversion/Overview development by creating an account on GitHub.github.com https://what2dochris.tistory.com/1 AI Voice Conversion Project(음성 합성 모델)#1 들어가기 앞서 요즘 유튜브나 컴뮤니티에서 AI 음성 학습 기술을 이용해 가수의 목소리 혹은..
AWS CLOUD: LAMBDA란?
·
AWS
AWS에서는 다양한 웹서비스 기술을 제공한다.  그중 하나 널리 알려져 있고, 실제 대기업에서도 많이 사용하고 있는 LAMBDA에 대해서 설명하고자 한다. 1. LAMBDA란AWS Lambda는 Amazon Web Services(AWS)에서 제공하는 서버리스 컴퓨팅 서비스로, 사용자가 서버를 직접 관리하지 않고도 코드를 실행할 수 있도록 지원하는 서비스이다. 여기서 서버리스 컴퓨팅이란 사용자는 서버를 프로비저닝하거나 관리할 필요가 없다는 뜻이다.즉, AWS Lambda는 사용자의 코드를 실행하기 위한 리소스를 자동으로 관리하고 제공한다고 생각하면 된다.  좀 더 자세히 예시를 들어보자면,  우리가 Spring boot로 API를 만들고 배포를 하게 된다면 EC2와 같은 서버에 올려둔 후, 인바운드 혹은..