$ 풀 리퀘스트 취소하기 PR을 날린 레파지토리로 가서 PR부분에서 내가 날린 PR을 클릭해서 "close pull request"클릭하면 끝! 한 가지 더 확인해야 하는 부분이 있다. 나의 원격 저장소에 가서 PR 날리기 전의 브랜치를 삭제해야 한다. 왜냐하면 나의 브랜치를 수정할 필요가 있기 때문이다. $ 원격 저장소에서 branch 삭제하기 아래의 그림은 이미 branch를 삭제한 후, 모습이다. your branches의 branch 삭제(빨간색 쓰레기통 아이콘)를 클릭하면 된다. $나의 로컬에서 해당 브랜치의 커밋을 지우거나 해당 브랜치를 지우거나 git rest HEAD^ // 커밋 취소/삭제 하기 git log or git status // 커밋이 삭제되었는지 꼭 확인하기 git branch..
$ 항상 나의 작업 공간이 어디인지 반드시 확인할 것! 즉, 내가 위치하고 있는 브랜치 확인하기 불필요한 커밋을 원격 저장소로 push 해버렸다. 내가 원하는 것은 원격 저장소로 push한 커밋 삭제하기 git reset HEAD^ // push한 커밋이 없는 상태로 되돌아가는 것 같다. // 이렇게 명령어를 작성하고, git status를 해봤으면 좋았을 것 같다. git push origin + // 나의 원격 저장소 serverapi 브랜치로 덮어쓰기 원격 저장소로 push된 커밋이 사라졌음을 확인할 수 있고, git status로 확인했을 때, 커밋할 파일도 없음을 확인했다. 사실 잘 어떻게 돌아가는지는 모르겠다. git을 자세하게 모르는 입장에서는 항상 나의 작업 공간/브랜치가 어딘지 파악하고 ..
$ 프로젝트 디렉토리 구조 설계하기 프로젝트 디렉토리 구조는 MVC 패턴으로 작성하기로 했다. - 클라이언트 디렉토리 : 리액트 - 서버 디렉토리 : 메인 서버 파일 app.js / routes / Models(sequelieze cli 이용) / controller 추후 자세하게 적을 계획 + 그림도 추가 $ 리액트로 만든 싱글 페이지 애플리케이션의 static file을 사용자에게 제공할 수 있는 여러 가지 전략 알아보기 1 ) 서버 어플리케이션에서 클라이언트 static file을 사용자에 제공할 수 있다.(node.js + express) express 모듈에서는 static 미들웨어를 활용해서 이미지 파일, js파일, css파일을 처리할 수 있다. app.use(express.static(__d..
$ 개발 환경 세팅하기 # ESlint 설치 및 적용 npm insatll eslint --save-dev npm eslint --init // .eslintrc 파일 생성 # ESlint 적용 예시 //.eslintrc { "extends": "eslint:recommend", // eslint에서 추천하는 규칙들을 적용하는 설정 "rules": { //프로젝트에서 자체적으로 덮어쓰고 싶은 규칙들을 정의할 때 사용 "semi": ["error", "always"], //"always" : 표현식 끝에 항상 세미콜론 설정. 만약 세미콜론 작성하지 않으면 오류 발생 "quotes": ["error", "double"] // "double : ""(따옴표)사용 설정. 만약 따옴표로 작성하지 않으면 오류발생 ..
프로토타입이 무엇인지를 설명하기에 앞서 자바스크립트에서는 같은 프로퍼티를 가진 객체를 여러개 생성하고 싶을 때 어떻게 하는지 알아보자. 인스턴스 객체를 생성하기 위한 4가지 방법을 알아보았다. 그 중에서도 인스턴스 객체를 생성할 때마다 인스턴스에 메서드가 할당되어 인스턴스 메서드 개수만큼 메모리를 차지 했다. 성능이 저하되고 메모리의 효율이 떨어진다. 이러한 단점을 보완하고자 함수에 메서드를 정의 하지 않고, 함수 밖에서 공통으로 사용할 메서드를 정의했다. 인스턴스 객체를 생성할때마다 메서드가 실행되지 않기 때문에 메모리 절약이 된다. 아래의 코드를 보며 프로토타입을 이해해보자. // 생성자 함수 정의 function Person(name, first, second) { this.name = name; ..
자바스크립트에서 Class가 나오기 전, Object 생성하는 4가지 방법 1 ) Functional Instantiaiton : 함수를 이용해서 인스턴스 객체 생성하기 1. 함수 생성 : 함수 이름은 대문자로 시작(일반 함수와 구분하기 위함) 2. 빈 객체 생성 : 함수를 이용해 만든 객체(인스턴스) 3. 빈 객체에 프로퍼티 및 메서드 추가 4. 빈 객체 반환 : 인스턴스 반환 var Car = function() { var someInstance = {}; someInstance.position = 0; someInstance.move = function() { this.position += 1; // this === someInstance } return someInstance; // 인스턴스 반환..
(Object-Oriented Programming, 객체 지향 프로그래밍)이란? 프로그래밍 세계에서 철학을 이야기하는 단어이다. 모든 것은 Object로 설명이 가능해진다는 이야기이다. 예를 들어, 위의 그림과 같이 Car라는 오브젝트가 있다고 하면 자동차가 공통적으로 가지고 있는 기능과 속성이 있다. 구체적으로 말해보자면 주유를 받는다. 속도를 설정한다. 운전을 한다 등 자동차의 기능이 있고, 자동차의 속성으로 연료는 얼마나 필요한지, 최고 속도는 어떻게 되는지, 몇 인승인지, 색깔은 어떻게 되는지가 있을 수 있다. 그래서 Car라는 클래스(객체)를 만들어두고 속성을 다르게 정의할 수 있다면 여러 가지의 자동차를 만들 수 있다. Car라는 클래스에서 속성과 기능을 추가해서 포르쉐 마칸, 미니, 골프를..
테스트 문제를 풀고 나서 this 개념이 부족하다는 사실을 알게 되었다. this 개념을 공부하고 다시 한번 정리 차원에서 작성해본다. 객체 fruites의 메서드 humanNames를 호출했을 때 아래와 같은 답을 출력해야 한다. fruites.humanNames(); // [ "Kate loves apple", "Jenny loves apple"]; 아래와 같이 작성했다. 왜 내가 원하는 답이 나오지 않을까? 역시나 this 바인딩의 문제였다. var fruites = { name: 'apple', human: [ { name: 'Kate', age: 20 }, { name: 'Jenny', age: 20 } ], humanNames: function () { return this.human.map(..