개요이전에 진행했던 프로젝트에서 사진을 업로드하고, 이를 조회에서 사용자의 프로필을 보여줘야하는 테스크가 있었다.단순히 로컬단에 사용자의 이미지를 조회하고 그 내용을 보여줘도 해당 기능을 수행하는 데는 아무런 문제가 존재하지 않는다.하지만, 사용자가 본인의 프로필을 바꾼다면? 자신의 애완 동물의 사진을 추가한다면? 이런 저런 이유들로 로컬단의 용량을 많이 잡아먹게된다. 또한, 보안적으로 취약할 수도 있다는 생각이 들었다. 그래서 다른 사람들은 이러한 작업들을 어떻게 수행할까해서 찾아보니, AWS의 Simple Storage Service(S3)를 사용해서 영상 또는 사진 데이터들을 처리하는 것을 알 수 있었다.본론AWS S3에 대한 내용은 추후에 다루게 될 것이다. 해당 포스팅에서는 단순히 AWS S3와..
개념 - BFS란?BFS란, Breadth-First Search의 약자로 너비 우선 탐색을 의미합니다.BFS는 그래프 구조에서 사용하는 탐색 알고리즘 중 하나로 루트노드부터 리프노드까지 동일한 레벨들의 노드들을 탐색을 진행하는 알고리즘이다. 루트노드에서 간선을 타고, 다음 노드로 이동하게 된다면, 동일한 거리만큼 떨어져있는 노드들을 전부 조사하고, 해당 노드들의 방문 여부를 처리하면서 탐색을 진행하는 알고리즘입니다. 순서1. 특정 노드 혹은 루트 노드에서 시작2. 해당 노드로부터 동일한 거리(레벨)에 떨어져 있는 노드 조사 후 큐에 삽입3. 반복문을 통해 해당 노드들에서 갈 수 있는 노드들이 있는지 조사4. 모든 노드들을 방문했다면 종료 이러한 순서대로 BFS를 진행한다. 하지만 이렇게만 보면 정확하..
개념 - DFS란?DFS란, Depth-First Search의 약자로 깊이 우선 탐색을 의미합니다. DFS는 그래프 구조에서 사용하는 알고리즘 중 하나로 루트노드부터 탐색하는 것이 아닌 가장 깊은 곳에 있는 리프(Leaf)노드노드부터 탐색을 진행하는 탐색 알고리즘이다. 루트노드에서 다음 브랜치로 넘어가기 전에 완전하게 탐색하는 방법이다 1. 시작 노드 혹은 루트 노드 A에서 시작합니다.2. 시작 노드 A와 인접한 노드 B를 찾는다. 이때, 방문 여부를 설정한다.3. A에 인접한 다른 노드가 아닌, 다시 B에서 인접한 노드를 찾는다.4. 마지막 노드까지 순회했다면, 해당 노드의 상위 노드로 간다5. 위의 과정을 반복하면서 모든 노드를 순회한다.특징재귀적이다스스로를 호출하는 순환 알고리즘이다.방문했던 곳..
백엔드 개발자의 필수 역량: 어떤 것들이 필요할까?IT 업계에서 백엔드 개발자의 수요가 날로 증가하면서, 백엔드 개발자가 되기 위한 경쟁도 치열해지고 있습니다. 그렇다면 백엔드 개발자로 성장하기 위해 어떤 역량을 쌓아야 할까? 오늘은 백엔드 개발자로서 갖춰야 할 기본적인 역량 중 '자료구조', '알고리즘', 그리고 '코딩테스트'에 관하여 알아보겠습니다.자료구조: 데이터를 효율적으로 관리하는 기초데이터는 백엔드 시스템의 토대입니다. 따라서, 데이터를 효율적으로 저장하고 관리하는 방법을 아는 것은 매우 중요합니다. 자료구조는 이를 가능하게 하는 기술이며, 배열, 연결 리스트, 스택, 큐, 트리, 해시 테이블 등 다양한 형태로 존재합니다. 이들 각각의 특성을 이해하고 적절히 활용할 수 있다면, 데이터를 보다..