23/12/5 til 환경변수 , 공용화(?)
2023. 12. 6. 01:15ㆍ카테고리 없음
그동안 환경변수에 대한 얘기를 들었지만 정확히 뭔지 몰랐는데
오늘 팀원에게 많이 배웠다.
<firebase.js>
import {initializeApp} from 'firebase/app';
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
export default app;
보통 파이어 베이스 컨피그 객체는 벨류에 스트링으로 특정 값을 같는데 process.env. 를 이용해
<env.local>
REACT_APP_FIREBASE_API_KEY=AIzaSyAG9ohQqSM_aH_o_1wxkfmux6FYg9RP7xQ
REACT_APP_FIREBASE_AUTH_DOMAIN=simwha-b8b17.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=simwha-b8b17
REACT_APP_FIREBASE_STORAGE_BUCKET=simwha-b8b17.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=554158426742
REACT_APP_FIREBASE_APP_ID=1:1:749146172998:web:d89bc61edabe8ba133a447
env.local 파일에 따로 할당해놓은 고유키를 불러온다. 이렇게 하면 깃헙에 고유키가 유출되는것을 막고
env 로컬은 push를 해도 영향을 안받는다고 한다. 캬 좋은거 배움
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<Button.jsx> 팀원 한분이 만들어 주신 버튼.js
import React from 'react';
import styled from 'styled-components';
const Btn = styled.button.attrs(props => ({type: props.type}))`
background-color: var(--deep-blue);
border: none;
padding: 10px;
border-radius: 10px;
font-weight: bold;
font-size: 1rem;
cursor: pointer;
&:hover {
filter: brightness(1.2); // &:hover 이방식은 나도 종종 쓰지만 filter: brightness(1.2); 이건 처음봄
} //내일 물어봐야지
`;
const CancelButton = styled(Btn)` //이분 응용력이 좋음 Btn의 css특성을 그대로 받고
background-color: #6e6e6e; //여기서만 css를 추가하는방식임
color: var(--white);
`;
const SubButton = styled(Btn)`
background-color: var(--beige); // var(--beige); 이방식도 듣기만 했을뿐 써본적이 없는데
color: var(--black); //미리 사전에 특정칼라에대한 명칭을 변수선언해놓고 쓰는방식
`; //응용력이 좋으심
const Button = ({children, onClick, type}) => { //다른파일에서 Button 사용할때
return ( // 온클릭 타입 칠드런등을 props로 받으면
<Btn type={type} onClick={onClick}> // 그걸 함수안으로 넣어주기 위한 구조분해할당
{children} //함수를 return을 이용 태그로 바꿔버린다라... 캬
</Btn>
);
};
export {CancelButton, SubButton};
export default Button;
자주쓰는 동일한 태그를 컴포넌트 한다는것은 느낌으로 알고 있었지만 잘쓰시는 팀원분에게 한수 배움
근데 왜 함수나 컴포넌트같은것은 export해야만 쓸수 있고 환경변수나 JSON은 export 안해도 쓸수 있는거지?
그냥 그런가보다 하고 일단 ㄱ
import Button from '../components/UI/Button';
팀원이 만든 Button 을 import 해서 써봤음
<Button>Fix하러가기</Button>
색상 이쁨 ㅎㅎ