본문 바로가기
반응형

전체 글76

React_1 : 리액트, 리액트 프로젝트 시작하기 현대에 들어서서 웹은 단순한 웹 페이지가 아니라, 웹 애플리케이션이다. 만일 개발한 화면이 사용자와의 Interaction이 별로 없다면, 사실상 프론트엔드 라이브러리가 필요하지는 않을것이다. 하지만, 프로젝트 규모가 커지고 다양한 유저 인터페이스와 Interaction을 제공하게 된다면, 많은 DOM 요소들을 직접 관리하고 코드를 정리하는것이 갈수록 힘든 일이 될것이다. Front-End Library, FrameWork Angular 주로 타입스크립트와 함께 사용됨. 라우터, HTTP 클라이언트 등 웹 프로젝트에서 필요한 대부분의 도구들이 프레임워크 안에 내장되어있음 앵귤러 1의 경우 만들어진지 꽤 오래됐고, 기업에서 사용이 많아 사용률이 높은편이다. 앵귤러 2의 경우 매우 성숙하긴 하지만, 인지도측.. 2019. 12. 12.
[JS] N-Queens N-Queens알고리즘은 재귀의 응용이며, 구현 기간동안 back tracking과 너비우선탐색과(BFS), 깊이우선탐색(DFS)에 대하여 팀원과 충분히 대화하고 고민하며 공부해볼 수 있었다. 백트래킹(back tracking)_되추적은 어떤 노드의 유망성 점검 후, 유망하지 않으면 그 노드의 부모노드로 되돌아간 후 다른 자손노드를 검색하는 것이다. 유망성(Promising) 해답이 나올 가능성이 있는 노드(promising) 해답이 나올 가능성이 없는 노드(non-promising) 상대 공간 트리에서 깊이우선탐색(DFS)를 실시하면서, 유망하지 않은 노드는 가지쳐서(pruning)검색을 하지 않으며, 유망한 노드에 대해서만 그 노드의 자식노드를 검색함 우리 팀에서 (많은 시행착오 끝에) 세운 전략은 .. 2019. 12. 1.
[JS] 자료구조 - 코드 구현 전체 1-1. Stack_Functional const Stack = function(){ const someInstance = {}; const storage = {}; let count = 0; someInstance.push = function(value){ storage[count++] = value; }; someInstance.pop = funciton(){ if(count){ var result = storage[--count]; delete storage[count]; return result; } }; someInstance.size = function(){ return count; }; return someInstance; } 1-2 . Queue_Functional const Queue =.. 2019. 11. 27.
[JS] OOP - Inheritance patterns_상속 OOP의특징 추상화 캡슐화 상속 다형성 이 글은 상속(Inheritance)에 대한 수업 정리가 될것이지만, 객체지향의 특성상 다른 특징과 함께 학습하는 것이 필수적이다. 상속은 다른 클래스가 가지고 있는 멤버(부모 클래스의 필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용 할 수 있는기 능이다. 상속은 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의를 위함이다. 장점은아래와같다. 보다 적은 양의 코드로 새로운 클래스 작성 가능하다는것 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경이 용이하다는것 코드의 중복을 제거하여 프로그램의 생산성/유지 보수에 기여 Prototype chain - 사양 Js : JavaScri.. 2019. 11. 21.
복잡도 분석, 시간복잡도 시간복잡도란 ? input에서 out이 될 때 가지 걸리는 시간 알고리즘을 구성한 명령어가 실행된 횟수(frequency of calling command) 알고리즘 배울 때의 핵심은 공간, 시간을 이용하는 것. 이 때, 공간과 시간은 거의 항상 반비례하다. 즉, 어떤 알고리즘이 얼마나 걸리느냐? 이다.(CPU 사용량) 공간복잡도 메모리를 얼마나 사용하는가(용량) 어던 알고리즘이 메모리를 얼마나 쓰느냐? (RAM 사용량) 공간이냐? 사긴이냐? 면 요즘은 시간이 우선이다. 시간복잡도를 고려하는 것은 최적화를 위해 필요하다. 다만, 데이터를 저장할 수 있는 메모리와 저장매채의 발전 덕에 과거보다는 덜 필요하긴하다. 시간복잡도 그래프(Big-O Complexity) 시간복잡도가 빠른순 O(logn) > O(n.. 2019. 11. 18.
[JS] _.shuffle 구현 코드스테이츠 shuffle기능의 구현을 정리한다. 기존에 나는 기존의 arrayList 를 받아 새로운 배열에 순서를 random하게 섞에 반환하는 코드를 다음과 같이 구현했었다. 코드는 복잡하지는 않지만 while(true)루트를 돌면서 stack에 부담이 큰것같다. _.shuffle = function(array) { let arrayLength = array.length; let result = new Array(arrayLength);//길이만큼 return 용 새배열 선언 for( let i = 0 ; i < arrayLength ; i++){//새배열의 Index를 하나 하나 돌면서 while(true){//index 하나에 무한 한번씩 루프문에 들어가 랜덤한 수를 뽑으며 랜덤한 Index 배.. 2019. 11. 17.
코드스테이츠 - 1주차 메모 모음글 191112 Sptring - Code Quality 1. 작성한 코드가 의도한 대로 동작하는가? 2. 작성한 코드에 결함이나 문제가 없는가? 3. 작성한 코드가 읽기 쉽고 유지 보수가 용이한가? Linting & Testing 을 통해 코드 Quality를 높일 수있다. Linting is the process of running a program that will analyse code for potential errors. Testing을 통해 의도대로 동작하는지, 결함 - 문제가 없는지 tesing을 통해 확인 할 수 있다. Testing Tool 1. End to End Test 2. Integration Test 3. Unit Test -> 학습할것 Jest ; Facebook에서 만듬 ESL.. 2019. 11. 17.
[Java] Comparator 이사이트 를 보고 복습차 정리(?)하는 글임! Java에선 정렬들을 위한 목적으로 Objcet 를 비교하기 위해 Comparable interface에서 정의한 CompareTo()함수를 구현하거나 Comparator를 구현해야한다. 하지만 일단 지금 막힌 Comparator 만 치고 넘어갈것임..키키키 추후에 시간있을때 조금더 공부하고 마무리 해야지.. Comparator 은 static Comparator instance 로 비교대상인 objcet 를 수정하지 않고 비교를 위한 함수를 만들 수 있다. public static Comparator myComparator = new Comparator(){ public int compare(Type o1, Type o2){ return o1 - o2; }.. 2019. 11. 16.
[자료구조] Linked List, Graph, Tree, Binary Search Tree, Hash Table Linked List (Simply Linked List) 리스트(List)는 데이터를 순서대로 나열한 자료구조이다. 앞서 공부하였던 자료구조1의 Stack과 Queue역시 리스트의 구조로 되어있다. 리스트는 일반 선형리스트(Array List)와 연결리스트(Linked List)로 볼 수 있다. 일반 선형리스트는 연속된 공간에 데이터가 차례로 쌓이며, 연결리스트의 경우 각 노드(data)가 비 연속적인 공간에 다음 node를 가르키는 포인터공간과 함께존재한다. 실제 자료공간의 활용예시는 아래 사진을 참조하였다. 일반 ArrayList 의 경우 정적인 메모리 형태를 갖고있다. 랜덤 엑세스가 빠르지만, 메모리(공간) 사용에 비효율적이며, 데이터가 공간에 차례대로 배정되어있으므로, 데이터의 삽입, 삭제에 따.. 2019. 11. 15.
728x90
반응형