웹 사이트 예제: 음악 스케일 목록

웹사이트 바로가기 이 웹사이트의 기능은 다음과 같습니다. 스케일 목록을 데이터베이스에서 읽어서 테이블 형태로 나열 (PHP) 각 목록을 클릭하면 스케일의 정보와 악보, 소리듣기 기능을 제공 (abcjs 이용) 스케일의 정보는 이름, 별칭(Alias), 설명(Description), 중요도(Priority), 패턴이 있음 악보 및 사운드 생성은 스케일의 Pattern 정보를 이용하여 생성 (PHP 음악 스케일 구하기) 조옮김(Transpose), 이명동음 표시기능 더보기…

PHP: FTP 내의 디렉토리 및 파일 탐색하기(재귀호출)

PHP 계정에서 다음과 같은 구조로 파일이 존재하고 있습니다. 목표는 files 디렉토리(폴더) 내에 있는 파일들을 탐색하고, 파일들의 정보(이름, 확장자, 크기 등)를 표시 및 데이터베이스 테이블에 입력하는 것입니다. 핵심 코드는 아래와 같습니다. $dir = ‘./files’; $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)); $dir은 탐색 대상 디렉토리의 루트 경로를 입력합니다. 현재 작성중인 php 파일과 files 더보기…

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 입니다. 세미콜론은 기준 문자로 사용되었으므로 배열로 나눈 뒤에는 사라집니다. 기준으로 복수의 문자(조건)를 사용하고 싶다면 더보기…

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

Spring: AJAX로 백엔드 컨트롤러에 이미지 전송

컨트롤러 (일부) @RequestMapping(value = “/url”, method = RequestMethod.POST) public String insert(MultipartHttpServletRequest request, HttpSession session, ModelMap model) throws Exception { String rootPath = session.getServletContext().getRealPath(“/”); System.out.println(“imageFile ” + request + ” ” + request.getParameter(“imgFile”) + ” ” + rootPath + ” “); Iterator<String> itr = request.getFileNames(); if(itr.hasNext()){ List<MultipartFile> mpf = request.getFiles(itr.next().toString()); for(int 더보기…

Java, Spring: 예제 – JspMvcHelper (Reflection을 사용해 ModelAndView 내의 객체들의 정보를 표시해 주는 프로그램)

이 프로그램은 자바의 Reflection 개념들을 연습하기 위해 만든 예제로 리플렉션을 이용하여 Spring 프로젝트에서 MVC 패턴을 사용할 때 컨트롤러 등에 있는 ModelAndView (+ Model) 객체의 정보를 프론트엔드 측에서 볼 수 있도록 가공해서 보여주는 프로그램입니다. 자바스크립트의 console.log() 등을 사용해 내용을 볼 수 있습니다. 사용 제약 MVC 패턴을 사용하는 스프링 프로젝트가 필요합니다. 모델 객체가 더보기…