본문 바로가기

전체 글21

setState 객체에 값 넣고 싶을때 개발을 하면서 state에 꼭 하나의 값이 아닌 객체로 잡아야하는 경우가 생긴다. 예를 들어 어떤 주문과 관련된 상태와 로딩창의 오픈 여부를 같은 컴포넌트에서 구현해야 하는 경우 state = { olderInfo: { 주문자: aa, 가격: bb, 등등 }, loadingImg: false } 위와 같이 표현할 수 있겠는데 나도 위와 같이 작성 후 setState로 주문자의 데이터만 바꾸려고 이전에 알고있는대로 시도를 해보니 어떻게 해도 원하는대로 동작을 하지 않았다. 우선 원인으로는 렌더링은 state 값이 변경될 때 되는데 loadingImg와 같은 단순 값은 다른 값이 들어왔을때 변화가 되었다는 것을 바로 알 수 있지만 객체의 경우 해당 주소값을 조회하기 때문에 안의 값이 바뀐다고 하더라도 주소가.. 2023. 1. 11.
React 란 무엇인가. React는 자바스크립트 라이브러리중 하나로 ui를 만들기 위해 사용된다. React의 장점으로는 ui를 상태로 관리할 수 있다는 것인데 mvc 모델에서 데이터가 변경되면 컨트롤러에서 해당 데이터를 다시 가공 후 모델에 넣어 뷰에 넣어주는 것과 다르게 그냥 데이터만 변경되면 자동으로 화면에 갱신이 된다. React의 ui 개념은 주로 가상돔 패턴을 말한다. 이를 설명하기 위해 먼저 브라우저의 단계를 살펴보면 1. html코드 파싱, 돔트리 생성 2. css코드로 cssom트리 생성 3. 두 트리 합쳐서 렌더트리 생성 4. 레이아웃 계산 5. 픽셀로 화면에 그려줌 과 같은 단계를 거치는데 이런 과정을 많이 반복하게 되면 당연 부하가 생길 수 밖에 없다. 가상돔패턴은 먼저 가상돔을 만들어 돔과 비교하고 여기.. 2022. 11. 15.
리눅스 강의 2주차 2주차는 거의 계정과 권한 관련된 내용들이 대부분 useradd user1 : user1이라는 계정 생성 (윈도우에서 로그인 시 들어가는 계정 같은 것) 리눅스는 모든게 파일로 되어 있어 생성한 유저의 정보도 파일에 저장되는데 /etc/passwd의 6번째 필드에서 기본 디렉토리를 확인할 수 있다 useradd라는 명령어 또한 파일로 존재하는데 해당 /etc/default/useradd 파일에서 vim으로 설정 변경하여 유저 생성 시의 홈디렉토리를 바꿀 수 있다. 계정이 만들어지면 자동으로 그룹도 생성되고 여러 그룹들 중 wheel 이라는 그룹은 관리자 대우를 받는다. 계정 생성 시 관리자를 지정해주려면 useradd -G 그룹명 계정명 으로 옵션을 추가하면 되는데 이런걸 이제 help로 잘 찾아보고 응.. 2022. 11. 15.
리눅스 강의 1주차 리눅스 터미널에서 명령어 입력 시 왼쪽에 aaa@host ~ 와 같은 이상한 언어가 계속 쓰여있는 것을 볼 수 있는데 이것은 프롬프트로 계정@호스트네임 디렉토리 이다 여기서 ~ 표시는 내가 지금 홈디렉토리에 있다는 뜻 리눅스 명령어 입력 후 --help로 해당 명령어와 관련된 옵션들 및 설명을 확인할 수 있다. (사용법에서 대괄호 안의 옵션은 선택사항, 뒤에 점 세개가 붙는 것은 여러 개를 쓸 수 있다는 뜻) help로는 좀 이해하기 어려우면 man [명령어] 로 확인 2022. 11. 15.
[8-DAY] github github와 연동하는 것 관련 명령어 정리 1. git clone url github와 같이 git 호스팅 기능을 하는 곳에서 깃 리포지토리를 그대로 내 로컬로 가져오는 명령어 2. git remote pull, push 등의 깃허브와의 연동을 위해 원격 url을 설정해주는 명령 위와 같이 클론할 경우 자동으로 설정된다 git remote add name url 명령어로 설정하고 보통 기본 이름은 origin으로 정한다 -- url을 원격주소로 name 이름으로 설정 git remote -v 옵션으로 설정돼있는 원격 url을 확인 3. git push 로컬 브랜치를 원격 저장소에 넣는 명령어 git push 원격저장소이름 브랜치이름 으로 사용 4. git fetch 다른사람과 협업중이라면 내가 작업하는.. 2022. 10. 4.
[7-DAY] github ssh 설정 깃허브와 커맨드라인이 상호작용할때 매번 이메일과 비밀번호를 입력하지 않고 편하게 사용하기 위해 ssh키를 설정할 수 있다 Connecting to GitHub with SSH - GitHub Docs Generating a new SSH key and adding it to the ssh-agent docs.github.com 깃허브 ssh 설정 페이지에 접속하여 순서대로 진행 나는 기존에 처음으로 ssh를 설정하는 것이기 때문에 바로 새 ssh키 생성 시키는대로 차례대로 진행 ssh-agent에 ssh키 추가를 위해 또 따라서 진행 이후 "GitHub 계정에 새 SSH 키 추가" 클릭 프로필계정 눌러 설정하는 것 까지 완료하면 끝! 2022. 10. 3.
[6-DAY] stash와 이전 커밋 확인 stash 내가 수정한 내용들을 임시공간에 저장하는 명령어 git stash로 저장하고 git stash pop명령어로 가져온다 git stash apply 명령어로도 동일하게 가져올 수 있으며 pop과의 차이는가져온 후 저장공간에서 삭제할 것인지 여부 (apply로 작업 시 저장공간에 그대로 남아있음) 스태시를 여러개로 작업할 수 있으며 git stash list 로 스태시목록 확인 후 git stash apply @stash{1} 로 원하는 변경사항을 가져올 수 있다 @stash{1}은 list로 확인가능, 내가 가져오려는 스태시의 아이디라고 보면 됨 git stash drop @stash{1}로 특정 변경사항을 삭제가능하고 git stash clear 로 스태시 전체 클리어 가능 -- 근데 실제로 .. 2022. 10. 3.
[5-DAY] merge MERGE 피처브랜치에서 완료된 작업을 마스터브랜치의 소스와 병합하는 작업 git merge 병합하려는 브랜치이름 으로 사용 1. 빨리감기 병합 - 피처브랜치에서 작업하는 동안 마스터브랜치는 따로 수정되지 않아 피처브랜치의 소스들만 마스터 브랜치에 합쳐지는 병합 2. 병합커밋 생성 - 피처브랜치에서 작업하는 동안 마스터브랜치에서도 작업이 있어 변화가 생겼으나 해당 부분이 서로 겹치지 않아 충돌 없이 각각 합쳐지는 병합 (이 경우 새로운 커밋으로 병합이 되기 때문에 커밋메시지 입력창으로 넘어감) 3. 충돌 - 피처브랜치에서 작업한 파일과 마스터브랜치에서 작업한 파일이 같을 경우 merge 시 자동으로 병합되지 않고 실패를 반환한다. 문제가 되는 파일을 알려주며 해당 파일을 열면 다음과 같이 코드가 작성돼있.. 2022. 9. 26.
[4-DAY] branch 커밋을 하게 되면 숫자와 문자가 조합된 해시를 가지게 된다 그리고 그 해시는 적어도 이전에 부모 커밋 하나를 참조하며 직선상의 경우 아래 그림과 같다. 하지만 실제로 협업하여 프로젝트를 같이 운영하다 보면 이렇게 직선형태로만 작업이 진행되지 않고 각자 파트 별로 나뉘어 동시에 작업을 하는 경우가 생기게 되고 이 경우 각자 새로운 타임라인을 갖게 해주는 것이 브랜치 이다. 이 브랜치 별 독립적으로 작업하여 이것을 나중에 통합하는 방식으로 프로젝트를 진행한다. (1일차 강의 이미지 참고) 브랜치는 마스터 브랜치와 토픽브랜치(피처브랜치)로 나눌 수 있으며 마스터브랜치는 git init 명령어로 저장소 생성 시 디폴트로 생성되는 브랜치이고 토픽브랜치는 작업을 위해 마스터브랜치에서 따온 작업 브랜치를 얘기한다. .. 2022. 9. 25.