본문 바로가기

분류 전체보기

(170)
이진트리 순회(깊이우선탐색) - 전위순회 출력 : 부모-> 왼 -> 오 - 중위순회 출력 : 왼 -> 부모 -> 오 - 후외순회 출력 : 왼 -> 오-> 부모 function solution(v) { let answer; function DFS(v) { if (v > 7) return; else { console.log(v); //전위순회 , 6번줄 DFS(v * 2); //lt , 7번줄 // console.log(v); //중위순회 , 8번줄 DFS(v * 2 + 1); //rt , 9번줄 // console.log(v); //후위순회 , 10번줄 } } DFS(v); } console.log(solution(1)); 예를 들어서 전위 순회 출력만 해보기 stack=[] 1. D(1)이 들어감 console.log(1) stac..
[JSP] 동작과정 JSP(Java Server Page) 동적 페이지를 생성하기 위한 서버 측 스크립터 언어이다. Servlet 웹 브라우저가 정보를 요청할 경우 자바로 응답할 수 없어서 서블릿을 이용했다. 그러나 자세한 이유는 모르지만 사용이 불편한 관계로 생겨난게 JSP이다. 이 둘은 하는 일은 동일하지만 JSP는 HTML 내부에 JAVA 소스코드가 들어가므로 HTML 작성이 간편하다는 장점이 있고 서블릿은 자바코드 내에 HTML이 있어서 읽고 쓰기가 불편해서 작업의 효율성이 떨어진다고 한다. 이때 알아야 할 점은 JSP로 작성된 프로그램은 서버로 요청 시 Servlet파일로 변환되어 추출하고 HTML을 변환한다. [과정] 1. client가 hello.jsp를 요청했다. 2. JSP 컨테이너가 JSP파일을 읽는다. ..
Web Server, WAS(Web Application Server) 정적 웹 페이지는 컴퓨터에서 저장된 텍스트파일을 열어보듯 저장된 그 상태 그대로 보는 것 동적 웹 페이지는 정적 페이지의 내용들이 다른 변수들에 의해서 변경되어 보여지는 것 [특징] 정적 페이지는 요청에 대한 파일만 전송하면 되므로 빠르고 비용이 적다. 그러나 저장된 정보만 보여주므로 한정적이고 관리가 힘들다. 관리가 힘든 이유는 추가, 삭제와 같은 변경사항이 있을때마다 수정을 계속해서 해줘야하기 때문이다. 동적 페이지는 다양한 서비스를 동적으로 제공하며 관리가 쉽다. 반면에 웹 페이지를 전달하기 전에 처리하는 작업이 필요하므로 정적 웹페이지 보다 느리며 웹 서버 외에 추가 처리를 위한 WAS가 필요하다. [Web server] 웹 브라우저를 클라이언트로부터 HTTP요청을 받아들이고 HTML문서와 같은 ..
기본 재귀함수 Q.자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지 출력하는 프로그램 작성 A: function solution(n) { function DFS(L) { if (L === 0) return; else { console.log(L); DFS(L - 1); } } DFS(n); } solution(3); //3,2,1 이렇게 호출을 하게 되면 3,2,1이라는 답이 반환된다. 그럼 어떻게 1,2,3으로 반환을 할까 function solution(n) { function DFS(L) { if (L === 0) return; else { DFS(L - 1); //위 아래 위치 변경 console.log(L); } } DFS(n); } solution(3); //1,2,3 함수는 호출이 되면 stack f..
SET [문제] 두 테이블 (USED_GOODS_BOARD,USED_GOODS_FILE)에서 조회수가 가장 높은 게시물의 첨부파일 경로 조회 가장 조회수가 높은 게시물은 하나만 존재한다. [조건] 기본적인 파일 경로 /home/grep/src/ 게시글 ID + 파일이름 순으로 경로 생성 [풀이] SET @max_board= (SELECT BOARD_ID FROM USED_GOODS_BOARD ORDER BY views DESC LIMIT 1); SELECT CONCAT('home/grep/src/',@max_board,'/',FILE_ID, FILE_NAME, FILE_EXT) as FILE_PATH FROM USED_GOODS_FILE WHERE BOARD_ID= @max_board ORDER BY FILE_..
concat_ws [문제] 두 테이블(USED_GOODS_BOARD , USED_GOODS_USER)에서 필요한 부분 발췌 [출력 조건] - 중고 거래 게시물 3건 이상 등록한 사용자 - 분리되어 있는 주소(시, 도로명,상세 주소)를 '전체 주소' 타이틀로 합쳐서 출력 - 전화번호의 경우 '000-0000-0000'으로 출력 - 회원 ID를 기준으로 내림차순 정렬 [구성] SELECT U.USER_ID, U.NICKNAME, CONCAT_WS(" ",U.CITY, U.STREET_ADDRESS1, U.STREET_ADDRESS2) AS '전체주소', CONCAT_WS("-", SUBSTRING(U.TLNO, 1, 3), SUBSTR(U.TLNO, 4, 4), RIGHT(U.TLNO, 4)) AS "전화번호" FROM US..
SEO 향상시키기 next.js를 사용해서 작은 프로젝트를 공부할 겸 만들어 보면서 SEO에 대해서도 공부하게 되었다. next-seo라는 라이브러리를 이용하였다. _document파일을 이용할 수 있다. 이 파일은 HTML의 head, body tag를 수정할 수 있는 페이지다. 전역적으로 적용된다. //_document.tsx 그러나 이렇게 사용하게 되면 페이지마다 바뀌어야하는 title의 경우 전역적으로 바꾸는 _document파일이 적합하지않다. 그래서 import Head from "next/head"; 를 사용할 수 있지만, 많은 페이지마다 title을 하나씩 지정하는 것도 비효율적이기 때문에 라이브러리의 도움을 받을 수 있다. //landingPage import { NextSeo } from “next-se..
SSG의 부족한 점을 보완한 ISR 계속해서 SSG, SSR, CSR에 대해서 복습 중에 간단하게 정리를 하고 싶어서 글을 쓰게 되었다. next.js는 크게 3가지의 렌더링 방식을 사용할 수 있다. CSR : useEffect, SWR과 같은 상태관리 툴을 사용하여 렌더링 책임을 사용자에게 전가하는 것. SSR : 사용자가 요청 할때마다 서버로부터 완전한 HTML을 받아 새로운 페이지를 생성해내는 방식. SSG : 렌더링이 SSR과 비슷하지만 build시간에 미리 HTML을 생성하여 사용자에게 만들어진 화면을 제공. ** 위와 같은 렌더링 방식 속에서 next.js 성능상의 이점은 챙기면서도 업데이트된 내용을 제공할 수 있는 방식 = ISR ISR:incremental static regerernation SSG는 요청마다 build 타..