본문 바로가기

전체 글

(341)
[DataStructure] 2. 자료구조 기본 - Heap(Max heap, Min heap)에 대해서 Heap 자료구조자료구조의 일종으로 Tree의 형식을 하고 있으며, Tree 중에서도 배열에 기반한 Complete Binary Tree 이다. 배열에 트리의 값들을 넣어줄 때, 0번째는 건너뛰고 1부터 루트노드가 시작된다. 이는 노드의 고유번호 값과 배열의 index를 일치시켜 혼동을 줄이기 위함이다. 힙에는 최소힙(min heap), 최대힙(max heap) 두 종류가 있다. Max Heap이란, 각 노드의 값이 children 의 값보다 크거나 같은 complete binary tree를 말한다. ( min heap은 그 반대이다. ) Max heap에서는 Root node에 있는 값이 제일 크므로, 최대값을 찾는데 소요되는 연산의 time complextiry이 O(1)이다. 그리고 complet..
#SLiPP Spring boot, JPA 강의 - 반복주기 6 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 6학습 내용AJAX를 활용해 답변 추가 기능 구현AJAX를 활용해 답변 삭제 기능 구현질문 목록에 답변 수 보여주기 기능 추가 중복 제거 및 리팩토링 JSON API 추가 및 테스트 쉘 스크립트를 활용해 배포 자동화 Intro기존의 MVC구조에서 서버와 클라이언트가 데이터를 주고 받는 방식은 다음과 같다. 클라이언트에서 데이터가 서버의 컨트롤러에 날라가고(프런트 컨트롤러의 역할), 컨트롤러는 모델에게 그 데이터를 전달하여 데이터베이스에 저장(페이지 컨트롤러의 역할)한다. 그리고 컨트롤러는 데이터의 변경사항을 반영하여 HTML 전체를 다시 구성(뷰의 역할)한 다음에 클라이언트에게 보내준다. 그러면 클라이..
[DataStructure] 1. 자료구조 기본 - Array, Linked List, Stack, Queue, Tree 1. 자료구조 기본 - 기본적인 자료구조 종류선형 자료 구조Array vs Linked List가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스로 해당 원소에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access가 가능하다는 장점이 있는 것이다. 하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤, 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 따라서 삭제한 원소보다 큰 인덱스를 갖는 원소들을 shift..
[JAVA Adv] Annotaion 에 대해서, Annotaion (어노테이션인가, 애너테이션인가, 애노테이션인가)도입 배경 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시키기 위해서이다. 어노테이션 이전에는 주석을 사용하여 소스코드에 대한 설명을 적었고, 이 주석을 javadoc.exe라는 프로그램을 사용하여 문서를 작성하였다. 문법으로서 역할 어노테이션은 기본적으로 인터페이스이다. JEE 5부터 추가된 문법이며, 사전적 정의로는 주석이라는 의미를 갖고 있다. 주석과는 역할이 다르지만 주석처럼 달아 클래스에 특수한 의미를 부여하거나, 기능을 주입할 수 있고, 이 의미는 컴파일 타임 또는 런타임에 해석될 수 있다. 기존의 자바 웹 애플리케이션들은 구성과 설정값들을 외부의 XML 설정 파일에 명시하는 방법으로 프로그래밍..
#DEVIEW 2016 React vs Angular 2 , Angular 2 vs React 2016 DEVIEW 후기! - Angular 2 vs React 강연!http://www.slideshare.net/deview/114angularvs-react개발환경언어 생산성컴포넌트 / 템플릿데이터 동기화비동기처리 1. 개발 환경 Setting ( ? )Angular 2 개발환경 구축하기React 개발환경 구축하기Vue.js 개발환경 구축하기 ( ? ) 2. 언어 생산성 - TypeScript ( 영향력 : ✭✭☆☆☆ )그 정체는 무엇인가 TypeScript는 유연함이 장점인 언어인 JavaScript를 잘못 사용하게 되면, 큰 버그를 발생시킬 수 있는 부분을 보안하기 위한 언어이다. ( 굳이 예를 들자면, 인자를 넘겨받을 때 해주는 타입체크라던지…) 일단 여기서 한 가지 짚고 넘어가자. Angu..
[Java Adv] 16. Lambda Expression + Inner class, anonymous class 내부클래스란(inner class)? 말 그대로 클래스 내부에 선언된 클래스를 말한다. 두 클래스가 서로 긴밀한 관계에 있기 때문에 내부에 선언한 것이다. 내부 클래스를 사용하면 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 이로 인해 코드의 복잡성이 감소하며 캡슐화를 할 수 있게 된다. 단, 내부 클래스는 외부 클래스를 제외하고 다른 클래스에서 잘 사용되지 않는 것이어야 한다. 익명 클래스(anonymous class) 내부 클래스에는 익명 클래스라는 것이 존재한다. 익명 클래스도 마찬가지로 이름 그대로의 역할을 수행한다. 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스로, 일회용 클래스인 것이다. 이름이 없기 때문에 생성자도 가질 수 없으며, 조상클래스의 이름이나 구현하고자 하는 인터페이스..
[개발상식] 25. Web RTC에 대해서, WebRTC(Web Real-Time Communication) 웹 실시간 커뮤니케이션 기술로 Google, Mozilla 웹 브라우저 간에 플러그인의 도움없이 실시간으로 영상, 음성 데이터 등을 서로 통신할 수 있도록 설계된 API이다. 이 기술을 통해 음성 통화, 비디오 채팅 및 파일 공유를 위한 브라우저 애플리케이션이 원활하게 구현될 수 있다. 현재 지원되는 코덱은 VP8이다. 대다수의 서비스들은 클라이언트-서버 간의 데이터 통신을 통해 기능을 제공하고 있지만 어떤 경우는 클라이언트 간의 빠른 데이터 교환이 중요하게 되는데 이러한 경우 WebRTC가 중요한 기반 기능을 제공한다. 서버를 중계할 이유가 없어지는 것이다. 현재 지원하는 브라우저로는 Chrome, Opera, Firefox 이다. 일반적..
#SLiPP Spring boot, JPA 강의 - 반복주기 5 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 5학습 내용 1. 회원과 질문 간의 관계 매핑 및 리팩토링 2. 날짜 추가하기 3. 질문 상세보기 기능 / 질문 수정 및 삭제 기능 구현 - PutMapping, DeleteMapping 4. 답변 추가 및 답변 목록 기능 구현 5. Refactoring을 통한 중복 코드 제거 회원과 질문 간의 관계 매핑 JPA에서도 데이터베이스의 개념인 릴레이션 간의 관계를 설정할 수 있다. SQL 문을 사용했을 때와 다른 점은 테이블과 테이블의 관계를 객체 상에서 설정해주는 것 뿐이다. Question 객체와 User 객체가 관계를 맺도록 한다고 했을 때 User 객체와 Question 객체는 어떠한 관계인가를 따..