good_da22 's devLog

분류 전체보기 108

백준 17204번 죽음의 게임 (JAVA)

백준 17204번 죽음의 게임 (JAVA) 문제 난이도 실버 3 알고리즘 분류 구현 그래프 이론 그래프 탐색 시뮬레이션 풀이 출발번호(0) 부터 목표번호(K)로 가는 최솟값 구하기 어떤 방법으로도 K로 갈 수 없는 경우는 K에 도착하기 전에 사이클이 발생한다. 코드 public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb =..

백준 2922번 크면서 작은 수 (JAVA)

백준 2922번 크면서 작은 수 (JAVA) 문제 난이도 실버 3 알고리즘 분류 문자열 브루트포스 알고리즘 백트래킹 풀이 주어진 수를 모두 이용하여 새로운 수를 만들기(자리 수를 유지해야한다.) 주어진 수를 모두 이용하기 때문에 순열을 생성한다. 주어진 수보다 크지만 그 중 가장 작은 수를 탐색해야하기 때문에 정렬 후 순열을 생성하여 작은 값부터 탐색한다. 코드 public class Main { private static char[] split; private static int value; private static int N; private static int[] numbers; private static boolean[] visited; private static int answer; public..

Cookie & Session

Coikie & Session 저장공간, Session은 sever, Cookie는 browser http protocol 특징 client가 serer에 요청 server는 요청에 대한 처리 후 client에 응답 응답 후 연결 해제 >>> stateless : 이전 처리 결과를 기억하지 않고 상태가 없다. 지속적인 연결로 인한 자원낭비를 줄이기 위해 연결을 해제 그러나 client와 server가 연결 상태를 유지해야 하는 경우 문제 발생(ex. 로그인 정보) 즉, client 단위로 상태 정보를 유지해야 하는 경우 Cookie와 Session이 사용 >> statefull HTTP proticol의 특징(약점)을 보완하기 위해 사용 Cookie javax.servlet.http.Cookie 서버에서..

Back-End/Web Server 2022.09.20

JSTL (JSP Standard Tag Library)

JSTL (JSP Standard Tag Library) 자바 서버 페이지 표준 태그 라이브러리(Java Server Pages Standard Tag Library, 이하 JSTL)은 Java EE 기반 웹 애플리케이션 개발 플랫폼을 위한 컨포넌트 모음 JSTL은 XML 데이터 처리와 조건문, 반복문, 국제화와 지역화 같은 일을 처리하기 위한 JSP 태그 라이브러리를 추가하여 JSP 사양을 확장 JSTL은 JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공 표중화된 태그 셋을 사용하여 자바 코드가 들락거리는 것보다 더 코드의 유지보수와 응용 소프트웨어 코드와 사용자 인터페이스 간의 관심사의 분리로 이어지게 한다. custom tag : 개발자가 직접 태그를 작성할..

Back-End/Web Server 2022.09.20

EL (Expression Language)

EL (Expression Language) EL 은 표현을 위한 언어로 JSP 스크립트의 표현식을 대신하여 속성 값을 쉽게 출력하도록 고안된 language 표현식 대체 가능 EL 표현식에서 도트 연산자 왼쪽은 반드시 java.util.Map 객체 또는 Java Bean 객체여야 한다. EL 표현식에서 도트 연산자 오른쪽은 반드시 맵의 키이거나 Bean의 프로퍼티여야 한다. EL 에서 제공하는 기능 JSP의 네가지 기본 객체가 제공하는 영역의 속성 사용 자바 클래스 메소드 호출 기능 표현 언어만의 기본 객체 제공 수치, 관계, 논리 연산 제공 EL 문법 EL에서는 Dot 표기법 외에 [] 연산자를 사용하여 객체의 값에 접근할 수 있다. [] 연산자 안의 값이 문자열인 경우, 맵의 키가 될 수도 있고, ..

Back-End/Web Server 2022.09.20

JSP Web Application Architecture

Web Application Architecture - MVC JSP를 이용하여 구성할 수 있는 Web Application Architecture는 크게 model1과 model2로 나뉜다. JSP가 client의 요청에 대한 Logic 처리와 reponse page(view)에 대한 처리를 모두 하느냐 아니면 response page(view)에 대한 처리만 하는지가 가장 큰 차이점 Model2 구조는 MVC(Model - View - Controller) Pattern을 Web 개발에 도입한 구조를 말한다. Model 1 구조 model1 은 view와 logic을 JSP 페이지 하나에서 처리하는 구조를 말한다. client로부터 요청이 들어오게 되면 JSP 페이지는 java beans나 별도의 s..

Back-End/Web Server 2022.09.20

JSP (Java Server Page)

JSP (Java Server Page) 자바 서버 페이지(Java Server Page, JSP) 는 HTML 내 Java 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어 JavaEE 스펙 중 일부로 웹 애플리케이션 서버(WAS)에서 동작 JSP는 실행 시 Java Servlet으로 변환된 후 실행, 서블릿과 거의 유사 서블릿과 달리 HTML 표준에 따라 작성되므로 웹 디자인에 편리 1999년 썬 마이크로시스템즈에 의해 배포, 이와 비슷한 구조로 PHP, ASP, ASP.NET 등이 있다. 아파치 스트럿츠, 자카르타 프로젝트의 JSTL 등 JSP 태그 라이브러리르 사용하는 경우 Java 코딩 없이 태그만으로 간략히 기술이 가능, 생산성 향상 가능 JSP 동작 흐름..

Back-End/Web Server 2022.09.19

Servlet

Servlet 자바 서블릿(Java Servlet)은 자바를 사용하여 웹 피이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며 서블릿으로 불린다. 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종 JSP와 비슷한 점이 있지만 JSP는 HTML 문서 안에 Java 코드를 포함 서블릿은 자바 코드 안에 HTML을 포함하는 차이점 존재 Web Brower(Client)에서 요청(request)를 받아 Web Application Server 안에서 작동 data를 얻고 Business logic 수행(JDBC를 사용하여 DB에 접근) 후 reponse page를 작성하여 응답(reponse) Servlet API 사용자 정의 서블릿의 상속 구조 Servlet Life-cycle Serv..

Back-End/Web Server 2022.09.19

Sub query

서브 쿼리 (Sub Query) 서브 쿼리(sub query)란 다른 쿼리 내부에 포함되어 있는 SELECT문을 의미 서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리(outer query) 또는 메인 쿼리(main query)라고 부르며, 서브 쿼리는 내부 쿼리(inner query)라고도 부른다. 서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호 () 로 감싸져 있어야 한다. 서브 쿼리를 모른다면 JOIN을 사용해야 한다. JOIN의 경우 쿼리가 복잡해지거나 카테시안곱으로 인한 속도 저하 발생 가능(case by case) 서브 쿼리를 이용하여 CREATE, INSERT, UPDATEm DELETE 가능 서브 쿼리 종류 중첩 서브 쿼리(Nested Subquery) : WHERE 문에 작성하는..

Back-End/Database 2022.09.19

JOIN

JOIN 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 JOIN이 필요 일반적으로 JOIN 조건을 포함하는 WHERE 절을 작성해야 한다. JOIN 조건은 일반적으로 각 테이블의 PK와 FK로 구성 JOIN 종류 INNER JOIN OUTER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN JOIN 조건의 명시에 따른 구분 NATURAL JOIN CROSS JOIN(FULL JOIN, CARTESIAN JOIN) JOIN 주의 JOIN의 처리는 어느 테이블을 먼저 읽을지를 결정하는 것이 중요(처리할 작업량이 상당히 달라진다) INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 JOIN의 순서를 조절해 다양한 방법으로 최적화 수행 OUTER..

Back-End/Database 2022.09.19