728x90

 

미니미 프로젝트, 커피 월드컵 시리즈 마지막, 4탄..

 

1탄: [커피 월드컵] Netlify React 배포

2탄: [커피 월드컵] React 카카오톡 공유하기

3탄: [커피 월드컵] React에서 사용한 기술 정리

4탄: 현재 글!

 

사실 커피 월드컵이 돌아가는 것 자체는 오래 걸리지 않았습니다.

문제는 Netlify에서 배포한 사이트를 모바일로 확인했을 때부터 시작되었죠..

 

PC에선 참 깔끔하게 나온 화면이 모바일에서는 중구난방..

처음 미디어 쿼리를 사용해 봤는데, 아직도 미지의 세계지만 짧게나마 알게 된 걸 정리해 봅니다..

 

 

1. 미디어 쿼리란..🍂(요새 바람이 많이 불어서 바람에 날리는 낙엽 이모지를 넣어봤습니다,,)

잘 모르는 걸 배울 땐 모르는 단어의 정의부터 확인합니다..

 

CSS Media Query
예를 들어 "뷰포트가 480 픽셀보다 넓다."라고 지정한 규칙에 브라우저 및 장치 환경이 일치하는 경우에만 CSS를 적용할 수 있는 방법을 제공합니다. 미디어 쿼리는 뷰포트의 크기에 따라 서로 다른 레이아웃을 생성할 수 있기 때문에 반응형 웹 디자인의 중요한 부분입니다.

 

 

2. 미디어 유형.. 🍂

* all

* print: 페이지가 인쇄된 경우에 적용

* screen: 페이지가 화면에 보이는 경우에 적용

  * screen은 주로 min-width, max-width와 함께 사용하여 반응형 디자인을 만들 때 사용

      * 뷰포트가 특정 너비 이상 또는 이하인 경우 CSS를 적용하는 방식으로 사용

@media screen and (max-width: 768px){ ... }
/* 뷰포트의 width가 768 픽셀보다 좁은 경우 적용적용 */
/*@media (width <= 768px) { ... }과 동일*/

 

 

3. 미디어 쿼리와 연산.. 🍂

and
/*landscape(가로 방향화면) 방향으로 제한시키고 최소폭을 30 ems로 지정*/
@media (min-width: 30em) and (orientation: landscape) {
  /* … */
}

+ em, rem: font-size 속성값에 비례해서 결정되는 상대 단위

  ⭐ rem을 사용하는 것이 유지보수 측면에서 더 좋음

    (em은 해당 요소의 font-size가 없을 경우, 부모의 font-size를 찾을 때까지 계속 거슬러 올라가는데, em계산 시 어떤 요소의 font-size가 영향을 주는지 한 번에 파악하기 어려울 수 있으므로)

<html>
  <div>
  </div>
</html>
html {
  font-size: 16px;
}
div {
  font-size: 20px;
  width: 10em; 
  /* 200px, 해당 단위가 사용되고 있는 요소의 font-size 속성값이 기준
  해당 요소에 font-size가 없을 경우, 상위 요소의 font-size 적용*/
}

html {
  font-size: 16px;
}
div {
  font-size: 20px;
  width: 10rem; /* 160px, 최상위 요소의 font-size 속성값이 기준 */
}

 

or(,)
/*뷰포트의 높이가 680px 이상이거나, screen 모드에서 세로 모드(뷰포트의 높이가 너비보다 큰 경우)일 때 적용*/
@media (min-height: 680px), screen and (orientation: portrait) {
  /* … */
}

+ 뷰포트: 웹 브라우저에서 웹 콘텐츠가 화면에 표시되는 영역(스크롤을 하지 않고 한눈에 보이는 영역만 포함)

  * 브라우저가 웹사이트를 렌더링(화면에 보여주는)하는 공간

  * 스마트폰이나 컴퓨터에서 웹사이트를 볼 때, 그 화면에서 실제 콘텐츠가 표시되는 부분

  * 해상도

    * 디스플레이(모니터, 스마트폰 등)에서 실제로 보이는 부분의 픽셀 수

    * 스마트폰 화면 해상도 1080x1920: 화면이 가로로 1080픽셀, 세로로 1920픽셀로 구성

