본문 바로가기

자료 구조 - Linked List Linked List란?Linked List를 이해하는 가장 쉬운 방법은 '연결'이라는 키워드를 이해하는 것이다. Likned List vs Array ListRAM은 어느 공간에 접근하든 항상 속도가 일정하다. 다만, 주소를 알아야 하기 때문에 찾는 과정이 많다면 Linked List의 경우처럼 a를 찾고b는 어딨니? -> b찾고 -> c는 어딨니? -> c ... 와 같은 작업이 반복되어 속도가 느려진다. 반대로 Array List의 경우 한 라인에 있기 때문에 주소를 묻는 과정이 필요없어 조회속도가 빠르지만 만약 새로운 공간을 사용해야 할 때는 크기를 전부 늘려야 하므로 속도가 오래 걸릴 경우가 있다. 반면, Linked List는 빈 공간 아무 곳에나 추가하면 되기 때문에 속도가 빠르다. 이런 이..
자료 구조 - ArrayList 자바 구현 ArrayList.javapackage list.arraylist.implementation; public class ArrayList { private int size = 0; private Object[] elementData = new Object[100]; public boolean addLast(Object element){ elementData[size] = element; size++; return true; } public boolean add(int index, Object element){ for(int i = size - 1; i >= index; i--){ elementData[i + 1] = elementData[i]; } elementData[index] = element; si..
자료 구조 - List List란?리스트는 수학적으로 유한 수열을 프로그래밍적으로 표현한 것이다. List를 이해하는데 가장 중요한 두 가지는 순서대로 저장된다는 것과 중복을 허용한다는 것이다. Array vs List배열의 경우 인덱스가 매우 중요하다. 인덱스만 알고 있으면 빠르게 데이터에 액세스하여 값을 가져 올 수 있기 때문이다. 리스트의 경우에도 인덱스가 있지만 데이터의 저장 순서가 훨씬 중요하게 여겨진다. 배열의 경우 엘리먼트가 삭제 되었을 때 빈 공간을 남겨두어 메모리 낭비를 초래하지만 리스트는 인덱스의 장점을 버리는 대신 빈틈없는 데이터의 적재라는 장점을 부각시킨 자료 구조이다. 리스트의 기능리스트의 핵심 개념은 순서가 있는 엘리먼트의 모임이라는 것이다. 앞서 말한 빈 엘리먼트가 허용되지 않는다는 점도 중요하다. ..
자료 구조 - Array in Java 자바 배열 생성int[] numbers1 = new int[4]; // 크기는 4이고 type은 int형이며 이름은 numbers1인 array를 생성 String[] strings = new String[4]; // 크기는 4이고 type은 String형이며 이름은 strings인 array를 생성 // numbers1의 index 0, 1, 2 에 각각 값을 초기화 numbers1[0] = 10; numbers1[1] = 20; numbers1[2] = 30; // 만약 생성과 값의 초기화를 한번에 하고 싶다면 int[] numbers2 = {10, 20, 30, 40}; int[] numbers3 = new int[]{10, 20, 30, 40}; // 값을 출력해보자 System.out.print..
자료 구조란 (DATA STRUCTURE) ? 자료 구조란 (DATA STRUCTURE) ?자료 구조에는 크게 두 가지 의미가 있다.첫 번째는 현실을 프로그래밍적으로 표현하는 것.ex)Tree - 조직도, 디렉토리Set - 집합Graph - 지도 두 번째는 큰 데이터를 효율적으로 관리하는 것.컴퓨터 세상은 정리 정돈의 진화라고 할 수 있다.작게는 파일 하나, 폴더, 컴퓨터부터 크게는 그런 문서들이 모아서 한 곳에서 볼 수 있는 WEB까지. 자료 구조를 공부하면서 유념해야 할 점.포기와 유보의 차이.공부하는 과정에서 이해가 안가더라도 잠깐 멈추고 다시 돌아와 반복해도 된다.
백엔드 개발자 공부 계획 https://github.com/devJang/developer-roadmap2019 웹개발 로드맵 한글 버전을 참고하여 작성함 기초1. 자료 구조, 알고리즘 - 현재 자료 구조 공부중2. Git - 기초부터 branch 전략까지3. SOLID, KISS, YAGNI4. 라이센스5. Semantic Versioning6. SSH7. HTTP/HTTPS와 APIs8. 디자인 패턴9. 문자 인코딩 백엔드1. 언어 선택 - NodeJS / Python / Java 셋 다 매력적이다.. 자료 조사 및 탐문 결과 NodeJS로 선택!2. 배운 것 실습 - 간단한 프로그램3. 패키지 매니저 학습 - npm4. 표준 및 모범 사례(+보안, OWASP 가이드라인)5. 패키지와 라이브러리 만들어 배포 - 오픈 소스 기..
1년 반 만에 면접을 보고 느낀 점 면접오랜만에 본 면접에 나는 굉장히 긴장했고 사시나무 떨듯이 면접을 봤다.(핸드폰 진동 모드인 줄 알았다) 나는 솔직하게 긴장됨을 얘기했고 면접관님이 많이 배려해주신 덕분에 편한 분위기에서 즐겁게 1차 면접을 마칠 수 있었다. 그러나 이번 면접의 합격 여부를 떠나서 이번 기회에 참 많은 것을 배울 수 있었고 많은 생각을 하게 되었다. 지금까지는 내가 있는 환경에 대해 집중하고 그것을 핑계로 삼았다면 지금은 '나 자신'이 무엇을 할 수 있을지에 대해 생각하고 있고 그것에 대해 얘기해보려 한다. 백엔드가 이 정도는...면접을 들어가기 전 PlanB님의 '백엔드가 이 정도는 해줘야 함'이란 글을 보고 그동안 내가 얼마나 자만에 차있었는지 알 수 있었다. 나는 백엔드라는 분야의 10분의 1도 제대로 이해하지 못..
AWS Lambda - AWS provider credentials not found 해결 ### AWS provider credentials not found정확한 원인은 몰랐지만 서버리스 공식 문서와 여러 설치 가이드대로 진행하였음에도 계속해서 찾지 못하는 것은 windows path 문제일거라 판단하고 자료 검색을 시작하였다. 서버리스 윈도우 설치시 환경변수를 자동으로 추가하는 코드가 있었음에도 제대로 되어있지 않아 다시 추가했으나 제대로 작동하지 않았다. 해서 다시 찾다가 가장 확실한 방법은 CLI를 설치하여 진행하는 것이라는 의견을 발견. 곧바로 시행에 옮겼다.> https://github.com/serverless/serverless/blob/master/docs/providers/aws/guide/credentials.md1. CLI 설치2. 환경변수 설정3. 위 가이드대로 진행결..