[9주차 과제]1. TDD란 (내 포폴에 TDD 적용해보기)2. CI/CD란 (Github Actions 통해서 배포 후 디스코드 채널로 알림 오도록 설정)2. CI/CD (Continuous Integration / Continuous Delivery·Deployment) CI/CD = 코드 변경을 자동으로 빌드 → 테스트 → 배포까지 이어지게 만드는 개발 관행// 수동으로 하면 시간 오래 걸리고 실수도 늘어남.CI/CD는 이걸 자동화해서 버그 조기 발견하고 배포를 안전하게 만듦 CI (Continuous Integration, 지속적 통합)-> 개발자가 작성한 코드를 중앙 저장소에 자주 병합하는 관행.병합될 때마다 자동으로 빌드 + 테스트 실행 됌. CD (Continuous Delivery·Depl..
[9주차 과제]1. TDD란 (내 포폴에 TDD 적용해보기)2. CI/CD란 (Github Actions 통해서 배포 후 디스코드 채널로 알림 오도록 설정)1. TDD(Test Driven Development, 테스트 주도 개발)정의 : 소프트웨어 개발에 앞서 테스트를 먼저 작성하는 접근 방식(프로덕션 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 개발 방법론)-> 테스트가 코드의 설계와 개발을 이끌어가는 방식 🔴 Red: 실패하는 테스트를 먼저 작성 (구현이 없으니 당연히 실패)🟢 Green: 테스트를 통과시키는 최소한의 코드만 작성🔵 Refactor: 테스트가 통과하는 상태에서 코드 구조 개선 -> 이 사이클을 짧은 호흡(보통 몇 분 단위)으로 반복 왜 하는가- 버그 조기 발견- 회귀(..
[8주차 추가과제 - 프롬프트 수정]# 항상 고정된 JSON 형태로 응답 - 사용자 질문에 대한 답변 - 답변과 관련된 추가 질문 추천 리스트하려는 방식 (responseSchema로 강제)→ Gemini가 토큰을 생성하는 단계에서부터 이 스키마를 벗어나지 못하게 막음// 인사말, 마크다운, 설명 같은 거 절대 못 붙임. 무조건 깔끔한 JSON만 나오게 기존 방식: 친구한테 "JSON으로 답해줘~" 하고 부탁 → 친구가 까먹고 인사말 붙일 수도 있음새 방식: 친구한테 빈칸 뚫린 양식지를 주고 "여기에만 채워" → 양식 벗어날 방법이 없음[순서]STEP 1. 백엔드 수정 — route.js 코드 분석시스템 프롬프트에 추천 질문 규칙 추가JSON 응답 스키마 정의 (responseSchema)gene..
IAM(Identity and Access Management)사용자를 생성하고 그룹에 배치 (글로벌 서비스) 계정 생성 시 Root account 만들었는데이는 계정 생성할 때만 사용되어야 함.이후엔 사용해서도, 공유해서도 안 된다.-> 대신 Users(사용자) 생성 사용자를 그룹을 만들어 묶음그룹에는 사용자만 배치(다른 그룹 포함할 수 없음) 한 사용자가 다수의 그룹에 속할 수도 있다.사용자와 그룹을 생성하는 이유-> AWS 계정을 사용하도록 허용하기 위해 권한을 부여해야 함 -> policies(IAM policies)라고 불리는 JSON 문서 지정(알기 쉬운 영어로 특정 사용자, 혹은 특정 그룹에 속한 모든 사용자들이어떤 작업에 권한을 가지고 있는지를 설명해 놓은 것) AWS least priv..
Udemy에서 Stephane Maarek의 Solutions Architect 강의 시작강의 들으면서 필요한 경우 간단하게 내용 정리해서 포스팅하기리전(Region)은 데이터 센터가 모여있는 곳(cluster of data centers)대부분 서비스는 리전 범위로 연결된다. 한 리전에서 서비스 이용하면서 다른 리전에서 이용하려면 새로운 서비스 이용하는 것과 같다.모든 리전이 모든 서비스를 제공하지는 않는다. 일부 리전에는 없는 경우도 있다. 가격도 다를 수 있다. AZ(Availability Zones) 각 리전 안에는 여러 AZ가 있고 일반적으로는 3개, (최소 3개, 최대 6개)각각의 AZ는 하나 이상의 독립적인 데이터센터로 구성(이중화된 전원, 네트워킹, 연결을 갖춤) AZ는 서로 분리되어 있다..
과제 : Next.js에서 API 만드는 법 찾고파이썬(Flask) → Next.js API 마이그레이션 목표 : 저번주 진행했던 EC2 + Flask 분리 구조에서 Next.js 단일로 통합-> Vercel 환경에서의 운영 효율성 확보쉽게 이해하려면,이전 구조 (Flask + EC2)프론트엔드 = 내 집 (Vercel)백엔드 = 옆 동네 친구 집 (EC2)// 데이터 필요하면 친구 집에 전화해서 받아옴 새 구조 (Next.js 통합)내 집에 방 하나 더 만들어서 거기서 다 처리친구 집 안 불러도 됨 → EC2 필요 없음-> 즉 "따로 돌던 서버를 Next.js 안으로 집어넣는 작업"(Next.js는 프론트엔드 + 백엔드 둘 다 된다) 1. Next.js에서 API 만드는 법 (App Router)Nex..
