본문 바로가기

언어

(11)
[Javascript]웹 브라우저에서 프로그램 설치 여부 확인(웹에서 앱 설치 여부 확인) 은행 사이트들의 경우 보안 프로그램을 설치 안하였을 경우, 아래와 같이 계속 설치하라는 페이지가 뜬다. 위 항목을 어떻게 구현 하였을까? 웹 브라우저로 내 PC의 OS 설치 여부를 알수 있다는 것이 의아해서 찾아 보았다. 인터넷을 찾아보면 아래 내용 처럼 나오고 소스 코드가 나온다. 자세한 소스코드 설명이 없어서 주석을 추가하였다. 1. 내용 인터벌 함수를 이용해서 hidden 을 계속 확인한다. 타임아웃 함수를 이용해서 특정시간이 되면 앱이 설치 안되어있다고 판단한다. 2. 문제 단순참고용 정도로 사용하면 좋을거 같습니다. 많이 테스트 안해보았습니다. document.webkitHidden || document.hidden 를 이용해서 설치 여부를 확인 하는 방법 입니다. 크롬에서 지원하는 intent..
[JSP] JSP 정리 아래 내용의 경우 "출처: https://javacpro.tistory.com/44?category=104808 [버물리의 IT공부]" 에서 가져온 내용 입니다. 스크립트(script)요소 스크립트요소는 페이지의 동적데이터를 생성하며 3가지로 분류한다. 1 스크립트릿 JSP 페이지 내부에 자바(JAVA) 소스코드를 삽입한다. 2 표현식 출력결과(HTML 요소내) 에 값(value) 를 넣기위해 사용한다. 3 선언 JSP 페이지 내부에 자바 메소드 (JAVA method) 를 선언한다 지시어(디렉티브:directive) 지시어는 JSP에 대한 설정 정보 또는 JSP 페이지에 다른문서를 포함(include) 시킬때 사용한다. 지시어는 아래와같이 분류 할수 있다. 1 스크립트언어 , 에러페이지 지정, 버퍼 설..
[Spring] Spring boot 에서 JSP 사용 설정. Spring boot 에서는 JSP를 직접적으로 지원하지 않는다. 꼭 필요한 경우가 아니라면 타임리프(Thymeleaf) 를 사용하길 추천한다. 만약 JSP 로 해야하는 경우라면 https://start.spring.io/ 에서 Packaging 선택시 꼭 War로 해야한다. 1. 라이브러리 추가 Maven (pom.xml) javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper Gradle (build.gradle) dependencies { implementation 'javax.servlet:jstl' implementation "org.apache.tomcat.embed:tomcat-embed-jasper" } 2. View 경로 설정. a..
[Spring] PRG (Post-Redirect-Get) 패턴 PRG패턴이란? PRG(Post-Redirect-Get) 패턴은 웹 개발 시에 권장되는 디자인 패턴 중 하나로, HTTP POST 요청에 대한 응답이 또 다른 URL로의 GET 요청을 위한 리다이렉트(응답 코드가 3XX)여야 한다는 것을 의미한다. 즉, 일반적인 HTTP GET 요청처럼 HTTP POST 요청에 대한 응답이 어떠한 페이지를 직접 반환하는 것은 권장되지 않는 위험한 방식이라는 것이다. ex> 결재시 PRG 패턴 미적용시, 웹브라우저를 새로고침 할 경우 중복 결재될 가능성이 있음.
[Javascript] vscode 에서 실행 및 개발 환경 셋팅 1. node.js 설치 https://nodejs.org/ko/download/ 2. vscode 다운 https://code.visualstudio.com/Download 3. vscode extension 에서 "code runner" 다운로드 "Ctrl + Alt + N" 누르면 작동. ​
[React] 초기 설정 create-react-app 사전 준비 1. node 설치 https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org react 초기 설정 npx create-react-app {app 이름} //redux 추가 버전 npx create-react-app my-app --template redux 성공적으로 실행되었다면 {app 이름} 으로 된 폴더가 생기고 해당 폴더로 들어가면 package.json 이 있습니다. 아래 내용 확인을 하시면 됩니다. { "name": "gugudan", "version": "0.1.0", "private": true, /* react 동작에 필요한 라이브..
[찾아라 프로그래밍 마에스터] Lv.1 폰켓몬 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..
[위클리 챌린지] Lv.2 피로도 문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들..
[위클리 챌린지] Lv.2 모음사전 문제 설명 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 제한사항 word의 길이는 1 이상 5 이하입니다. word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다. 입출력 예 word result "AAAAE" 6 "AAAE" 10 "I" 1563 "EIO" 1189 입출력 예 설명 입출력 예 #1 사전에서 첫 번째 단어는 "A"이고, 그다음은 ..
[위클리 챌린지] Lv.1 최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호가로 길이세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 ..