<meta name="viewport" content="width=device-width, initial-scale=1.0">
</meta>

  * width=device-width: 기기의 화면 너비에 맞게 뷰포트를 설정

    * height=device-height: 콘텐츠가 기기의 높이를 넘는 경우 스크롤이 생길 수 있고, 동적인 뷰포트 변화가 있는 브라우저(iOS Safari 등)에서는 동작이 예상과 다를 수 있음 → 잘 사용되지 않음

  * initial-scale=1.0: 초기 확대/축소 비율을 1로 설정

 

not
/*미디어 쿼리 전체의 의미를 반전*/
@media not print {
  /* … */
}

/*print에만 not 적용*/
@media (hover) and not print {
  /* … */
}

/*@media (not (screen and (color))), print and (color)와 동일*/
@media not screen and (color), print and (color) {
  /* … */
}

+ (hover): hover가 가능한 지 여부를 조건으로 걸 때 사용

+ (color): 색상을 표현할 수 있는 디스플레이 장치를 조건으로 걸 때 사용

  * 모노크롬 디스플레이(흑백만 지원)에서는 (color) 조건이 거짓(false)

 

 

 

📑

참고 자료

Chat GPT

https://developer.mozilla.org/ko/docs/Learn_web_development/Core/CSS_layout/Media_queries

 

미디어 쿼리 초보자 안내서 - Web 개발 학습하기 | MDN

CSS Media Query는 예를 들어 "뷰포트가 480 픽셀보다 넓다."라고 여러분이 지정한 규칙에 브라우저 및 장치 환경이 일치하는 경우에만 CSS를 적용할 수 있는 방법을 제공합니다. 미디어 쿼리는 뷰포트

developer.mozilla.org

https://www.daleseo.com/css-em-rem/

 

CSS 상대 단위 - em과 rem

Engineering Blog by Dale Seo

www.daleseo.com

 

 

728x90
728x90

 

미니미 프로젝트, 커피 월드텁 시리즈 제3탄..

 

1탄: [커피 월드컵] Netlify React 배포

2탄: [커피 월드컵] React 카카오톡 공유하기

3탄: 현재 글!

 

React를 한땀 한땀, 살펴볼 예정은 아니지만 어떤 기술을 활용했는지 간단히 정리해두면 좋을 것 같아서 VS Code를 실행해서 복기해 보고자 합니다.

 

저는 React가 완전 처음은 아니고, 기존에 팀 프로젝트에서 프론트 기술로 사용해본 경험이 있습니다.

그래서 React를 하나도 몰라도 만들 수 있군! 보다는 React를 조금 알아도 만들 수 있군! 정도로 생각해 주시면 좋을 것 같습니다!

 

찐 시작!

 

 

1. React Hooks

쓰지 않을 수 없는 React Hooks...

그 중에 저는 useState, useEffect, useMemo를 사용했습니다.

* useState

  * 상태를 관리하는 훅
  * 현재 상태를 나타내는 state값과 이 상태를 변경하는 setState값을 한 쌍으로 제공

const [selected, setSelected] = useState({
	coffee: null,
	drink: null,
	dessert: null,
});

 

* useEffect

  * 컴포넌트가 화면에 렌더링 될 때 마다 실행되는 효과(effect)를 구현할 수 있게 해주는 훅

  * useEffect(function, deps)의 형태로 사용
    * function: 실행시킬 함수, deps: 의존성 배열
  * 의존성 배열 없이 useEffect를 실행시키게 되면 페이지가 렌더링 될 때마다 데이터를 불러옴
  * 의존성 배열에 빈배열을 담아주게 될 경우에는 첫 렌더링 시에만 함수를 실행
  * 의존성 배열에 state값이나 props로 상속받은 데이터값 등을 담아주게 되면 해당값이 변할 때마다 함수를 실행

useEffect(() => {
    const shuffledItems = [...items].sort(() => Math.random() - 0.5);
    setBrands(shuffledItems);
    setDisplays([shuffledItems[0], shuffledItems[1]]);
}, [])

 

* useMemo
 * 메모이제이션을 활용하여 성능 개선을 위해 많이 사용
   * 메모이제이션: 기존에 수행한 연산의 결과 값을 어딘가에 저장해두었다가 동일한 입력이 들어오면 재활용하는 프로그래밍 기법
  * cf. useMemo: 메모이제이션된 값을 반환하는 훅, useCallback: 메모이제이션 된 함수를 반환하는 훅

