[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타 189

Node.js - nodemon

nodemon node (js파일명).js로 서버를 실행하면 소스가 변경될때마다 서버를 내렸다 다시 올려야한다. 하지만 이는 매우 귀찮고 불편하다. nodemon이라는 패키지를 설치하면 소스가 변경될때마다 서버를 내렸다 올리지 않아도 바로바로 적용될 수 있는 nodemon 명령어를 사용할 수 있다. npm install -g nodemon 을 통해 설치한다. npm install -g nodemon 설치가 완료되었다면 nodemon (js파일명).js 명령어를 사용해 서버를 열 수 있다. nodemon을 통해 서버를 올린다면 서버를 내렸다 올리지 않아도 바로바로 소스코드 수정사항이 적용된다. 가끔 html파일이 제대로 실시간 적용이 안되는 경우가 있다. 그 경우에는 nodemon -e js,html (j..

🛠 기타/WEB 2020.10.13

Node.js - express 시작

Express란 nodejs로 웹서버를 구축하는 방법은 다양하다. http 패키지를 사용해 구성할 수도 있고, 그 외에도 다양한 웹 프레임워크 패키지가 존재한다. node.js에서 사용하는 웹 프레임워크 패키지 중 하나이다. 왜 Express를 사용해야하는가 다양한 웹 프레임워크가 존재하지만, 제일 대중적이다. 따라서 프로젝트 진행시 인원 보충에도 좋고, 레퍼런스가 풍부해 참고자료도 많다. Express 사용해보기 npm install express 명령어를 통해 express 패키지를 설치할 수 있다. 설치 후 다음과 같은 코드를 작성하여 기본적인 기능을 테스트한다. 각 코드의 의미는 주석으로 설명했다. 기본적으로 request와 response에 대한 이해가 필요하다. const express = r..

🛠 기타/WEB 2020.10.13

Node.js - 설치 / NPM

Node.js란? 웹브라우저에서 쓰이는 자바스크립트를 서버에 사용가능하도록 한 것 V8(크롬에 탑재된 자바스크립트 엔진)의 적용으로 프론트엔드쪽에서만 주로 사용되던 자바스크립트를 서버에서 사용할 수 있게 되었다. Node.js 설치 https://nodejs.org/ko/download/ 해당 링크에서 설치파일을 다운받아 설치 후 cmd혹은 커맨드창에서 node -v, npm -v를 쳐서 버전을 확인한다. NPM Nodejs Package Manager의 약자로, 다른 사람이 제작한 모듈을 받아와 활용하는 것이다. 다양한 모듈이 존재하며, 처음엔 npm init으로 패키지에 대해 초기화를 한 후에 작업을 진행한다. 이러한 과정으로 package.json 이라는 패키지 관리 파일이 생성된다. 그리고 이제 ..

🛠 기타/WEB 2020.10.12

django 기초 - model에서 이미지 사용하기

이미지 사용하기 사용자로부터 이미지를 받고 이를 처리하기 위해선 별도의 처리가 필요하다. settings.py settings.py에 이미지의 경로를 설정하는 코드를 추가한다. 우리는 이미지를 루트디렉토리의 media 폴더에 넣어줄 것이다. MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' MEDIA_ROOT : 이미지가 저장될 경로 MEDIA_URL : 이미지가 사용될 때 표현될 URL models.py 우리가 사용할 model class에 이미지 필드를 추가해준다. image = models.ImageField(upload_to='appname', null=True) 이렇게하면 사용자가 모델에 입력한 이미지파일은 'appname/이..

🛠 기타/WEB 2020.09.14

django 기초 - templates 관리하기 (base.html)

base.html {% load static %} {% block content %} {% endblock %} 기본적인 틀은 위와 같다. 여기에 필요에 따라 코드를 수정 및 추가하게 된다. 추후 작성하는 html은 base에 작성된 코드를 제외하고 block({% block style %} / {% block content %})에 작성될 부분만 작성하면 된다. 말그대로 모든 html의 base가 된다. cf. base.html은 그저 대표적인 이름이자 파일일 뿐이고, 다른 이름 (menu.html, navi.html, ...)으로 작성해 여러 파일을 필요에 따라 활용할 수도 있다. base를 사용해 templates를 관리하는 이유 우리가 웹페이지를 이용하다보면 페이지를 이동해도 계속해서 존재하는 상..

🛠 기타/WEB 2020.09.13

ORM 이란

ORM(Object-Relational Mapping) 객체 관계 매핑(Object-relational mapping; ORM)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법이다. 객체 관계 매핑을 가능하게 하는 상용 또는 무료 소프트웨어 패키지들이 있고, 경우에 따라서는 독자적으로 개발하기도한다. (출처 : 위키백과) django를 예로 들자면 파이썬 클래스를 통해 데이터테이블의 형태를 정의하고, 해당 클래스의 인스턴스를 추가함으로써 데이터를 추가할 수 있도록 하는 것이다. 데이터베이스를 프로그래밍 언어 다루듯 다룰 수 있어 용이하다.

django 기초 - app 단위별로 url 정리하기

app 단위별로 url을 정리하는 이유 django로 프로젝트를 진행하다보면 상당히 많은 url들이 생긴다. 각 url은 각 app들의 views와 연결되기 때문에 프로젝트 규모가 커질수록 상당히 처리하기 복잡해진다. 따라서 각 app과 관련된 url(각 app의 views.py와 연결되는 url)들만 따로 정리하는 것이 좋다. app 폴더들에 urls.py 생성 먼저 각 app들의 폴더에 urls.py 파일을 만든다. 그리고 아래와 같이 작성한다. from django.urls import path from . import views urlpatterns = [ ] 이 곳에 필요한 url들을 작성하게 될 것이다. 해당 app 폴더 내의 views를 사용할 것이기 때문에 'from . import..

🛠 기타/WEB 2020.09.13

Linter와 Fomatter

Linter Linter는 사용자가 에러 혹은 표준과 다른 코드를 작성하지 않도록 도와준다. 에러가 작성되면 자동으로 빨간 줄을 그어 오류여부를 알려준다. vscode에서 [Ctrl + Shift + P] 로 커맨드창을 열 수 있는데, 그 곳에서 Select Linter를 검색해 사용할 수 있다. 일반적으로 pylint / flake8 을 많이 사용한다. Fomatter Fomatter는 사용자가 코드를 최대한 일정 형식에 맞춰 관리할 수 있도록 도와준다. 아무렇게나 코드를 작성해도 저장을 하는 순간 Fomatter가 작동해 형식을 맞춰준다. vscode에서 [Ctrl + Shift + P] 로 커맨드창을 열 수 있는데, 그 곳에서 Fomat selection를 검색해 사용할 수 있다. black이라는 ..

[scikit-learn 라이브러리] 특이값분해 (SVD)

특이값분해 (SVD) PCA의 경우 정방행렬(행과 열의 크기가 같은 행렬)만을 고유벡터로 분해할 수 있으나 SVD는 정방행렬뿐만 아니라 행과 열의 크기가 다른 행렬에 대해서도 적용할 수 있다. SVD는 m x n 크기의 행렬 A를 분해하여, U, ∑, V 행렬로 만든다. 행렬 U와 V에 속한 벡터는 특이 벡터(Singular Vector)라고 하며, 모든 특이 벡터는 서로 직교하는 성질을 가진다. ∑는 직사각 대각 행렬이며, 행렬의 대각에 위치한 값만 0이 아니고 나머지 위치의 값은 모두 0의 값을 가진다. m n인 경우 두번째와 같이 분해 ∑의 0이 아닌 대각 원소값을 특이값(Singular Value)라고 한다. TruncatedSVD # 2개의 주요 c..

[scikit-learn 라이브러리] 특성 자동 선택

특성 자동 선택 특성이 너무 많아지면 모델이 복잡해지고 과대적합 가능성이 올라간다. 따라서 유용한 특성만 선택하고 나머지는 무시해서 특성의 수는 줄이는 것이 좋다. 특성 선택 방법 : 일변량 통계, 모델 기반 선택, 반복적 선택 일변량 통계 특성과 타켓 사이에 중요한 통계적 관계가 있는지 계산하고 깊게 관련된 것만 선택한다. from sklearn.feature_selection import SelectPercentile # SelectPercentile을 사용하여 특성의 50%를 선택하는 모델 생성 select = SelectPercentile(percentile=50) # 특성 선택 select.fit(X_train, y_train) X_train_selected = select.transform(X..