How to make Homepage for login, with only Servlet. 안녕하세요. 저번에 서블릿과 JSP그리고 JSTL태그에 대한 전반적인 내용을 간단하게 다뤄봤습니다. 이번에는 좀 더 실질적으로 어떻게 웹페이지를 구현하는지 (Servlet으로) 다뤄보고자 합니다. 1. 메인 홈페이지 구현 package kr.co.woojin; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.ht..
What is MVC? MVC는 뭘까요?… 사실 저는 이미 직접 구현도 해본 상태이고, 이걸 이용해서 로그인, 게시판 도 구현을 해봤습니다. 그럼에도 잘 이해가 안가는 부분이(Controller 구현방식…) 존재해서 글로 한번 정리해보고자 합니다! M : Model. V : View. C: Controller 단순히 직역만 해도 대략 알 수 있는 의미입니다. Model : 데이터와 비지니스 로직을 관리합니다. View : 클라이언트가 보는 레이아웃, 화면을 처리합니다. Controller : 클라이언트가 보낸 요청에 맞게 Model, View를 실행시킵니다. 생각보다 간단하죠?…. 순서를 대략 정리해보자면, 웹브라우저 → Controller → Model, View → 웹브라우저 좀더 자세한 설명은 그림..
What is Cookie? 쿠키란 클라이언트(웹브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 즉 사용자가 특정한 요청을 서버에 보냈고, 서버는 그 내용을 쿠키로 저장하기위해 사용자에게 쿠키파일을 저장할 것을 요청합니다. 쉽게 말하면 만약에 아이디와 비밀번호를 입력하고 로그인을 하면 그 이후에도 다른 페이지를 돌아다닐 때 아이디와 비밀번호를 매번 입력할 필요없이 저장되 있는 쿠키의 키, 값(아이디와 비밀번호) 을 통해서 계속 정보를 입력할 필요 없이 사용자를 인식할 수 있게 도움을 주는것이죠! 쿠키의 특징 쿠키는 클라이언트 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 사용자 인증이 유효한 시간을 명시할 수 있고, 유효 시간이 정해지면 그 시간이 되기전 까지는 브라..
What is Server? and Servelet? 자 이제 좀더 백엔드 개발자 다운것들을 배우기 시작했습니다!! 지금 수업내용량이 어마무시하기 때문에 차근차근 정리하면서 복습을 하자는 의미로 이렇게 게시글을 작성해볼려고 합니다! 이 글을 작성함으로써 제가 얻고자 하는 목표는 총 세가지입니다! 정확한 용어와 정확한 정의. 내가 남에게 쉽게 설명을 해줄 수 있는 소통 능력 향상 이런걸 몰라서 고생을 했었다…. 라는 것들을 정리해서 리마인드! 자 거두절미 하고 이제 바로 제일 기본 개념인 서버는 뭔지 정의를 우선 해봅시다! Server? 일단 간단하게만 정의 하면, 데이터를 주고 받고 할 수 있는 개념입니다! 자 server 랑 비슷한 단어가 있어요… 그건 바로 serve(서브 : 전달하다) 그쵸?….그러..
JSTL : Java Standard Tag Library 의 약자로 JSP 표준 라이브러리. JSP에서 자주 사용하는 기능들을 모아 구현해 놓은 커스텀 태그 라이브러리 JSTL은 EL 방식을 사용하여 표현한다. Apache 재단에서 만든 custiom tag 스크립트 릿으로 작성해야 할 로직들을 태그로 작성이 가능하다. 핵심 : 변수 기능 지원 set : JSP에서 사용 될 변수설정 remove : 설정한 변수 제거 반복문, 조건문 if : 조건문 choose : 다중 조건 처리 (else if) forEach : collection의 각 항목을 처리 할때 사용하는 반복문 (자바의 향상된 for문의 기능 지원) forTokens : 구분자 설정을 통해 분리된 토큰을 처리시 사용 if 태그 : 조건문 t..
JSP 내장객체??? 솔직히 자바를 알면 이미 객체의 의미는 알고 있을테니 -자세한 설명은 생략한다- 그래도 특징은 설명하겠습니다!~ 스크립트릿 안에서만 사용 가능 스크립트릿에 내장 객체와 같은 이름의 변수를 선언할 수 없음. 선언문에서는 사용 가능하나 가급적 사용하지 않는 것이 좋음 (당연히 헷갈릴 수 있으니까;; 사용하지 맙시다) 서블릿 컨테이너가 해당 JSP 페이지 실행 시 자동으로 생성jsp가 변환된 fileName_jsp.java 파일을 열어보면_jspService() 메소드 내부에 선언되어 있음 자 그러면 일단 종류가 뭐뭐 있는지 살펴봅시다! 쓰기전에 대략 이런것들이 알고 있다고 마인드만 시켜도 나중에 기억이 안날때, 아! 이런기능 있었던거 같은데 뭐였지? 하면서 찾아가지고 쓰다보면 외워지겠죠..
JSP는 또 뭔데??..서버좀 만들어 보자^^ 많은 분들이 처음 JSP라는 단어를 들어면 딱 봐도 “언어구나”….라고 느끼면서 좀 답답함과 막막함을 느꼈을수도 있을거 같아요…근데 사실 이건 축약어인데, 풀이해보면 자바 서버 페이지! 라고 하거든요? 말 그대로 자바 언어랑 양식이 거의다 똑같아요…… 전혀 어려운거 하나도 없습니다!!! 하지만 jsp가 뭔지 이걸 왜쓰는지, 쓰면 뭐가 장점이고 뭐가 문제가 생기고,,,,,,,등등 이런것들을 알면서 써야지 진짜 도움이 되고, 나중에 제가 원하는 방식으로 잘 다룰수 있을거 같습니다!!! 서론이 길었는데, 자 ! 그래서 오늘은 JSP에 대한 개념을 정리해보고 장점이 뭔지 알아보겠습니다!. 또, 어떻게 쓰는지도 알아볼게요🙂 JSP ⇒ Java 코드가 들어가 있는 HT..
페이지 교체 알고리즘이요??… 아니 무슨 그냥 수학적 알고리즘 접근도 어렵던데, 메모리 관련 알고리즘까지?…. 사실 코딩테스트 문제를 풀다가 LRU를 통하여 문제의 해답을 구하라는 카카오 문제가 있었습니다! “LRU?? 그게 뭔데 씹덕아” 근데 이걸 모르면 못푸는 문제였습니다 헿….그래서 LRU에 대하여 서칭을 한 다음에 문제를 풀었죠 그때 서칭했던 LRU에 대한 정보들이 생각보다 흥미롭고 재밌어서 따로 정리를 해보고자 합니다! 페이지 교체 알고리즘 저희가 사는 지구에는 자원이 한정적이죠? 최대한 효율적으로 자원을 사용하기 위해서 세상에는 많은 규칙과 법이 존재합니다.그 알고리즘 중에서 제한된 한도내에서 최고의 효율을 얻기 위한 알고리즘을 “페이지 교체 알고리즘” 이라고 합니다! 그 중에서 컴퓨터의 자원..
MySQL, Oracle 은 기본적으로 SQL언어를 사용합니다. 그래서 크게! 는 안다르죠 🙂 하지만 사용하는 몇가지 함수명이 다른다든지 join을 하는 방식에서 문법에 차이가 존재한다든지, 여러가지 차이점들이 존재하는데요! 오늘은 그 차이점에 대해서 모두 정리하고 앞으로 MySQL을 사용하는데 지장이 없게 글로 적어서 정리하고 직접 쿼리문을 작성해보겠습니다! 1. 시퀀스 사용 함수가 다릅니다. Oracle에서는 시퀀스명.NEXTVAL 을 사용했죠? 근데 MySQL에서는 시퀀스명.CURRVAL 을 사용합니다 ! ⇒ current (”최근”이라는 뜻) 줄임말 CURR DB Query Oracle board_sq.NEXTVAL MySQL board_sq.CURRVAL 2. 형변환 방법이 다릅니다. Oracl..
MySQL AND Oracle 이번 글은 단순히 제가 수업때 들은 내용을 복습하고 공부하기 보다는 그냥 궁금해서 정리해보고 싶었습니다 🙂 왜냐면 저는 현재 벡엔드 개발자 과정을 밣는중 오라클을 먼저 배우고 스프링에 대해서 공부하다 다시 MySQL과정을 살짝 배우게 되서, 뭐지….두개는 어차피 똑같은 SQL인데 뭐가 다르기에 이걸 또 시간을 할애해서 배울까 라는 궁금증이 생겨서 차이점을 정리해보고 싶더라고요 헿 백엔드 과정시 무조건 배우게 되는 DB (SQL) 백엔드 개발자라면 당연히 무조건 DB에 대해서 어느정도 알고 있어야죠? 서버단에서 다루는 모든 데이터들은 DB에 있기 때문에 DB설계부터 사용, 처리 까지 어느정도 알고 있어야지 전반적으로 백엔드 단을 다룰수 있다고 말할 수 있습니다 (필수!!!!)..
JOIN이 뭔데요; 조인은 쉽게 설명하면, 일단 SELECT와 더불어 가장 많이 사용하는 옵션 중 하나입니다! 두 개 이상의 테이블들을 묶어서 하나의 테이블? 로 만드는거죠! 즉, 다른 테이블들에서 데이터를 가져올 때 사용하는것이 조인입니다! JOIN의 종류 INNER JOIN OUTER JOIN CROSS JOIN SELF JOIN INNER JOIN 내부조인이라고 불리는 이너조인은 보통 제일 많이 사용되는 조인 종류입니다! 흔히 쇼핑몰을 예로 들어서 설명할 수 있을거 같습니다 🙂 사용자가 장바구니에 상품을 담게 되면 장바구니안에는 어떠한 회원이 담은것인지, 어떠한 상품을 담은것인지 와 같은 정보가 필요하게 되죠? 보통은 Foreign Key 를 이용하여 Primary Key를 참조 받은 상태일 것이고..
Oracle 기본적인 쿼리문 작성해보기 with SQL 이번주부터 DB를 다루는걸 시작했습니다. 자바에서 어느정도 프로그래밍 언어가 동작하는 순서와 원리를 알고나서 새로운 영역에 도달하니 그래도 처음에 프로그래밍을 접했을때보다는 훨씬 맘이 편하고 이해가 안가는 부분은 1도 없어서 감사했습니다 ㅠ… 일단 DB가 뭔지 사전적 정의만 하고 시작하겠습니다! DB(DataBase) 란?? 데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음입니다. 일반적으로 컴퓨터 시스템에 전자적으로 저장됩니다. 데이터베이스는 데이터베이스 관리 시스템(DBMS)에 의해 제어되고, 연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 부르는데 단축하여 데이터베이스 ! 라고 합니다. 이게 바로 DB..
그래프 탐색이요?… 간단합니다. 하나의 정점에서 시작하여 차례대로 모든 정점들을 한 번씩 방문하는것이죠! 그렇다면 방문하는 기준이 다른 여러가지 방식들이 존재하겠죠? 오늘은 깊이 우선 탐색! 이라는것에 대해 알아보도록 하겠습니다! 깊이 우선 탐색 DFS(Depth-First Search) DFS (Depth-First Search) 말 그대로 루트 노드(혹은 다른 임의의 노드)에서 시작하여 다음 분기로 가기전에 해당 분기를 끝까지 탐색하는 방법 넓게~ 탐색하는게 아닌 (근처에 노드들을 다 방문해가는게 아닌) 깊게!!!(한가지 분기점의 끝까지) 탐색하는것입니다. 완전탐색을 하고자할때 DFS탐색방식을 이용합니다. 미로를 예로들어보면 한방향으로 일단 끝까지 갔다가 막혀있으면 다시 되돌아가 처음 만나는 분기점에..
ha…..행렬의 곱셈…..수포자는 정말 싫습니다. 근데 알고리즘에 행렬의 곱셈을 이용해야 하는 문제가 나오니까 정말 머리가 하애지더라구요?…. 저의 무지함을 또 깨닫게 되면서 “역시 세상엔 배울게 너무나도 많구나” 를 깨닫고 정리를 해보고자 합니다 ^^ 💡 찾아보니까 무슨 모의고사나 수능에서 계산문제로 하나는 반드시 출제가 된데요 ^^ 진짜 xxx….ㅎㅎ 행렬 == 배열 즉, A배열, B배열이 있을때 A배열의 열 * B배열의 행 입니다. 그림을 보니까 바로 이해가 가시죠? 두 행렬을 B * A로 만들때, 주의 해야 될점은 *를 기준으로 앞에 있는 행렬의 행의 개수와 * 뒤에 있는 행렬의 열의 개수가 똑같아야 합니당! 이렇게 2개의 행렬이 있다고 쳐봅시다! C[0,0]에 있는 곱의 결과는 (A[0,0] x..
페이지 교체 알고리즘이요??… 아니 무슨 그냥 수학적 알고리즘 접근도 어렵던데, 메모리 관련 알고리즘까지?…. 사실 코딩테스트 문제를 풀다가 LRU를 통하여 문제의 해답을 구하라는 카카오 문제가 있었습니다! “LRU?? 그게 뭔데 씹덕아” 근데 이걸 모르면 못푸는 문제였습니다 헿….그래서 LRU에 대하여 서칭을 한 다음에 문제를 풀었죠 그때 서칭했던 LRU에 대한 정보들이 생각보다 흥미롭고 재밌어서 따로 정리를 해보고자 합니다! 페이지 교체 알고리즘 저희가 사는 지구에는 자원이 한정적이죠? 최대한 효율적으로 자원을 사용하기 위해서 세상에는 많은 규칙과 법이 존재합니다.그 알고리즘 중에서 제한된 한도내에서 최고의 효율을 얻기 위한 알고리즘을 “페이지 교체 알고리즘” 이라고 합니다! 그 중에서 컴퓨터의 자원..
BinarySearchTree ⇒ 이진검색트리 안녕하세요! 오랜만에 자료구조에 대해서 글을 정리하는거 같습니다! 요즘 스프링, 스프링부트, MySQL을 공부하게 되면서 너무 자료구조랑 알고리즘에 소홀했던거 같아서, 주말에 시간이 좀 남아서 바로 정리를 해보고자 합니다! 이진검색트리? 이진검색트리는 말그대로, 트리형태의 자료구조인데 이진검색 방식을 활용하는것을 말합니다. 기본적으로 이진검색트리는 데이터가 들어가는 시점부터 정렬이 되어 들어가는 형태로 트리에 데이터를 넣고 따로 정렬을 해줄 필요가 없습니다! 또한 이진검색을 활용하기에 트리구조에서 필요한 데이터를 찾을때 걸리는 시간복잡도는 0(logN) 입니다! 한마디로 검색방식에 있어서 매우 효율적인 자료 구조라는 뜻이죠 🙂 이진검색트리의 특징 루트노드의 ..