PHP: 일반 배열 순회하기, 복수의 배열 동시에 순회하기

PHP의 배열을 순회하려면 foreach를 사용합니다. 원소 값을 사용하는 방법은 다음과 같습니다. $array = array(“A”, “B”, “C”); foreach($array as $value){ echo “{$value}, “; } // 출력 결과: A, B, C, 조건문 $array as $value 에서 앞부분은 기존에 존재하는 배열 변수, 뒷부분은 value로 사용할 새로운 변수를 입력합니다. 새로운 변수의 이름은 변경할 수 더보기…

PHP: 특정 문자를 기준으로 배열로 나누기 (explode, preg_split)

다른 프로그래밍 언어의 split에 해당하는 기능입니다. 만약 다음 exmaple 변수를 세미콜론(;)을 기준으로 하여 배열로 분리한다면 $example = “123;456;789,0”; 단일 문자는 explode(문자, 스트링변수);를 사용합니다. $array = explode(“;”, $exmaple); 배열 0번은 123, 배열 1번은 456, 배열 2번은 789,0 입니다. 세미콜론은 기준 문자로 사용되었으므로 배열로 나눈 뒤에는 사라집니다. 기준으로 복수의 문자(조건)를 사용하고 싶다면 더보기…

자바스크립트: 배열 내 객체들의 정보를 이용해 배열을 정렬 (sort() 기능)

다음과 같이 배열이 있고 배열은 객체로 이루어져 있다고 한다면 var exampleArray = [ { id: 4, name: “최길동”, grade: “B” }, { id: 2, name: “이영자”, grade: “A” }, { id: 1, name: “김천시”, grade: “C” }, { id: 3, name: “박상옥”, grade: “D” }, ] 이 객체 배열들을 정렬하는 더보기…

Spring, JSTL: div 태그로 이루어진 이중 반복문 사용하기 (특정 개수별 구분)

예를 들어 15개마다 줄바꿈이 되는 이런 모양의 웹 페이지를 만들고 싶은데, 사용 태그가 div라면 HTML 페이지는 이런 형태가 될 것입니다. <!DOCTYPE html> <html lang=”ko”> <head> <meta charset=”UTF-8″> <title>Document</title> </head> <style> .list { display: inline-block } .list>div { margin: 10px; background-color: antiquewhite } </style> <body> <div class=”list”> <!– max 15 –> 더보기…

Spring Boot: 시큐리티(Security) – 3 – 로그인 및 권한 정보를 DB에서 가져오기

  깃허브에서 전체 코드 보기 – https://github.com/ayaysir/spring-boot-security-example-1 이전 글에서는 기초를 익히기 위해 사용자 및 권한 정보를 inMemoryAuthentication이라 해서 메모리에 하드코딩 했었는데요, 이것을 데이터베이스에 옮겨서 가져오도록 하겠습니다. 데이터베이스는 mariadb 기준입니다. macOS에서 mariadb 설치하기 Spring Boot: mariadb 연결하기 (JDBC-Maven 기준)   먼저 데이터베이스에 임의의 테이블을 만들고 사용자 정보를 입력합니다. 지금은 회원가입 절차가 없으므로 DB에 더보기…

Spring Boot: 시큐리티(Security) – 2 – 커스텀 로그인 페이지 만들기

  1. SecurityConfig 클래스의 configure(http) 에 다음 내용을 추가합니다. .formLogin().loginPage(“/login”).failureUrl(“/login?error”).permitAll() // .logout().logoutRequestMatcher(new AntPathRequestMatcher(“/logout”)) .addLogoutHandler(new TaskImplementingLogoutHandler()).permitAll().logoutSuccessUrl(“/”); loginPage는 로그인할 페이지의 주소이며 로그인이 필요한 상황에서 localhost:xxx/login 을 통해 로그인 화면으로 접속합니다. failureUrl은 로그인 실패했을 때 나타나는 뷰 페이지의 주소입니다. permitAll()이 없으면 권한 문제가 있는 경우 로그인 화면에 들어갈 수 없으므로 반드시 넣어줘야 합니다. 더보기…

자바스크립트: AJAX로 blob 타입의 리스폰스 가져오기(파일 다운로드)

https://stackoverflow.com/questions/16086162/handle-file-download-from-ajax-post 스프링을 통해 바이너리 파일을 다운로드하는 기능을 AJAX로 구현하려 했는데 서버에서는 용량이 1.5MB인 파일이 다운로드 될 때는 3MB로 부풀려져서 다운로드 되는 문제가 있었습니다. 파일이 깨진것이며 복구 불가능한 상태였습니다. 결론부터 말하면 XMLHttpRequest의 responseType 을 blob으로 설정해야 하며 JQuery AJAX 기능은 오류가 지속적으로 발생하므로 자바스크립트 기본 XMLHttpRequest를 사용하는 것을 추천합니다. var xhr 더보기…

자바스크립트: setInterval(반복 함수) 정지하는 방법 (clearInterval 사용)

자바스크립트에서 setInterval(function, millisecond)는 일정 시간(ms) 마다 함수를 실행하는 기능입니다. 예를 들어 millisecond를 1000으로 정하면 1초마다 함수를 반복 실행합니다. 참고로 0초(최초 setInterval이 실행되는 시점)에서는 실행되게 하려면 millisecond를 0으로 지정해야 합니다. 만약 1000로 설정했다면, 0초에는 아무 액션도 취하지 않고 있다가 1초 이후부터 실행 부분을 반복하게 됩니다. 실행되고 있는 인터벌 함수를 중지시키려면 clearInterval([인터벌 더보기…

axios: AJAX 데이터 받기 (Promise 기반) + 예제 (JSON 가져오기)

axios 홈페이지: https://github.com/axios/axios 사용법 axios는 Promise 기반의 AJAX 라이브러리입니다. 기본 형태는 다음과 같습니다. axios.get(‘/user’, { params: { ID: ‘anyvalue’ } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }) .finally(function () { // always executed }); axios.get 뿐만 아니라 post, delete, put, patch 등 리퀘스트 종류에 따라 사용할 수 있습니다. 더보기…

자바스크립트: 캔버스를 이미지 파일로 다운로드

<a> 요소를 만들어서 클릭 이벤트를 트리거시켜 다운로드 하는 방식입니다. var canvas = document.getElementById(“somewhere”) canvas.toBlob(function(blob) { var a = document.createElement(“a”) document.body.appendChild(a) a.style = “display: none” blob.type = “octet-stream” var url = URL.createObjectURL(blob) a.href = url a.download = “filename” a.click() window.URL.revokeObjectURL(url) }