반응형

전체 글 62

[JavaScript] 변수 선언 var / let / const 차이

var function-scoped 변수 또는 전역변수로 선언할 때 사용한다. var x = 1; if (x === 1) { var x = 2; console.log(x); // expected output: 2 } console.log(x); // expected output: 2 var 선언의 범위가 function-scoped이면서 전역이기 때문에, 첫 번째 줄에 x와 네 번째 줄에 x가 같은 것으로 취급되었다. hoisting var 선언은 어디에 있든지, 어떤 코드가 실행되기 전에 처리된다. 이를 hoisting이라고 한다. 이는 즉슨, 선언하려고 하는 변수를 무려 선언하는 코드보다 위에서도 사용할 수 있다. bla = 2; var bla; 위와 같이 사용이 가능하다. let block-scop..

개발/JavaScript 2021.11.18

[Vue.js & nginx] 정적 Vue 프로젝트를 nginx에서 돌릴 때 발생하는 404 에러 해결 방법 / Vue nginx 설정

nginx 설정 location / { try_files $uri $uri/ /index.html; } 기본은 위와 같이 설정되어 있을 것인데, 이를 아래와 같이 바꿔주면 된다. location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^(.+)$ /index.html last; } try_files의 의미만 느끼는 대로 이해한다면, 본 코드는 어렵지 않게 이해하리라 믿습니다.

개발/Vue.js 2021.08.23

[nginx] Cross-origin 허용하기 / Access-Control-Allow-Origin 헤더 설정

https://enable-cors.org/server_nginx.html enable cross-origin resource sharing Contribute The content on this site stays fresh thanks to help from users like you! If you have suggestions or would like to contribute, fork us on GitHub. enable-cors.org 위와 같이 하는 방법도 찾아놓긴 했는데... 실패했고 Chrome 바로 가기를 하나 만든 후에 [속성] → [대상]에서 경로 뒤에 아래의 옵션을 추가하는 게 훨씬 편하다. --disable-web-security --user-data-dir="원하는 임의의 경로"..

개발 2021.08.20

[Flutter] 게시판 글 목록 무한 스크롤, Infinite Scrolling, Lazy Loading

스크롤 컨트롤러 구현하는 코드만 있습니다. 스크롤링 하면서 게시글 가져오는 SQL 쿼리에 대해서는 새로 글을 게재하게 되면 업데이트 하겠습니다. 스크롤 컨트롤러 구현하는 방법 class ExamplePage extends StatefulWidget { @override _ExamplePage createState() => _ExamplePage(); } class _ExamplePage extends State { // 화면의 스크롤을 관장하는 컨트롤러 ScrollController _scrollController = ScrollController(); @override void initState() { super.initState(); // 스크롤 컨트롤러에 리스너 부여 _scrollController..

[Dart/Flutter] Upload Multiple Images to Server Using PHP and JSON / 서버에 이미지 업로드

import 및 여러 가지 기본적인 요소는 생략 되어 있지만, 파라미터의 사용 등 중요한 부분은 생략하지 않았습니다. 구성 class, 페이지(view), 컨트롤러, php Class: img_key_value.dart class ImgKeyValue { String fn; String encoded; ImgKeyValue({this.fn, this.encoded}); Map toJson() => { 'fn': fn, 'encoded': encoded, }; } class IKVList { List imgKeyValues; IKVList(this.imgKeyValues); Map toJson() => { 'imgKeyValues': imgKeyValues, }; } 페이지: img_upload.dart ..

[MySQL] Can't find FULLTEXT index matching the column list 해결 방법

MySQL에서 FullText Search(전문 검색)를 하기 위해서는 인덱스가 필요하다. 처음에는, 그냥 WHERE MATCH와 AGAINST를 사용하면 될 거라고 생각했는데... Can't find FULLTEXT index matching the column list 위의 에러 메시지를 MySQL이 뿜었다. 말 그대로, FULLTEXT index가 필요하다는 뜻인데, ALTER TABLE `테이블 이름` ADD FULLTEXT(`칼럼명`, `칼럼명`, ...) 위 쿼리를 사용해서, search 하고자 하는 칼럼의 FULLTEXT index를 만들어준다. 그리고, WHERE MATCH, AGAINST를 사용하면 된다.

개발/MySQL 2021.07.24

[Nginx / Lightsail] POST 405 not allowed 해결 방법 - Vue.js Axios PHP PDO Post

Lightsail에 국한된 에러는 아니고, Nginx로 PDO(PHP Data Object)에 POST를 요청할 때 만날 수 있는 에러이다. 리눅스 기준으로 /etc/nginx/conf.d/default.conf 파일을 보면, server { root index server_name location / { ... } location ~ \.php$ { fastcgi_pass php-handler; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; } . . . } 두 번째 location ~ \.php$ { ... } 을 추가해주면 된다. CORS ..

개발 2021.06.18

[Vue.js] Axios로 Post 하는 방법

우선 axios가 사용 되는 소스 코드의 위치는 다음과 같다. src/store/index.js import axios from "axios"; export default new Vuex.Store({ state: {}, mutations: {}, actions: { functionName({commit}, payload) { return new Promise((resolve, reject) => { var params = new URLSearchParams(); params.append('var1', payload.var1); params.append('var2', payload.var2); params.append('var3', payload.var3); . . . axios .post(url, pa..

개발/Vue.js 2021.06.18
반응형