Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:x.x.x:compile 에러
·
이전자료/웹개발
깃허브에서 다른 분의 프로젝트를 가져와서 mvn clean package를 했을 때 발생했던 에러입니다. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project noticeboard: Fatal error compiling: error: release version 1.8 not supported -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X swi..
Vuejs Reactivity 이해하기
·
이전자료/웹개발
DOM(Document Object Model)이란? DOM은 프로그래밍과 웹 문서 간의 어떠한 접점(interface)을 통해서 웹 문서를 자유롭게 조작하며 상호작용(interact)이 가능하다. View > ViewModel > Model 흐름 사용자가 View에서 어떠한 이벤트(마우스 클릭, 키보드 입력 등)가 발생했을 때 DOM Listeners가 듣고 자바스크립트에 있는 데이터를 바꿔주거나 자바스크립트에서 특정 로직을 실행하게 된다. 또 자바스크립트 내용이 바뀌었을 때 directives를 통해서 화면에 반영하게 된다. 이 흐름이 코드상에서 어떻게 흘러가는지 확인해보자. 기존 웹 개발 방식 데이터 갱신을 한다고 했을 때 아래의 중복 코드 발생 div.innerHTML = str; Reactivi..
SQL 튜닝 및 사례 연구 (SQL 튜닝, 인덱스 튜닝)
·
이전자료/웹개발
데이터베이스 https://blog.couchbase.com 그리고 https://www.slideshare.net/samuelberthe/confrence-nosql-et-scalabilit 관계형 비관계형 데이터 스토리지 행 및 열 데이터 스토리지 키값 문서 및 그래프 스키마 고정 스키마 동적 SQL 기반 쿼리 문서 수집에 집중 수직적 (scale up) 수평적 (scale out) 데이터 정합성 빠른 읽기 쓰기 비관계형 이전에는 Dataware House를 사용. 관계형 데이터베이스는 확장 시 downtime과 max limit 등의 단점이 있다. 때에 따라 다르지만 비관계형 데이터베이스는 어플리케이션 먼저 만들고 DB 구성한다. 요즘에는 비관계형으로 데이터를 받고 필요한 부분 관계형으로 저장한다...
SQL 튜닝 및 사례 연구 (조인 튜닝)
·
이전자료/웹개발
전제조건 문제에 나타나는 쿼리만 생각하고 최대한의 튜닝을 진행 하였습니다. 그래서 인덱스 생성에 따른 트레이드오프에 대한 고려는 하지 않았으니 참고 바랍니다. ​문제1 실행계획을 봤을때 TB_CUST, TB_ORD 둘다 풀테이블 스캔을 하고 있습니다. 1:M관계로 TB_CUST 테이블을 드라이빙 테이블로 잡으면 좀더 나은 성능을 보여줄것 같습니다. WHERE절에서 사용하는 인덱스 및 조합인덱스를 추가하고, 드라이빙 테이블인 TB_CUST를 기준으로 TB_ORD테이블과 조인할때 NL방식으로 진행합니다. 문제2 데이터가 더 많은 TB_ORD 테이블을 드라이빙 테이블로 잡고 TB_PRDT를 드리븐 테이블로 NL를 하고있습니다. 또 실행계획에서 TB_ORD 테이블에 많은 랜덤엑세스가 발생하고 있습니다. TB_P..
자바스크립트 압축(uglifsjs) 및 복원(beautify) 하기
·
이전자료/웹개발
이렇듯 길이가 조금 있는 소스코드는 최대한 압축하면 사이트 반응속도를 좀더 개선할 수 있습니다. 위 코드는 개발 모드가 아닐 때 min.js 파일을 호출하기 위한 함수입니다. app.js를 uglifsjs 혹은 기타 웹사이트에서 압축을 하여 app.min.js 파일을 만든 결과 파일의 크기가 어느 정도 작아진 것을 볼 수 있습니다. http://webmail.09danawa.co.kr 메일 전송 및 기타 테스트해보고 싶으신 분들은 말씀 주시면 아이디 패스워드 만들어 드리겠습니다. ​ uglifsjs로 압축 npm install uglify-js -g 설치가 완료되면 압축할 자바스크립트 파일이 있는 디렉토리로 이동합니다. 그리고 난 뒤 아래의 명령어를 입력하세요. uglifyjs app.js --outpu..
node.js(express) .env로 DB정보 따로 관리하기
·
이전자료/웹개발
dotenv 는 환경변수를 .env 파일에 저장하고 process.env를 통해서 로드하는 의존성 모듈이다. .env를 사용하기 위해서 관련 라이브러리를 npm을 통해 설치한다. .env 파일 내용을 process.env에 로드할때 필요한 설정 함수를 작성한다. .env 설정 값을 사용하는곳에 작성해주면된다. key = value 형태로 입력이 되어 있어야한다. 나는 예시로 DB_CONNECT key로 하였다. DB커넥션 하는 부분에 process.env.DB_CONNECT를 통해서 value의 값을 가져올수있다. 만약 github에 올릴 목적이라면 .env를 .gitignore로 제외 시켜주면 DB 접속 정보를 노출시키지 않을수 있다.
프로그래밍에서 논리란?
·
이전자료/웹개발
논리란? 일반 생활에서 다른 사람과 같이 생활하고 다른 사람과 협업할 때 서로를 이해할 수 있는 가장 객관적인 기준이다. ​ 내 주장을 펼치고 다른 사람이 내 의견에 동의하게 만들어야 할 때 혹은 상대방을 설득해야 할 때 마구 우기고 그래야 해!라고 하는 건 강제로 압박하고 꼰대질 하는 것이라고 할 수 있다. 이런 식으로는 다른 사람을 설득할 수 없다는 건 다들 동의하는 부분이다. 서로 이해하고 공감하고 협력해서 뭔갈 이뤄나가려고 하면 상대방을 설득해야 하는데 그 설득력에 기반되는 것이 '논리력'이라는 것이다. ​ 우리는 프로그래머다 남을 설득하거나 그럴 일이 종종 있어 논리력이 중요하다곤 하지만 그보다 더 중요한 부분은 객관적으로 무언가를 바라볼 수 있느냐이다. ​ 그게 왜 중요하냐? 컴퓨터는 감정이 ..
비트 마스킹,비트연산으로 비트 가지고 놀기 이진수를 이용한 꼼수
·
이전자료/웹개발
이진수가 특히 좋은 점 이진수로 굉장히 많은 꼼수가 가능한 이유는 간단하기 때문이다. 한자리 숫자가 0,1이기 때문에 굉장히 재미있는 걸 많이 할 수 있다. 비트 연산 여기의 코드가 한 줄 있다. int a; 이 번수 a에 어떤 값이 들어 있는지 모른다. 이 변수와 비트 연산만 이용해서 변수의 값을 0으로 초기화할 수 있을까? 어차피 비트 연산은 몇개 없으니 다 해보면된다. 모르면 일단 해보면서 보고 그 관찰한 결과가 왜 나오는지 고민하면 된다. 변수 a의 하위 8비트의 값이 '0101 1010'이라 가정한다. 어떤 비트 연산을 하면 a의 값이 0이 될까? a = a ? a; xor 같은 숫자 면 모두 0이 된다. 일반적으로 a = 0 보다 a = a ^ a이 성능이 더 빠르다. 성능이 중요한 임베디드 ..