Front-End Developer/Computer Science

    pull했더니 내가 하던게 다 날라갔네...? git reflog로 모든커밋 확인하기

    기능브랜치에서 열심히 작업한 내용을 push하려하니 원격에서 pull할게 있다고 해서 pull을 했다. 근데 내가 작업하던게 다 날라갔다... 이것밖에 없을리가 없어... 며칠동안 작업한게 다 날아간걸 확인하고, git log에도 그동안 열심히 커밋했던게 싹 사라지고 원격에 있던것만 남아있는걸 보고 순간 멘탈이 붕괴되었다가 검색을 통해 해결할 수 있는 방법이 있다는걸 알게됬다. push하기 전에 commit을 해놓았다면 git reflog를 통해 pull 전의 모든 커밋기록까지 확인할 수 있다. 맨 위에서 두번 째, 90d8e92 이름의 커밋이 내가 마지막으로 작업하고 커밋했던 내용이고. 맨 위에있는 9d0c591 이름의 커밋이 내가 원격에서 pull을받느라 내 작업을 다 없애버린 커밋이다. 일단 침착한..

    SEO(검색엔진 최적화) : 구글검색엔진에게 간택받기 위한 프로미스 101

    결론: 사용자가 좋아해야 검색엔진도 좋아한다. Search Engine Optimization 다양한 검색엔진에 우리가 제작한 사이트가 얼마나 빠르게 얼마나 상위에 노출되는가가 중요한 화두로 떠올랐고, 그를 위한 방법을 모아 웹사이트에 적용하는것을 검색엔진 최적화라고 한다. 마치 인스타그램에 #부트캠프 #3개월취업 #취업보장 붙여서 광고를 하듯... 사용자의 알고리즘에 최대한 걸려들기(?) 위해 검색엔진 최적화를 해줄 수 있다. google, naver, daum 등 다양한 검색 SEO 적용 기법을 각각의 개발자 지원 사이트에서 설명하고 있고, 정책도 다 다르다. 예를 들어 google 같은 경우는 홈페이지 내 youtube 영상을 포함하면 좀 더 상위로 올가고, 이러한 정책의 기조도 매번 달라진다. (..

    깃 커밋 템플릿 만들어서 간편하게 커밋해보자!

    커밋을 제대로 하는건 참 좋은 습관이다. 연습이 많이 필요한 '기능 단위로 나눠서 커밋하기'는 경험을 통해 차차 나아갈 수 있지만, 커밋 메세지는 오늘 당장 획기적으로 발전할 수 있다! 바로 커밋메세지를 잘 작성할 수 있는 템플릿을 미리 만들어놓고 글로벌로 설정해주는거다. 지금부터 바로 알아보자! gitmessage 설정하기 터미널에 진입하여 아래 커맨드를 입력한다. 이는 gitmessage 템플릿을 위한 txt파일을 만드는 과정이다. $ touch ~/.gitmessage.txt 텍스트 에디터 진입하기 $ vim ~/.gitmessage.txt 커밋 메세지 템플릿 작성 후 저장하기 이건 자기가 쓰는 규칙이나 팀에서 정한 규칙대로 넣어주면 된다. #로 시작하는 문장들은 다 주석처리된다. ### 제목 # ..

    규모가 크지 않은 팀프로젝트의 git-flow전략(+인프런 강의영상)

    규모가 크지 않은 팀프로젝트의 git-flow전략(+인프런 강의영상)

    하고싶은 말 이 긴 글을 쭉쭉내리며 음~하며 읽으시는것보다 (사실 정리가 잘 되어있는 글은 아닙니다.) 아래 강의를(무료) 보시며 한번 직접 따라해보시는것이 훨씬 도움이 됩니다! 꼭 두,세번정도 이것저것 시도해보시며 사이클을 돌려보시면 생각보다 쉬운데?! 하실거에요. 강의명 -> 깃&깃헙 브랜치 3개로 협업하기(주니어개발자 팀프로젝트) https://www.inflearn.com/course/30%EB%B6%84-%EC%8B%9C%EC%A6%8C4-%EA%B9%83%ED%97%88%EB%B8%8C# [무료] 30분 요약 강좌 시즌4 : 알잘딱깔센 GitHub - 인프런 | 강의 알아서! 잘! 딱! 깔끔하고! 센스있게! 정리하는 GitHub 핵심 개념 책의 무료강의입니다. 해당 책과 Notion 링크도 무..

    면접관님: 메세지 큐와 이벤트루프가 뭔지 아시나요? (+ 유투브)

    네. 압니다. https://youtu.be/8AevEF4hOg8 나의 언어로 풀어본 최종 답변 이는 자바스크립트 동작원리에 관련이 있다고 말할 수 있습니다. 흔히 자바스크립트는 single thread라고 말하는데요, 이는 우리의 코드를 실행시켜주는 Stack이라는 공간이 단 하나뿐이고, 코드를 한번에 한줄씩만 순차적으로 실행시킨다는 것을 의미합니다. 이를 ‘동기적'이라고 표현하기도 하죠. 그런데 setTimeout같은 코드를 내 코드의 중간에 넣었다고 가정했을 때, 뒷사람들 다 기다리게 하면서 setTimeout함수가 실행되기를 기다릴 수는 없잖아요? 그래서 잠깐 대기실과 같은 역할을 하는 web APIs로 보내게 됩니다. 그곳에서 기다리다가 설정한 시간이 다 지나게 되면 바로 Stack에서 실행될 ..

    면접관님: 브라우저 렌더링 과정을 설명해보시겠어요?(+유투브)

    https://youtu.be/_87sAy_SsxQ 나의 언어로 풀어본 최종 답변 우선 사용자가 URL을 입력하면 브라우저 엔진은 쿠키나 세션에 원하는 데이터가 캐싱이 되어있는지 확인합니다. 만약 요청한 정보가 있으면 렌더링 엔진에게 바로 보냅니다. 반면 요청한 정보가 없다며 도메인네임시스템(DNS)에 찾아가서 IP주소를 요청하여 받은 IP주소의 서버를 찾아가서 자료를 요청하고 데이터를 받아와 렌더링 엔진에게 전달합니다. 렌더링 엔진은 HTML문서를 파싱하여 돔트리를 구축하고, CSS 파일과 함께 모든 스타일 요소를 파싱하여 CSSOM 트리를 만듭니다. 그러다가 JS를 만나게 되면, 작업을 중지하고 JS Engine에게 제어 권한을 넘겨 JS Engine이 script를 파싱합니다. DOM트리와 CSSO..