const jsConfetti = useMemo(() => new JSConfetti(), []);

 

+ useRef

  * 특정 DOM에 접근하여 DOM 조작을 가능하게 하는 훅
    * 리액트 프로젝트에서도 특정 요소를 선택해야하는 상황에 사용

  * 상태처럼 값을 저장하지만 리렌더링을 트리거하지 않는 값으로 사용할 수 있는 훅

const inputRef = useRef(null);

// 특정 DOM에 접근
<input ref={inputRef} type="text" />

 

 

2. styled component

css가 js에 들어가 있는 라이브러리인 styled component! 처음 써봤습니다!

커피 월드컵 만드는 영상에서 styled component를 쓰시는 걸 보고 도전해봤는데, 생각보다 간편하고 좋았습니다.

import { ImageContainer, TitleImage, BrandImage } from "./styleGameResult";

<ImageContainer>
    <TitleImage/>
    <BrandImage/>
</ImageContainer>


export const ImageContainer = styled.div`
    position: relative;
    width: 100%;
    height: auto;
`;

 

 

3. React Router

라우팅(Routing): 웹 애플리케이션에서 사용자가 URL을 통해 페이지에 접근할 때 해당 URL에 따라 서로 다른 컴포넌트를 보여주는 것

→ URL의 경로(path)와 쿼리(query) 부분을 분석하여 해당하는 컴포넌트를 렌더링

SPA는 초기 로딩 시 서버에서 모든 컨텐츠를 불러오는 것이 아니라 필요한 데이터만 가져와 화면을 구성하기 때문에, URL에 따라 다른 화면을 보여주는 라우팅이 필요

function App() {
  return (
    <Router>
      <GlobalStyle />
      <Routes>
        <Route path="/" element={<Game />} />
        <Route path="/result" element={<ResultPage />} />
      </Routes>
    </Router>
  );
}

 

Route를 통해 여러 페이지를 만들어주게 되면, 페이지간 이동을 위해 Link와 useNevigate를 사용할 수 있습니다.

  * Link

    * html에서의 <a>와 유사하게 클릭 이벤트를 통해 특정 경로로 이동

    * 주로 사용자 인터페이스(UI)에서 네비게이션 링크를 생성할 때 사용

import { Link } from "react-router-dom";

function HomePage() {
  return (
    <div>
      <h1>홈페이지</h1>
      <Link to="/about">About 페이지로 이동</Link>
    </div>
  );
}

  * useNaivgate

    * 이벤트 핸들러 내부에서 동적으로 페이지를 이동할 때 사용

    * 논리적으로 경로를 제어해야 하는 경우에 사용

import { useNavigate } from "react-router-dom";

function LoginPage() {
  const navigate = useNavigate();

  const handleLogin = () => {
    // 로그인 로직 처리 후 페이지 이동
    navigate("/dashboard");
  };

  return (
    <div>
      <h1>로그인 페이지</h1>
      <button onClick={handleLogin}>로그인</button>
    </div>
  );
}

 

* URLSearchParams

  * 웹의 URL 쿼리 문자열을 다루는 JavaScript의 내장 클래스

const queryParams = new URLSearchParams({
    coffee: selected.coffee,
    drink: selected.drink,
    dessert: selected.dessert,
    brand: brand.brand,
}).toString();

  * search.location

    * 웹 브라우저의 현재 URL에서 쿼리 문자열을 나타내는 속성, 문자열 형태로 쿼리 문자열(Query String)을 나타냄

const searchParams = new URLSearchParams(location.search);
const selected = {
    coffee: searchParams.get("coffee"),
    drink: searchParams.get("drink"),
    dessert: searchParams.get("dessert"),
};
const brand = searchParams.get("brand");

 

🚨 개선할 수 있는 사항

각각의 값을 get을 통해 지정해야 하는 것과 모든 브라우저에서 지원해주지 않는다는 단점을 가지고 있기 때문에 npm i query-string 을 사용해 해당 단점들을 해결할 수 있음

 

 

4. JSConfetti

