반응형 *:;전체보기;:*696 javascript Object 의 property가 있는지 체크하는 여러 방법 javascript Object 의 property가 있는지 체크하는 여러 방법 1. typeof 사용 const obj = { name : "geonlee", age : 36 } if(typeof obj.name === "undefined"){ console.log(false); }else{ console.log(true); } 객체의 속성이 없을 경우 선언하지 않은 값에 접근하게 되어, undefined 가 됩니다. typeof 를 사용하여 undefined 인지를 확인할 수 있습니다. 2. hasOwnProperty const obj = { name : "geonlee", age : 36 } if(!obj.hasOwnProperty("name")){ console.log(false); }else{ .. Programing/JavaScript 2021. 10. 27. javascript 최적 반복문 패턴 for, while, for..in, for...of, foreach javascript 최적 반복문 패턴 for, while, for..in, for...of, foreach javascript 최적 반복문 패턴에 대해 알아보겠습니다. 일반적으로 반복문은 for를 사용하며, 아래와 같이 사용합니다. const array = [1,2,3,4,5]; for(let i=0; i Programing/Design Patterns 2021. 10. 25. springboot application.properties server.error 설정 ErrorController springboot application.properties server.error 설정 ErrorController springboot의 에러 설정에 대해 알아보겠습니다. springboot 에러 설정은 기본 설정파일인 application.properties 파일에서 간단히 할 수 있습니다. server.error.path : 에러발생 시 전달 할 경로 (default : /error) server.error.include-exception : 응답에 exception을 포함할지 여부 (default : false) server.error.include-stacktrace : 응답에 stacktrace를 포함할지 여부 (default : never) server.error.whitelabel.enab.. Programing/Springboot 2021. 10. 22. 주니어 개발자가 들이면 좋은 습관! 주니어 개발자가 들이면 좋은 습관! 현업에서 개발자로 10년 가까이 일을 하면서 느낀 주니어 개발자가 반드시 들여야할 습관을 정리해 보려고 합니다. 지극히 개인적이지만 도움이 되는 정보이길 바랍니다. 우선 개발자가 아니어도 들이면 좋은 습관들 입니다. 1. 폴더관리 처음 신입으로 입사를 하게되면 폴더관리가 엉망입니다. 보내준 파일을 찾아보라고 해도 여기 저기 뒤적뒤적 하죠. 폴더 관리는 별 것 아닌 것 같지만, 업무 효율성을 높이는데 도움을 줍니다. 예를들면 저 같은 경우 프로젝트별로 모두 같은 폴더구성을 가지고 있습니다. 01.project ㄴ 01.project명 (2021.01.01 ~ 2021.12.31) ㄴ 01.받은자료 ㄴ 02.작성자료 ㄴ 03.전달자료 ㄴ 04.참고자료 ㄴ 05.구현자료 현.. Programing/JavaScript 2021. 10. 19. javascript Template literals (Template strings) 문자열 병합 javascript Template literals (Template strings) 문자열 병합 이번 포스팅에서는 javascript에서 문자열을 병합하는 방법을 알아보겠습니다. ECMA6 이전에서 문자열을 병합 할때는 + 연산자를 사용하거나 const firstName = "geon"; const lastName = "lee" console.log("My name is "+firstName+" "+lastName+"."); String.prototype.concat() 함수를 사용했었습니다. const firstName = "geon"; const lastName = "lee" console.log("My name is ".concat(firstName, " ", lastName, ".")); 이런 .. Programing/JavaScript 2021. 10. 19. iframe innerText 공백 non breaking spaces 처리 iframe innerText 공백 non-breaking space 처리 iframe 내의 텍스트를 DB에 저장 할 때 innerText로 뽑아서 저장을 하면 공백이 이상한 문자로 저장되는 경우가 있습니다. HTML 요소 내 공백은 $nbsp; (none-breaking space) 로 표현되며 이는 공백 처럼 보이지만 DB에 저장할 때 이상한 문자가 삽입됩니다. 그래서 innerText로 뽑은 텍스트 내 none-breaking space를 치환 해주어야 합니다. 우선 받은 텍스트를 유니코드로 치환해 줍니다. let ctnt = encodeURI(frame.innerText); 유니코드에서 none-breaking space는 %C2%A0 입니다. 이를 실제 space 로 치환해 줍니다. let ct.. Programing/JavaScript 2021. 10. 19. Spring @Transactional 이 정상동작 하지 않는 이유 Spring @Transactional 이 정상동작 하지 않는 이유 interface 메소드에 @Transactional 어노테이션을 사용하여 처리할 경우 아래의 Link를 참고하세요. https://aljjabaegi.tistory.com/473 Spring Transaction 설정 방법. 에러발생? 롤백해. Spring Transaction 설정 방법. 에러발생? 롤백해. Transaction 처리는 쉽게 말해 DB의 상태를 바꾸는 작업단위입니다. 예를 들어 Delete 후에 Insert 를 해야 하는 로직이 있다면, 이 Delete, Insert는 하나.. aljjabaegi.tistory.com class 메소드에 @Transactional 을 줄 경우 정상동작 하지 않습니다. 이유는 트랜젝션이.. Programing/Spring 2021. 10. 14. mybatis 그리드 멀티 정렬 방법 order by many fields with dynamic query mybatis 그리드 멀티 정렬 방법 order by many fields with dynamic query 복수의 컬럼으로 ORDER BY 하는 방법을 알아보겠습니다. ORACLE 기준입니다. 타 DB의 경우 알맞게 쿼리부분을 수정하세요. 우선 프론트에서는 배열로 정렬할 컬럼과 정렬 방식을 전달합니다. [ajax parameter object structure] sorting : [ {column : '정렬할 컬럼명1', order: "정렬방식"}, {column : '정렬할 컬럼명2', order: "정렬방식"} ] 예를들어 그리드의 헤더를 클릭하면 "", "desc", "asc" 순으로 값이 순환되게 됩니다. 정렬방식이 "" 라면 배열에서 제거 합니다. (splice) 쿼리에서는 if, foreac.. Programing/JAVA 2021. 10. 12. Java 대용량 데이터 DB 처리 방법, batch Java 대용량 데이터 DB 처리 방법, batch 많은 양의 데이터를 insert 하거나 update 해야 할 때 mybstis dynamic query를 사용하게 되면 메모리 에러가 발생할 수 있습니다. 이럴 때 사용할 수 있는 방법이 batch를 활용한 방법인데요. 이번 포스팅에서는 그 사용법과 mybatis dynamic query와 비교를 해보도록 하겠습니다. 우선 프론트에서 Json Array로 다량의 데이터를 받아 데이터를 update 한다고 하면 아래와 같이 dynamaic query를 활용할 수 있습니다. UPDATE 테이블명 SET 컬럼 = #{item.column} WHERE 테이블키 = #{item.key} 이 방법은 반복문을 돌면서 update 쿼리를 붙여 PL/SQL 문을 만들어.. Programing/JAVA 2021. 10. 8. ORACLE LAG, LEAD 함수 사용법 (이전, 다음 행의 값에 접근) ORACLE LAG, LEAD 함수 사용법 (이전, 다음 행의 값에 접근) 오라클에서 조회한 데이터의 이전, 다음 행에 접근해야 하는 경우가 있습니다. 뭔가 순서가 있는 데이터에서 사용을 하는데요, 이번 포스팅에서는 이전, 다음 행에 접근하는 LAG, LEAD 함수의 사용법을 알아보겠습니다. LAG : 이전 행의 값에 접근 LEAD : 다음 행의 값에 접근 예를들어 학생별로 수학 점수가 있는 데이터가 있을 때, 점수로 정렬 한 후 다음 학생과의 점수차를 구하고 싶다고 한다면 아래와 같이 작성할 수 있습니다. WITH STUDENT AS ( SELECT '이루리' AS STDT_NM, '수학' AS SBJT, 80 AS SCORE FROM DUAL UNION ALL SELECT '이건' AS STDT_NM.. Database/SQL 2021. 10. 7. javascript .focus() not working 포커스 함수 동작 하지 않는 이유 javascript .focus() not working 포커스 함수 동작 하지 않는 이유 javascript의 focus 함수는 DOM 내 요소에 포커스를 이동할 때 사용합니다. 동적으로 추가된 요소에 포커스를 이동하는 경우 요소가 추가되기 전에 포커스를 준 경우 함수가 동작하지 않습니다. 이럴경우에는 setTimeout 함수를 주어 delay를 주면 동작합니다. setTimeout(function(){ document.getElementById("newElement").focus(); },100); 하지만 포커스를 주기 전에 console로 확인하여 객체가 있음에도 불구하고 focus 함수가 동작하지 않을 때가 있습니다. table 요소의 tr (행) 에 포커스를 줄 때가 그런데요. 이 때는 tabi.. Programing/JavaScript 2021. 10. 5. javascript 수선의 발 구하는 방법, 직선과 점의 가장 가까운 점 구하는 방법, 폴리라인과 마커간 최단거리 javascript 수선의 발 구하는 방법, 직선과 점의 가장 가까운 점 구하는 방법, 폴리라인과 마커간 최단거리 이번 포스팅은 수학적인 지식이 약간은 필요합니다. 수선의 발(foot of perpendicular) 이란 수선과 직선 또는 평면이 만나는 점을 뜻하며, 한 점에서 직선 또는 평면에 대해 수선을 그었을 때 만나는 점을 의미합니다. 간단히 직선과 점을 이은 수선의 각이 90도가 되는 점을 의미합니다. (점과 직선과의 최단거리) 아래의 이미지 처럼 검은색 두 점을 연결한 직선과 파란색 점을 연결하였을 때 직각이 되는 빨강색 점을 수선의 발이라고 합니다. 이제 이 수선의 발을 구하는 공식을 사용하여 카카오 지도에 표시해 보도록 하겠습니다. 저의 경우 링크와(폴리라인) 정류소(마커) 사이의 최단거리.. Programing/JavaScript 2021. 9. 28. 자주 발생하는 오라클 에러 정리 Oracle Error 자주 발생하는 오라클 에러 정리 [Error] ORA-01741: 길이가 0인 식별자는 부적합합니다 [Solution] 쿼리 내 더블쿼텐션(") 이 사용됐는지 확인해서 싱글쿼텐션(') 으로 변경 [Error] ORA-01722: 수치가 부적합합니다 [Solution] 숫자와 문자가 섞인 컬럼일 경우 발생. 정규식을 사용해 숫자만 추출한 후 사용 TO_NUMBER(REGEXP_REPLACE(컬럼, '[^0-9]')) [Error] ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다. [Solution] DB 컬럼에 설정된 길이보다 큰 값이 넘어갈 때 발생하는 에러, 저장 할 파라미터의 크기를 체크! [Error] ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습.. Database/SQL 2021. 9. 6. 카카오 지도 보이는 영역 내 마커만 표출 방법 카카오 지도 보이는 영역 내 마커만 표출 방법 카카오 지도에서 보이는 영역 내 마커만 표출하는 방법을 알아보도록 하겠습니다. 보통 지도 내 표출해야 될 마커의 개수가 많을 경우 브라우저의 성능이 현저히 떨어지기 때문에 지도 레벨과 영역에 따라 표출할 마커를 다르게 설정합니다. 카카오 지도의 레벨 변경 감지 이벤트는 아래와 같이 추가 할 수 있습니다. kakao.maps.event.addListener(MAP, "zoom_changed", function() { //do something.. }); 콜백 함수 내에서는 this.getLevel() 을 통해 현재 레벨 값을 구할 수 있습니다. 예를 들어 3 레벨 이하일 경우에만 지도 영역 내 모든 정보를 가져오는 코드를 작성해보겠습니다. kakao.maps... Programing/JavaScript 2021. 9. 2. javascript 2개 div 스크롤 위치 동기화 처리, 동시에 같은 위치로 움직이기 javascript 2개 div 스크롤 위치 동기화 처리, 동시에 같은 위치로 움직이기 2개의 그리드가 있을 때 어떤 그리드에서 스크롤을 움직이든 2개의 그리드의 스크롤 위치를 동기화 하는 방법에 대해 알아보도록 하겠습니다. 스크롤 위치는 돔 요소의 scrollTop 을 변경해주면 됩니다. 간단히 생각해보면 스크롤이 생기는 요소에 scroll 이벤트를 등록하여 다른 요소의 scrollTop 값을 적용해주면 될 것 같습니다. document.getElementById("grid1").addEventListener("scroll", function(){ document.getElementById("grid2").scrollTop = this.scrollTop; }); document.getElementByI.. Programing/JavaScript 2021. 9. 1. 이전 1 ··· 7 8 9 10 11 12 13 ··· 47 다음 💲 추천 글 반응형