백엔드 커리어 로드맵 - 백엔드 신입 개발자가 쌓아야 하는 역량 - 자료구조/알고리즘/코딩테스트편
1. 자료구조 자료구조는 다루려는 데이터를 좀더 효율적으로 사용하기 위해 사용한다 예시를 들자면, 스택, 큐, 트리, 그래프, 해시 등이 존재한다. 스택이라면 LIFO, 큐라면 FIFO, 트리라면 계층 구조, 그래프는 노드와 간선이 고루고루 연결된 구조 위 자료구조들은 데이터를 다루기위한 각자 고유의 컨셉을 가지고 있기 때문에, 그 컨...
1. 자료구조 자료구조는 다루려는 데이터를 좀더 효율적으로 사용하기 위해 사용한다 예시를 들자면, 스택, 큐, 트리, 그래프, 해시 등이 존재한다. 스택이라면 LIFO, 큐라면 FIFO, 트리라면 계층 구조, 그래프는 노드와 간선이 고루고루 연결된 구조 위 자료구조들은 데이터를 다루기위한 각자 고유의 컨셉을 가지고 있기 때문에, 그 컨...
1. 개요 Spring Boot를 이용한 개발자가 되기 위한 로드맵을 잠시 살펴보았다. https://roadmap.sh/backend 사이트에서 백엔드 로드맵 2024년 버전을 확인해 보았다 주로 살펴본다면 아래 내용이 필요할 것으로 보인다. Java(Spring을 하기 위해 기본적으로 Java 필수) ...
문제 출처 : https://www.acmicpc.net/problem/1449 정답 참고 : https://hae-sooo97.tistory.com/59 1. 문제 항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다. 파이프에서 물이 새는 곳은 신기하게도 가장 ...
1. 컴퓨터의 구성 컴퓨터 시스템은 하드웨어와 소프트웨어로 나뉨 하드웨어 : 컴퓨터를 구성하는 기계적 장치 (CPU, 기억장치(RAM, HDD), 입출력 장치(마우스, 프린터) 소프트웨어 : 하드웨어의 동작을 지시하고 제어 (시스템 소프트웨어 : OS, 컴파일러) ...
1. StringBuffer와 StringBuilder의 차이 (1/22) StringBuffer와 StringBuilder는 mutation(가변성)이 존재하여 인스턴스 생성 후에도 문자열의 내용을 변경할 수 있습니다. 또한 append() 등의 함수를 이용할 수 있습니다. 하지만 StringBuilder는 동기화를 지원하지않아 멀티스레드 ...
1. 최소 신장 트리 (MST) MST : Minimum Spanning Tree 그래프 상의 모든 노드들을 최소 비용으로 연결하는 방법 크루스칼, 프림 2. 크루스칼 알고리즘 간선 중 최소 값을 가진 간선부터 연결 사이클 발생 시 다른 간선 선택 주로 간선 수가 적을 때 사용 O(E ...
1. 다이나믹 프로그래밍 (DP) 큰 문제를 부분 문제로 나눈 후 답을 찾아가는 과정에서, 계산된 결과를 기록하고 재활용하며 문제의 답을 구하는 방식 중간 계산 결과를 기록하기 위한 메모리가 필요 한번 계산한 부분을 다시 계산하지 않아 속도가 빠름 2. 다른 알고리즘과의 차이점 분할 정복과의 차이 분할 정복...
1. 트라이 (Trie) 문자열을 저장하고 빠르게 탐색하기 위한 트리 형태의 자료구조 정렬된 트리구조 문자열 저장을 위한 메모리가 필요하지만 탐색이 빠름 길이가 N인 문자열 탐색의 시간 복잡도 : O(N) 생성 복잡도 : O(MN) M : 문자열 갯수 2. 트라이 형태 문자열 구...
1. 백트래킹 모든 경우의 수를 탐색하며 최적해를 구하는 과정에서 유망하지 않은 쪽은 더 이상 구하지 않는 방법 용어 유망(Promising) : 해가 될 가능서이 있는 경어 유망하다고 함 가치치기 (Pruning) : 해가 될 가능성이 없는 경우 해당 노드를 제외 백트래킹 (Backtracking)...
어떤 백엔드 개발자가 되은가 1) 기초가 잘 다져진 백엔드 개발자 개발자체가 완전히 처음은 아니고 Java 및 Spring Boot 환경에서 비즈니스 로직 개발을 진행해본 경험은 있다. 그러나, 단순히 언어만 안다고 해서 개발을 잘하는 것은 아니다. 특히, 실서비스에 내놓게 되는경우라면 단순 비즈니스 로직만 구현하면 되는 것이 아니다. ...