본문 바로가기

전체 글

(40)
DynamoDB 키 디자인 패턴 적용하기 과거 DynamoDB를 썼던 방식...😰DynamoDB를 공부하지 않고 DB를 만든 내 과거 모습- 엔티티마다 테이블 생성하기...- scan 남발하기... 졸업 작품 초반에 시간이 부족하다보니 아무렇게나 코드를 짰다...이렇게 되니 테이블마다 cloudwatch에 alarm이 생성되어 비용이 생성되기도 했고, 테이블끼리 join연산도 없으니 읽기도 어려워졌다. 결정적으로 엔티티마다 테이블을 만드니 cloudwatch에 alarm으로 인해 비용이 추가로 생성되기도 했다. 결국 DynamoDB를 공부하는 건 더 이상 미룰 수 없다고 생각했다.  dynamoDB의 키 디자인 패턴에 관한 강의https://youtu.be/I7zcRxHbo98?si=GH2RYz4Zn8r_JU16 위의 강의를 통해 dynamo..
Oauth란 OauthOAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준입니다.즉, OAuth를 바탕으로 제 3자 서비스(나의 서비스)는 외부 서비스(Facebook, Apple, Google)의 특정 자원을 접근 및 사용할 수 있는 권한을 인가받게 된다. Oauth가 제공하는 장점구글, 페이스북 등의 외부 소셜 계정을 기반으로 간편하게 회원가입 및 로그인구글, 페이스북 등 외부 서비스가 제공하는 기능을 간편하게 사용 가능 Oauth 참여자Resource Server : Client가 제어하고자 하는 자원을 보유하고 있는 서버 (Apple, Google)Resource Owner :..
Node.js chatGPT API v4 연결하기 openai버전 4가 나왔습니다.버전 4에 맞게 chatgpt API 호출 코드를 변경해야합니다. Installationpackage.json에서 openai v4로 업데이트를 진행합니다. "openai": "^4.0.0"  migration초기화 로직, 메소드 이름, 오류 처리에 변경 사항이 있습니다. API 매개변수 이름은 변경되지 않아야 합니다. Initializationversion 3// Oldimport { Configuration, OpenAIApi } from "openai";const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY,});const openai = new OpenAIApi(configurat..
API Gateway + Lambda로 REST API 만들기 HTTP 요청을 사용하여 Lambda 함수를 호출하는 REST API를 생성하고자 합니다. 위의 이미지에서 API Gateway, Lambda까지만 구성합니다. 전반적인 과정은 AWS 자습서: API Gateway에서 Lambda 사용 을 참고합니다. 순서는 다음과 같습니다.1. 사전 조건2. 권한 정책 생성 및 실행 역할 생성3. Lambda 함수 생성4. API Gateway 생성5. 함수 호출 테스트 진행  사전 조건AWS 계정 가입현재 새로운 프로젝트를 진행하고자하면 새로운 계정을 생성하는 것이 좋습니다.새로운 계정을 생성하면 1년동안 프리티어의 혜택을 받을 수 있습니다. Lambda 프리 티어에는 월 100만 건의 무료 요청과 월 40만 GB-초의 컴퓨팅 시간이 포함되어 있으며 x86 및 Gra..
Clean Code 챌린지 완주 드디어 클린 코드를 완주했다! 마지막에는 졸업 프로젝트와 시간이 겹치면서 뒷부분은 자세히 읽지 못했지만... 졸업 프로젝트를 끝난 이 시점부터 차분하게 다시 읽어보려 한다. 처음 클린 코드를 읽기 전에는 "클린코드"가 되기 위해서는 굉장히 복잡하고 이해하기 어려운 것을 공부해야한다고 생각했다. 하지만 책을 읽으면서 클린 코드가 되기 위해서는 아주 사소한 것부터 고쳐나가면 된다라는 것을 느끼게 되었다. 코드를 쓰고 있는 시점보다는 미래에 이 코드를 읽고 있을 사람을 위해서 조금이라도 더 생각해보고, 시간 쓰기가 가장 중요하다는 것을 느꼈다. 코드를 짜면서 "나중에 해야지"라는 생각이 더러운 코드를 짜는 지름길이라는 것을 다시금 느꼈다. 졸업 프로젝트를 마감 기한에 맞추느라 급하게 마무리해서 클린코드라고 보..
13, 14일차 TIL 클래스 DAY 13, 14 오늘의 책 읽기: 10장. 클래스 까지 🤓 책에서 기억하고 싶은 내용 정적 공개 상수가 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며, 이어서 비공개 인스턴스가 나온다. 공개 변수가 필요한 경우는 거의 없다. 변수 목록 다음에 공개 함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다. 클래스를 설계할 때도 함수와 마찬가지로, '작게'가 기본 규칙이라는 의미다. 얼마나 작아야 하는가? ... 클래스가 맡은 책임을 센다. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 커서 그렇다. 클래스 설명은 만일(if), 그리고(and), -하며(or), 하지만(but)을 사용하지 않고서 25 단어 내외로 가능해야 한..
11, 12일차 TIL 단위 테스트 DAY 11, 12 오늘의 책 읽기: 9장. 단위 테스트 까지 🤓 책에서 기억하고 싶은 내용 TDD 법칙 3가지 1. 실패하는 단위 테스트를 작성할때까지 실제 코드를 작성하지 않는다. 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 3. 현재 실패하는 테스트를 통과할 정도로만 실제 테스트를 작성한다. 자동화된 단위 테스트 슈트는 설계와 아키텍처를 최대한 깨끗하게 보존하는 열쇠다. 테스트는 유연성, 유지보수성, 재사용성을 제공하는 버팀목이다. 테스트 코드가 지저분하면 코드를 변경하는 능력이 떨어지며 코드 구조를 개선하는 능력도 떨어진다. 테스트 코드가 지저분할수록 실제 코드도 지저분해진다. BUILD-OPERATE-CHECK패천이 위와 같은 테스트 구조에 적합하다. 각 테..
9, 10일차 TIL 오류처리 DAY 9, 10 오늘의 책 읽기: 7장. 오류처리 까지 🤓 책에서 기억하고 싶은 내용 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. 오류 플래그를 설정하거나 호출자에게 오류 코드를 반환하는 방법은 호출자 코드가 복잡해진다. 함 수를 호출하는 즉시 오류를 확인해야 하기 때문이다. ... 그래서 오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 더 깔끔해진다. 논리가 오류 처리 코드와 뒤섞이지 않으니까. try 블록 안에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야한다. 그러므로 예외가 발생할 코드를 짤 때는 try-catch-finally문으로 시작하는 편이 낫다. 그러면 try 블록에서 무슨 일이 생기든지 호출자..