목록전체 글 (33)
Soy's Devlog
연결리스트는 배열과 리스트의 단점을 보완한 구조이다.배열과 리스트의 경우 중간에 특정 데이터가 삽입되어야 한다면 위와같이 기존의 데이터들을 한칸씩 뒤로 이동해 주어야 한다. 삭제를 할 땐 빈공간을 채우기 위해 한칸씩 앞으로 이동해 주어야 한다. 뿐만 아니라 데이터가 꽉 차있는 상태에서 추가하고자 할 때는 메모리에 새로운 공간을 기존의 크기만큼 추가로 할당 하여 리스트의 맨 마지막에 새로운 데이터를 추가해야 하는 번거로움이 생긴다. 이렇듯 메모리관리에 어려움이 생길 수 있다는 것이 가장 큰 단점인데 이 부분을 보완한 자료구조가 연결리스트라고 할 수 있다.연결리스트선형 동적자료구조인덱스 없음데이터필드와 하나이상의 링크필드로 구성된 노드를 갖는다.링크 : 다른 노드를 가리키는 주소를 갖는다.연결리스트 종류단순..
스택과 마찬가지로 선형자료구조인데 차이점이라면 삽입, 삭제가 서로 다른곳에서 일어난다는 점이다.First-in, First-Out 선입선출 구조이다.데이터삽입은 뒤쪽에서 데이터 삭제는 앞쪽에서 일어난다.데이터 삽입이 일어나는 포인터변수는 rear, 삭제가 일어나는 포인터변수는 front라고 한다.큐에서는 삽입변수와 삭제변수를 각각 운영한다.추상자료형ADT기능설명Add_q()rear 포인터를 하나 증가시킴Delete_q()front 포인터를 하나 감소시키고 반환함.IsEmpty_q()큐가 비어있으면 true, 아니면 falseIsFull_q()큐가 꽉찼으면 true, 아니면 false rear포인터와 front포인터가 배열의 경우 같은값이거나, 같은 메모리 영역을 가리키면 큐는 queueEmpty 상태가 ..
스택가장 먼저 입력된 데이터가 가장 나중에 출력됨.한쪽에서만 자료의 입•출력이 일어나는 구조 top : 스택의 최상단을 의미 push는 데이터삽입을 의미한다. push하게되면 top포인터가 하나 증가하여 방금 추가된 데이터의 상단을 가리키게 된다.pop은 데이터의 삭제이며 이후에 top포인터가 하나 감소한다. 데이터의 삽입과 삭제가 상단인 top에서만 일어난다. 스택영역에 데이터가 꽉 차있으면 full 상태, 데이터가 존재하지 않으면 empty상태로 판단한다. 스택오버플로우 StackOverflow : 포화상태인 스택에 새로운 요소 삽입하려 할 때 발생하는 오류이며 stackfull 메세지 도출됨스택언더플로우 StackUnderflow : 공백상태인 스택에서..
컴퓨터는 디지털 계산기처럼 몇가지 입력받은 값들로만 정해진 계산을하고 출력을 해내는 기계가 아니다. 데이터가 많을수도 있고 비즈니스로직이 복잡하기도 하고 일괄적으로 대량의 데이터를 처리하기도 하는 등 다양한 경우의 수가 있는데 이를 최대한 효율적으로 수행할 수 있게 해주는 컴퓨터과학의 기초이론이기 때문에 중요하다고 할수있다!자료구조의 분류단순자료구조는 변수를 선언할 때 사용하는 것들을 예로 들 수 있고 나머지는 복합자료구조인데 이는 다시 선형 자료구조와 비선형 자료구조로 나뉜다. 선형 자료구조는 메모리내에 데이터들이 순차적으로 나열되어 있는 것이고, 비선형 자료구조는 메모리내에 여기저기 흩어져 있는 형태를 말한다. 선형자료구조는 다시 생성 시 크기가 고정되는 정적 자료구조와 실행 중에 크기가 유동적으로 ..
방송대 클라우드 컴퓨팅 강의를 들으며 만들었던 Azure 클라우드 사용에 대해 추가학습하여 정리했습니다.업무에서 Amazon만 다뤄보았다가 처음 Azure를 사용해보았는데 기능적으로 큰 차이는 없었으나 개인적으로 UI는 Azure가 더 편하게 구성된 것 같아 만족도가 높았습니다👍 무료이고 학습용으로 만든 계정이라 학생용으로 진행한 점 참고 부탁드립니다. 클라우드 서비스 시작을 위한 준비단계는 아래와 같고 단계별로 간단한 화면 설명 정도로 작성했습니다.1. 가상머신 생성 및 설정2. 가상머신 접속 3. 데이터베이스 생성 가상머신 생성 및 설정가입 후 구독을 시작하면 위와 같은 첫 화면을 보게된다.구독탭에 가보면 학생용 계정일 경우 Azure for students 로 표시되며, 본인이 선택한 구독에 따..
이전글과 이어집니다.https://tremexplo.tistory.com/45 리눅스 파일시스템과 기본명령(2)이전 글과 이어집니다.https://tremexplo.tistory.com/entry/ls-lrt-java 접근 권한리눅스에서는 권한이 없는 사용자가 다른 사용자의 파일이나 디렉터리에 접근하는 것을 막기위해 파일이나 디렉터리에 적tremexplo.tistory.com 리눅스 시스템에는 프로그램의 설정파일이나 셸 스크립트 등 사용자가 볼 수 있는 많은 종류의 텍스트 파일이 존재한다.텍스트 편집기를 사용하여 파일을 작성하거나 수정할 수 있다. 하지만 단순히 내용만 확인하는 경우 화면에 출력 시켜주기만 하면 된다.이때 사용하는 명령들은 실제 파일 내용이나 로그를 확인할 때 가독성있게 볼 수 있게 해주..
이전 글과 이어집니다.https://tremexplo.tistory.com/44 리눅스 파일시스템과 기본명령(1)리눅스 디렉터리를 다루는데 기본이 되는 명령어를 정리해 보았습니다.리눅스 파일시스템에 관한 내용은 리눅스의 시작과도 같아서 정확히 아는게 중요합니다! 목차1. 파일시스템 탐색 tremexplo.tistory.com 접근 권한리눅스에서는 권한이 없는 사용자가 다른 사용자의 파일이나 디렉터리에 접근하는 것을 막기위해 파일이나 디렉터리에 적절한 접근권한을 설정할 수 있다. 어느 정도 수준으로 접근이 가능한지도 설정이 가능한데 9개의 비트를 사용한다.소유자(u), 그룹(g), 기타(o)의 세 부류에 대해 '읽기,쓰기,실행' 권한을 설정할 수 있다.읽기(r) : 파일의 내용을 볼 수 있다. 디..
리눅스 디렉터리를 다루는데 기본이 되는 명령어를 정리해 보았습니다.리눅스 파일시스템에 관한 내용은 리눅스의 시작과도 같아서 정확히 아는게 중요합니다! 목차1. 파일시스템 탐색 - ls, file, cd, pwd2. 파일과 디렉터리 관리 - mkdir, rmdir, cp, mv, rm, 접근권한, 소유자변경 등3. 파일 내용 확인 - more, less, head, tail, cat 1. 파일시스템 탐색윈도우와 마찬가지로 리눅스 시스템도 계층적으로 구성된 트리 형태의 디렉터리 구조를 가진다. 각 디렉터리 마다 하위에 다수의 파일과 하위 디렉터리를 가질 수 있고, 최상위 디렉터리를 루트 디렉터리( / )라고 한다.차이점이 있다면, 윈도우 에서는 C:\ 와 D:\ 와 같이 여러개의 드라이..
안드로이드로 개발 중 간단하게 값을 저장할 수 있는 API가 있다. DB에 저장하면 되잖아? 할 수 있지만 DB까지는 거칠 필요가 없거나 빠르게 저장하고 확인하기 위해서 주로 사용한다. SharedPreferences란? 여러 자료형의 데이터를 간단히 저장하고 불러올 수 있다. 앱이 종료되어도 유지되며 앱을 삭제하기 전까지 저장된다. 초기설정값이나 자동로그인 여부 등을 판단하는 간단한 값을 저장하기 위해 사용한다. 어플리케이션에 파일형태(xml)로 값이 저장된다. 앱의 개별저장소에 xml파일을 생성 후 key-value 형식으로 데이터를 저장한다. put,get 메소드로 데이터를 읽고 저장할 수 있다. 적용예시 SharedPreferences 는 다른곳에 데이터를 넘겨주기 위해 앱의 액티비티 중 가장 먼..
작업한 것을 원격에 업로드 하기 위해 pull을 받고 진행하려 했는데 경고 메세지가 보여졌다. pull 은 완료되었다 하여 일단 commit 후 push 를 하였더니 역시나 아래와 같이 거부되었다. push 하려니 pull 을 먼저 수행하라 하고 pull 하려니 에러가 나는 상황...😅 다시 commit reset해 보고 pull시도를 하니 이전에 push한 원격의 파일을 덮어쓴다는 경고가 떴다. 파일을 옮기거나 삭제한 후 다시 병합하면 되겠지만 너무 비효율적이고 여러사람이 함께 사용하는 레파지토리라면 위험한 액션이다. 시도한 것들 You have divergent branches and need to specify how to reconcile them. You can do so by running o..