전체 글 199

Join

* Join? 하나의 sql 명령문에 의해 여러 테이블에 저장된 데이터를 한번에 조회할 수 있는 기능이다. 두개 이상의 테이블을 '결합'한다는 의미이다. * Inner Join 가장 일반적인 join 종류이며 교집합이다. 동등 조인(Equi- join)이라고도 하며 n개의 테이블 조인 시 n-1개의 조인 조건이 필요하다. 연결고리가 되는 공통 칼럼은 조인 애트리뷰트라고 불리는데 이 조인 애트리뷰트는 참조 무결성 제약조건으로 정의된다. * Full Join 양쪽 테이블을 기준으로 join 조건에 일치하지 않는 데이터까지 출력한다. 그러니까 left outer join과 right outer join을 동시에 실행한 결과를 출력한다. mysql은 지원하지 않으며 oracle만 지원한다. mysql에서 ful..

CS/database 2021.04.06

MVC

Model View Controller MVC 패턴이란 어플리케이션을 Model View Controller 세 영역으로 구분하고 나눈 것이다. Model (Service, Dao, Java Beans) 로직(비니지스 & db)로직을 처리하는 모든 것이다. controller로부터 넘어온 데이터를 이용하여 이를 수행하고 그에 대한 결과를 다시 controller에 돌려준다. View (JSP) 모든 화면 처리를 담당한다. 클라이언트의 요청에 대한 결과 뿐 아니라 controller에 요청을 보내는 화면단도 jsp에서 처리한다. logic 처리를 위한 java code는 사라지고 결과 출력을 위한 코드만 존재한다. Controller (Servlet) 클라이언트의 요청을 분석하여 로직 처리를 위한 모델단을..

sendRedirect vs forward

요청에 대한 response를 해준다는 것에서 비슷하다고 느낄 수 있지만 사실 두 개는 전혀 다른 개념이다. 1. sendRedirect 내가(클라이언트) 정보부서에 전화 걸었는데 정보부서가 아 그거 정보부서 아니고 금융부서로 걸으세용 해서 나는 다시 금융부서에 전화하는 방식 = form 태그에서 action이 일어나는 건 바로 가는 것이 아니고 서버가 클라이언트에게 요청 다시 하라고 알려주고 클라이언트가 다시 재요청함 응답 명령이 온 것! 동일 서버(project)포함 다른 url로도 이동 가능하다(ex. 네이버, 구글로도 이동 가능) location bar는 이동하는 페이지로 변경된다. 2. Forward 내가(클라이언트) 정보부서에 전화 걸었는데 정보부서가 아 그거 저희 담당 아닌데 담당 부서 연결..

Web 2021.03.31

Web Architecture / Servlet / JSP

Client(클라이언트)단 - 데이터들이 발생하는 역할을 html , css, js이 담당한다. only 데이터 발생만 함 서버단에서 발생하는 데이터베이스 등의 업무는 처리 불가 클라이언트는 서버에게 요청(request)를 하게 됨 - 나 글 보여줘 나 페이지 보여줘 이때 데이터를 갖고 넘기는데 그것을 파라미터(parameter)라고 함 WebServer(HttpServer): 클라이언트의 접속을 처리한다. http의 프로토콜을 처리해줌 html, css, js만 처리 가능 따라서파라미터로 넘어온 데이터는 처리 불가 따라서 데이터베이스와 웹 서버를 연결해주는 중간이 필요함 -> 어플리케이션 서버 Application Server: 실질적인 로직 처리 담당. presentation 화면 담당/ 일반적인 비..

Web 2021.03.31

List 리스트

* List? 순서를 가진 데이터의 집합을 가리키는 추상자료형(abstract data type) 동일한 데이터를 가지고 있어도 상관 없다. (원소 중복 허용) 구현 방법에 따라서 1) 순차리스트ArrayList: 배열을 기반으로 구현된 리스트. 원소의 물리적 저장 순서와 원소의 논리적 순서가 같다. 2) 연결리스트Linked List: 메모리의 동적 할당(객체 생성)을 기반으로 구현된 리스트. 원소의 물리적 저장 순서와 원소의 논리적 순서는 다르다. 원소 하나하나를 객체로 만들어서 연결하는 자료구조 1. 순차 리스트(Array List) 구현 방법: 1차원 배열에 항목들을 순서대로 저장한다. 데이터의 종류와 구조에 따라 구조화된 자료 구조를 만들어 배열로 사용할 수도 있다. 데이터의 접근은 배열의 인덱..

CS/data structure 2021.03.27

백준 2206 벽 부수고 이동하기 (Java 자바)

import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class bj2206_벽부수고이동하기 { static int map[][]; static boolean visited[][][]; static int N, M, res; static Queue q; // 상 하 좌 우 static int dx[] = {-1, 1, 0, 0}; static int dy[] = {0, 0, -1, 1}; static class Data { int x; int y; int cnt; int chance; // 0:벽 뚫은 적 없음 1: 있음 public Data(int x, int y, int cnt, int chance) ..

백준 7576 토마토 (Java 자바)

전형적인 bfs 문제이당 package self_study; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class bj7576_토마토 { static int map[][]; static boolean visited[][]; static int N, M; static int res; static Queue q; // 상 하 좌 우 static int dx[] = {-1, 1, 0, 0}; static int dy[] =..