프로그래머스에서 ChatGPT AI 서비스를 활용하여 웹사이트를 만드는 강의를 듣고 배운 내용과 구현 과정을 정리하여 작성한 글입니다.
링크 - AI서비스와 함께 누구나 만드는 웹 프로젝트! feat. ChatGPT
사용자가 이미지 만들기 버튼을 클릭하면 이미지를 화면에 보여준다.
<button id="generateBtn">이미지 만들기!</button>
const generateBtn = document.querySelector('#generateBtn')
addEventListener
라는 함수를 붙이고, 이 대상에 특정 이벤트가 발생하면 내가 원하는 동작을 하게 할 함수를 정의한다.generateBtn.addEventListener('click', () => {
console.log('버튼을 눌렀음!!!')
})
addEventListener
: 특정 이벤트가 발생했을 때 그 이벤트를 감지하고 이에 대한 반응을 정의하는 함수 const generateBtn = document.querySelector('#generateBtn');
const gridContainer = document.querySelector('#gridContainer');
generateBtn.addEventListener('click', () => {
const img = document.createElement('img'); //img 태그 생성
img.src = 'http://picsum.photos/500?random=1'; // 이미지 URL 할당
gridContainer.appendChild(img); //이미지를 그리드 컨테이너에 추가
});
→ 클릭하면 이미지가 보여지지만 같은 이미지가 계속 보인다. 이미지를 랜덤하게 보여주도록 수정한다.
const generateBtn = document.querySelector('#generateBtn');
const gridContainer = document.querySelector('#gridContainer');
generateBtn.addEventListener('click', () => {
const randomNum = Math.floor(Math.random()*1000) + 1; //1부터 1000 사이 랜덤
const imgUrl = `http://picsum.photos/500?random=${randomNum}`; //이미지 주소 랜덤하게
const img = document.createElement('img'); //img 태그 생성
img.src = imgUrl;
gridContainer.appendChild(img); //이미지를 그리드 컨테이너에 추가
});
To request multiple 활용방법
<img src="https://picsum.photos/200/300?random=1">
<img src="https://picsum.photos/200/300?random=2">
뒤에 random을 붙여 요청을 보낸다.
숫자를 넣어 캐싱을 막아준다.
이미지가 30개 찼습니다. 모든 사진을 지우시겠습니까?
라는 메시지를 보여줌const generateBtn = document.querySelector('#generateBtn');
const gridContainer = document.querySelector('#gridContainer');
generateBtn.addEventListener('click', () => {
const randomNum = Math.floor(Math.random()*1000) + 1; //1부터 1000 사이 랜덤
const imgUrl = `http://picsum.photos/500?random=${randomNum}`; //이미지 주소 랜덤하게
const img = document.createElement('img'); //img 태그 생성
img.src = imgUrl;
gridContainer.appendChild(img); //이미지를 그리드 컨테이너에 추가
//이미지가 30개 이상일 경우 모든 이미지 삭제
if(gridContainer.children.length >= 30){
const confirmed = confirm("모든 사진을 지우시겠습니까?");
if(confirmed){ //확인 버튼을 클릭하면
gridContainer.innerHTML = ""; //이미지 모두 삭제
}
}
});