미들웨어란(feat. Next.js)
·
개발이야기/웹개발
Next.js로 프로젝트를 수행하고 있고 미들웨어를 이용해서 리다이렉트를 처리하면서 미들웨어에 대해 좀 더 자세히 알고 싶어졌다. 그래서 정리해 본 내용.미들웨어의 개념"요청(Request)과 응답(Response) 사이에서 동작하는 중간 처리 로직"즉, 클라이언트 → 서버로 가는 요청을 가로채서 그 사이에서 무언가를 처리하고, 흐름을 제어하거나, 요청을 조작하는 역할을 하는 것여기서 궁금한 점, “요청과 응답 사이”라고 했는데 요청이 오면 그 요청에 대해 뭔가를 처리해서 응답으로 넘기는 건 알겠다. 그러면 ‘응답’에 대해서도 처리 후 반환이 가능한가?미들웨어는 요청(Request)과 응답(Response) 모두를 가로채고 다룰 수 있다.즉,[클라이언트 요청] → ▶ [미들웨어 1] → [미들웨어 2] ..
[코드잇 스프린트 풀스택 4기] 테스트의 필요성
·
개발이야기/웹개발
코드 테스트는 소프트웨어 개발에서 중요한 단계로, 여러 가지 이유로 필요합니다. 이를 통해 코드의 품질을 높이고, 버그를 방지하며, 유지보수성을 향상시킬 수 있습니다. 구체적인 필요성은 다음과 같습니다:1. 버그 예방 및 발견초기 단계에서 버그를 찾아낼 수 있습니다. 테스트는 코드가 예상대로 작동하는지 확인하고, 예상하지 못한 동작을 사전에 발견할 수 있게 도와줍니다.특히, 새로운 기능을 추가하거나 기존 코드를 변경할 때, 기존의 코드가 의도한 대로 동작하는지 확인할 수 있습니다. 이는 회귀 테스트를 통해 가능합니다.2. 품질 보장코드 품질을 높이는 데 도움을 줍니다. 테스트는 각 기능이 독립적으로 제대로 작동하는지, 코드의 로직이 의도한 대로 처리되는지 검증할 수 있습니다.특히, 단위 테스트(unit ..
[코드잇 스프린트 풀스택 4기] 좋은 테스트란 무엇인가
·
개발이야기/웹개발
좋은 테스트란 1. 한번에 하나의 동작만 테스트 하는것이 중요하다.2. 테스트의 이름을 잘 지어야 한다.// 직관적으로 알아볼 수 있는 문장의 형태it('should be ~', () => {}) 3. 테스트는 구체적이고 명시적인 입력을 사용해야 한다.4. 구현의 세부사항이 아닌 동작을 검증해야 한다.5. Mock의 사용은 신중하게 해야 한다. 테스트의 독립성을 보장하지만, 과도하게 사용되면 실제 코드의 동작을 잘못 반영할 수 있음. 가능하면 Fake을 고려할 것. “테스트를 현실적인 상황에 더 가깝게 만들어줌”Mock 대신 Fake 구현을 사용하면 실제 동작을 더 잘 반영하고단순히 성공/실패만 반환하는 게 아니라 실제 비즈니스 로직을 포함하며테스트가 더 현실적인 상황을 다루게 됨
[코드잇 스프린트 풀스택 4기] AWS IAM은 무엇이며 어떤 기능을 제공하는가
·
개발이야기/웹개발
AWS의 IAM이란IAM(Identity and Access Management)은 AWS에서 제공하는 서비스로, AWS 리소스에 대한 접근 권한을 안전하게 관리할 수 있도록 도와주는 서비스이다. 1. IAM의 주요 기능사용자 및 그룹 관리:개별 사용자 계정과 이들을 그룹으로 구성하여, 각각의 사용자에게 세밀한 접근 권한 할당이 가능역할(Role)과 정책(Policy) 관리:역할(Role): 특정 AWS 서비스나 애플리케이션이 다른 AWS 리소스에 접근할 때 사용할 수 있는 권한 집합정책(Policy): JSON 형식으로 작성되어 사용자/그룹 또는 역할에 부여할 수 있는 구체적인 접근 권한을 명시정책 기반 접근 제어:다양한 조건(예: IP 주소, MFA 사용 여부 등)을 활용해 접근 제어를 세밀하게 설정..
[코드잇 스프린트 풀스택 4기] AWS의 S3란
·
개발이야기/웹개발
AWS의 S3S3 버킷은 AWS의 객체 스토리지 서비스로, 다양한 데이터 저장 및 배포 시나리오에 활용되는데 주요 사용 사례와 주의할 점에 대해 정리S3 버킷 사용 사례정적 웹 사이트 호스팅:HTML, CSS, JavaScript 및 미디어 파일 등 정적 콘텐츠를 저장하고, 전 세계 사용자에게 빠르게 제공백업 및 복구:데이터 백업, 로그 파일 저장, 애플리케이션 스냅샷 등을 저장하여 재해 복구 시 활용데이터 레이크 및 빅데이터 분석:대량의 구조화 및 비구조화 데이터를 저장하고, Amazon Athena, Redshift Spectrum, EMR 등과 연계하여 분석파일 공유 및 콘텐츠 배포:이미지, 비디오, 소프트웨어 패키지 등의 파일을 저장하여, 사용자나 다른 시스템과 안전하게 공유애플리케이션 데이터 저..
[코드잇 스프린트 풀스택 4기] AWS VPC란
·
개발이야기/웹개발
AWS VPC(Virtual Private Network)란AWS VPC(Virtual Private Cloud)는 AWS 클라우드 내에서 논리적으로 격리된 가상 네트워크 환경을 제공하며 이는 사용자가 AWS 리소스를 자신만의 네트워크 내에 배치하고, 네트워크 구성을 직접 관리할 수 있도록 도와준다.논리적 격리: VPC는 퍼블릭 클라우드 환경에서도 사용자의 리소스를 격리하여, 외부 네트워크와 구분된 전용 네트워크 환경을 제공한다.네트워크 구성 요소서브넷(Subnet): VPC 내에서 IP 주소 범위를 분할하여 리소스를 그룹화하는 단위라우팅 테이블(Route Table): 트래픽의 흐름을 제어하며, 서브넷 간 또는 인터넷과의 연결을 관리인터넷 게이트웨이(Internet Gateway): VPC를 인터넷과 ..
[코드잇 스프린트 풀스택 4기] AWS의 EC2 인스턴스란
·
개발이야기/웹개발
EC2 인스턴스?EC2(Elastic Compute Cloud) 인스턴스는 AWS에서 제공하는 가상 서버로, 클라우드에서 확장 가능한 컴퓨팅 용량을 제공한다. 이를 통해 사용자는 물리적인 하드웨어에 투자하지 않고도 애플리케이션을 배포하고, 관리하며, 필요에 따라 컴퓨팅 자원을 손쉽게 확장하거나 축소할 수 있다. EC2 인스턴스의 개념가상 서버: EC2 인스턴스는 AWS 데이터 센터 내의 가상 머신(VM)으로, 사용자는 이를 통해 웹 서버, 애플리케이션 서버, 데이터베이스 서버 등 다양한 용도로 활용할 수 있다탄력적 확장성: 사용량에 따라 인스턴스의 수나 성능을 유동적으로 조절할 수 있어, 트래픽 변화에 대응하기에 적합유연한 과금 방식: 필요에 따라 시간 단위로 과금되는 온디맨드 방식, 예약 인스턴스, 스..
[코드잇 스프린트 풀스택 4기] AWS의 글로벌 instructure 구성 요소
·
개발이야기/웹개발
1. Regions (리전)정의: 전 세계에 분산된 지리적 영역으로, 각 리전은 독립적으로 운영됩니다.특징: 각 리전 내에는 여러 Availability Zones(AZ)이 포함되어 있어, 장애 발생 시에도 서비스 연속성을 보장합니다.2. Availability Zones (가용 영역)정의: 리전 내에 위치한 데이터 센터 집합으로, 전원, 네트워크, 냉각 시스템 등이 분리되어 있어 서로 독립적입니다.특징: AZ 간의 물리적 분리가 있어, 하나의 AZ에서 장애가 발생해도 다른 AZ에서 서비스를 계속 제공할 수 있습니다.3. Edge Locations (엣지 로케이션)정의: 콘텐츠 전송 네트워크(CDN)를 지원하기 위해 전 세계에 위치한 서버 집합입니다.특징: CloudFront, Route 53 등에서 사..