커피 월드컵 종료 후 폭죽 효과를 만들고 싶었으나, 라이브러리가 있기에 사용해 보았습니다.

 

쉽게 구현할 수 있는 방법과 마지막 옵션 선택에 따라 이모지로 변경할 수 있다는 장점을 기반으로 저는 JSConfetti를 사용했습니다.

 

 

 

🎉 커피월드컵 주소 🎉

https://hj0216.netlify.app/

 

Coffee WorldCup

 

hj0216.netlify.app

 

 

 

📑

참고 자료

Chat GPT

https://choijying21.tistory.com/entry/React-%EB%A6%AC%EC%95%A1%ED%8A%B8-%ED%9B%85%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0React-Hooks%EB%9E%80#4)%20useMemo%2C%20useCallback-1

 

[React] 리액트 훅에 대해 알아보기(React Hooks란?)

1. React Hooks란? 리액트 훅은 리액트 클래스형 컴포넌트에서 이용하던 코드를 작성할 필요없이 함수형 컴포넌트에서 다양한 기능을 사용할 수 있게 만들어준 라이브러리라고 할 수 있는데 React 16.

choijying21.tistory.com

https://woongtech.tistory.com/entry/%EB%A6%AC%EC%95%A1%ED%8A%B8-Hooks-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-reacthookstypescript

 

리액트 Hooks 이해하기 [react/hooks/typescript]

리액트 Hooks는 함수 컴포넌트에서도 상태 관리를 할 수 있는 useState, 렌더링 직후 작업을 설정하는 useEffect 등의 기능을 제공해 기존의 함수 컴포넌트에서 할 수 없었던 다양한 작업을 할 수 있게

woongtech.tistory.com

https://www.youtube.com/watch?v=_7WF8TtHD8s

https://woongtech.tistory.com/entry/%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%9D%BC%EC%9A%B0%ED%84%B0-%EC%8D%A8%EB%B3%B4%EA%B8%B0-reactroutertypescript

 

리액트 라우터 써보기 [react/router/typescript]

라우팅 라우팅(Routing)이란 웹 애플리케이션에서 사용자가 URL을 통해 페이지에 접근할 때 해당 URL에 따라 서로 다른 컴포넌트를 보여주는 것을 의미한다. 일반적으로, 브라우저에서 URL을 입력하

woongtech.tistory.com

https://tthinks.tistory.com/entry/React-%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%97%90%EC%84%9C-%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%9D%B4%EB%8F%99%ED%95%98%EA%B8%B0-Link%EC%99%80-useNavigate

 

[React] 리액트에서 페이지 이동하기 | Link와 useNavigate

React에서 Link와 useNavigate로 페이지 이동하기 오늘은 페이지 이동을 위한 리액트 hook을 알아볼게요 🧐 크게 Link 태그와 useNavigate() 함수가 있습니다. 리액트에서 Link와 useNavigate는 React Router 라이브

tthinks.tistory.com

https://velog.io/@minzyee/useLocation

 

useLocation, URLSearchParams, location.search, 쿼리 문자열

리액트에서의 useLocation, URLSearchParams, locatication, 쿼리 스트링

velog.io

https://jikeun.tistory.com/entry/React-params-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-URLSearchParams-%EC%82%AC%EC%9A%A9%EB%B2%95-npm-i-query-string

 

React : params 사용하기 URLSearchParams 사용법 +) npm i query-string

React : params 사용하기 URLSearchParams 사용법 +) npm i query-string 1. Params 란? 이런식으로 ? 뒤에 딸려들어가는 key 와 value 값을 params 라고 한다. url주소와 상관없이 params로 들어가면 동일한 url에서도 여러

jikeun.tistory.com

https://velog.io/@tinubee/React-%EC%83%89%EC%A2%85%EC%9D%B4-%EC%A1%B0%EA%B0%81-%EB%82%A0%EB%A6%BC-%ED%9A%A8%EA%B3%BC-feat.-Canvas-Confetti

 

[React] 🎉 색종이 조각 날림 효과 (feat. Canvas-Confetti)

react-canvas-confetti & js-confetti 를 이용하여 색종이 날림 효과 구현해보기.

velog.io

 

 

728x90
728x90

안녕하세요.

 

옆의 귀여운 루피와 공유하기는 제 미니미 프로젝트의 핵심 카카오톡 공유하기 화면입니다.

