전체 글 102

맥 homebrew - 깃 설치 및 깃허브 연동

먼저 homebrew를 설치할 것이다. homebrew는 맥에서 git과 같은 다양한 툴을 편하게 설치하게 해준다. git 사이트에서도 이렇게 homebrew 사용을 권장한다. Install Homebrew 아래의 코드를 복사해서 터미널에 붙여넣는다. 정상적으로 설치가 되면 이렇게 password를 입력하라고 하는데 그냥 enter쳐주면 다음 연결시에도 password 확인 없이 진행하게 된다. homebrew를 설치했다면, cask도 간단히 설치해준다. cask는 애플의 사파리, 구글 크롬같은 도구들의 설치를 도와주는 유용한 패키지다. 드디어 git을 설치한다. % brew install git 을 해주면 터미널이 열심히 돌아간다. 깃 설치가 완료되었다면 %git config --global user...

Python Django - blog, admin

장고걸스 튜토리얼을 참고했습니다. manage.py 가 있는 파일 경로로 들어가서 아래 명령어를 실행한다. % python manage.py startapp blog - manage.py 파일이 있는 경로에서 blog 파일을 생성한다. 그럼 이렇게 blog라는 이름의 폴더가 생성되고, apps.py 파일, migrations 폴더를 포함해 여러 가지 항목들이 패키지로 설치된 것을 확인할 수 있다. (*참고) 장고 걸스에서 가져온 현재 디렉터리 모습 blog 모델을 생성했다면 이 App이 설치되었다고 알려줘야한다. mysite에서 다시 settings.py를 실행한다. INSTALLED_APPS를 찾아서 'blog'를 추가해준다. 이렇게 'blog' 앱이 설치된 것을 인식시켜줬다면, 다음으로 blog에 대..

맥에 Django 설치

% python -m pip install django -먼저, 장고를 설치한다. % django-admin startproject mysite . -데이터베이스와 서버 세팅을 도와준다. 그럼 장고를 설치한 폴더의 하위에 mysite 폴더가 생성되고, 아래와 같이 settings.py를 확인할 수 있다. 열어서 몇가지 세팅을 해준다. TIME_ZONE은 웹에서 시간대 표시할 때 참고하는 지역이니 Asia/Seoul로 설정해주고, STATIC_ROOT = os.path.join(BASE_DIR, 'static') 를 통해 정적 파일 경로를 설정해준다. ALLOWED_HOSTS는 빈값으로 되어 있다. 아래와 같이 채워준다. 데이터베이스는 sqlite3으로 구동되는 것으로 보인다. 저장 후 terminal로 ..

맥 zsh - conda install 에러, pip install로 대체

이번에 새로 산 맥에 장고를 설치하려다가 conda install 관련 에러가 있어 내용을 기록한다. 우선, 사용자폴더에서 새롭게 sw_python이라는 폴더를 생성하고, 가상환경도 만들어 줬다. 가상환경 이름은 재미없지만 django_venv이다. 가상환경은 잘 생성되었다. conda activate django_venv 명령어로 가상환경을 실행한다. 이어서 conda install 명령어를 통해 django를 설치해줬다. 그리고, 장고를 실행하기 위한 mysite와 하위 파일들을 생성하려고 시도해보았으나 No module named 'django' 메시지가 뜨면서 실행되지 않는다. 이어서 django --version 으로 설치가 되었는지 확인해보니 command not found: django 라고..

맥(Mac) 터미널 경로설정 - 아나콘다(Anaconda), 2020년 5월 10일 기준 updated

