분류 전체보기 367

리눅스의 File의 Attribute

1. ls -l 하였을 때 File Attribute 해석 일반 파일에서 읽기 권한이 있다면, 그 파일의 내용을 볼 수 있다. 쓰기 권한이 있다면, 그 파일의 내용을 변경할 수 있다. 실행 권한이 있다면, 그 파일을 컴파일하여 실행 할 수 있다. directory file에서 읽기 권한이 있다면, directory 밑의 파일 목록을 볼 수 있다. 쓰기 권한이 있다면, 그 directorhy에 새로운 directory나 파일을 생성 및 삭제 할 수 있다. 실행 권한이 있다면, 그 directory에 들어가 볼 수 있다. 2. File Attribute 관련된 command 1) Access Permission: chmod chmod는 Access Permission을 변경할 때 사용하는 명령이다. chm..

리눅스의 기본적인 명령어(command)

1. Manual Page : man man 은 manual으로, 다른 command의 사용법을 설명해준다. man //command-name man -k는 해당 명령을 수행하는 command 명을 정확히 모를때, 키워드 검색을 해주는 명령어이다. ex) man -k copy //copy와 관련된 command가 cp라고 알려준다. man -k //command가 뭔지 알고싶은 기능 man 의 결과 화면 보는 법 - 숫자: (1)은 command라는 의미, (2)는 system call이란 의미, (3)은 library function이라는 의미 - []: 있어도 되고, 없어도 되는 option - FILE: 파일이름이 위치하는 곳 - ...: 반복 man의 종료 [q]키를 누르면 종료됨 2. Print..

리눅스의 기본적인 사용법

1) 로그인/로그아웃 - telnet 또는 ssh 를 통한 로그인 : 해당 서버에 telnet(혹은 ssh) daemon이 실행 중이어야 하고, 클라이언트에 telnet(혹은 ssh)을 수행하기 위한 putty나 zterm같은 클라이언트프로그램이 있어야 한다. 1. 로그인 : login, password 1. 클라이언트 프로그램을 실행시킨다. 2. 서버의 이름과 port번호를 지정한 후 연결한다. 3. 사용자 ID와 패스워드를 입력한다. login: //사용자 ID 입력 password: //사용자 패스워드 입력 2. 로그아웃: logout $logout 또는 $exit 또는 ^+d 2) 패스워드 설정 및 변경: passwd $passwd Enter the current login password: //..

7. Inheritance Patterns - Instantiation Patterns

1. Instantiation이란 Instantiation은 인스턴스를 만드는 과정을 말한다. ES6의 class 개념이 나오기 전에 JavaScript를 객체지향적으로 사용하려는 많은 노력이 있었다. 이 여러 방법들에 대해 알아보고자 한다. 2. Functional Instantiation 방식의 Instantiation 이 방식은 말 그대로 function(함수)를 이용해서 class에서 instance를 찍어내는 방식이다. ex) var Car = function(){ 1st. Car라는 함수를 만들어준다. var someInstance = {}; 2nd. 이 함수를 실행했을 때, 만들 instance 객체를 선언하다. someInstance.position = 0; 3rd. Car함수가 실행되었을..

Dev/SW Engineering 2020.05.24

6. Inheritance Patterns - Object Oriented Programming

+ 200819 8/19일인 오늘에서 객체지향을 처음 배울 때 정리해 둔 아래의 글을 보니 많이 부족하고 부끄럽다. 아래의 두 reference를 읽었는데, 이를 정리해야할 것 같다. 1. https://woowabros.github.io/study/2016/07/07/think_object_oriented.html 생각하라, 객체지향처럼 - 우아한형제들 기술 블로그 2년차 쪼랩이가 객체지향을 처음으로 접하고 공부를 하면서 나름대로 정리해보았습니다. woowabros.github.io 2. 객체지향 생활 체조 - https://github.com/iamkyu/TIL/blob/master/.bak/object-calisthenics/object-calisthenics.md 1. OOP란 OOP(Object..

Dev/SW Engineering 2020.05.24

5. Data Structure - Time Complexity

1. Arrays (JS가 아닌 다른 언어)Memory 상에서 이어져 있는 자료구조이다. (primitive data structure) Time Complexity 1) Lookup(position) time complexity: O(1) 메모리상 이어 붙여져 있기 때문에 index로 바로 찾아갈 수 있기 때문이다. 2) Assign time complexity: O(1) 이것 역시 index 사용해서 다른 값 넣어주면 되니까. 3) Insert time complexity: O(n) 4) Remove time complexity: O(n) 앞의 Insert와 마찬가지로 삭제 후 그 뒤의 것들을 한 칸씩 옮겨 줘야 하니까 5) Find time complexity: O(n) 하나씩 확인하다가, 최악의 ..