처음에 계획했던 건 커피 월드컵 사이트를 공유하는 것이었는데, 최종에서는 결과를 공유하는 것으로 변경되었습니다. 왜냐면, 이 프로젝트의 핵심은 월드컵이 아니라 월드컵 결과로 친구들에게 기프티콘을 노나주는 것이기 때문이죠. 덕분에 리액트에서 라우터를 추가해서 페이지도 만들고 해봤습니다.

 

그래서 이번에는 해놓으면 간단하지만 하기 전에는 조금 어려워보이는 카카오톡 공유하기를 간단히 정리해보고자 합니다.

 

사용방법이 엄청 어렵다!는 아니지만, 우편번호 API보다는 난이도가 있습니다!

 

 

 

1. Kakao Developer

https://developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

미리보기에서 벌써 말해줍니다. 카카오 API를 활용해서 메시지를 보내라고.

 

2. 내 애플리케이션 → 애플리케이션 추가하기

3. 내 애플리케이션 → 앱 설정 → 플랫폼

사이트 도메인을 추가해줍니다.

localhost에서 먼저 테스트를 해봐야 하므로, netlify와 더불어 추가해줍니다.

 

4. React 기준 index.html에 script 추가

<head>
	<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
</head>

 

 

5. React 기준 카카오톡 공유하기 컴포넌트 만들기

export const KakaoShare = (selected, brand) => {
  if (!window.Kakao.isInitialized()) {
    window.Kakao.init(process.env.REACT_APP_KAKAO_JS_API_KEY);
    console.log("Kakao SDK initialized:", window.Kakao.isInitialized());
  }
  
  // 생략

  window.Kakao.Link.sendDefault({
    objectType: "feed",
    content: {
      title: "내가 어디서 어떤 커피를 먹고싶냐면..",
      description: `#${drinkDescription} #${coffeeDescription} #${dessertDescription} #${brandDescription}에서 #적당한 #깊티를 #내놔라`,
      imageUrl: "https://raw.githubusercontent.com/HJ0216/dream-coffee-worldcup/main/src/image/loopy-img-share.jpg",
      link: {
        mobileWebUrl: resultUrl, // 모바일 웹 URL
        webUrl: resultUrl,       // PC 웹 URL
      },
    },
    buttons: [
      {
        title: "자세히 보기",
        link: {
          mobileWebUrl: resultUrl,
          webUrl: resultUrl,
        },
      },
    ],
  });
};

기본 템플릿을 사용했습니다.

 

컴포넌트 초반에 초기화를 확인하는데, 이 때 API 키가 필요합니다.

내 애플리케이션 → 앱 설정 → 앱 키에서 Javascript 키를 복사해서 넣으면 됩니다.

 

무료 API키지만 키 값은 소중하므로 .env를 활용해 Github 상에 공유되지 않도록 합니다.

🚨Github에 올라가지 않은 환경변수는 Netlify에서 따로 추가 후 재 빌드를 해줘야 합니다.

 

저는 직접 만든 버튼에 기본 템플릿 피드를 사용하였습니다.

이 외에 다양한 템플릿 또는 커스터마이징이 가능하며, 아래 사이트를 참고하시면 됩니다.

https://developers.kakao.com/docs/latest/ko/message/js-link

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

6. 최종 결과

는 가장 먼저 만나보셨던 화려한 루피 사진이 공유하기 화면입니다.

 

또는 아래 사이트에서도 직접 체험해보실 수 있습니다.

결과를 친구에게 공유해서 기프티콘 요청을 하실 수 있습니다!

 

https://hj0216.netlify.app/

 

Coffee WorldCup

 

hj0216.netlify.app

 

 

+ 브랜드가 겹치지 않게 모아놓은 후기

++ 신기한 점: 친구와 내가 자주 가는 커피집이 선호하는 커피 브랜드가 아니었다😲!

 

 

 

📑

참고 자료

Chat GPT

https://developers.kakao.com/docs/latest/ko/message/js-link

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

https://velog.io/@dejeong/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-JavaScript-API-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95

 

카카오톡 공유하기 JavaScript API 사용하기

카카오톡 공유하기 API JavaScript로 간단하게 사용하기

velog.io

