| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 오블완
- 과장님 죄송했어요
- 자바
- servlet
- 기초 개념 잡기
- 객체
- 기본은 충실히
- 생성자
- URI
- HTTP
- 알고리즘
- 김영한님의 모든 개발자를 위한 HTTP 웹 기술 인강 꼭 들어보세요
- 인터넷 네트워크
- 티스토리챌린지
- 을 통한 웹 브라우저 흐름
- Class
- 배열
- Hashtable
- tcp
- HTTP메시지
- 이진트리
- URN
- 연결 리스트
- array
- queue
- heap
- URL
- port
- 자료구조
- Stack
- Today
- Total
목록전체 글 (25)
HeadCopter
Queue ? - 먼저 집어넣은 데이터가 먼저 나오는 FIFO(First In First Out ) 구조로 저장하는 형식의 자료구조이다. - 예를들어 , 놀이공원에 티켓을 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며 먼저 줄을 선 사람이 티켓을 먼저 사서 나가는 그림을 생각하면 된다. - 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다 (스택은 LIFO 구조) - 프린터의 출력 처리나 윈도우 시스템의 메시지 처리, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 사용된다. - 큐는 put (insert) 와 get (delete)을 이용하여 구현된다. pust은 큐에 자료를 넣는 것, get은 큐에서 자료를 꺼내는 것을 의미한다. *Enque..
Stack ? - 스택(Stack)은 제한적으로 접근할 수 있는 나열 구조이다. - 접근 방법은 언제나 목록의 끝에서만 일어난다. - 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out) 으로 되어 있다. ex) A -> B -> C 를 차례대로 넣고 다시 빼면 C -> B -> A 순으로 꺼내진다. - 자료를 넣는 것을 '밀어넣는다' 하여 푸쉬(Push)라고 하고 반대로 꺼내는 것을 팝(Pop)이라 한다. Stack의 메서드 - S.top(): 스택의 가장 윗 데이터를 반환, 만약 쌓인 스택이 존재하지 않으면 연산 정의불가 - S.pop(): 스택의 가장 윗 데이터를 삭제, 스택이 존재하지 않으면 연산 정의불가 - S.push(): 스택의 가장 윗 ..
Linked List ? - 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 . - 이름과 같이 노드의 포인터가 다음이나 노드와의 연결을 담당하게 된다. - 리스트는 노드와 노드가 서로 연결된 형태로 되어있다. - 각 노드는 데이터의 내용을 담는 부분과 다음 노드의 주소값을 갖는 포인터 변수로 구성되어 있다. - 시작(주소) ->연결(Link) -> 끝(Null Point) 이 순서이다. - Linked List는 여러개의 Node를 연결함으로써 데이터를 표현한다. - 배열(Array)와 유사하지만 훨씬 효율적인 저장 방법이다. - 리스트의 첫번째 노드를 Head, 마지막 노드를 Tail이라 한다. - Linked List 의 종류에는 단일 연결 리스트, ..
해시 테이블 ? - 해시 함수를 사용해서 변환한 값을 index로 삼아 key와 value를 저장하는 자료구조를 말한다. - 해시 테이블은 어떤 특정 값을 받아서 해시 함수에 입력하고, 함수의 출력값을 인덱스로 삼아 데이터를 저장한다. - Java의 Map이 해시 테이블의 대표적인 예다. 해시 테이블 특징 - 해시 테이블은 순서없이 Key 와 Value로만 값을 저장하기 때문에 순서가 필요한 데이터에는 적합하지 않다. - 해시 테이블은 다른 자료구조에 비해 빠른 속도로 삽입, 삭제, 조회가 가능하다. 해시 테이블의 구성 Hash - Hash란 데이터를 다루는 기법 중에 하나로 검색과 저장이 아주 빠르게 진행된다. - 데이터를 검색할 때 사용할 key와 실제 데이터의 값이 한 쌍으로 존재하고, Key값이 ..
배열 (Array) ? - 메모리 상에 데이터를 연속하게 배치한 자료구조를 배열(Array)라 한다. - 배열은 데이터를 메모리 상에서 순차적으로 저장하며 메모리를 정적인 크기로 할당 받는다. - 배열의 데이터들은 연속적(continuouse)이며 인접(contiguous)해 있어야 한다. - 배열은 메모리를 할당받게 되면 데이터에 대한 index를 가지게 되며 이 index를 사용해 배열의 요소를 찾을 수 있고 , 또 읽을 수 있다. - index를 가지고 있기 때문에 데이터에 바로 접근이 가능하다. (자료 구조의 크기가 클수록 더욱 효율적이다.) - 배열의 마지막 원소에 삽입, 삭제 작업이 발생할 경우에는 괜찮지만, 배열 중간의 값을 삽입, 삭제할 경우 모든 원소들을 연속적으로 만들어야 하기 때문에 ..
Spring 시스템 순서 1. Client에서 HTTP 요청을 보내면 Servlet Container에서 해당 요청을 처리한다. 2. Servlet Container의 DispatcherServlet이 처리하도록 Http Request 정보를 전달한다. 3. DispatcherServlet은 Http Request의 정보를 읽어서 해당 Controller를 찾는다. 4. 매핑된 Controller에서 해당 요청을 처리한다. 5. Service는 DAO를 호출하여 비지니스 로직을 수행한다. 6. DAO는 DB에 접근하여 데이터를 받는다. 7. DAO까지 수행하면 Controller에서 다시 해당 정보를 리턴받아 Model에 넣고 , ViewName을 DispatcherServlet에 리턴 시킨다. 8. D..
Servlet 과 JSP의 한계 - 서블릿으로 개발할 때 뷰(View)화면을 위한 HTML을 만드는 작업은 자바 코드에 섞여서 복잡하고 보기도 좋지 않았다. - 이러한 문제들로 인해 JSP 라는 템플릿 엔진들을 사용했고 HTML 작업을 깔끔하게 처리할 수 있게 되었지만 , JSP 코드에 너무 많은 Java 코드와 HTML 코드 등 섞여 있어 만약 내가 실제 프로젝트에 투입되서 JSP가 Java 코드와 섞여있는데 그게 또 수천줄이 넘어간다면.. 유지보수를 하기에는 정말 너무 힘들었을 것 같다. MVC(Model View Controller) 패턴의 등장 - 위 같은 문제들을 해결하기 위하여 등장한 패턴이 바로 MVC 패턴이다. - 하나의 서블릿과 JSP로 많은 비즈니스 로직과 데이터를 처리해야 했던 예전과..
객체(Object) - 객체의 사전적 의미는 "의사나 행위가 미치는 대상" 으로 , 클래스에서 정의한 것을 토대로 메모리에 할당된 것이다 - 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료구조, 함수, 메서드가 될 수 있다. 하지만 메모리가 할당되기 전까지 객체는 존재하지 않는다. 객체 지향 프로그래밍에서 객체는 클래스의 인스턴스이다. - Student 라는 객체 타입을 쓰고 student라는 레퍼런스 변수를 정하고 new 를 통해 클래스 객체를 생성한다. - 객체는 속성과 기능을 가지게 되는데 속성은 멤버 변수, 파라미터를 뜻하고 기능은 메서드를 의미한다. Class - 객체(Object)에 대한 속성과 기능을 코드로 구현한것을 우리는 Class라 부른다. - 객..