오랜만에 맥에 아나콘다를 설치하고 가상 환경을 띄우려는데, 에러가 발생했다. 구글링 해보면 대부분 export PATH="/Users/username/anaconda/bin:$PATH"로 설정하면 된다 는 내용이 많다. 동일하게 시도했을때, 아래와 같이 에러가 발생한다. 초기화도 해보았으나 No action taken. 이라는 모호한 내용이 출력된다. 구글링 해보니 2019년 말 기준 맥 터미널이 zsh환경이 default로 잡히면서 몇 가지 업데이트로 인해 경로를 다르게 설정해주어야 한단다. 우선 경로는 conda.sh 파일이 있는 폴더로 찾아본다. ~~ anaconda3/etc/profile.d 경로 하위에 conda.sh 가 있기 때문에 아래와 같이 export 해준다. 이제 아래와 같이 작성하고,..

JavaScript - '객체 참조', assign()

자바스크립트에서 객체는 복사되지 않고, 참조된다. 이러한 이유에서 예상하지 못했던 값의 변화로 에러를 경험하곤 한다. 사람은 현실에서든, 코드에서든 원본이 변하는 것을 좋아하지 않는다. 원본은 유일해야 하며 필요에 따라 수정할 경우 복사본을 이용하는 것이 좋다. 이런 점에서 객체를 참조하고, 원본을 수정할 수 있는 자바스크립트의 특성은 취약점이다. 자바스크립트는 prototype을 통해 얼마든지 객체 원본을 변형할 수 있다. ES2015부터 이 취약점을 해결하기 위해 assign()이라는 메서드를 제공하고 있다. 특정 객체를 전달할 때 원본을 참조하는 것이 아니라 새로 만들어서(복사) 전달하자는 컨셉이다. 사실 assign() 메서드가 등장하기 전까지는 주로 json을 활용했다. 객체를 json 형태로 ..

JavaScript - 함수 Parameter vs Argument

함수의 목적은 '재사용' 이다. 아주 간단한 sum() 함수를 살펴보자. function sum(x, y){ return x + y } console.log(sum(1,2)) //3 console.log(sum(2,4)) //6 console.log(sum(4,6)) //10 console.log(sum(10,20)) //30 이 함수를 통해서 계산(합산)하고자 하는 데이터를 얼마든지 입력하고 그 결과를 반환받을 수 있다. 좀 더 복잡한 함수를 생각해보자. function impulse(x,y,z){ return ((x+y)-z)*x*y*z } console.log(impulse(3,2,1)) //24 console.log(impulse(6,5,4)) //840 console.log(impulse(30,..

JavaScript - 가변인자, 클래스, 배열 순회

자바스크립트의 높은 자유도는 협업을 하거나 에러를 수정할 때 불편함으로 다가온다. 따라서 고의적으로 명시적 코드를 작성해줄 필요가 있다. 처음 입문하더라도 명시적인 코드와 관련해 대표적인 3가지 유형을 알고 넘어가면 좋다. '가변 인자', '클래스' 그리고 '배열 순회'에 대해 알아보자. 1. 가변 인자 자바스크립트의 함수는 인자를 적게 받거나 다른 타입으로 받더라도 오류가 발생하지 않는다. 매개변수를 지정하지 않고 변할 수 있는 인자, 즉 가변 인자를 받을 수 있도록 되어 있기 때문이다. function sum() { let res = 0; for (let i = 0; i < arguments.length; i++) { res += arguments[i]; // 선언하지 않은 arguments를 사용하..

JavaScript - const(), freeze()

생활코딩 이고잉님 강의(JavaScript Immutability) 수강 중 정리한 내용입니다. 자바스크립트의 높은 자유도로 인해 의도적으로 수정을 제한하는 문법이 생겨났는데, const와 freeze다. const는 변하지 않는 값. 상수를 지정하는 키워드로 let과 반대되는 개념이다. (const와 let이 등장하지 않았던 시절의 var와 비교해볼 수도 있다.) const 키워드를 통해 한번 값이 지정되면 그 값은 변할 수 없다. 값이 특정 메모리에 위치한다는 것을 생각했을 때 const로 지정된 '이름(name)' 을 변경할 수 없다는 의미다. const가 나오기 이전 ES5에서 객체의 자유도에 제한을 주기 위한 메소드 freeze()가 등장했는데, const과 자주 비교되는 메소드다. const가..