https://front-kuli.tistory.com/168

 

React 로 카카오톡 공유하기 기능 추가해보기

https://developers.kakao.com/tool/demo/message/kakaolink?message_type=scrap Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제

front-kuli.tistory.com

 

 

728x90
728x90

 

다들 연말 잘 보내고 계신가요?

 

올해 제 목표 중 하나는 직접 만든 사이트를 친구에게 재밌게 보여주기였습니다.

마침 연말이기도 하고, 고마운 마음을 기프티콘을 통해 보내기도 하는데, 마침 저에게는 웹 사이트를 만들 능력이 조금 있었습니다.

 

그래서 만들어 본 커피 이상형 월드컵..

 

리액트를 메인으로 공부하지 않기 때문에, 여기서는 리액트 코드보다는 새로운 시도를 했던 기술들을 간략히 적어보고자 합니다.

 

 

 

그 첫번째는 바로, Netlify 입니다.

 

친구들 중에 개발을 하지 않는 친구가 더 많기 때문에 내 깃헙으로 들어와서 코드를 클론하고 npm start로 실행해줘라는 부탁은 쉽지 않습니다. 그래서 도메인을 연결해 누구나 접근 가능한 사이트를 하나 갖고 있어야합니다.

 

이 때, 필요한 것이 바로 Netlify!

Netlify는 HTML, CSS, JavaScript 등의 정적 파일로 구성된 웹사이트를 간단하게 배포할 수 있는 사이트로, Git 저장소와 통합되어 있어, 코드 변경이 발생할 때 자동으로 빌드 및 배포를 수행할 수 있습니다. 

 

Netlify를 통한 배포 과정은 다음과 같습니다.

1. Add new site → Import and existing project

 

2. Deploy project with Github

다른 Git 저장소도 있지만, 전 깃헙을 쓰기에 깃헙을 선택했습니다.

 

3. Respository 선택

저는 이미 설정을 해둔 상태라서 수정하는 창을 첨부했습니다.

1개만 배포할 예정이라 Only select repositories를 선택했습니다.

 

4. Build Setting

 

Branch to deploy: 배포에 사용할 브랜치

Base Directory: 배포할 React 프로젝트의 루트 경로 입력, 프론트로만 구성된 프로젝트의 경우 입력 X

Build command : 빌드 명령어

Publish directory : 빌드가 완료된 후 생성된 폴더 이름

 

 

⭐알아두면 좋을 것⭐

1. .env처럼 환경변수를 사용할 경우, github에는 올라가지 않으므로 Netlify에서 따로 설정해줘야 한다.

설정 후, 재배포를 수동으로 해줘야 한다.

2. esLint 경고가 발생할 경우, Netlify에서 빌드 실패가 된다.

경고를 무시하던가 해결하던가 해야한다.

 

 

+ 아직은 수정 중인 미니미 프로젝트 주소

🎉 완성🎉

https://hj0216.netlify.app/

 

React App

 

hj0216.netlify.app

 

 

 

📑

참고 자료

Chat GPT

https://velog.io/@somda/FE-Netlify%EB%A1%9C-React-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0

 

[FE] Netlify로 React 프로젝트 빠르게 배포하기

요즘은 원티드 프리온보딩 프로그램에 등록해 간만에 열몇시간씩 컴퓨터 앞에 붙어있는 생활을 하고 있다. 다양한 세션을 통해 많은 것을 배울 수 있었는데 가장 좋았던 건 S3를 통해 배포하는

velog.io

https://velog.io/@easyxxu/React-netlify-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0

 

Netlify 배포하기

netlify로 React 프로젝트 배포해보기

velog.io

https://velog.io/@yangth/Netlify%EB%A1%9C-%EB%B2%A0%ED%8F%AC-%ED%95%B4%EB%B3%B4%EA%B8%B0

 

Netlify로 베포 해보기

Netlify는 깃허브(Github), 깃랩(GitLab) 등과 계정 연동 및 쉬운 호스팅을 제공하고 CDN, Continuous Deployment(지속적 배포), One-Click HTTPS 제공 등 고성능 사이트 / 웹 응용 프로그램을 제작하는데 필요한 쉽

velog.io

https://www.youtube.com/watch?v=WJtetccrv3o

 

 

 

728x90