TIL

[ #3 ] Dockerfile에서 자주 쓰이는 명령어

Dockerfile 포멧 하나의 Dockerfile은 기본적으로 다음과 같은 구조를 가진 여러 개의 명령문으로 구성되어 있습니다. # 주석(Comment) 명령어(INSTRUCTION) 인자(arguments) 각 구문은 명령어와 인자로 이루워져있고, 명령어는 소문자로 쓸수도 있지만 네이밍 컨벤션을 따라서 명령어는 대문자로만 작성하는게 좋습니다. FROM 명령문 FROM <이미지> FROM <이미지>:<태그> FROM명령문은 base image를 지정해주기 위해서 사용합니다. 하나의 Docker image는 base 이미지로부터 시작해서 새로운 이미지를 중첩해서 여...

더보기

[ #2 ] Docker 네트워크 사용하기

Docker 컨테이너는 서로 격리되어 있기 때문에 따로 설정을 하지 않는다면 컨테이너간 통신을 할 수 없습니다. 하지만 네트워크 연결을 통해서 서로 통신 할 수 있게 됩니다. 이번 글에서는 컨테이너간 통신을 도와주는 Docker 네트워크에 대하여 작성하도록 하겠습니다. 네트워크 조회 docker network ls 커맨드를 사용하면 현재 생성되어 있는 Docker 네트워크 목록을 조회할 수 있습니다. $ docker network ls NETWORK ID NAME DRIVER SCOPE b1545defe462 bridge bridge local 2ff...

더보기

[ #1 ] Docker 기본 익히기

Image vs Container 도커 이미지 도커 컨테이너를 구성하는 파일 시스템과 실행할 어플리케이션 설정을 하나로 합친 것으로, 컨테이너를 생성하는 템플릿 역할을 합니다. 도커 컨테이너 도커 이미지를 실행 함으로써 생성되며, 파일 시스템과 어플리케이션이 구체화되어 실행되는 상태입니다. 컨테이너 내부 에플리케이션과 소통하기위해 5000번 Port로 바인딩 돼어 있습니다. 허브로부터 이미지 받아오기 docker pull 커맨드를 사용하여 도커허브에서 이미지를 받아올 수 있습니다. $ docker pull <image> 이미지 실행하기 docker run 커맨드를 사용하여 원하는 이미지를 실...

더보기

깃헙 history를 주물러봅시다

서론 때는 2021년 5월13일. Ecommerce-react-django 프로젝트를 완성후 배포테스트를 위해 작업중 각종 비밀번호를 하드코딩해서 넣었었는데 commit 할때에 환경변수로 바꿨다고 생각하였으나 저장되지않아 aws rds db비밀번호, aws_access_key_id와 aws_secret_access_key를 있는 그대로 커밋후 리모트에 푸시해버렸습니다. 얼마 지나지 않아서 Gitguardian 한테 중요한 정보가 노출되었다고 메일이 왔습니다 Gitguardian은 git에서 운영하는건줄 알았는데 아니었습니다. 이 친구들은 github유저의 모든 푸시데이터를 감시하는건지 어쩐지 모르겠지만 Git...

더보기

[ #10 ] useContext hook

useContext useContext란 무엇인가? 이때까지 부모 컴포넌트에서 자식컴포넌트에 정보를 전달할때 props를 통하여 전달 했었습니다. A(부모) => B => C = > D 순으로 nested 되어있을경우 부모로부터 D로 데이터를 전송하려면 B, C, D 순으로 전달했었죠. 나중에 props의 이름을 까먹거나하면 정말 헷갈렸었는데 이번에 useContext 사용하는 법을 배우고 신세계가 열렸습니다. :star2:useContext를 이용하면 B, C를 거치지 않고 A => D로 직행으로 원하는 데이터를 전송할 수 있습니다! useContext 어떻게 사용할까요? - 1 ...

더보기

[ #9 ] useEffect hook

1. useEffect useEffect란? useEffect는 기본적으로 몇가지 조건에 의해 작동하게 됩니다. 조건 1. 페이지가 처음 렌더링 되고난 후 useEffect 내의 함수는 무조건 한번 실행되고 봅니다. useEffect(() => { function doSomething(){ console.log("something") } doSomething(); }) 조건 2. 만약에 useEffect의 2번재 파라미터값이 없다면 이는 해당 컴포넌트가 렌더링 될 때마다 실행됩니다. 두번째 파라미터는 watch 값들의 목록입니다 만약 값이 변경되면 us...

더보기

[ #8 ] Portal, useRef

1. Portal을 사용하기. //index.js import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; ReactDOM.render(<App />, document.getElementById('root')); modal, overlayed popup같은 경우는 따로 분리해서 보여주는게 맞다고 합니다. 하지만 어떻게 그렇게 할 수 있을까요?. //index.html <!DOCTYPE html> <html lang="en"> <he...

더보기

[ #7 ] 3 ways to fullfill jsx's requirement

JSX requirement import React from 'react' const AddUser = () => { return ( <div>이건</div> <div>에러나요</div> ) } export default AddUser 리액트 jsx는 오직 하나의 html element만을 return할 수 있습니다. 따라서 위의 코드는 에러를 뿜어냅니다. 이를 수정하기 위해선 이 두태그를 하나의 div로 감싸줘야 합니다. import React from "react"; const AddUser = () => { r...

더보기