전체카테고리 468

(React) 기초 - 비동기 자바스크립트

1. 단순한 프라미스와 FetchREST API에 요청을 보내는 일은 상당히 귀찮은 일이었다. REST API로 부터 간단한 데이터를 앱이 받아오려면 20 줄이 넘는 코드를 작성해야 한다. 그 후 Fetch()함수가 등장하면서 구현이 편해졌다.fetch("https://api.ramdomuser.me/?nat=US&results=1").then(res => console.log(res.json()));  then은 프라미스가 정상적으로 완료되면 콜백함수를 한번만 호출한다. 이 콜백함수가 반환하는 값은 그다음에 오는 then 함수의 콜백에 전달되는 인자가 된다. 따라서 성공적으로 처리된 프라미스를 처리하기 위해 then 함수를 연쇄적으로 호출할 수 있다. fetch("https://api.ramdomus..

EKS, GKE 비용 절감을 위한 Scaling 스케쥴러 개발

Public Clous가 제공하는 Managed Kubernetes Cluster를 사용할때 비용절감 방안도 중요하다 이때는 사용자가 많은 시간대에 NodePool(WorkerNode Group)을 Scale Out 하고 사용자가 없는 시간대에 NodePool(WorkerNode Group)을 Scale In 하는 방식으로 야간 동안의 Cost를 절감할 수 있다. 이를 구현하기 위해서는 AWS Lambda, GCP CloudFunction 를 통하여 Cloud Developer SDK를 활용하면 된다. 그리고 이 FaaS를 GCP Cloud Schduler 또는 AWS EventTrigger로 주기적으로 실행시켜주면 된다. 아래는 GCP 예제를 담았다.아래와 같이 ClusterManagerClient 를..

(React) 기초 - 객체와 배열

객체와 배열ES2016부터 객체와 배열을 다루는 방법과 객체와 배열안에서 변수의 영역을 제한하는 방법을 다양하게 제공하기 시작했다. 이런 기능으로는 구조 분해, 객체 리터럴 개선, 스프레드 연산자 등이 있다.  구조 분해를 사용한 대입구조 분해를 사용하면 객체 안에 있는 필드 값을 원하는 변수에 대입할 수 있다. 다음 sandwich 객체를 생각해보자, sandwich에는 4개의 필드가 있다. 하지만 그중에서 bread와 meat 필드의 값이 필요하다. const sandwich = { bread: "더치 크런치", meat: "참치", cheese: "스위스", toppings: ["상추","토마토","머스타드"]};const {bread, meat} = sandwich;console...

(React) 기초 - 함수 만들기

함수 선언function logCompliment() { console.log("잘했어요!");}logCompliment(); 함수 표현식함수 표현식은 이름없는 함수를 만들며 변수에 값을 대입할 수 있다.const logCompliment = function() { console.log("잘했어요!");};logCompliment(); 함수 선언과 함수 표현식 중 어떤 쪽을 사용할지 결정할때 알아둬야 할 내용으로 함수 선언은 호이스팅되지만, 함수 표현식은 그렇지 않다는 점을 들 수 있다. 즉 함수 선언을 작성하기 전에 함수를 호출해도 된다. 하지만 함수 표현식에 의해 만들어진 함수를 함수 표현식이 실행되지 건에 호출할 수는 없다.  인수넘기기const logCompliment = function(firs..

(React) 기초 - 변수 선언하기

1. var : 일반적인 변수. 변경 가능var pizza = true;pizza = false;console.log(pizza); // false 2. const : 값을 변경할 수 없는 변수이다.  3. let : 구문적인 변수 영역 규칙 이 코드에서 if 블록안의 topic 변수를 변경하면 if 블록 밖의 topic 변수 값도 변경된다.var topic = "자바스크립트";if (topic) { var topic = "리엑트"; console.log('블록', topic); // 블록 리엑트}console.log('글로벌', topic); // 글로벌 리엑트 let 키워드를 사용하면 변수의 영역을 코드 블록 안으로 한정시킬 수 있다. let을 사용하면 블록 안에서 글로벌 변수를 보호할 수 있다..

Google Cloud Certified Professional Machine Learning Engineer 자격증 취득 후기

Google Cloud Certified Professional Machine Learning Engineer 를 취득한 후기를 공유하고자 한다. 1. 시험 접수 Google Certification 웹사이트에서 접수하였습니다. Professional ML Engineer Certification  |  Learn  |  Google Cloud Professional ML Engineer Certification  |  Learn  |  Google CloudProfessional Machine Learning Engineers design, build, & productionize ML models to solve business challenges. Find out how to prepare for ..

기타/자격증 2024.10.13

DockerHub Rate Limit 정책 그리고 이슈

Docker Hub rate limit | Docker Docs Docker Hub rate limitLearn how download rate limits for image pulls on Docker Hub workdocs.docker.com  DockerHub에서 Image Pull을 할 경우 다음의 정책을 따른다. User type Rate limit Anonymous users100 pulls per 6 hours per IP addressAuthenticated users200 pulls per 6 hour periodUsers with a paid Docker subscriptionUp to 5000 pulls per day  만약 당신의 Kubernetes 혹은 CICD Workflow에..

PaaS/CI CD 2024.08.03

LGCNS GoogleCloud LLM Hackathon 후기

AI의 발전과정 초거대 AI > 생성형 AI > 다양한 형태의 데이터를 학습하는 AI = Multimodal AI 거짓정보생성(Hallucination) 실제로 사실과 다르거나 존재하지 않는 정보를 생성하는 것 → 왜 일어나는지? - 불충분한 학습 데이터 : 생성형 AI는 특정기간 까지의 인터넷 , 책, 신문 기사 등에 서 수집된 대량의 텍스트를 학습 - 질문의 맥락 이해 부족 : 생성형 ai가 질문을 제대로 이해하지 못해서 엉뚱한 답변을 생성 - 생성형 AI의 본질은 ' 다음 단어 예측' : 지식을 학습하는 것이 아닌 데이터와 통계를 통해 다음단어를 예측합니다. →  어떻게 해결하나? - RAG : 검색증가 생성 - RLHF : 인간피드백기반 강화학습 RAG : Retrieval Augmented Ge..

AI * ML 2024.07.07