목록분류 전체보기 121
여씨의 개발이야기
📢 이 버그 좀 보세요! Illegal continue statement :no surrounding iteration statement 라는 오류가 발생하였다. 🐞 버그가 나타난 이유? 아래 소스에서 함수 내에 continue를 넣어 발생한 오류였다. $('.base-data').each(function(index,item){ ... if(bdGroupCode[1] == 'MSDI_START_HOUR') { ... continue; } else if(bdGroupCode[1] == 'MSDI_START_MIN') { ... } else if(bdGroupCode[1] == 'MSDI_END_HOUR') { ... continue; } else if(bdGroupCode[1] == 'MSDI_END_MI..
이번 프로젝트에서 JSP가 아닌 Thymeleaf를 도입할 예정이라는 소식을 듣고 레퍼런스를 열심히 읽어보고 있다. 문서에 나와있는 내용들을 간단히 정리해보고자 한다. 1. Thymeleaf란? Thymeleaf란 자바 라이브러리이다. 이것은 XML/XHTML/HTML5 템플릿 엔진이며 애플리케이션에서 생성된 데이터 또는 텍스트를 표시하기 위해 템플릿 파일에 변환된 것을 적용할 수 있다. Thymeleaf의 주 목표는 템플릿을 만들 때 엘레강스하고 잘 구성된 방법을 우리들에게 제공하는 것이다. 이를 달성하기 위해서는 템플릿 내부 코드로 해당 로직을 명시적으로 작성하지 않고 DOM(Document Object Model)에서 사전 정의된 로직의 실행을 정의하는 XML 태그 및 속성을 기반으로 한다. 이 아..
프론트에 따로 입력할 날짜값을 세팅할 필요 없이, 쿼리에서도 timestamp값을 따로 입력할 필요 없이 mysql 자체 기능으로 update / insert 할 때마다 자동으로 날짜값이 업데이트 하는 방법이다. ddl 입력시 아래와 같이 입력하면 된다. CREATE TABLE TEST ( `idx` INT NOT NULL AUTO_INCREMENT, `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (idx) ); CURRENT_TIMESTAMP은 현재 시각을 의미하며, DEFAULT CURRENT_TIMESTAMP는 insert를 할 경우에 자동으로 현재 시각이 들어가도록 하는 명령어이..
"이 문제에는 어떤 알고리즘을 사용해야 할까? 더 빠르게 계산할 수도 있을까? 내가 직접 알고리즘을 설계해보자! 어떤 문제는 해결할 수 없다는 걸 증명해보자! 다양한 상황에서 스스로 생각해 문제를 해결해 내는 문제 해결력을 키우자!" 이 책을 소개하는 표지의 문구이다. 이번에 좋은 기회로 책을 얻게 되었다. 저자는 오츠키 켄스케라는 일본인이며 아래와 같이 이 책을 소개하고 있다. 오츠키 켄스케(지은이)의 말 알고리즘을 배운다는 건 단순히 지식을 흡수하는 것이 아니라 세상의 다양한 문제를 해결하는 수단을 늘려가는 것입니다. 알고리즘이란 원래 문제를 풀기 위한 절차를 말합니다. 알고리즘 동작을 구체적으로 이해하는 걸 넘어서 실제로 문제 해결에 도움이 될 때 비로소 알고리즘을 배웠다고 할 수 있습니다. 알고리..
사이드프로젝트를 하기 위해 깃헙을 탐험하던 도중, 허전한 내 프로필과 다르게 반짝반짝거리는 현란한 프로필을 여럿 마주하게 되었다. 도대체 어떻게 하는 거여요?! 알고보니 깃헙에는 여러가지 이스터에그가 존재한다고 한다!!wow 그 중 하나가 오늘 배울 깃꾸 이스터에그! 본인 닉네임으로 레포지터리를 만들면 아래와 같은 문구가 뜬다. 아래 뜬 경고창은 이미 만들어져있기 때문에 생긴 경고창! 초록색 라운드박스 안의 문구에 집중하자. 이 레포지터리를 만들면 자동으로 README.md 파일이 등록되어 있다는데 필자는 처음에 등록이 되어있지 않아서(생성시에 설정을 해줘야 함) 레포지터리를 생성한 후에 따로 추가해주었다. readme.md 파일 내에 예제 코드가 있으니 참고해서 만들면 될 것이다. 태그는 열심히 구..
요즘 weave scope 퍼블리싱을 하면서 jshint 오류를 계속 맞딱드리고 있다. (Weave Scope는 Docker 및 Kubernetes의 시각화 및 모니터링 도구이다.) 정리를 해두면 좋을 거 같아서 한 번에 정리해보겠다. 1. Script URL is a form of eval no-script-url Examples of incorrect code for this rule: /*eslint no-script-url: "error"*/ location.href = "javascript:void(0)"; location.href = `javascript:void(0)`; 2. Style prop value must be an object react/style-prop-object The is..
// async & await // clear style of using promise :) // 1. async async function fetchUser() { // syntactic sugar : promise 대신 async 한 단어만 넣으면 promise 기능 완! // do network reqeust in 10 secs.... return 'jisun'; } const user = fetchUser(); user.then(console.log); console.log(user); // 2. await ✨ function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function getApple() ..
Promise is a JavaScript object for asynchronous operation. - State: pending -> fulfilled or rejected - operation이 수행중일때 pending 상태 - operation 성공시 fulfilled / 실패시 rejected - Producer vs Consumer // 1. Producer // Promise는 클래스기 때문에 new로 생성 // 성공시 resolve(), 실패시 reject() // when new Promise is created, the executor runs automatically. // promise는 생성하는 순간, executor에 의해 자동으로 돌아가게 되어있음 const promise ..
요즘 회사에서 Vue.js 기반으로 한 웹 솔루션을 제작중인데 아무래도 Vue에서 권장하는 HTTP 통신 라이브러리가 axios여서 그런 지 솔루션에서도 axios를 이용해 api 통신을 하고 있다. 그러다 오늘 문득, Ajax와 Fetch, axios 이 세가지 통신 라이브러리에 대한 개념 정리가 필요하다는 생각이 들었다. 먼저 XMLHttpRequest(XHR)로 기반으로 제작된 Ajax에 대해 알아보자. 1. Ajax ajax란? Asynchronous javascript and xml의 줄임말로 직역하자면 비동기식 자바스크립트와 xml을 말한다. 자바스크립트를 이용한 비동기 통신으로, 클라이언트와 서버 사이에서 xml형태의 데이터를 주고받는 통신방법을 의미한다. jQuery에서 제공하는 $.aja..