Dev/SW Engineering 2020.05.24

5. Data Structure - Graph, Tree, BST

Graph 1)개념 : 노드(정점,Node, vertex) 와 간선(edge)로 구성된 자료구조 용어들 차수(Degree): 정점에 몇 개의 간선이 연결되어 있는가 사이클(Cycle): 자기 자신으로 다시 돌아올 수 있는 경로 2) 구현 그래프 구현 방식1: 인접 행렬 인접 행렬: 정점의 연결 관계를 2차원 배열에 0(연결x), 1(연결 o)로 표현하는 것 인접 행렬의 장점: 연결 여부를 O(1)만에 알 수 있다. 인접 행렬의 단점: 1. 인접한 정점을 찾는데 O(n)걸린다. 2. 실제 간선의 개수와 관계없이 무조건 n**2개의 칸을 써야 한다. 그래프 구현 방식2: 인접 리스트 인접 리스트: 각각의 정점에 대하여 인접한 정점 번호를 저장 인접 리스트의 장점: 1. 인접한 정점을 찾는데 해당 정점의 딱 ..

Dev/SW Engineering 2020.05.24

4. DataStructure - Linked List, Hash Table

Linked List 1) 개념 자료구조 중 여러개의 변수를 저장하는 방법으로 배열(Array)와 링크드리스트(linked list)가 있다. 배열은 변수의 나열로, 장점은 i번째 원소를 바로 알 수 있다는 것이지만 단점은 원소의 추가, 삭제가 까다롭다. 반면 링크드 리스트는 각 원소가 node에 들어있고 이 Node는 값이 들어있는 data와 다음 원소를 가리키는 link로 구성되어 있으며 장점은 원소의 추가, 삭제가 쉽고, 단점은 i번째 원소를 알기 어렵고, 처음(head)부터 차근차근 따라 가야한다. 2) 구현 다음과 같은 method를 구현하세요 : addToTail(value) - 주어진 값을 연결 리스트의 끝에 추가한다. remove(value) - 주어진 값을 찾아서 연결을 해제(삭제)합니다..

Dev/SW Engineering 2020.05.24

3. Data Structure - Stack, Queue

Intro 자료구조에 대해 공부한 내용을 각 자료구조(Stack, Queue, Linked List, Hash Table, Graph, Tree, Binary Search Tree)에 대해 1. 개념 2. 구현 3. 해당 자료구조의 property와 method 4. Time Complexity에 대해 공부한 내용을 작성하였습니다. 컴퓨터와 소통하기 위해 다양한 프로그래밍 언어(C/C++, python, JavaScript...) 중 용도에 맞게 학습을 진행하였다면 자료를 저장하는 구조인 자료구조를 배우게 됩니다. 이 자료구조(Stack, Queue, Tree, Graph...) 역시 다양하며 특정 목적에 따라 그에 맞는 자료구조를 사용할 수 있어야 합니다. 따라서 각 자료구조의 목적이 무엇인지 이해하는..

Dev/SW Engineering 2020.05.24

버블정렬

버블정렬: 오름차순이 기준일 때, 인접한 원소를 비교하여 큰 수를 뒤로 보내는 것을 반복하는 정렬 1) 원리 선택정렬과 달리 버블정렬은 정렬이 완료 된 것(bar 오른쪽)과 아닌 것(bar 왼 쪽)을 나누는 기준인 bar가 시작할 때 맨 뒤에 있다고 생각합니다. 그리고 나서 앞에서 부터 자신의 옆의 원소 (첫 번째 원소와 두 번째 원소, 두 번째 원소와 세 번째 원소, 세 번째와 네 번째 ..) 를 비교하며 bar가 있는 곳 까지 정렬기준에 맞게 자리를 바꿔주면서 큰 것을 뒤로 보내는 정렬을 해나갑니다. 이렇게 앞에서 부터 비교하면서 최대값을 계속 뒤로 밀고 있으므로 한 loop를 돌고 나면 (오름차순 일 때) 최대값이 맨 뒤로 가게 됩니다. 이렇게 이렇게 원소 하나의 자리를 찾아 주었다면 bar를 한 ..