분류 전체보기 16

[자료구조] 해시맵(HashMap)

해시맵이란? 해시맵은 이름 그대로 해싱(Hashing)된 맵(Map)이다. 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다. Map 인터페이스를 구현한 Map 컬렉션 중 하나이고, Map 인터페이스를 상속하고 있기 때문에 Map의 성질을 그대로 가지고 있다. 맵이란 키(Key)와 값(Value)으로 구성된 Entry 객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 키와 값은 모두 객체이다. 키는 맵에 유일하게 있어야 되고, 중복을 허용하지 않지만 값은 중복된 값이어도 상관 없다. 같은 키의 값을 삽입하려고 하면 해당 키의 값이 변경된다. 해시맵은 해시 테이블과 유사하지만 동기화되지 않으며, null 키도 저장할 수 있지만 객체는 하나만 있어야 하며 값이 제한없이..

자료구조 2024.02.24

백엔드 커리어 로드맵 & 어떤 백엔드 개발자가 되고 싶은지

백엔드 개발자로 성장하기 위한 일반적인 로드맵은 뭐가 있을까? 프로그래밍 언어 학습: 백엔드 개발에는 다양한 언어가 사용된다. 특히, 자바, 파이썬, 자바스크립트(Node.js), 고(Golang), 루비 등이 널리 사용되며 하나 이상의 언어에 익숙해지고 깊이 있는 이해를 갖는 것이 중요하다. 웹 프레임워크 및 라이브러리 습득: 백엔드 개발에는 프레임워크 및 라이브러리를 사용하여 개발 속도를 높이고 코드를 효율적으로 구성하는 것이 필수적이다. 예를 들어, Spring(Java), Django/Flask(Python), Express.js(Node.js) 등이 대표적이다. 데이터베이스 관리: 백엔드 개발자는 데이터를 관리하고 조작하기 위해 데이터베이스를 다루어야 한다. 이를 위해 관계형 데이터베이스(SQL..

[ZB]끄적끄적 2024.02.23

[자료구조] 배열(Arrary)

배열이란? 배열(arrary)은 거의 모든 프로그래밍 언어에서 기본적으로 제공되는 자료형으로 많은 자료 구조들이 배열을 사용하여 구현된다. 배열은 동일한 타입의 데이터를 한 번에 여러 개 만들 때 사용된다. 배열은 인덱스와 값으로 이루어지는데 인덱스(index)는 어떤 값에 접근하기 위해 필요한 것이다. 값(value)는 배열 안에 실제로 들어가 있는 값을 의미한다. => 의 쌍으로 이루어진 집합, 인덱스가 주어디면 해당하는 겂이 대응되는 자료구조 반복문에서 배열을 사용하면 효율적인 코드 작성이 가능하다. 직접 접근 방식으로 값에 접근할 때 O(1)의 시간 복잡도를 갖는다. 즉, 배열은 어떤 값에 접근하던지 모두 동일한 시간이 걸린다. 유한한 개수의 자료가 저장된다. 배열이 선언되면 컴파일러는 배열의 크..

자료구조 2024.02.23

[자료구조] 큐(Queue)

큐란? 큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO: First - In - First - Out)구조이다. 이러한 큐의 예로는 매표소에소 표를 사기 위해 늘어선 줄을 들 수 있다. 줄에 있는 사람들 중 가장 앞에 있는 사람(즉 가장 먼저 온 사람)이 가장 먼저 표를 사게 되고, 나중에 온 사람들은 줄의 맨 뒤에 서야 할 것이다. 큐도 스택과 마찬가지로 프로그래머의 도구로써 폭넓게 이용된다. 보통 컴퓨터와 주변기기 사이에는 항상 큐가 존재하는데, 그 이유는 컴퓨터의 CPU와 주변기기 사이에는 속도 차이가 있기 때문에 CPU를 효율적으로 사용하기 위하여 큐가 존재한다. 예를 들면, 프린터는 속도가 늦고 상대적으로 컴퓨터의 CPU는 속도가 빠르기 때문에 CPU는 빠른 속도로 인쇄 데..

자료구조 2024.02.23

[자료구조] 스택(Stack)

스택이란? 스택(stack)은 컴퓨터에서 굉장히 많이 사용되는 자료 구조이다. 예를 들어, 우리가 스마트폰에서 "뒤로 가기"키를 누르면 현재 수행되는 압이 종료되고, 이전에 숭행되던 앱이 다시 나타난다. 이때 스택이 사용된다. 스택의 가장 큰 특징인 입출력 형태를 후입선출(LIFO: Last - In First - Out)이다. 이는 창고에 쌓여있는 상자를 이용하여 설명할 수 있다. 예를 들어, 창고에서 새로운 상자들을 쌓을 때는 상자더머의 맨 윗부분에 놓는다. 상자가 필요하다면 상자더미의 맨 위에 있는 상자를 꺼내야 한다. 만약 중간에서 상자를 꺼내면 전체 상자가 무너질 것이다. 즉, 가장 최근에 들어온 살자가 가장 위에 있게 되고, 또 먼저 나가게 되는 이런 형태가 후입선출이다. 위의 그림에서와 같이..

자료구조 2024.02.21

프론트엔드와 백엔드의 차이 & 내가 백엔드 개발자가 되고 싶은 이유

1. 프론트엔드와 백엔드 : 우리가 흔히 접하고, 개발하는 앱과 웹에서 이를 개발하기 위해 일반적으로 사용되는 두 가지 용어이다. 이 프론트엔드와 백엔드는 사용자들은 웹페이지를 처음 접했을 때 보이는 화면만을 볼 수 있기 때문에 프론트엔드와 백엔드의 포지션이 나누어져 있다는 것을 모를 수 있지만, 각자의 독립적인 역할과 책임을 가지고 있기 때문에 앱, 웹 개발 분야에 있어 매우 중요한 포지션이다. 따라서 이 둘의 차이점을 명확히 인지하고, 숙지하여야 개발 프로젝트에 대한 이해도를 높일 수 있다. 2. 프론트엔드(Front-end) 프론트엔드는 직접적으로 사용자들의 눈에 보이는 영역 즉 사용자 인터페이스(UI)를 개발하고 관리하는 영역이다. 쉽게 말해 회원가입 칸이나 로그인 칸을 예쁘게 꾸미고 위치를 조정..

[ZB]끄적끄적 2024.02.16