-
AWS - 플러스친구 api 서비스 작업 중 노트IT, 프로그래밍/프로그래밍 일기 2018. 3. 15. 00:33
1. AWS 인스턴스 보안 그룹 설정에 꼭 작업 중인 포트번호를 추가해 줘야 접근이 가능하다. (주의 !!! 포트포워딩 필수!!) 2. 옐로 아이디 rest api 테스트 받을때는 뒤에 /keyboard 빼고 적어야 함 (415 에러 뜨면 이거 의심) 3. message를 response 할때 keyboard 타입만 사용하고 싶어도 text를 꼭 같이 보내줘야한다. 4. 리눅스에서 listen EADDRINUSE ::: 포트번호 이런 에러가 뜨는 거는 포트가 사용중이라는 것을 의미. 즉 포트를 사용중인 프로세스가 존재한다. 이걸 죽여주는 명령어는 sudo killall -9 node (관리자 권한 필수) 추가로 ps ax 하면 현재 사용중인 포트 쫙나옴 5. 저장된 다른 파일 (swap 파일)이 있다는 ..
-
원형 연결 리스트 (Circular Linked List)IT, 프로그래밍/자료구조, 알고리즘 2018. 2. 11. 21:55
맨 마지막 노드의 포인터가 다시 첫 노드를 가리키는 연결 리스트 구조이다. 단순 연결 리스트에서는 이전에 위치한 노드를 탐색할 수 없다. 원형 연결 리스트에서는 이전 노드까지 계속 반복문을 돌다 보면 이전 노드에 도착할 수 있어서 편리하다. 목적지까지 한 번만 운행하는 열차와, 같은 구간을 도는 순환 열차를 생각하면 되겠다. 이번에는 헤드 포인터(Head pointer)를 사용해서 구현하는 법을 정리해 보겠다. 참고로 헤드 포인터란, 원형 연결 리스트 구조체 안에서 노드를 가리키는 포인터이다. 원형 연결 리스트는 맨 마지막 노드가 첫번째를 가리킨다는 조건이 있으므로, 노드의 삽입과 삭제 기능을 구현할 때 주의 해야 한다. ※ 밑에 헤드 포인터의 타입은 CircularListNode* 임. 현재 그림에 C..
-
단순 연결 리스트 (Single Linked List)IT, 프로그래밍/자료구조, 알고리즘 2018. 1. 29. 00:12
연결 리스트에서 각 요소는 노드(Node)로 이루어 진다. 노드는 구조체로 구현하며, 데이터와 다음 노드를 가리키는 포인터로 이루어 져 있다. 단순 연결 리스트는 이전 노드 안에 있는 포인터가 다음 노드를 가리키는 구조로 되어 있다. 마지막 노드의 링크는 NULL을 가리키며 뒤로 돌아갈 수 없다. 만약 어떤 노드로 돌아가기 원한다면 맨 처음 노드로 다시 설정하여 순회(iteration) 하여야 한다. 연결 리스트를 구현 하는 방법은 두 가지가 있는데, 하나는 더미 노드(Dummy Node)를 이용하는 방법이고 하나는 헤드 포인터(Head Pointer)를 사용하는 방법이다. 더미 노드란, 데이터 저장을 위한 노드가 아니라 노드의 추가/삭제 구현의 간편성을 위해 사용하는 노드이다. 실제 데이터를 저장하는 ..
-
연결 리스트 (LinkedList)IT, 프로그래밍/자료구조, 알고리즘 2018. 1. 28. 21:55
연결 리스트(LinkedList)는 서로 떨어져 있는 메모리 공간을 포인터를 사용해 연결시켜 놓은 자료 구조이다. 배열리스트는 배열(Array)를 이용하기 때문에 처음에 정해 놓은 메모리 공간에서 벗어날 수 없지만(지정해놓은 배열의 최대 크기를 벗어날 수 없다) 연결 리스트(LinkedList)는 그런 한계 없이 자유롭게 노드를 추가할 수 있다. 물리적 메모리 공간에서, 배열 리스트와 연결 리스트가 메모리를 점유한 모습이다. 배열 리스트는 배열을 사용해 순차적으로 메모리 공간을 사용하지만, 연결 리스트는 그렇지 않다는 점을 보여준다. 연결 리스트는 포인터를 사용하기 때문에 데이터를 빈번하게 삽입, 삭제해야 하는 상황에서 상당히 유연하게 움직인다. 해당 노드의 링크만 연결해주고, 끊어주면 되기 때문에 삽입..
-
배열 리스트 (ArrayList)IT, 프로그래밍/자료구조, 알고리즘 2018. 1. 28. 19:12
배열 리스트(Array List)는 배열(Array)을 사용하는 선형 자료구조이다. 배열과의 차이점은, 배열은 중간에 데이터를 빼면 빈 공간이 생겨 메모리 공간이 낭비될 수 있지만, 배열 리스트는 순차적으로 저장된다는 리스트의 특성을 가지고 있기 때문에 중간에 공간이 뻥 하고 뚫려 메모리가 낭비되는 일은 없다. 위의 그림을 살펴보면 6개짜리 char 배열이 생성되어 있는 것을 확인할 수 있고 그 안에는 A부터 F까지 알파벳으로 초기화 되어 있다. 배열의 특징을 가지고 있기 때문에 리스트의 원소(element)에 접근하기 위해서는 배열의 인덱스(index) 값으로 접근하여야 한다. 이러한 특성 때문에 특정 원소에 접근할 때 빠른 속도로 접근할 수 있다. 다만 추가, 삭제가 자주 일어날 경우 해당 인덱스 뒤..