자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하)

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하) 자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하) 자바스크립트: 객체지향 3 – class (ES6 이상)   상속에 대한 예제로 악기에 대한 추상 클래스(완벽하게 동일한 개념은 아니나 편의상 이하 객체지향 용어들을 사용합니다.) 를 작성해 보겠습니다. function MusicalInstrument(){ this.material = “추상적 더보기…

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하)

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하) 자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하) 자바스크립트: 객체지향 3 – class (ES6 이상)   new 키워드를 이용해 각종 정보를 담고 특정 기능을 수행하는 인스턴스를 만드는 기능입니다. 먼저 컨테이너 함수를 만들어야 합니다. 객체지향 언어의 클래스와 같은 역할입니다. 컨테이너 더보기…

자바스크립트: 배열 map, filter, apply + 예제: ABC(알파벳) 내비게이터

이하 내용들은 ES6 이상을 지원하지 않는 브라우저에서는 작동되지 않을 수도 있습니다. Array.prototype.map 배열을 순회합니다. var numbers = [1, 4, 9]; var roots = numbers.map(function(num) { return Math.sqrt(num) }); // roots is now [1, 2, 3] // numbers is still [1, 4, 9] Array.prototype.filter 특정 조건을 만족하는 배열만 솎아냅니다. var words 더보기…

PHP 예제: 음악 스케일 구하기

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters <?php header('Content-Type: application/json'); $pattern = empty($_GET[pattern]) ? "2122122" : $_GET[pattern]; // 더보기…

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()이 없으면 권한 문제가 있는 경우 로그인 화면에 들어갈 수 없으므로 반드시 넣어줘야 합니다. 더보기…