일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Filter
- 백엔드공부
- 개발
- 인터셉터
- spring
- 백엔드
- 제로베이스
- 타임리프
- @EnableJPAAuditing
- IMAGE
- Auditing
- @EntityListeners
- JWT
- 힙
- Java
- 개발자
- 타임리프레이아웃
- 백엔드스쿨
- Container
- docker
- 다익스트라
- redis
- validation
- 우선순위큐
- 토큰인증
- Today
- Total
목록분류 전체보기 (43)
개발 공부 로그
코린이 시점에서 쓰는 Scanner와 BufferedReader 특징과 차이점입니다-! 여지껏 백준 문제를 풀 때, 항상 Scanner 만 사용했다. 그리고 강의 중에서 Scanner를 많이 사용한다고 했다. 하지만, 역시 코딩을 시작한지 얼마 안된 시점에서, 백준 문제가 풀리지 않을 때, 문제에 대한 감이 안올 때, 다른 사람들의 코드를 보면 Scanner 말고도 BufferedReader를 사용해 푸는 걸 볼 수 있었다. BufferedReader의 장점은 무엇이며, 어떻게 사용하는 건지 찾아보다 둘을 정리해보려고 생각이 들어 아래와 같이 정리한다. 어떤 사람은 Scanner 클래스를 사용했을 때 시간초과가 나 BufferedReader를 이용해 푸니 해결되었다고 한다. 먼저 알 수 있는점은 Buff..
연결리스트(Linked List) 데이터를 링크로 연결해서 관리하는 자료구조 자료의 순서는 정해져 있지만, 메모리상 연속성이 보장되지는 않음 연결리스트의 장점 데이터 공간을 미리 할당할 필요x -> 즉, 리스트의 길이가 가변적이라 데이터 추가/삭제 용이 연결리스트의 단점 연결구조를 위한 별도 데이터 공간 필요 연결 정보를 찾는 시간이 필요(접근 속도가 상대적으로 느림) 데이터 추가, 삭제 시 앞뒤 데이터의 연결을 재구성하는 작업 필요 연결리스트 기본구조 ✔️노드(Node): 데이터 저장 단위로, 값과 포인터(다음 노드나 이전 노드의 연결 정보)로 구성 연결리스트 기본연산 ✔️데이터 추가: 어디에 데이터를 추가할지에 따라 연결 작업이 다르다! -가장 앞에 데이터를 추가할 때: 1. 추가할 데이터를 담을 노..
도서관에 책들이 놓여있는 모습을 상상해보자 아무렇게나 책을 정리하게 되면 나중에 책을 찾을 때 시간이 오래 걸리게 될 것이다. 쉽게 책을 찾기 위해 분야별로 그리고 가나다 순으로 책을 놓는다고 생각해보면.. 이후 원하는 책을 찾을 때, 책이 정리되어 있는 규칙을 알기 때문에 어떤 분야인지 그리고 어떤 초성으로 시작하는지 확인하면 빠르게 찾을 수 있을 것이다. 이때 책이 정리되어 있는 규칙은 자료구조, 책을 찾는 가장 빠른 방법은 알고리즘이 되게 된다. (출처: https://velog.io/@guswnee00/%EB%B0%B1%EC%97%94%EB%93%9C-%EC%8B%A0%EC%9E%85-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%8C%93%EC%95%84%EC%95%B..
점화식(Recurrence) 어떤 수열의 일반항을 그 이전의 항들을 이용해 정의한 식 ex. 피보나치 수열 1 ,1 ,2, 3, 5, 8, 13... 재귀함수 어떤 함수가 자신을 다시 호출하여 작업을 수행하는 방식 종료조건이 무조건 존재한다! 코드 구현: public class Main { static int recursion1(int n){ if (n == 1){ //종료조건 return 1; } return 3* recursion1(n-1); //자기자신을 불러온다 } static int recursion2(int n){ if (n ==1){ return 1; } return n+ recursion2(n-1); } static int recursion3(int n){ if (n < 3) { retur..

결국 백엔드 개발자에게 나중에 발휘될 지식은 바로 알고리즘과 자료구조(CS지식)이다. 선형자료구조: 배열, 연결리스트, 스택, 큐, 데크, 해시테이블 비선형자료구조: 트리(+이진탐색트리), 그래프, 힙, 우선순위 큐, 트라이 많이 쓰이는 배열(Array)에 대해. Array vs ArrayList 공통점: 1. 요소를 추가할 땐 add, 요소를 가져올 땐 get을 사용한다.(일정한 시간에 실행) 2. 둘 다 중복되는 요소를 저장할 수 있다. 3. Null 값을 저장할 수 있고, index를 사용해 값을 참조할 수 있다. 4. 순서 지정은 되지 않는다. 차이점: 1. 길이를 조정할 수 있는 건 ArrayList(가변 길이), 길이 조정이 안되는 건 Array(고정 길이) -> 새로운 데이터 추가 시 또 ..

그래프(Graph): -정점과 간선으로 이루어진 자료구조(Cyclic), 연결된 정점간의 관계를 표현할 수 있는 자료구조 -그래프의 용도: 지하철 노선도, 통신 네트워크, ... -그래프 용어: -그래프 vs 트리: 그래프 트리 개요 노드와 간선으로 이루어진 자료구조 그래프의 한 종류 방향성 방향 그래프, 무방향 그래프 둘 다 방향 그래프 사이클 Cyclic Acyclic 모델 네트워크 모델 계층 모델 루트 노드 루트 노드 X 최상위 노드 부모-자식 X 인접한 상하위 노드 간선 수 그래프에 따라 다름 N-1개 순회 DFS, BFS Pre-,In-, Post-order/ Level-order 경로 2개 이상의 경로 가능 두 노드 간의 경로는 오직 1개 트리는 그래프의 한 종류이다! -그래프의 종류: 1. ..

자료구조란?(Data Structure) -자료를 효율적으로 관리하기 위한 구조 (여기서 관리란 저장, 삭제, 탐색 등을 말함) -알고리즘과 밀접한 관계에 있다. 비선형 vs 선형 자료구조 선형 자료구조 비선형 자료구조 자료에 순서가 있다.(set, Map은 명시적인 순서x) 자료에 순서가 없다. 순서를 중요시 하지 않는 자료구조여도, 자연스럽게 읽는 순서(natural order)가 있다. 단순히 자료를 한번 순회하는 데에도 방법론이 필요하다. (DFS, BFS가 많이 쓰인다.) *선형 자료구조: -배열 -연결리스트 -스택, 큐, 데크 -해시 테이블 *비선형 자료구조: -트리 -그래프 -힙/우선순위 큐 -트라이 *트리: -루트 노드를 시작으로, 뻗어 나가는 자료구조 -하나의 노드에서 다른 노드로 이동하..

저는 비전공자이며 백엔드 공부는 처음이기에, 두서없는 점 참고바랍니다'ㅅ'.. (Feat. zero base) 백엔드 공부를 위해 제일 먼저 알아야 할 것은 바로 컴퓨터 공학 기초 이론이라고 한다. 백엔드를 이해하기 위해선 흔히 말하는 컴퓨터 공학 지식을 이해하고 있는 것이 중요하다. 컴퓨터 공학 지식은 코딩을 잘하기 위해 필요한 것이 아닌 문제가 생겼을 때 이 문제를 해결하기 위해 필요한 것이다. 컴퓨터 공학 지식에 더해 프로그래밍 기초, 데이터 구조 및 알고리즘, 데이터베이스, 서버 측 개발 등 기본기가 탄탄해야 한다. 프로그래밍 언어나 개발에 필요한 지식의 기본은 컴퓨터 공학, CS이다. 이런 기초 지식이 있어야 문제가 일어났을 때 트러블 슈팅에도 도움이 된다. 데이터베이스의 원리나 엔진, 네트워크..