본문 바로가기

Developing Note10

Intellij Cannot find sysmbol 오류 해결하기 Spring boot를 이용해서 웹 프로젝트를 하는 중인데 Intellij를 설치 후 코드 작성한 다음 실행시키려고 하니 계속 오류를 뿜어서 찾던도중 간단한 방법으로 해결할 수 있어서 글로 남기려 한다. IntelliJ 설정 -> Build, Excution, Deployment -> Compiler -> Annotation Processors에 Enable annotation Processing 체크박스를 해주면된다. 2019. 3. 1.
서버에 패스워드 안전하게 저장하는 방법 (Node.js + MongoDB) - bcrypt 서버에 패스워드 안전하게 저장하는 방법 - bcryptNode.js와 MongoDB로 웹 페이지를 만들면서 비밀번호는 사실 String으로 만들어 두었었다.이때까지 완벽하게 구현하는게 목표였지 보안에는 신경을 쓰지않았었다.그러던 중 포프님의 해시와 암호화를 보고나서 암호를 PlainText로 저장하는건 자살행위나 다름없구나라고 깨닫고 비밀번호를 암호화 하는 방법을 찾아보았다. 서버에 패스워드를 저장하는 방식의 문제점들보통 서버에 사용자의 Password를 두가지 방식으로 저장을한다.1. Plain Text2. 해시값일단 첫번째 경우 보안의 중요성을 몰랐을때 저지르는 실수인데, 만약 이런 웹사이트에서 회원가입을 하는건 인터넷상에 내 정보를 올리는 것과 마찬가지니 이런 곳에서는 회원가입을 하지 않는 것이 좋.. 2019. 1. 9.
IE환경 Bootstrap4 table flex 오류 해결하기 개인적으로 대학원 홈페이지를 만들면서 생기는 오류중에 브라우저간 호환성을 맞추는 작업이 가장 어려웠다. 초안으로 만들땐 jQuery1버전과 Bootstrap3버전을 이용했기 떄문에 Internet Explorer에서 별다른 오류사항이 나오지 않았다. (간혹 화면에서 멀리표시되는 오류빼면) 이번에 IE10이전 브라우저는 지원하지 않기로 결심하면서 jQuery를 버리고 Vanilla JS (ES6+)를 사용하고 Boostrap4로 업데이트 하였다. 그런데 크롬이나 파이어폭스에서는 문제가 나지 않았지만 IE11에서 오류가 나왔다. ES6문법을 지원하지 않았던 것이다. 이 문제는 babel로 풀었는데 또 다른 복병이 나타났다. 위 사진처럼 Table이 일정하게 나오지 않았다. No. 제목 작성자 작성일 조회수 .. 2019. 1. 9.
[JavaScript] 이벤트와 동시성모델 JavaScript는 싱글 스레드 기반 언어라는 큰 특징을 가지고있다. 싱글스레드라는 말은 곧, 한가지의 작업만 처리할 수 있다는 말인데 실제 웹 브라우저를 사용하다 보면 동작되는 JavaScript들의 수많은 작업들이 동시에 처리되고 있는 것 처럼 보인다. 싱글 스레드라는데 어떻게 동시에 여러가지 처리하는 것 처럼 느껴질까? 이유를 살펴보기 전에 JavaScript에서 Server Side 언어로 인기있는 Node.js의 Wikipedia 설명을 보았다. JavaScript기반에 Non-blocking I/O와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 가지고 있다. 라고 설명이 된다. 그렇다면 단일 스레드 이벤트 루프가 무엇일까? 이때, 자바스크립트에서는 이벤트 루프라는 개념을 사용한다. 먼저.. 2018. 12. 2.
[JavaScript]ES6 Object 객체 /* ES6 */ let tree = { height: 10, color: 'green', grow() { this.height += 2; } }; tree.grow(); console.log(tree.height); /* result = 12 */ JavaScript 변수는 속성이라고 불리는 Object data types를 가질 수 있습니다. 또한, Object는 메소드라고 불리는 속성을 가질 수 있습니다. 기존 object안에 function()을 사용하려면 (:) 콜론을 사용했지만 ES6부터는 사용하지 않아도 됩니다. 사각 Bracket을 이용하면 [], 속성 이름을 지정할 수 있습니다. let prop = 'name'; let id = '123'; let mobile = '001'; let us.. 2018. 10. 28.
[JavaScript]반복문 for in vs for of forEach 반복문 forEach 반복문은 Array 객체에서 사용이 가능한 메서드입니다. 배열의 요소들을 반복하여 작업을 수행할 수 있습니다. forEach 구문의 parameter로 callback 함수를 등록할 수 있고, 배열의 각 요소들이 반복될 때 이 callback 함수가 호출됩니다. const arr = ['element1', 'element2', 'element3']; arr.forEach(el => console.log(el)); /* result = element1, element2, element3 */ for ...in 반복문 for in 반복문은 객체의 속성들을 반복해서 작업을 수행할 수 있습니다. 모든 객체에서 사용이 가능합니다. for in 구문은 특히 객체의 key 값에 접.. 2018. 10. 28.